diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 8b934744e..87a26e910 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -150,12 +150,17 @@ To check for lint issues without auto-correcting: ### Public API surface -The library's public API is tracked via a committed baseline at `platforms/android/lib/api/lib.api`, managed by the [binary-compatibility-validator](https://github.com/Kotlin/binary-compatibility-validator) Gradle plugin. The unified `Breaking Changes` CI workflow runs `./gradlew :lib:apiCheck` on every PR that touches Android sources and fails if the compiled public API diverges from the baseline. +The Android-facing public APIs are tracked via committed baselines managed by the [binary-compatibility-validator](https://github.com/Kotlin/binary-compatibility-validator) Gradle plugin: + +- `platforms/android/lib/api/lib.api` for `com.shopify:checkout-kit`. +- `protocol/languages/kotlin/embedded-checkout-protocol/api/embedded-checkout-protocol.api` for `com.shopify:embedded-checkout-protocol`. + +The unified `Breaking Changes` CI workflow runs `./gradlew :lib:apiCheck` from `platforms/android` and `./gradlew :embedded-checkout-protocol:apiCheck` from `protocol/languages/kotlin` on every PR that touches Android or Kotlin protocol sources. It fails if either compiled public API diverges from the committed baselines. If your change intentionally modifies the public API: -1. Run `dev android api dump` from the repo root (or `./gradlew :lib:apiDump` from `platforms/android/`) to regenerate the baseline. -2. Review the diff in `platforms/android/lib/api/lib.api` alongside your code changes. +1. Run `dev android api dump` from the repo root to regenerate both baselines. For project-scoped updates, run `./gradlew :lib:apiDump` from `platforms/android/` or `./gradlew :embedded-checkout-protocol:apiDump` from `protocol/languages/kotlin/`. +2. Review the relevant `.api` diff alongside your code changes. 3. Commit the updated `.api` file in the same PR. If you did _not_ intend to change public API and `apiCheck` is failing, the diff shows what your change inadvertently affected — treat it as a signal that something in your PR has consumer-visible impact. @@ -164,16 +169,16 @@ If you did _not_ intend to change public API and `apiCheck` is failing, the diff Open a pull request with the following changes: -1. Bump the `versionName` in `platforms/android/lib/build.gradle`. +1. Bump `checkoutKitAndroid` in `platforms/android/gradle/libs.versions.toml`. 2. Add an entry to the top of `platforms/android/CHANGELOG.md`. -3. If the React Native package should consume this Android SDK release, update `checkoutKit.nativeSdkVersions.android` in `platforms/react-native/modules/@shopify/checkout-kit-react-native/package.json` to the same version. +3. Update `checkoutKit.nativeSdkVersions.android` in `platforms/react-native/modules/@shopify/checkout-kit-react-native/package.json` to the same lowercase SemVer. Supported release versions are `X.Y.Z` and prerelease versions are `X.Y.Z-{alpha|beta|rc}.N`. Once merged, run the [Release package workflow](../../actions/workflows/release.yml): 1. Select `Android` as the platform. -2. Enter the expected version. The workflow reads the SDK version from `platforms/android/lib/build.gradle` and fails if the typed version does not match. +2. Enter the expected version. The workflow reads the SDK version from `platforms/android/gradle/libs.versions.toml` and fails if the typed version does not match. 3. Select `Dry run` first to review the release plan without creating a release. 4. Rerun with `Draft release` to create a draft GitHub Release with the `android/`-prefixed tag (e.g. `android/3.0.1`) for human review. 5. Publish the draft release when ready. Publishing the draft kicks off the [Android publish workflow](../../actions/workflows/android-publish.yml). **A manual approval by a maintainer is required before publication to Maven Central.** @@ -195,7 +200,7 @@ The React Native package reads its published native SDK dependency versions from } ``` -When updating the Swift or Android SDK version that React Native should consume, update the matching `checkoutKit.nativeSdkVersions` entry in this package file. These values drive `RNShopifyCheckoutKit.podspec` for iOS and the module/sample Gradle dependencies for Android, so they must stay aligned with the published native SDK versions used by the React Native release. +When updating the Swift or Android SDK version that React Native should consume, update the matching `checkoutKit.nativeSdkVersions` entry in this package file. These values drive `RNShopifyCheckoutKit.podspec` for iOS and the module/sample Gradle dependencies for Android, so they must stay aligned with the published native SDK versions used by the React Native release. Android CI uses the published Maven artifact by default, so `nativeSdkVersions.android` must stay on the published `com.shopify:checkout-kit` lowercase SemVer, not the Kotlin protocol calver. ### Public API surface diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 6653d625d..72ad035a0 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -32,7 +32,7 @@
Releasing a new Android version? -- [ ] I have bumped the `versionName` in `platforms/android/lib/build.gradle` +- [ ] I have bumped `checkoutKitAndroid` in `platforms/android/gradle/libs.versions.toml` - [ ] I have updated `platforms/android/CHANGELOG.md` - [ ] I have updated the Gradle/Maven version snippets in `platforms/android/README.md` diff --git a/.github/scripts/validate-release-version b/.github/scripts/validate-release-version index 5d4cc3264..e3d07fb88 100755 --- a/.github/scripts/validate-release-version +++ b/.github/scripts/validate-release-version @@ -48,6 +48,25 @@ json_version() { .github/scripts/package-json-version "$file" } +json_string_field() { + local file="$1" + local jq_filter="$2" + + if ! value=$(jq -er "$jq_filter | strings | select(length > 0)" "$file"); then + echo "::error file=$file::Could not extract version field." >&2 + exit 1 + fi + + printf '%s\n' "$value" +} + +version_catalog_value() { + local file="$1" + local key="$2" + + extract_first_match "$file" "s/^[[:space:]]*${key}[[:space:]]*=[[:space:]]*\"([^\"]+)\".*/\\1/p" +} + check_same_version() { local expected="$1" local file="$2" @@ -86,8 +105,13 @@ case "$PLATFORM_INPUT" in TAG_PREFIX="android/" PUBLISH_WORKFLOW="android-publish.yml" - ANDROID_VERSION_FILE="platforms/android/lib/build.gradle" - VERSION=$(extract_first_match "$ANDROID_VERSION_FILE" 's/^[[:space:]]*def[[:space:]]+versionName[[:space:]]*=[[:space:]]*"([^"]+)".*/\1/p') + ANDROID_VERSION_FILE="platforms/android/gradle/libs.versions.toml" + RN_PACKAGE_FILE="platforms/react-native/modules/@shopify/checkout-kit-react-native/package.json" + + VERSION=$(version_catalog_value "$ANDROID_VERSION_FILE" "checkoutKitAndroid") + RN_ANDROID_VERSION=$(json_string_field "$RN_PACKAGE_FILE" '.checkoutKit.nativeSdkVersions.android') + + check_same_version "$VERSION" "$RN_PACKAGE_FILE" "$RN_ANDROID_VERSION" ;; "React Native"|react-native|ReactNative|rn|RN) diff --git a/.github/workflows/android-publish.yml b/.github/workflows/android-publish.yml index d04800ad4..c7362a9f3 100644 --- a/.github/workflows/android-publish.yml +++ b/.github/workflows/android-publish.yml @@ -52,7 +52,10 @@ jobs: java-version: 17 - name: Publish Package - run: ./gradlew publishReleasePublicationToOssrh-staging-apiRepository + run: | + ./gradlew \ + :embedded-checkout-protocol:publishReleasePublicationToOssrh-staging-apiRepository \ + :lib:publishReleasePublicationToOssrh-staging-apiRepository env: OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} diff --git a/.github/workflows/breaking-changes.yml b/.github/workflows/breaking-changes.yml index e924b7aa9..a82903e94 100644 --- a/.github/workflows/breaking-changes.yml +++ b/.github/workflows/breaking-changes.yml @@ -71,6 +71,9 @@ jobs: - name: Check public Android API baseline run: ./gradlew :lib:apiCheck --console=plain + - name: Check public Kotlin protocol API baseline + run: ../../protocol/languages/kotlin/gradlew -p ../../protocol/languages/kotlin :embedded-checkout-protocol:apiCheck --console=plain + react-native: name: React Native if: inputs.react-native == 'true' diff --git a/.github/workflows/rn-build-android.yml b/.github/workflows/rn-build-android.yml index 0048a25e7..1b23ec236 100644 --- a/.github/workflows/rn-build-android.yml +++ b/.github/workflows/rn-build-android.yml @@ -40,6 +40,8 @@ jobs: platforms/android/**/*.gradle* platforms/android/**/gradle-wrapper.properties platforms/android/gradle.properties + protocol/languages/kotlin/**/*.gradle* + protocol/languages/kotlin/**/*.toml platforms/react-native/package.json platforms/react-native/pnpm-lock.yaml platforms/react-native/sample/package.json diff --git a/.github/workflows/rn-test-android.yml b/.github/workflows/rn-test-android.yml index 406d89e18..d19849b1b 100644 --- a/.github/workflows/rn-test-android.yml +++ b/.github/workflows/rn-test-android.yml @@ -40,6 +40,8 @@ jobs: platforms/android/**/*.gradle* platforms/android/**/gradle-wrapper.properties platforms/android/gradle.properties + protocol/languages/kotlin/**/*.gradle* + protocol/languages/kotlin/**/*.toml platforms/react-native/package.json platforms/react-native/pnpm-lock.yaml platforms/react-native/sample/package.json diff --git a/AGENTS.md b/AGENTS.md index 3e3b78e22..6549bfa7c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -6,7 +6,7 @@ platforms/ android/ # Android library and sample apps react-native/ # React Native wrapper web/ # Web component package and sample app -protocol/ # cross-platform communication layer based on UCP +protocol/ # cross-platform communication layer and protocol language artifacts based on UCP e2e/ # cross-platform end-to-end tests .github/ # workflows, issue templates, CODEOWNERS ``` @@ -49,6 +49,7 @@ This applies when changes are made under: - `platforms/swift/` — the iOS Swift SDK / CocoaPods sources - `platforms/android/` — the Android SDK / Maven artifact sources +- `protocol/languages/kotlin/` — Kotlin protocol artifacts consumed by the Android SDK It does **not** refer to the React Native wrapper platform folders: @@ -58,7 +59,7 @@ It does **not** refer to the React Native wrapper platform folders: ### What `--local` does - For React Native iOS, `--local` wires CocoaPods to the in-repo `platforms/swift/` sources via a local path instead of a released pod version. -- For React Native Android, `--local` publishes/uses the in-repo `platforms/android/` SDK through Maven Local so Gradle resolves the local SDK artifact instead of a released Maven version. +- For React Native Android, `--local` publishes/uses the in-repo Android SDK and Kotlin protocol artifacts through Maven Local so Gradle resolves the local `com.shopify:checkout-kit` and `com.shopify:embedded-checkout-protocol` artifacts instead of released Maven versions. ### When to use it @@ -66,24 +67,24 @@ Use `--local` whenever you are validating React Native behavior that depends on - a new Swift SDK API that the React Native iOS bridge calls - a new Android SDK API that the React Native Android bridge calls -- generated protocol/model changes under the native SDKs that the React Native module consumes -- any change in `platforms/swift/` or `platforms/android/` that has not yet been released and consumed through normal dependency versions +- generated protocol/model changes under `protocol/languages/kotlin/` that the React Native module consumes through Android +- any change in `platforms/swift/`, `platforms/android/`, or `protocol/languages/kotlin/` that has not yet been released and consumed through normal dependency versions -Re-run the relevant local workflow whenever `platforms/swift/` or `platforms/android/` changes, because the React Native sample/tests need to re-resolve those local native SDK sources/artifacts. +Re-run the relevant local workflow whenever `platforms/swift/`, `platforms/android/`, or `protocol/languages/kotlin/` changes, because the React Native sample/tests need to re-resolve those local native SDK sources/artifacts. ```bash # iOS sample using local platforms/swift sources dev rn ios --local -# Android sample using local platforms/android via Maven Local +# Android sample using local Android and Kotlin protocol artifacts via Maven Local dev rn android --local -# React Native Android unit tests using local platforms/android via Maven Local -# `dev rn test android` publishes platforms/android/lib to ~/.m2 first, then runs the RN module tests. +# React Native Android unit tests using local Android and Kotlin protocol artifacts via Maven Local +# `dev rn test android` publishes the Android SDK artifacts to ~/.m2 first, then runs the RN module tests. dev rn test android ``` -For ad-hoc Android Gradle test commands, publish the local Android SDK first and set `USE_LOCAL_SDK=1` so the React Native module resolves `com.shopify:checkout-kit:1.0.0` from Maven Local instead of the unreleased placeholder artifact: +For ad-hoc Android Gradle test commands, publish the local Android SDK first and set `USE_LOCAL_SDK=1` so the React Native sample resolves the local `com.shopify:checkout-kit` and `com.shopify:embedded-checkout-protocol` artifacts from Maven Local: ```bash cd platforms/react-native @@ -92,6 +93,8 @@ cd sample/android USE_LOCAL_SDK=1 ./gradlew :shopify_checkout-kit-react-native:testDebugUnitTest ``` +The React Native Android sample uses exclusive Maven Local resolution for those two `com.shopify` modules when `USE_LOCAL_SDK=1`. Keep that filtering in the sample Gradle build; duplicating exclusive repository filters for the same modules elsewhere can break dependency resolution. + ## Sensitive configuration Treat storefront environment and generated sample app configuration values as diff --git a/dev.yml b/dev.yml index d4e1688af..f0dd1048c 100644 --- a/dev.yml +++ b/dev.yml @@ -121,7 +121,15 @@ commands: subcommands: build: desc: Build the protocol target - run: cd protocol/languages/swift && swift build + run: | + set -e + root=$(pwd) + cd protocol/languages/swift + echo "Building Swift protocol..." + swift build + cd $root/protocol/languages/kotlin + echo "Building Kotlin protocol..." + ./gradlew :embedded-checkout-protocol:build test: desc: Run protocol package tests run: | @@ -129,6 +137,9 @@ commands: cd protocol/languages/swift echo "Running tests for Swift..." swift test + cd $root/protocol/languages/kotlin + echo "Running tests for Kotlin..." + ./gradlew :embedded-checkout-protocol:test cd $root/protocol echo "Running tests for TypeScript..." pnpm test @@ -227,20 +238,30 @@ commands: open -a "Android Studio" "$project" api: - desc: Validate or update the public API baseline (lib/api/lib.api) + desc: Validate or update the public Android API baselines run: | echo "Usage: dev android api {check|dump}" echo "" - echo " check Verify public API matches the committed baseline" - echo " dump Regenerate the baseline after intentional public API changes" + echo " check Verify public APIs match the committed baselines" + echo " dump Regenerate the baselines after intentional public API changes" exit 1 subcommands: check: - desc: Verify public API matches the committed baseline - run: cd platforms/android && ./gradlew :lib:apiCheck + desc: Verify public APIs match the committed baselines + run: | + set -e + cd platforms/android + ./gradlew :lib:apiCheck + cd ../../protocol/languages/kotlin + ./gradlew :embedded-checkout-protocol:apiCheck dump: - desc: Regenerate the baseline after intentional public API changes - run: cd platforms/android && ./gradlew :lib:apiDump + desc: Regenerate the baselines after intentional public API changes + run: | + set -e + cd platforms/android + ./gradlew :lib:apiDump + cd ../../protocol/languages/kotlin + ./gradlew :embedded-checkout-protocol:apiDump # Swift swift: diff --git a/platforms/android/AGENTS.md b/platforms/android/AGENTS.md index fc5744d05..beea5b29a 100644 --- a/platforms/android/AGENTS.md +++ b/platforms/android/AGENTS.md @@ -1,22 +1,25 @@ -# CLAUDE.md +# AGENTS.md -Guidance for Claude Code when working in this repository. +Guidance for AI agents when working in the Android platform. ## Project overview -Shopify Checkout Kit for Android is a published AAR library (`com.shopify:checkout-kit`) that presents Shopify checkouts as a native, dialog-hosted WebView in consumer apps. It is consumed by third-party Android apps via Maven Central, so changes to the library's public surface have real consumer impact and real reversal cost once released. +Shopify Checkout Kit for Android publishes Maven artifacts that are consumed by third-party Android apps via Maven Central, so changes to public surfaces have real consumer impact and real reversal cost once released. -Two modules matter: +The main modules are: -- **`lib/`** — the library itself. Everything here ships to consumers. -- **`samples/CheckoutKitAndroidDemo/`** — a demo app that consumes `lib/` as a source dependency. Changes here never reach consumers; this module is for internal testing and developer onboarding. +- **`lib/`** — the Checkout Kit library, published as `com.shopify:checkout-kit`. It presents Shopify checkouts as a native, dialog-hosted WebView in consumer apps. +- **`../../protocol/languages/kotlin/embedded-checkout-protocol/`** — the Embedded Checkout Protocol Kotlin artifact, published as `com.shopify:embedded-checkout-protocol`. The Android Gradle project path is `:embedded-checkout-protocol`, and the Kotlin package is `com.shopify.ucp.embedded.checkout`. +- **`samples/CheckoutKitAndroidDemo/`** — a demo app that consumes Checkout Kit and the Kotlin protocol artifact as source dependencies. Changes here never reach consumers; this module is for internal testing and developer onboarding. -The sample is a separate Gradle composite (`samples/CheckoutKitAndroidDemo/settings.gradle`) that includes `:lib` from `../../lib`. The sample's `gradle.properties` and Gradle wrapper are independent of the root's. +The sample is a separate Gradle composite (`samples/CheckoutKitAndroidDemo/settings.gradle`) that includes `:lib` and the Kotlin protocol `:embedded-checkout-protocol` as source dependencies. The sample's `gradle.properties` and Gradle wrapper are independent of the Android root's. The standalone Kotlin protocol Gradle root also has its own wrapper at `../../protocol/languages/kotlin/gradlew`; keep its Gradle version aligned with the Android root wrapper. ## Where to make changes -- Library source: `lib/src/main/java/com/shopify/checkoutkit/`. Flat package at the top level, including generated protocol models. +- Checkout Kit source: `lib/src/main/java/com/shopify/checkoutkit/`. +- Embedded Checkout Protocol source, generated models, and generated event catalog: `../../protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/`. - Library tests: `lib/src/test/java/com/shopify/checkoutkit/`. "No test, no merge" is a listed reject criterion in the repo-root `.github/CONTRIBUTING.md`. +- Protocol tests: `../../protocol/languages/kotlin/embedded-checkout-protocol/src/test/java/com/shopify/ucp/embedded/checkout/`. - Java interop is a first-class concern — the library is commonly consumed from Java code. `lib/src/test/java/com/shopify/checkoutkit/InteropTest.java` exercises the public API from Java specifically; treat breakage there as a consumer-facing issue. ## Key components @@ -25,7 +28,11 @@ The sample is a separate Gradle composite (`samples/CheckoutKitAndroidDemo/setti - **`CheckoutDialog.kt`** — the dialog that hosts the WebView, including the progress indicator and checkout error coordination. - **`CheckoutWebView.kt`** — primary WebView. Instruments page loads and attaches the ECP JavaScript interface. - **`BaseWebView.kt`** — abstract base class. Any new WebView variant must extend this so shared configuration (user agent suffix, WebChromeClient hooks, navigation error handling) is consistent. -- **`EmbeddedCheckoutProtocol.kt`** — the Embedded Checkout Protocol JavaScript interface. Handles `ec.ready`, ECP notifications, and request/response delegations. +- **`CheckoutProtocol.kt`** — the curated consumer-facing Checkout Kit protocol API. This is where supported events/delegations are intentionally exposed. +- **`EmbeddedCheckoutProtocolBridge.kt`** — the internal JavaScript interface attached to the WebView. Handles `ec.ready`, ECP notifications, and request/response delegations. +- **`../../protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/EmbeddedCheckoutProtocol.kt`** — the generated low-level Embedded Checkout Protocol event catalog. +- **`../../protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/ProtocolCodec.kt`** — hand-written JSON-RPC request/response helpers. +- **`../../protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/Descriptors.kt`** — reusable protocol descriptor and codec types. - **`Configuration.kt`** — runtime config container (color scheme, log level). - **`CheckoutListener.kt`** + **`DefaultCheckoutListener`** — consumer-implemented lifecycle interface (failure, cancellation, permission prompts, file chooser). Changes here are consumer API changes. - **`CheckoutPresentation.kt`** — Kotlin-first builder for per-presentation callbacks (`onFail`, `onCancel`, browser/system hooks, ECP `connect(...)`). Builds a `DefaultCheckoutListener` internally. @@ -39,31 +46,39 @@ The sample is a separate Gradle composite (`samples/CheckoutKitAndroidDemo/setti ## Conventions -- **`-Xexplicit-api=strict`** is on (`lib/build.gradle`). Every public class, method, field, and property must have an explicit visibility modifier. "Accidentally public" is not a thing here. This is a consumer-protection rule — if you see a public-by-default declaration, it was deliberate. +- **`-Xexplicit-api=strict`** is on for both published Kotlin artifacts. Every public class, method, field, and property must have an explicit visibility modifier. "Accidentally public" is not a thing here. This is a consumer-protection rule — if you see a public-by-default declaration, it was deliberate. - **Max line length: 140** (detekt-enforced). Detekt config: `lib/detekt.config.yml`. -- **Library JVM target: 11.** Consumers must build with JDK 11+ to consume the AAR. Raising further is a major-version discussion. -- **Library Kotlin `apiVersion` / `languageVersion` are pinned at 2.0.** Set in `lib/build.gradle` so the AAR's bytecode stays consumable by Kotlin 2.0+ projects even though the compiler itself is on a newer 2.x. Bumping this pin is the consumer-facing breaking change, not bumping the compiler - treat it as a planned major-version event. -- **Prefer generated protocol models.** Before adding hand-written protocol DTOs, check the generated models in `lib/src/main/java/com/shopify/checkoutkit/Models.kt` and the OpenRPC schema. Use generated UCP/ECP types for wire payloads; reserve local DTOs for Android-internal transport helpers that are not represented in the schema. +- **Library JVM target: 11.** Consumers must build with JDK 11+ to consume the published artifacts. Raising further is a major-version discussion. +- **Library Kotlin `apiVersion` / `languageVersion` are pinned at 2.0.** Set through `gradle/android-library-versions.gradle` so the published artifacts stay consumable by Kotlin 2.0+ projects even though the compiler itself is on a newer 2.x. Bumping this pin is the consumer-facing breaking change, not bumping the compiler - treat it as a planned major-version event. +- **Kotlin/JVM compatibility values live in `gradle/android-library-versions.gradle`.** Android SDK levels live in `lib/build.gradle`. Dependency, plugin, and Android artifact versions live in `gradle/libs.versions.toml`. +- **Protocol vs kit boundary:** the protocol artifact should own generated raw wire names, generated models, thin descriptors, and encoding/decoding helpers. Checkout Kit should own curation, default behavior, WebView integration, and the higher-level consumer API. +- **Prefer generated protocol models.** Before adding hand-written protocol DTOs, check the generated models in `../../protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/Models.kt` and the OpenRPC schema. Use generated UCP/ECP types for wire payloads; reserve local DTOs for Android-internal transport helpers that are not represented in the schema. ## Public API surface -The library's public API is captured in `lib/api/lib.api` (managed by the [binary-compatibility-validator](https://github.com/Kotlin/binary-compatibility-validator) Gradle plugin). Every PR is gated by `./gradlew :lib:apiCheck` in CI — the build fails if the compiled public API diverges from the committed baseline. +The Android public APIs are captured by the [binary-compatibility-validator](https://github.com/Kotlin/binary-compatibility-validator) Gradle plugin: + +- `lib/api/lib.api` for `com.shopify:checkout-kit`. +- `../../protocol/languages/kotlin/embedded-checkout-protocol/api/embedded-checkout-protocol.api` for `com.shopify:embedded-checkout-protocol`. + +Every PR is gated in CI by `./gradlew :lib:apiCheck` from `platforms/android` and `./gradlew :embedded-checkout-protocol:apiCheck` from `protocol/languages/kotlin` — the build fails if either compiled public API diverges from the committed baselines. If a change intentionally modifies public API (adding, removing, or changing any public class, method, field, or property): -1. Run `./gradlew :lib:apiDump` (or `dev android api dump`) to regenerate the baseline. -2. Review the diff in `lib/api/lib.api` — it's the single best indicator of consumer impact, and reviewers will focus on it. +1. Run `dev android api dump` to regenerate both baselines. For project-scoped updates, run `./gradlew :lib:apiDump` from `platforms/android` or `./gradlew :embedded-checkout-protocol:apiDump` from `protocol/languages/kotlin`. +2. Review the `.api` diffs — they are the single best indicator of consumer impact, and reviewers will focus on them. 3. Commit the updated `.api` file in the same PR as the code change. If `apiCheck` fails and you did *not* intend to change public API, the diff tells you what inadvertently leaked out. Fix the leak rather than updating the baseline — you've accidentally shifted the consumer contract. ## Common commands -- Tests: `./gradlew :lib:test` (or `dev android test`) -- API surface: `./gradlew :lib:apiCheck` / `./gradlew :lib:apiDump` (or `dev android api check` / `dev android api dump`) +- Tests: `./gradlew test` (or `dev android test`) +- API surface: `./gradlew :lib:apiCheck` / `./gradlew :lib:apiDump` for Checkout Kit, `./gradlew :embedded-checkout-protocol:apiCheck` / `./gradlew :embedded-checkout-protocol:apiDump` from `protocol/languages/kotlin` for protocol, or `dev android api check` / `dev android api dump` for both. - Lint: `./gradlew detekt lintRelease` (or `dev android lint`) - Format: `./gradlew detekt --auto-correct` (or `dev android format`) -- Full local verification: `./gradlew :lib:clean :lib:test :lib:detekt :lib:lintRelease :lib:assembleRelease` +- Full local verification: `./gradlew clean test detekt lintRelease assembleRelease` +- Kotlin protocol only: from the repo root, `cd protocol/languages/kotlin && ./gradlew test apiCheck` - Sample app build (from `samples/CheckoutKitAndroidDemo/`): `./gradlew assembleDebug` ## Consumer requirements @@ -79,10 +94,11 @@ Raising any of these is a consumer-facing breaking change and needs visible rele ## Release process -Versions are bumped via: +Published Android artifact versions are bumped via: -1. The `versionName` literal in `lib/build.gradle`. +1. `gradle/libs.versions.toml` (`checkoutKitAndroid` and `embeddedCheckoutProtocolAndroid`). 2. The install snippets in `README.md` (Gradle and Maven). +3. `platforms/react-native/modules/@shopify/checkout-kit-react-native/package.json` (`checkoutKit.nativeSdkVersions.android`) for the published `com.shopify:checkout-kit` SemVer that RN CI resolves from Maven. Android releases are tagged `android/X.Y.Z` (Swift releases use bare `X.Y.Z`). The publish workflow filters on the `android/` prefix — without it, nothing publishes on the Android side. diff --git a/platforms/android/README.md b/platforms/android/README.md index 85c462b83..3fbec073c 100644 --- a/platforms/android/README.md +++ b/platforms/android/README.md @@ -378,6 +378,8 @@ For public API changes, run: ```sh cd platforms/android ./gradlew :lib:apiCheck +cd ../../protocol/languages/kotlin +./gradlew :embedded-checkout-protocol:apiCheck ``` ## License diff --git a/platforms/android/build.gradle b/platforms/android/build.gradle index 9e42fa1ac..ba326bfbc 100644 --- a/platforms/android/build.gradle +++ b/platforms/android/build.gradle @@ -1,8 +1,9 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { - id 'com.android.library' version '9.1.1' apply false - id 'org.jetbrains.kotlin.android' version '2.3.21' apply false - id 'org.jetbrains.kotlin.plugin.serialization' version '2.3.21' apply false - id 'io.gitlab.arturbosch.detekt' version '1.23.8' apply false - id 'org.jetbrains.kotlinx.binary-compatibility-validator' version '0.18.1' + alias(libs.plugins.android.library) apply false + alias(libs.plugins.kotlin.android) apply false + alias(libs.plugins.kotlin.jvm) apply false + alias(libs.plugins.kotlin.serialization) apply false + alias(libs.plugins.detekt) apply false + alias(libs.plugins.binary.compatibility.validator) } diff --git a/platforms/android/gradle/android-library-versions.gradle b/platforms/android/gradle/android-library-versions.gradle new file mode 100644 index 000000000..ebc894f71 --- /dev/null +++ b/platforms/android/gradle/android-library-versions.gradle @@ -0,0 +1,8 @@ +// Consumer-facing Kotlin/JVM compatibility values shared by published Kotlin artifacts. +// Keep these centralized so checkout-kit and embedded-checkout-protocol do not drift. +ext.kotlinVersionCompatibility = [ + javaVersion: "11", + kotlinJvmTarget: "JVM_11", + kotlinApiVersion: "KOTLIN_2_0", + kotlinLanguageVersion: "KOTLIN_2_0", +] diff --git a/platforms/android/gradle/libs.versions.toml b/platforms/android/gradle/libs.versions.toml new file mode 100644 index 000000000..36933d36d --- /dev/null +++ b/platforms/android/gradle/libs.versions.toml @@ -0,0 +1,89 @@ +[versions] +checkoutKitAndroid = "4.0.0-alpha.1" +embeddedCheckoutProtocolAndroid = "2026.04.08-alpha.1" + +androidApplicationGradlePlugin = "9.2.1" +androidLibraryGradlePlugin = "9.1.1" +apollo = "5.0.0" +apolloCache = "1.0.3" +assertj = "3.27.7" +awaitility = "4.3.0" +coil = "2.7.0" +detekt = "1.23.8" +koinAndroidCompose = "4.2.1" +kotlin = "2.3.21" +kotlinStdlib = "2.0.21" +kotlinxBinaryCompatibilityValidator = "0.18.1" +kotlinxSerializationJson = "1.7.3" +kotlinxSerializationJsonDemo = "1.11.0" +ksp = "2.3.8" +mockitoCore = "5.23.0" +mockitoKotlin = "6.3.0" +robolectric = "4.16.1" +timber = "5.0.1" + +androidxActivity = "1.13.0" +androidxAppCompat = "1.7.1" +androidxBrowser = "1.10.0" +androidxComposeUi = "1.10.6" +androidxCore = "1.18.0" +androidxDataStore = "1.2.1" +androidxJunitExt = "1.3.0" +androidxLifecycle = "2.10.0" +androidxMaterial3 = "1.4.0" +androidxNavigation = "2.9.7" +androidxPaging = "3.5.0" +androidxRoom = "2.8.4" +androidxTest = "1.7.0" +androidxWebkit = "1.16.0" +junit = "4.13.2" + +[libraries] +androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidxActivity" } +androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidxAppCompat" } +androidx-browser = { module = "androidx.browser:browser", version.ref = "androidxBrowser" } +androidx-compose-material = { module = "androidx.compose.material:material", version.ref = "androidxComposeUi" } +androidx-compose-material3 = { module = "androidx.compose.material3:material3-android", version.ref = "androidxMaterial3" } +androidx-compose-ui = { module = "androidx.compose.ui:ui", version.ref = "androidxComposeUi" } +androidx-compose-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest", version.ref = "androidxComposeUi" } +androidx-compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "androidxComposeUi" } +androidx-compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview", version.ref = "androidxComposeUi" } +androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidxCore" } +androidx-datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "androidxDataStore" } +androidx-lifecycle-runtime-ktx = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidxLifecycle" } +androidx-lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidxLifecycle" } +androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "androidxNavigation" } +androidx-paging-compose = { module = "androidx.paging:paging-compose-android", version.ref = "androidxPaging" } +androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "androidxRoom" } +androidx-room-runtime = { module = "androidx.room:room-runtime", version.ref = "androidxRoom" } +androidx-test-core-ktx = { module = "androidx.test:core-ktx", version.ref = "androidxTest" } +androidx-test-ext-junit-ktx = { module = "androidx.test.ext:junit-ktx", version.ref = "androidxJunitExt" } +androidx-webkit = { module = "androidx.webkit:webkit", version.ref = "androidxWebkit" } +apollo-cache-normalized = { module = "com.apollographql.cache:normalized-cache", version.ref = "apolloCache" } +apollo-runtime = { module = "com.apollographql.apollo:apollo-runtime", version.ref = "apollo" } +assertj-core = { module = "org.assertj:assertj-core", version.ref = "assertj" } +awaitility = { module = "org.awaitility:awaitility", version.ref = "awaitility" } +coil-compose = { module = "io.coil-kt:coil-compose", version.ref = "coil" } +detekt-formatting = { module = "io.gitlab.arturbosch.detekt:detekt-formatting", version.ref = "detekt" } +junit = { module = "junit:junit", version.ref = "junit" } +koin-androidx-compose = { module = "io.insert-koin:koin-androidx-compose", version.ref = "koinAndroidCompose" } +kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlinStdlib" } +kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" } +kotlinx-serialization-json-demo = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationJsonDemo" } +mockito-android = { module = "org.mockito:mockito-android", version.ref = "mockitoCore" } +mockito-core = { module = "org.mockito:mockito-core", version.ref = "mockitoCore" } +mockito-kotlin = { module = "org.mockito.kotlin:mockito-kotlin", version.ref = "mockitoKotlin" } +robolectric = { module = "org.robolectric:robolectric", version.ref = "robolectric" } +timber = { module = "com.jakewharton.timber:timber", version.ref = "timber" } + +[plugins] +android-application = { id = "com.android.application", version.ref = "androidApplicationGradlePlugin" } +android-library = { id = "com.android.library", version.ref = "androidLibraryGradlePlugin" } +apollo = { id = "com.apollographql.apollo", version.ref = "apollo" } +binary-compatibility-validator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "kotlinxBinaryCompatibilityValidator" } +detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" } +kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } +kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } +kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } +ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } diff --git a/platforms/android/lib/api/lib.api b/platforms/android/lib/api/lib.api index 87e74d000..b8bf226b9 100644 --- a/platforms/android/lib/api/lib.api +++ b/platforms/android/lib/api/lib.api @@ -1,131 +1,3 @@ -public final class com/shopify/checkoutkit/Adjustment { - public static final field Companion Lcom/shopify/checkoutkit/Adjustment$Companion; - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lcom/shopify/checkoutkit/AdjustmentStatus;Ljava/util/List;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lcom/shopify/checkoutkit/AdjustmentStatus;Ljava/util/List;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/util/List; - public final fun component4 ()Ljava/lang/String; - public final fun component5 ()Lcom/shopify/checkoutkit/AdjustmentStatus; - public final fun component6 ()Ljava/util/List; - public final fun component7 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lcom/shopify/checkoutkit/AdjustmentStatus;Ljava/util/List;Ljava/lang/String;)Lcom/shopify/checkoutkit/Adjustment; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/Adjustment;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lcom/shopify/checkoutkit/AdjustmentStatus;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/Adjustment; - public fun equals (Ljava/lang/Object;)Z - public final fun getDescription ()Ljava/lang/String; - public final fun getId ()Ljava/lang/String; - public final fun getLineItems ()Ljava/util/List; - public final fun getOccurredAt ()Ljava/lang/String; - public final fun getStatus ()Lcom/shopify/checkoutkit/AdjustmentStatus; - public final fun getTotals ()Ljava/util/List; - public final fun getType ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/Adjustment$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/Adjustment$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/Adjustment; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/Adjustment;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/Adjustment$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/AdjustmentLineItem { - public static final field Companion Lcom/shopify/checkoutkit/AdjustmentLineItem$Companion; - public fun (Ljava/lang/String;J)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()J - public final fun copy (Ljava/lang/String;J)Lcom/shopify/checkoutkit/AdjustmentLineItem; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/AdjustmentLineItem;Ljava/lang/String;JILjava/lang/Object;)Lcom/shopify/checkoutkit/AdjustmentLineItem; - public fun equals (Ljava/lang/Object;)Z - public final fun getId ()Ljava/lang/String; - public final fun getQuantity ()J - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/AdjustmentLineItem$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/AdjustmentLineItem$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/AdjustmentLineItem; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/AdjustmentLineItem;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/AdjustmentLineItem$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/AdjustmentStatus : java/lang/Enum { - public static final field Companion Lcom/shopify/checkoutkit/AdjustmentStatus$Companion; - public static final field Completed Lcom/shopify/checkoutkit/AdjustmentStatus; - public static final field Failed Lcom/shopify/checkoutkit/AdjustmentStatus; - public static final field Pending Lcom/shopify/checkoutkit/AdjustmentStatus; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public final fun getValue ()Ljava/lang/String; - public static fun valueOf (Ljava/lang/String;)Lcom/shopify/checkoutkit/AdjustmentStatus; - public static fun values ()[Lcom/shopify/checkoutkit/AdjustmentStatus; -} - -public final class com/shopify/checkoutkit/AdjustmentStatus$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/AppliedDiscount { - public static final field Companion Lcom/shopify/checkoutkit/AppliedDiscount$Companion; - public fun (Ljava/util/List;JLjava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/DiscountMethod;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/String;)V - public synthetic fun (Ljava/util/List;JLjava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/DiscountMethod;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/util/List; - public final fun component2 ()J - public final fun component3 ()Ljava/lang/Boolean; - public final fun component4 ()Ljava/lang/String; - public final fun component5 ()Ljava/lang/String; - public final fun component6 ()Lcom/shopify/checkoutkit/DiscountMethod; - public final fun component7 ()Ljava/lang/Long; - public final fun component8 ()Ljava/lang/Boolean; - public final fun component9 ()Ljava/lang/String; - public final fun copy (Ljava/util/List;JLjava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/DiscountMethod;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/String;)Lcom/shopify/checkoutkit/AppliedDiscount; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/AppliedDiscount;Ljava/util/List;JLjava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/DiscountMethod;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/AppliedDiscount; - public fun equals (Ljava/lang/Object;)Z - public final fun getAllocations ()Ljava/util/List; - public final fun getAmount ()J - public final fun getAutomatic ()Ljava/lang/Boolean; - public final fun getCode ()Ljava/lang/String; - public final fun getEligibility ()Ljava/lang/String; - public final fun getMethod ()Lcom/shopify/checkoutkit/DiscountMethod; - public final fun getPriority ()Ljava/lang/Long; - public final fun getProvisional ()Ljava/lang/Boolean; - public final fun getTitle ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/AppliedDiscount$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/AppliedDiscount$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/AppliedDiscount; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/AppliedDiscount;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/AppliedDiscount$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - public final class com/shopify/checkoutkit/BuildConfig { public static final field BUILD_TYPE Ljava/lang/String; public static final field DEBUG Z @@ -134,212 +6,6 @@ public final class com/shopify/checkoutkit/BuildConfig { public fun ()V } -public final class com/shopify/checkoutkit/Buyer { - public static final field Companion Lcom/shopify/checkoutkit/Buyer$Companion; - public fun ()V - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/shopify/checkoutkit/Buyer; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/Buyer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/Buyer; - public fun equals (Ljava/lang/Object;)Z - public final fun getEmail ()Ljava/lang/String; - public final fun getFirstName ()Ljava/lang/String; - public final fun getLastName ()Ljava/lang/String; - public final fun getPhoneNumber ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/Buyer$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/Buyer$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/Buyer; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/Buyer;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/Buyer$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/CapabilityElement { - public static final field Companion Lcom/shopify/checkoutkit/CapabilityElement$Companion; - public fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Extends;)V - public synthetic fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Extends;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Lkotlinx/serialization/json/JsonObject; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/lang/String; - public final fun component5 ()Ljava/lang/String; - public final fun component6 ()Lcom/shopify/checkoutkit/Extends; - public final fun copy (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Extends;)Lcom/shopify/checkoutkit/CapabilityElement; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/CapabilityElement;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Extends;ILjava/lang/Object;)Lcom/shopify/checkoutkit/CapabilityElement; - public fun equals (Ljava/lang/Object;)Z - public final fun getConfig ()Lkotlinx/serialization/json/JsonObject; - public final fun getExtends ()Lcom/shopify/checkoutkit/Extends; - public final fun getId ()Ljava/lang/String; - public final fun getSchema ()Ljava/lang/String; - public final fun getSpec ()Ljava/lang/String; - public final fun getVersion ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/CapabilityElement$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/CapabilityElement$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/CapabilityElement; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/CapabilityElement;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/CapabilityElement$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/CapabilityResponseSchema { - public static final field Companion Lcom/shopify/checkoutkit/CapabilityResponseSchema$Companion; - public fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Extends;)V - public synthetic fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Extends;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Lkotlinx/serialization/json/JsonObject; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/lang/String; - public final fun component5 ()Ljava/lang/String; - public final fun component6 ()Lcom/shopify/checkoutkit/Extends; - public final fun copy (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Extends;)Lcom/shopify/checkoutkit/CapabilityResponseSchema; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/CapabilityResponseSchema;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Extends;ILjava/lang/Object;)Lcom/shopify/checkoutkit/CapabilityResponseSchema; - public fun equals (Ljava/lang/Object;)Z - public final fun getConfig ()Lkotlinx/serialization/json/JsonObject; - public final fun getExtends ()Lcom/shopify/checkoutkit/Extends; - public final fun getId ()Ljava/lang/String; - public final fun getSchema ()Ljava/lang/String; - public final fun getSpec ()Ljava/lang/String; - public final fun getVersion ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/CapabilityResponseSchema$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/CapabilityResponseSchema$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/CapabilityResponseSchema; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/CapabilityResponseSchema;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/CapabilityResponseSchema$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/Checkout { - public static final field Companion Lcom/shopify/checkoutkit/Checkout$Companion; - public fun (Lcom/shopify/checkoutkit/Buyer;Lcom/shopify/checkoutkit/Context;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/CheckoutDiscounts;Ljava/lang/String;Lcom/shopify/checkoutkit/CheckoutFulfillment;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Lcom/shopify/checkoutkit/OrderConfirmation;Lcom/shopify/checkoutkit/Payment;Lcom/shopify/checkoutkit/Signals;Lcom/shopify/checkoutkit/CheckoutStatus;Ljava/util/List;Lcom/shopify/checkoutkit/UCPCheckoutResponseSchema;)V - public synthetic fun (Lcom/shopify/checkoutkit/Buyer;Lcom/shopify/checkoutkit/Context;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/CheckoutDiscounts;Ljava/lang/String;Lcom/shopify/checkoutkit/CheckoutFulfillment;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Lcom/shopify/checkoutkit/OrderConfirmation;Lcom/shopify/checkoutkit/Payment;Lcom/shopify/checkoutkit/Signals;Lcom/shopify/checkoutkit/CheckoutStatus;Ljava/util/List;Lcom/shopify/checkoutkit/UCPCheckoutResponseSchema;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Lcom/shopify/checkoutkit/Buyer; - public final fun component10 ()Ljava/util/List; - public final fun component11 ()Ljava/util/List; - public final fun component12 ()Lcom/shopify/checkoutkit/OrderConfirmation; - public final fun component13 ()Lcom/shopify/checkoutkit/Payment; - public final fun component14 ()Lcom/shopify/checkoutkit/Signals; - public final fun component15 ()Lcom/shopify/checkoutkit/CheckoutStatus; - public final fun component16 ()Ljava/util/List; - public final fun component17 ()Lcom/shopify/checkoutkit/UCPCheckoutResponseSchema; - public final fun component2 ()Lcom/shopify/checkoutkit/Context; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/lang/String; - public final fun component5 ()Lcom/shopify/checkoutkit/CheckoutDiscounts; - public final fun component6 ()Ljava/lang/String; - public final fun component7 ()Lcom/shopify/checkoutkit/CheckoutFulfillment; - public final fun component8 ()Ljava/lang/String; - public final fun component9 ()Ljava/util/List; - public final fun copy (Lcom/shopify/checkoutkit/Buyer;Lcom/shopify/checkoutkit/Context;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/CheckoutDiscounts;Ljava/lang/String;Lcom/shopify/checkoutkit/CheckoutFulfillment;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Lcom/shopify/checkoutkit/OrderConfirmation;Lcom/shopify/checkoutkit/Payment;Lcom/shopify/checkoutkit/Signals;Lcom/shopify/checkoutkit/CheckoutStatus;Ljava/util/List;Lcom/shopify/checkoutkit/UCPCheckoutResponseSchema;)Lcom/shopify/checkoutkit/Checkout; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/Checkout;Lcom/shopify/checkoutkit/Buyer;Lcom/shopify/checkoutkit/Context;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/CheckoutDiscounts;Ljava/lang/String;Lcom/shopify/checkoutkit/CheckoutFulfillment;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Lcom/shopify/checkoutkit/OrderConfirmation;Lcom/shopify/checkoutkit/Payment;Lcom/shopify/checkoutkit/Signals;Lcom/shopify/checkoutkit/CheckoutStatus;Ljava/util/List;Lcom/shopify/checkoutkit/UCPCheckoutResponseSchema;ILjava/lang/Object;)Lcom/shopify/checkoutkit/Checkout; - public fun equals (Ljava/lang/Object;)Z - public final fun getBuyer ()Lcom/shopify/checkoutkit/Buyer; - public final fun getContext ()Lcom/shopify/checkoutkit/Context; - public final fun getContinueURL ()Ljava/lang/String; - public final fun getCurrency ()Ljava/lang/String; - public final fun getDiscounts ()Lcom/shopify/checkoutkit/CheckoutDiscounts; - public final fun getExpiresAt ()Ljava/lang/String; - public final fun getFulfillment ()Lcom/shopify/checkoutkit/CheckoutFulfillment; - public final fun getId ()Ljava/lang/String; - public final fun getLineItems ()Ljava/util/List; - public final fun getLinks ()Ljava/util/List; - public final fun getMessages ()Ljava/util/List; - public final fun getOrder ()Lcom/shopify/checkoutkit/OrderConfirmation; - public final fun getPayment ()Lcom/shopify/checkoutkit/Payment; - public final fun getSignals ()Lcom/shopify/checkoutkit/Signals; - public final fun getStatus ()Lcom/shopify/checkoutkit/CheckoutStatus; - public final fun getTotals ()Ljava/util/List; - public final fun getUcp ()Lcom/shopify/checkoutkit/UCPCheckoutResponseSchema; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/Checkout$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/Checkout$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/Checkout; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/Checkout;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/Checkout$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public abstract interface class com/shopify/checkoutkit/CheckoutCommunicationClient { - public abstract fun process (Ljava/lang/String;)Ljava/lang/String; -} - -public final class com/shopify/checkoutkit/CheckoutDiscounts { - public static final field Companion Lcom/shopify/checkoutkit/CheckoutDiscounts$Companion; - public fun ()V - public fun (Ljava/util/List;Ljava/util/List;)V - public synthetic fun (Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/util/List; - public final fun component2 ()Ljava/util/List; - public final fun copy (Ljava/util/List;Ljava/util/List;)Lcom/shopify/checkoutkit/CheckoutDiscounts; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/CheckoutDiscounts;Ljava/util/List;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/checkoutkit/CheckoutDiscounts; - public fun equals (Ljava/lang/Object;)Z - public final fun getApplied ()Ljava/util/List; - public final fun getCodes ()Ljava/util/List; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/CheckoutDiscounts$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/CheckoutDiscounts$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/CheckoutDiscounts; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/CheckoutDiscounts;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/CheckoutDiscounts$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - public abstract class com/shopify/checkoutkit/CheckoutException : java/lang/Exception { public static final field Companion Lcom/shopify/checkoutkit/CheckoutException$Companion; public synthetic fun (ILjava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V @@ -368,37 +34,6 @@ public final class com/shopify/checkoutkit/CheckoutExpiredException : com/shopif public final class com/shopify/checkoutkit/CheckoutExpiredException$Companion { } -public final class com/shopify/checkoutkit/CheckoutFulfillment { - public static final field Companion Lcom/shopify/checkoutkit/CheckoutFulfillment$Companion; - public fun ()V - public fun (Ljava/util/List;Ljava/util/List;)V - public synthetic fun (Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/util/List; - public final fun component2 ()Ljava/util/List; - public final fun copy (Ljava/util/List;Ljava/util/List;)Lcom/shopify/checkoutkit/CheckoutFulfillment; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/CheckoutFulfillment;Ljava/util/List;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/checkoutkit/CheckoutFulfillment; - public fun equals (Ljava/lang/Object;)Z - public final fun getAvailableMethods ()Ljava/util/List; - public final fun getMethods ()Ljava/util/List; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/CheckoutFulfillment$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/CheckoutFulfillment$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/CheckoutFulfillment; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/CheckoutFulfillment;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/CheckoutFulfillment$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - public abstract interface class com/shopify/checkoutkit/CheckoutKitDialog { public abstract fun dismiss ()V } @@ -427,7 +62,7 @@ public abstract interface class com/shopify/checkoutkit/CheckoutListener { } public final class com/shopify/checkoutkit/CheckoutPresentation { - public final fun connect (Lcom/shopify/checkoutkit/CheckoutCommunicationClient;)V + public final fun connect (Lcom/shopify/checkoutkit/CheckoutProtocol$Client;)V public final fun onCancel (Lkotlin/jvm/functions/Function0;)V public final fun onFail (Lkotlin/jvm/functions/Function1;)V public final fun onGeolocationPermissionsHidePrompt (Lkotlin/jvm/functions/Function0;)V @@ -439,72 +74,19 @@ public final class com/shopify/checkoutkit/CheckoutPresentation { public final class com/shopify/checkoutkit/CheckoutProtocol { public static final field INSTANCE Lcom/shopify/checkoutkit/CheckoutProtocol; public static final field SPEC_VERSION Ljava/lang/String; - public final fun getComplete ()Lcom/shopify/checkoutkit/NotificationDescriptor; - public final fun getError ()Lcom/shopify/checkoutkit/NotificationDescriptor; - public final fun getLineItemsChange ()Lcom/shopify/checkoutkit/NotificationDescriptor; - public final fun getMessagesChange ()Lcom/shopify/checkoutkit/NotificationDescriptor; - public final fun getStart ()Lcom/shopify/checkoutkit/NotificationDescriptor; - public final fun getTotalsChange ()Lcom/shopify/checkoutkit/NotificationDescriptor; - public final fun getWindowOpen ()Lcom/shopify/checkoutkit/DelegationDescriptor; + public final fun getComplete ()Lcom/shopify/ucp/embedded/checkout/NotificationDescriptor; + public final fun getError ()Lcom/shopify/ucp/embedded/checkout/NotificationDescriptor; + public final fun getLineItemsChange ()Lcom/shopify/ucp/embedded/checkout/NotificationDescriptor; + public final fun getMessagesChange ()Lcom/shopify/ucp/embedded/checkout/NotificationDescriptor; + public final fun getStart ()Lcom/shopify/ucp/embedded/checkout/NotificationDescriptor; + public final fun getTotalsChange ()Lcom/shopify/ucp/embedded/checkout/NotificationDescriptor; + public final fun getWindowOpen ()Lcom/shopify/ucp/embedded/checkout/DelegationDescriptor; } -public final class com/shopify/checkoutkit/CheckoutProtocol$Client : com/shopify/checkoutkit/CheckoutCommunicationClient { +public final class com/shopify/checkoutkit/CheckoutProtocol$Client { public fun ()V - public final fun on (Lcom/shopify/checkoutkit/DelegationDescriptor;Lkotlin/jvm/functions/Function1;)Lcom/shopify/checkoutkit/CheckoutProtocol$Client; - public final fun on (Lcom/shopify/checkoutkit/NotificationDescriptor;Lkotlin/jvm/functions/Function1;)Lcom/shopify/checkoutkit/CheckoutProtocol$Client; - public fun process (Ljava/lang/String;)Ljava/lang/String; -} - -public final class com/shopify/checkoutkit/CheckoutStatus : java/lang/Enum { - public static final field Canceled Lcom/shopify/checkoutkit/CheckoutStatus; - public static final field Companion Lcom/shopify/checkoutkit/CheckoutStatus$Companion; - public static final field CompleteInProgress Lcom/shopify/checkoutkit/CheckoutStatus; - public static final field Completed Lcom/shopify/checkoutkit/CheckoutStatus; - public static final field Incomplete Lcom/shopify/checkoutkit/CheckoutStatus; - public static final field ReadyForComplete Lcom/shopify/checkoutkit/CheckoutStatus; - public static final field RequiresEscalation Lcom/shopify/checkoutkit/CheckoutStatus; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public final fun getValue ()Ljava/lang/String; - public static fun valueOf (Ljava/lang/String;)Lcom/shopify/checkoutkit/CheckoutStatus; - public static fun values ()[Lcom/shopify/checkoutkit/CheckoutStatus; -} - -public final class com/shopify/checkoutkit/CheckoutStatus$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/CheckoutTotal { - public static final field Companion Lcom/shopify/checkoutkit/CheckoutTotal$Companion; - public fun (JLjava/lang/String;Ljava/lang/String;Ljava/util/List;)V - public synthetic fun (JLjava/lang/String;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()J - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/util/List; - public final fun copy (JLjava/lang/String;Ljava/lang/String;Ljava/util/List;)Lcom/shopify/checkoutkit/CheckoutTotal; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/CheckoutTotal;JLjava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/checkoutkit/CheckoutTotal; - public fun equals (Ljava/lang/Object;)Z - public final fun getAmount ()J - public final fun getDisplayText ()Ljava/lang/String; - public final fun getLines ()Ljava/util/List; - public final fun getType ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/CheckoutTotal$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/CheckoutTotal$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/CheckoutTotal; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/CheckoutTotal;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/CheckoutTotal$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; + public final fun on (Lcom/shopify/ucp/embedded/checkout/DelegationDescriptor;Lkotlin/jvm/functions/Function1;)Lcom/shopify/checkoutkit/CheckoutProtocol$Client; + public final fun on (Lcom/shopify/ucp/embedded/checkout/NotificationDescriptor;Lkotlin/jvm/functions/Function1;)Lcom/shopify/checkoutkit/CheckoutProtocol$Client; } public class com/shopify/checkoutkit/CheckoutUnavailableException : com/shopify/checkoutkit/CheckoutException { @@ -824,124 +406,6 @@ public abstract interface class com/shopify/checkoutkit/ConfigurationUpdater { public abstract fun configure (Lcom/shopify/checkoutkit/Configuration;)V } -public final class com/shopify/checkoutkit/ContentType : java/lang/Enum { - public static final field Companion Lcom/shopify/checkoutkit/ContentType$Companion; - public static final field Markdown Lcom/shopify/checkoutkit/ContentType; - public static final field Plain Lcom/shopify/checkoutkit/ContentType; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public final fun getValue ()Ljava/lang/String; - public static fun valueOf (Ljava/lang/String;)Lcom/shopify/checkoutkit/ContentType; - public static fun values ()[Lcom/shopify/checkoutkit/ContentType; -} - -public final class com/shopify/checkoutkit/ContentType$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/Context { - public static final field Companion Lcom/shopify/checkoutkit/Context$Companion; - public fun ()V - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/util/List; - public final fun component5 ()Ljava/lang/String; - public final fun component6 ()Ljava/lang/String; - public final fun component7 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/shopify/checkoutkit/Context; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/Context; - public fun equals (Ljava/lang/Object;)Z - public final fun getAddressCountry ()Ljava/lang/String; - public final fun getAddressRegion ()Ljava/lang/String; - public final fun getCurrency ()Ljava/lang/String; - public final fun getEligibility ()Ljava/util/List; - public final fun getIntent ()Ljava/lang/String; - public final fun getLanguage ()Ljava/lang/String; - public final fun getPostalCode ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/Context$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/Context$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/Context; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/Context;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/Context$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/CredentialCheckout { - public static final field Companion Lcom/shopify/checkoutkit/CredentialCheckout$Companion; - public fun ()V - public fun (Lcom/shopify/checkoutkit/Payment;)V - public synthetic fun (Lcom/shopify/checkoutkit/Payment;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Lcom/shopify/checkoutkit/Payment; - public final fun copy (Lcom/shopify/checkoutkit/Payment;)Lcom/shopify/checkoutkit/CredentialCheckout; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/CredentialCheckout;Lcom/shopify/checkoutkit/Payment;ILjava/lang/Object;)Lcom/shopify/checkoutkit/CredentialCheckout; - public fun equals (Ljava/lang/Object;)Z - public final fun getPayment ()Lcom/shopify/checkoutkit/Payment; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/CredentialCheckout$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/CredentialCheckout$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/CredentialCheckout; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/CredentialCheckout;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/CredentialCheckout$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/CredentialResult { - public static final field Companion Lcom/shopify/checkoutkit/CredentialResult$Companion; - public fun (Lcom/shopify/checkoutkit/CredentialCheckout;Lcom/shopify/checkoutkit/InstrumentsChangeResultUcp;Ljava/lang/String;Ljava/util/List;)V - public synthetic fun (Lcom/shopify/checkoutkit/CredentialCheckout;Lcom/shopify/checkoutkit/InstrumentsChangeResultUcp;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Lcom/shopify/checkoutkit/CredentialCheckout; - public final fun component2 ()Lcom/shopify/checkoutkit/InstrumentsChangeResultUcp; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/util/List; - public final fun copy (Lcom/shopify/checkoutkit/CredentialCheckout;Lcom/shopify/checkoutkit/InstrumentsChangeResultUcp;Ljava/lang/String;Ljava/util/List;)Lcom/shopify/checkoutkit/CredentialResult; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/CredentialResult;Lcom/shopify/checkoutkit/CredentialCheckout;Lcom/shopify/checkoutkit/InstrumentsChangeResultUcp;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/checkoutkit/CredentialResult; - public fun equals (Ljava/lang/Object;)Z - public final fun getCheckout ()Lcom/shopify/checkoutkit/CredentialCheckout; - public final fun getContinueURL ()Ljava/lang/String; - public final fun getMessages ()Ljava/util/List; - public final fun getUcp ()Lcom/shopify/checkoutkit/InstrumentsChangeResultUcp; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/CredentialResult$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/CredentialResult$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/CredentialResult; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/CredentialResult;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/CredentialResult$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - public abstract class com/shopify/checkoutkit/DefaultCheckoutListener : com/shopify/checkoutkit/CheckoutListener { public fun ()V public fun onGeolocationPermissionsHidePrompt ()V @@ -950,53 +414,6 @@ public abstract class com/shopify/checkoutkit/DefaultCheckoutListener : com/shop public fun onShowFileChooser (Landroid/webkit/WebView;Landroid/webkit/ValueCallback;Landroid/webkit/WebChromeClient$FileChooserParams;)Z } -public final class com/shopify/checkoutkit/DelegationDescriptor { - public final fun getMethod ()Ljava/lang/String; -} - -public final class com/shopify/checkoutkit/DiscountAllocation { - public static final field Companion Lcom/shopify/checkoutkit/DiscountAllocation$Companion; - public fun (JLjava/lang/String;)V - public final fun component1 ()J - public final fun component2 ()Ljava/lang/String; - public final fun copy (JLjava/lang/String;)Lcom/shopify/checkoutkit/DiscountAllocation; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/DiscountAllocation;JLjava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/DiscountAllocation; - public fun equals (Ljava/lang/Object;)Z - public final fun getAmount ()J - public final fun getPath ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/DiscountAllocation$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/DiscountAllocation$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/DiscountAllocation; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/DiscountAllocation;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/DiscountAllocation$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/DiscountMethod : java/lang/Enum { - public static final field Across Lcom/shopify/checkoutkit/DiscountMethod; - public static final field Companion Lcom/shopify/checkoutkit/DiscountMethod$Companion; - public static final field Each Lcom/shopify/checkoutkit/DiscountMethod; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public final fun getValue ()Ljava/lang/String; - public static fun valueOf (Ljava/lang/String;)Lcom/shopify/checkoutkit/DiscountMethod; - public static fun values ()[Lcom/shopify/checkoutkit/DiscountMethod; -} - -public final class com/shopify/checkoutkit/DiscountMethod$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - public final class com/shopify/checkoutkit/DrawableResource { public static final field Companion Lcom/shopify/checkoutkit/DrawableResource$Companion; public fun (I)V @@ -1024,1307 +441,28 @@ public final class com/shopify/checkoutkit/DrawableResource$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } -public final class com/shopify/checkoutkit/EmbeddedColorScheme : java/lang/Enum { - public static final field Companion Lcom/shopify/checkoutkit/EmbeddedColorScheme$Companion; - public static final field Dark Lcom/shopify/checkoutkit/EmbeddedColorScheme; - public static final field Light Lcom/shopify/checkoutkit/EmbeddedColorScheme; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public final fun getValue ()Ljava/lang/String; - public static fun valueOf (Ljava/lang/String;)Lcom/shopify/checkoutkit/EmbeddedColorScheme; - public static fun values ()[Lcom/shopify/checkoutkit/EmbeddedColorScheme; -} - -public final class com/shopify/checkoutkit/EmbeddedColorScheme$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/EmbeddedTransportConfig { - public static final field Companion Lcom/shopify/checkoutkit/EmbeddedTransportConfig$Companion; - public fun ()V - public fun (Ljava/util/List;Ljava/util/List;)V - public synthetic fun (Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/util/List; - public final fun component2 ()Ljava/util/List; - public final fun copy (Ljava/util/List;Ljava/util/List;)Lcom/shopify/checkoutkit/EmbeddedTransportConfig; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/EmbeddedTransportConfig;Ljava/util/List;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/checkoutkit/EmbeddedTransportConfig; - public fun equals (Ljava/lang/Object;)Z - public final fun getColorScheme ()Ljava/util/List; - public final fun getDelegate ()Ljava/util/List; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/EmbeddedTransportConfig$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/EmbeddedTransportConfig$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/EmbeddedTransportConfig; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/EmbeddedTransportConfig;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/EmbeddedTransportConfig$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/ErrorResponse { - public static final field Companion Lcom/shopify/checkoutkit/ErrorResponse$Companion; - public fun (Ljava/lang/String;Ljava/util/List;Lcom/shopify/checkoutkit/ErrorResponseUcp;)V - public synthetic fun (Ljava/lang/String;Ljava/util/List;Lcom/shopify/checkoutkit/ErrorResponseUcp;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/util/List; - public final fun component3 ()Lcom/shopify/checkoutkit/ErrorResponseUcp; - public final fun copy (Ljava/lang/String;Ljava/util/List;Lcom/shopify/checkoutkit/ErrorResponseUcp;)Lcom/shopify/checkoutkit/ErrorResponse; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/ErrorResponse;Ljava/lang/String;Ljava/util/List;Lcom/shopify/checkoutkit/ErrorResponseUcp;ILjava/lang/Object;)Lcom/shopify/checkoutkit/ErrorResponse; - public fun equals (Ljava/lang/Object;)Z - public final fun getContinueURL ()Ljava/lang/String; - public final fun getMessages ()Ljava/util/List; - public final fun getUcp ()Lcom/shopify/checkoutkit/ErrorResponseUcp; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/ErrorResponse$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/ErrorResponse$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/ErrorResponse; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/ErrorResponse;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/ErrorResponse$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/ErrorResponseUcp { - public static final field Companion Lcom/shopify/checkoutkit/ErrorResponseUcp$Companion; - public fun (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/checkoutkit/StatusEnum;Ljava/lang/String;)V - public synthetic fun (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/checkoutkit/StatusEnum;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/util/Map; - public final fun component2 ()Ljava/util/Map; - public final fun component3 ()Ljava/util/Map; - public final fun component4 ()Lcom/shopify/checkoutkit/StatusEnum; - public final fun component5 ()Ljava/lang/String; - public final fun copy (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/checkoutkit/StatusEnum;Ljava/lang/String;)Lcom/shopify/checkoutkit/ErrorResponseUcp; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/ErrorResponseUcp;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/checkoutkit/StatusEnum;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/ErrorResponseUcp; - public fun equals (Ljava/lang/Object;)Z - public final fun getCapabilities ()Ljava/util/Map; - public final fun getPaymentHandlers ()Ljava/util/Map; - public final fun getServices ()Ljava/util/Map; - public final fun getStatus ()Lcom/shopify/checkoutkit/StatusEnum; - public final fun getVersion ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/ErrorResponseUcp$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/ErrorResponseUcp$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/ErrorResponseUcp; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/ErrorResponseUcp;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/ErrorResponseUcp$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/EventLineItem { - public static final field Companion Lcom/shopify/checkoutkit/EventLineItem$Companion; - public fun (Ljava/lang/String;J)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()J - public final fun copy (Ljava/lang/String;J)Lcom/shopify/checkoutkit/EventLineItem; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/EventLineItem;Ljava/lang/String;JILjava/lang/Object;)Lcom/shopify/checkoutkit/EventLineItem; - public fun equals (Ljava/lang/Object;)Z - public final fun getId ()Ljava/lang/String; - public final fun getQuantity ()J - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/EventLineItem$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/EventLineItem$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/EventLineItem; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/EventLineItem;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/EventLineItem$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/Expectation { - public static final field Companion Lcom/shopify/checkoutkit/Expectation$Companion; - public fun (Ljava/lang/String;Lcom/shopify/checkoutkit/PostalAddress;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/shopify/checkoutkit/MethodType;)V - public synthetic fun (Ljava/lang/String;Lcom/shopify/checkoutkit/PostalAddress;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/shopify/checkoutkit/MethodType;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Lcom/shopify/checkoutkit/PostalAddress; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/lang/String; - public final fun component5 ()Ljava/util/List; - public final fun component6 ()Lcom/shopify/checkoutkit/MethodType; - public final fun copy (Ljava/lang/String;Lcom/shopify/checkoutkit/PostalAddress;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/shopify/checkoutkit/MethodType;)Lcom/shopify/checkoutkit/Expectation; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/Expectation;Ljava/lang/String;Lcom/shopify/checkoutkit/PostalAddress;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/shopify/checkoutkit/MethodType;ILjava/lang/Object;)Lcom/shopify/checkoutkit/Expectation; - public fun equals (Ljava/lang/Object;)Z - public final fun getDescription ()Ljava/lang/String; - public final fun getDestination ()Lcom/shopify/checkoutkit/PostalAddress; - public final fun getFulfillableOn ()Ljava/lang/String; - public final fun getId ()Ljava/lang/String; - public final fun getLineItems ()Ljava/util/List; - public final fun getMethodType ()Lcom/shopify/checkoutkit/MethodType; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/Expectation$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/Expectation$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/Expectation; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/Expectation;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/Expectation$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/ExpectationLineItem { - public static final field Companion Lcom/shopify/checkoutkit/ExpectationLineItem$Companion; - public fun (Ljava/lang/String;J)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()J - public final fun copy (Ljava/lang/String;J)Lcom/shopify/checkoutkit/ExpectationLineItem; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/ExpectationLineItem;Ljava/lang/String;JILjava/lang/Object;)Lcom/shopify/checkoutkit/ExpectationLineItem; - public fun equals (Ljava/lang/Object;)Z - public final fun getId ()Ljava/lang/String; - public final fun getQuantity ()J - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/ExpectationLineItem$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/ExpectationLineItem$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/ExpectationLineItem; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/ExpectationLineItem;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/ExpectationLineItem$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public abstract class com/shopify/checkoutkit/Extends { - public static final field Companion Lcom/shopify/checkoutkit/Extends$Companion; -} - -public final class com/shopify/checkoutkit/Extends$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/Extends$StringArrayValue : com/shopify/checkoutkit/Extends { - public fun (Ljava/util/List;)V - public final fun getValue ()Ljava/util/List; -} - -public final class com/shopify/checkoutkit/Extends$StringValue : com/shopify/checkoutkit/Extends { - public fun (Ljava/lang/String;)V - public final fun getValue ()Ljava/lang/String; -} - -public final class com/shopify/checkoutkit/Fulfillment { - public static final field Companion Lcom/shopify/checkoutkit/Fulfillment$Companion; - public fun ()V - public fun (Ljava/util/List;Ljava/util/List;)V - public synthetic fun (Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/util/List; - public final fun component2 ()Ljava/util/List; - public final fun copy (Ljava/util/List;Ljava/util/List;)Lcom/shopify/checkoutkit/Fulfillment; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/Fulfillment;Ljava/util/List;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/checkoutkit/Fulfillment; - public fun equals (Ljava/lang/Object;)Z - public final fun getEvents ()Ljava/util/List; - public final fun getExpectations ()Ljava/util/List; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/Fulfillment$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/Fulfillment$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/Fulfillment; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/Fulfillment;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/Fulfillment$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/FulfillmentAvailableMethod { - public static final field Companion Lcom/shopify/checkoutkit/FulfillmentAvailableMethod$Companion; - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/shopify/checkoutkit/FulfillmentMethodType;)V - public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/shopify/checkoutkit/FulfillmentMethodType;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/util/List; - public final fun component4 ()Lcom/shopify/checkoutkit/FulfillmentMethodType; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/shopify/checkoutkit/FulfillmentMethodType;)Lcom/shopify/checkoutkit/FulfillmentAvailableMethod; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/FulfillmentAvailableMethod;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/shopify/checkoutkit/FulfillmentMethodType;ILjava/lang/Object;)Lcom/shopify/checkoutkit/FulfillmentAvailableMethod; - public fun equals (Ljava/lang/Object;)Z - public final fun getDescription ()Ljava/lang/String; - public final fun getFulfillableOn ()Ljava/lang/String; - public final fun getLineItemIDS ()Ljava/util/List; - public final fun getType ()Lcom/shopify/checkoutkit/FulfillmentMethodType; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/FulfillmentAvailableMethod$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/FulfillmentAvailableMethod$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/FulfillmentAvailableMethod; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/FulfillmentAvailableMethod;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/FulfillmentAvailableMethod$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/FulfillmentDestination { - public static final field Companion Lcom/shopify/checkoutkit/FulfillmentDestination$Companion; - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/PostalAddress;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/PostalAddress;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component10 ()Ljava/lang/String; - public final fun component11 ()Lcom/shopify/checkoutkit/PostalAddress; - public final fun component12 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/lang/String; - public final fun component5 ()Ljava/lang/String; - public final fun component6 ()Ljava/lang/String; - public final fun component7 ()Ljava/lang/String; - public final fun component8 ()Ljava/lang/String; - public final fun component9 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/PostalAddress;Ljava/lang/String;)Lcom/shopify/checkoutkit/FulfillmentDestination; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/FulfillmentDestination;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/PostalAddress;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/FulfillmentDestination; - public fun equals (Ljava/lang/Object;)Z - public final fun getAddress ()Lcom/shopify/checkoutkit/PostalAddress; - public final fun getAddressCountry ()Ljava/lang/String; - public final fun getAddressLocality ()Ljava/lang/String; - public final fun getAddressRegion ()Ljava/lang/String; - public final fun getExtendedAddress ()Ljava/lang/String; - public final fun getFirstName ()Ljava/lang/String; - public final fun getId ()Ljava/lang/String; - public final fun getLastName ()Ljava/lang/String; - public final fun getName ()Ljava/lang/String; - public final fun getPhoneNumber ()Ljava/lang/String; - public final fun getPostalCode ()Ljava/lang/String; - public final fun getStreetAddress ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/FulfillmentDestination$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/FulfillmentDestination$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/FulfillmentDestination; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/FulfillmentDestination;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/FulfillmentDestination$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/FulfillmentEvent { - public static final field Companion Lcom/shopify/checkoutkit/FulfillmentEvent$Companion; - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/util/List; - public final fun component5 ()Ljava/lang/String; - public final fun component6 ()Ljava/lang/String; - public final fun component7 ()Ljava/lang/String; - public final fun component8 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/shopify/checkoutkit/FulfillmentEvent; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/FulfillmentEvent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/FulfillmentEvent; - public fun equals (Ljava/lang/Object;)Z - public final fun getCarrier ()Ljava/lang/String; - public final fun getDescription ()Ljava/lang/String; - public final fun getId ()Ljava/lang/String; - public final fun getLineItems ()Ljava/util/List; - public final fun getOccurredAt ()Ljava/lang/String; - public final fun getTrackingNumber ()Ljava/lang/String; - public final fun getTrackingURL ()Ljava/lang/String; - public final fun getType ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/FulfillmentEvent$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/FulfillmentEvent$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/FulfillmentEvent; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/FulfillmentEvent;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/FulfillmentEvent$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/FulfillmentGroup { - public static final field Companion Lcom/shopify/checkoutkit/FulfillmentGroup$Companion; - public fun (Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/util/List; - public final fun component3 ()Ljava/util/List; - public final fun component4 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;)Lcom/shopify/checkoutkit/FulfillmentGroup; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/FulfillmentGroup;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/FulfillmentGroup; - public fun equals (Ljava/lang/Object;)Z - public final fun getId ()Ljava/lang/String; - public final fun getLineItemIDS ()Ljava/util/List; - public final fun getOptions ()Ljava/util/List; - public final fun getSelectedOptionID ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/FulfillmentGroup$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/FulfillmentGroup$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/FulfillmentGroup; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/FulfillmentGroup;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/FulfillmentGroup$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/FulfillmentMethod { - public static final field Companion Lcom/shopify/checkoutkit/FulfillmentMethod$Companion; - public fun (Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lcom/shopify/checkoutkit/FulfillmentMethodType;)V - public synthetic fun (Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lcom/shopify/checkoutkit/FulfillmentMethodType;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/util/List; - public final fun component2 ()Ljava/util/List; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/util/List; - public final fun component5 ()Ljava/lang/String; - public final fun component6 ()Lcom/shopify/checkoutkit/FulfillmentMethodType; - public final fun copy (Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lcom/shopify/checkoutkit/FulfillmentMethodType;)Lcom/shopify/checkoutkit/FulfillmentMethod; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/FulfillmentMethod;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lcom/shopify/checkoutkit/FulfillmentMethodType;ILjava/lang/Object;)Lcom/shopify/checkoutkit/FulfillmentMethod; - public fun equals (Ljava/lang/Object;)Z - public final fun getDestinations ()Ljava/util/List; - public final fun getGroups ()Ljava/util/List; - public final fun getId ()Ljava/lang/String; - public final fun getLineItemIDS ()Ljava/util/List; - public final fun getSelectedDestinationID ()Ljava/lang/String; - public final fun getType ()Lcom/shopify/checkoutkit/FulfillmentMethodType; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/FulfillmentMethod$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/FulfillmentMethod$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/FulfillmentMethod; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/FulfillmentMethod;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/FulfillmentMethod$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/FulfillmentMethodType : java/lang/Enum { - public static final field Companion Lcom/shopify/checkoutkit/FulfillmentMethodType$Companion; - public static final field Pickup Lcom/shopify/checkoutkit/FulfillmentMethodType; - public static final field Shipping Lcom/shopify/checkoutkit/FulfillmentMethodType; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public final fun getValue ()Ljava/lang/String; - public static fun valueOf (Ljava/lang/String;)Lcom/shopify/checkoutkit/FulfillmentMethodType; - public static fun values ()[Lcom/shopify/checkoutkit/FulfillmentMethodType; -} - -public final class com/shopify/checkoutkit/FulfillmentMethodType$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/FulfillmentOption { - public static final field Companion Lcom/shopify/checkoutkit/FulfillmentOption$Companion; - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V - public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/lang/String; - public final fun component5 ()Ljava/lang/String; - public final fun component6 ()Ljava/lang/String; - public final fun component7 ()Ljava/util/List; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Lcom/shopify/checkoutkit/FulfillmentOption; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/FulfillmentOption;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/checkoutkit/FulfillmentOption; - public fun equals (Ljava/lang/Object;)Z - public final fun getCarrier ()Ljava/lang/String; - public final fun getDescription ()Ljava/lang/String; - public final fun getEarliestFulfillmentTime ()Ljava/lang/String; - public final fun getId ()Ljava/lang/String; - public final fun getLatestFulfillmentTime ()Ljava/lang/String; - public final fun getTitle ()Ljava/lang/String; - public final fun getTotals ()Ljava/util/List; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/FulfillmentOption$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/FulfillmentOption$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/FulfillmentOption; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/FulfillmentOption;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/FulfillmentOption$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/HttpException : com/shopify/checkoutkit/CheckoutUnavailableException { - public fun (I)V - public fun (Ljava/lang/String;I)V - public synthetic fun (Ljava/lang/String;IILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun getStatusCode ()I -} - -public final class com/shopify/checkoutkit/InstrumentsChangeCheckout { - public static final field Companion Lcom/shopify/checkoutkit/InstrumentsChangeCheckout$Companion; - public fun ()V - public fun (Lcom/shopify/checkoutkit/InstrumentsChangePayment;)V - public synthetic fun (Lcom/shopify/checkoutkit/InstrumentsChangePayment;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Lcom/shopify/checkoutkit/InstrumentsChangePayment; - public final fun copy (Lcom/shopify/checkoutkit/InstrumentsChangePayment;)Lcom/shopify/checkoutkit/InstrumentsChangeCheckout; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/InstrumentsChangeCheckout;Lcom/shopify/checkoutkit/InstrumentsChangePayment;ILjava/lang/Object;)Lcom/shopify/checkoutkit/InstrumentsChangeCheckout; - public fun equals (Ljava/lang/Object;)Z - public final fun getPayment ()Lcom/shopify/checkoutkit/InstrumentsChangePayment; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/InstrumentsChangeCheckout$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/InstrumentsChangeCheckout$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/InstrumentsChangeCheckout; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/InstrumentsChangeCheckout;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/InstrumentsChangeCheckout$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/InstrumentsChangePayment { - public static final field Companion Lcom/shopify/checkoutkit/InstrumentsChangePayment$Companion; - public fun ()V - public fun (Ljava/util/List;Ljava/lang/String;)V - public synthetic fun (Ljava/util/List;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/util/List; - public final fun component2 ()Ljava/lang/String; - public final fun copy (Ljava/util/List;Ljava/lang/String;)Lcom/shopify/checkoutkit/InstrumentsChangePayment; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/InstrumentsChangePayment;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/InstrumentsChangePayment; - public fun equals (Ljava/lang/Object;)Z - public final fun getInstruments ()Ljava/util/List; - public final fun getSelectedInstrumentID ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/InstrumentsChangePayment$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/InstrumentsChangePayment$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/InstrumentsChangePayment; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/InstrumentsChangePayment;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/InstrumentsChangePayment$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/InstrumentsChangeResult { - public static final field Companion Lcom/shopify/checkoutkit/InstrumentsChangeResult$Companion; - public fun (Lcom/shopify/checkoutkit/InstrumentsChangeCheckout;Lcom/shopify/checkoutkit/InstrumentsChangeResultUcp;Ljava/lang/String;Ljava/util/List;)V - public synthetic fun (Lcom/shopify/checkoutkit/InstrumentsChangeCheckout;Lcom/shopify/checkoutkit/InstrumentsChangeResultUcp;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Lcom/shopify/checkoutkit/InstrumentsChangeCheckout; - public final fun component2 ()Lcom/shopify/checkoutkit/InstrumentsChangeResultUcp; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/util/List; - public final fun copy (Lcom/shopify/checkoutkit/InstrumentsChangeCheckout;Lcom/shopify/checkoutkit/InstrumentsChangeResultUcp;Ljava/lang/String;Ljava/util/List;)Lcom/shopify/checkoutkit/InstrumentsChangeResult; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/InstrumentsChangeResult;Lcom/shopify/checkoutkit/InstrumentsChangeCheckout;Lcom/shopify/checkoutkit/InstrumentsChangeResultUcp;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/checkoutkit/InstrumentsChangeResult; - public fun equals (Ljava/lang/Object;)Z - public final fun getCheckout ()Lcom/shopify/checkoutkit/InstrumentsChangeCheckout; - public final fun getContinueURL ()Ljava/lang/String; - public final fun getMessages ()Ljava/util/List; - public final fun getUcp ()Lcom/shopify/checkoutkit/InstrumentsChangeResultUcp; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/InstrumentsChangeResult$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/InstrumentsChangeResult$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/InstrumentsChangeResult; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/InstrumentsChangeResult;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/InstrumentsChangeResult$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/InstrumentsChangeResultUcp { - public static final field Companion Lcom/shopify/checkoutkit/InstrumentsChangeResultUcp$Companion; - public fun (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;)V - public synthetic fun (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/util/Map; - public final fun component2 ()Ljava/util/Map; - public final fun component3 ()Ljava/util/Map; - public final fun component4 ()Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus; - public final fun component5 ()Ljava/lang/String; - public final fun copy (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;)Lcom/shopify/checkoutkit/InstrumentsChangeResultUcp; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/InstrumentsChangeResultUcp;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/InstrumentsChangeResultUcp; - public fun equals (Ljava/lang/Object;)Z - public final fun getCapabilities ()Ljava/util/Map; - public final fun getPaymentHandlers ()Ljava/util/Map; - public final fun getServices ()Ljava/util/Map; - public final fun getStatus ()Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus; - public final fun getVersion ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/InstrumentsChangeResultUcp$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/InstrumentsChangeResultUcp$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/InstrumentsChangeResultUcp; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/InstrumentsChangeResultUcp;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/InstrumentsChangeResultUcp$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/InstrumentsChangeService { - public static final field Companion Lcom/shopify/checkoutkit/InstrumentsChangeService$Companion; - public fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Transport;)V - public synthetic fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Transport;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Lkotlinx/serialization/json/JsonObject; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/lang/String; - public final fun component5 ()Ljava/lang/String; - public final fun component6 ()Ljava/lang/String; - public final fun component7 ()Lcom/shopify/checkoutkit/Transport; - public final fun copy (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Transport;)Lcom/shopify/checkoutkit/InstrumentsChangeService; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/InstrumentsChangeService;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Transport;ILjava/lang/Object;)Lcom/shopify/checkoutkit/InstrumentsChangeService; - public fun equals (Ljava/lang/Object;)Z - public final fun getConfig ()Lkotlinx/serialization/json/JsonObject; - public final fun getEndpoint ()Ljava/lang/String; - public final fun getId ()Ljava/lang/String; - public final fun getSchema ()Ljava/lang/String; - public final fun getSpec ()Ljava/lang/String; - public final fun getTransport ()Lcom/shopify/checkoutkit/Transport; - public final fun getVersion ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/InstrumentsChangeService$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/InstrumentsChangeService$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/InstrumentsChangeService; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/InstrumentsChangeService;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/InstrumentsChangeService$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/Item { - public static final field Companion Lcom/shopify/checkoutkit/Item$Companion; - public fun (Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;)V - public synthetic fun (Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()J - public final fun component4 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;)Lcom/shopify/checkoutkit/Item; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/Item;Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/Item; - public fun equals (Ljava/lang/Object;)Z - public final fun getId ()Ljava/lang/String; - public final fun getImageURL ()Ljava/lang/String; - public final fun getPrice ()J - public final fun getTitle ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/Item$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/Item$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/Item; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/Item;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/Item$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/Line { - public static final field Companion Lcom/shopify/checkoutkit/Line$Companion; - public fun (JLjava/lang/String;)V - public final fun component1 ()J - public final fun component2 ()Ljava/lang/String; - public final fun copy (JLjava/lang/String;)Lcom/shopify/checkoutkit/Line; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/Line;JLjava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/Line; - public fun equals (Ljava/lang/Object;)Z - public final fun getAmount ()J - public final fun getDisplayText ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/Line$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/Line$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/Line; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/Line;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/Line$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/LineItem { - public static final field Companion Lcom/shopify/checkoutkit/LineItem$Companion; - public fun (Ljava/lang/String;Lcom/shopify/checkoutkit/Item;Ljava/lang/String;JLjava/util/List;)V - public synthetic fun (Ljava/lang/String;Lcom/shopify/checkoutkit/Item;Ljava/lang/String;JLjava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Lcom/shopify/checkoutkit/Item; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()J - public final fun component5 ()Ljava/util/List; - public final fun copy (Ljava/lang/String;Lcom/shopify/checkoutkit/Item;Ljava/lang/String;JLjava/util/List;)Lcom/shopify/checkoutkit/LineItem; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/LineItem;Ljava/lang/String;Lcom/shopify/checkoutkit/Item;Ljava/lang/String;JLjava/util/List;ILjava/lang/Object;)Lcom/shopify/checkoutkit/LineItem; - public fun equals (Ljava/lang/Object;)Z - public final fun getId ()Ljava/lang/String; - public final fun getItem ()Lcom/shopify/checkoutkit/Item; - public final fun getParentID ()Ljava/lang/String; - public final fun getQuantity ()J - public final fun getTotals ()Ljava/util/List; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/LineItem$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/LineItem$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/LineItem; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/LineItem;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/LineItem$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/LineItemQuantity { - public static final field Companion Lcom/shopify/checkoutkit/LineItemQuantity$Companion; - public fun (JLjava/lang/Long;J)V - public synthetic fun (JLjava/lang/Long;JILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()J - public final fun component2 ()Ljava/lang/Long; - public final fun component3 ()J - public final fun copy (JLjava/lang/Long;J)Lcom/shopify/checkoutkit/LineItemQuantity; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/LineItemQuantity;JLjava/lang/Long;JILjava/lang/Object;)Lcom/shopify/checkoutkit/LineItemQuantity; - public fun equals (Ljava/lang/Object;)Z - public final fun getFulfilled ()J - public final fun getOriginal ()Ljava/lang/Long; - public final fun getTotal ()J - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/LineItemQuantity$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/LineItemQuantity$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/LineItemQuantity; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/LineItemQuantity;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/LineItemQuantity$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/LineItemStatus : java/lang/Enum { - public static final field Companion Lcom/shopify/checkoutkit/LineItemStatus$Companion; - public static final field Fulfilled Lcom/shopify/checkoutkit/LineItemStatus; - public static final field Partial Lcom/shopify/checkoutkit/LineItemStatus; - public static final field Processing Lcom/shopify/checkoutkit/LineItemStatus; - public static final field Removed Lcom/shopify/checkoutkit/LineItemStatus; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public final fun getValue ()Ljava/lang/String; - public static fun valueOf (Ljava/lang/String;)Lcom/shopify/checkoutkit/LineItemStatus; - public static fun values ()[Lcom/shopify/checkoutkit/LineItemStatus; -} - -public final class com/shopify/checkoutkit/LineItemStatus$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/LineItemTotal { - public static final field Companion Lcom/shopify/checkoutkit/LineItemTotal$Companion; - public fun (JLjava/lang/String;Ljava/lang/String;)V - public synthetic fun (JLjava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()J - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/lang/String; - public final fun copy (JLjava/lang/String;Ljava/lang/String;)Lcom/shopify/checkoutkit/LineItemTotal; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/LineItemTotal;JLjava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/LineItemTotal; - public fun equals (Ljava/lang/Object;)Z - public final fun getAmount ()J - public final fun getDisplayText ()Ljava/lang/String; - public final fun getType ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/LineItemTotal$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/LineItemTotal$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/LineItemTotal; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/LineItemTotal;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/LineItemTotal$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/Link { - public static final field Companion Lcom/shopify/checkoutkit/Link$Companion; - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/shopify/checkoutkit/Link; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/Link;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/Link; - public fun equals (Ljava/lang/Object;)Z - public final fun getTitle ()Ljava/lang/String; - public final fun getType ()Ljava/lang/String; - public final fun getUrl ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/Link$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/Link$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/Link; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/Link;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/Link$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/LogLevel : java/lang/Enum { - public static final field DEBUG Lcom/shopify/checkoutkit/LogLevel; - public static final field ERROR Lcom/shopify/checkoutkit/LogLevel; - public static final field WARN Lcom/shopify/checkoutkit/LogLevel; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lcom/shopify/checkoutkit/LogLevel; - public static fun values ()[Lcom/shopify/checkoutkit/LogLevel; -} - -public final class com/shopify/checkoutkit/LogWrapper { - public fun ()V - public final fun d (Ljava/lang/String;Ljava/lang/String;)V - public final fun e (Ljava/lang/String;Ljava/lang/String;)V - public final fun e (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V - public final fun w (Ljava/lang/String;Ljava/lang/String;)V -} - -public final class com/shopify/checkoutkit/Message { - public static final field Companion Lcom/shopify/checkoutkit/Message$Companion; - public fun (Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/ContentType;Ljava/lang/String;Lcom/shopify/checkoutkit/Severity;Lcom/shopify/checkoutkit/MessageType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/ContentType;Ljava/lang/String;Lcom/shopify/checkoutkit/Severity;Lcom/shopify/checkoutkit/MessageType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Lcom/shopify/checkoutkit/ContentType; - public final fun component4 ()Ljava/lang/String; - public final fun component5 ()Lcom/shopify/checkoutkit/Severity; - public final fun component6 ()Lcom/shopify/checkoutkit/MessageType; - public final fun component7 ()Ljava/lang/String; - public final fun component8 ()Ljava/lang/String; - public final fun component9 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/ContentType;Ljava/lang/String;Lcom/shopify/checkoutkit/Severity;Lcom/shopify/checkoutkit/MessageType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/shopify/checkoutkit/Message; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/Message;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/ContentType;Ljava/lang/String;Lcom/shopify/checkoutkit/Severity;Lcom/shopify/checkoutkit/MessageType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/Message; - public fun equals (Ljava/lang/Object;)Z - public final fun getCode ()Ljava/lang/String; - public final fun getContent ()Ljava/lang/String; - public final fun getContentType ()Lcom/shopify/checkoutkit/ContentType; - public final fun getImageURL ()Ljava/lang/String; - public final fun getPath ()Ljava/lang/String; - public final fun getPresentation ()Ljava/lang/String; - public final fun getSeverity ()Lcom/shopify/checkoutkit/Severity; - public final fun getType ()Lcom/shopify/checkoutkit/MessageType; - public final fun getUrl ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/Message$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/Message$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/Message; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/Message;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/Message$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/MessageType : java/lang/Enum { - public static final field Companion Lcom/shopify/checkoutkit/MessageType$Companion; - public static final field Error Lcom/shopify/checkoutkit/MessageType; - public static final field Info Lcom/shopify/checkoutkit/MessageType; - public static final field Warning Lcom/shopify/checkoutkit/MessageType; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public final fun getValue ()Ljava/lang/String; - public static fun valueOf (Ljava/lang/String;)Lcom/shopify/checkoutkit/MessageType; - public static fun values ()[Lcom/shopify/checkoutkit/MessageType; -} - -public final class com/shopify/checkoutkit/MessageType$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/MethodType : java/lang/Enum { - public static final field Companion Lcom/shopify/checkoutkit/MethodType$Companion; - public static final field Digital Lcom/shopify/checkoutkit/MethodType; - public static final field Pickup Lcom/shopify/checkoutkit/MethodType; - public static final field Shipping Lcom/shopify/checkoutkit/MethodType; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public final fun getValue ()Ljava/lang/String; - public static fun valueOf (Ljava/lang/String;)Lcom/shopify/checkoutkit/MethodType; - public static fun values ()[Lcom/shopify/checkoutkit/MethodType; -} - -public final class com/shopify/checkoutkit/MethodType$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/NotificationDescriptor { - public final fun getMethod ()Ljava/lang/String; -} - -public final class com/shopify/checkoutkit/Order { - public static final field Companion Lcom/shopify/checkoutkit/Order$Companion; - public fun (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Fulfillment;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Lcom/shopify/checkoutkit/UCPOrderResponseSchema;)V - public synthetic fun (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Fulfillment;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Lcom/shopify/checkoutkit/UCPOrderResponseSchema;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/util/List; - public final fun component10 ()Ljava/util/List; - public final fun component11 ()Lcom/shopify/checkoutkit/UCPOrderResponseSchema; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Lcom/shopify/checkoutkit/Fulfillment; - public final fun component5 ()Ljava/lang/String; - public final fun component6 ()Ljava/lang/String; - public final fun component7 ()Ljava/util/List; - public final fun component8 ()Ljava/util/List; - public final fun component9 ()Ljava/lang/String; - public final fun copy (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Fulfillment;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Lcom/shopify/checkoutkit/UCPOrderResponseSchema;)Lcom/shopify/checkoutkit/Order; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/Order;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Fulfillment;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Lcom/shopify/checkoutkit/UCPOrderResponseSchema;ILjava/lang/Object;)Lcom/shopify/checkoutkit/Order; - public fun equals (Ljava/lang/Object;)Z - public final fun getAdjustments ()Ljava/util/List; - public final fun getCheckoutID ()Ljava/lang/String; - public final fun getCurrency ()Ljava/lang/String; - public final fun getFulfillment ()Lcom/shopify/checkoutkit/Fulfillment; - public final fun getId ()Ljava/lang/String; - public final fun getLabel ()Ljava/lang/String; - public final fun getLineItems ()Ljava/util/List; - public final fun getMessages ()Ljava/util/List; - public final fun getPermalinkURL ()Ljava/lang/String; - public final fun getTotals ()Ljava/util/List; - public final fun getUcp ()Lcom/shopify/checkoutkit/UCPOrderResponseSchema; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/Order$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/Order$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/Order; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/Order;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/Order$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/OrderConfirmation { - public static final field Companion Lcom/shopify/checkoutkit/OrderConfirmation$Companion; - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/shopify/checkoutkit/OrderConfirmation; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/OrderConfirmation;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/OrderConfirmation; - public fun equals (Ljava/lang/Object;)Z - public final fun getId ()Ljava/lang/String; - public final fun getLabel ()Ljava/lang/String; - public final fun getPermalinkURL ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/OrderConfirmation$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/OrderConfirmation$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/OrderConfirmation; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/OrderConfirmation;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/OrderConfirmation$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/OrderLineItem { - public static final field Companion Lcom/shopify/checkoutkit/OrderLineItem$Companion; - public fun (Ljava/lang/String;Lcom/shopify/checkoutkit/Item;Ljava/lang/String;Lcom/shopify/checkoutkit/LineItemQuantity;Lcom/shopify/checkoutkit/LineItemStatus;Ljava/util/List;)V - public synthetic fun (Ljava/lang/String;Lcom/shopify/checkoutkit/Item;Ljava/lang/String;Lcom/shopify/checkoutkit/LineItemQuantity;Lcom/shopify/checkoutkit/LineItemStatus;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Lcom/shopify/checkoutkit/Item; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Lcom/shopify/checkoutkit/LineItemQuantity; - public final fun component5 ()Lcom/shopify/checkoutkit/LineItemStatus; - public final fun component6 ()Ljava/util/List; - public final fun copy (Ljava/lang/String;Lcom/shopify/checkoutkit/Item;Ljava/lang/String;Lcom/shopify/checkoutkit/LineItemQuantity;Lcom/shopify/checkoutkit/LineItemStatus;Ljava/util/List;)Lcom/shopify/checkoutkit/OrderLineItem; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/OrderLineItem;Ljava/lang/String;Lcom/shopify/checkoutkit/Item;Ljava/lang/String;Lcom/shopify/checkoutkit/LineItemQuantity;Lcom/shopify/checkoutkit/LineItemStatus;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/checkoutkit/OrderLineItem; - public fun equals (Ljava/lang/Object;)Z - public final fun getId ()Ljava/lang/String; - public final fun getItem ()Lcom/shopify/checkoutkit/Item; - public final fun getParentID ()Ljava/lang/String; - public final fun getQuantity ()Lcom/shopify/checkoutkit/LineItemQuantity; - public final fun getStatus ()Lcom/shopify/checkoutkit/LineItemStatus; - public final fun getTotals ()Ljava/util/List; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/OrderLineItem$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/OrderLineItem$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/OrderLineItem; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/OrderLineItem;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +public final class com/shopify/checkoutkit/HttpException : com/shopify/checkoutkit/CheckoutUnavailableException { + public fun (I)V + public fun (Ljava/lang/String;I)V + public synthetic fun (Ljava/lang/String;IILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getStatusCode ()I } -public final class com/shopify/checkoutkit/OrderLineItem$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; +public final class com/shopify/checkoutkit/LogLevel : java/lang/Enum { + public static final field DEBUG Lcom/shopify/checkoutkit/LogLevel; + public static final field ERROR Lcom/shopify/checkoutkit/LogLevel; + public static final field WARN Lcom/shopify/checkoutkit/LogLevel; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lcom/shopify/checkoutkit/LogLevel; + public static fun values ()[Lcom/shopify/checkoutkit/LogLevel; } -public final class com/shopify/checkoutkit/Payment { - public static final field Companion Lcom/shopify/checkoutkit/Payment$Companion; +public final class com/shopify/checkoutkit/LogWrapper { public fun ()V - public fun (Ljava/util/List;)V - public synthetic fun (Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/util/List; - public final fun copy (Ljava/util/List;)Lcom/shopify/checkoutkit/Payment; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/Payment;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/checkoutkit/Payment; - public fun equals (Ljava/lang/Object;)Z - public final fun getInstruments ()Ljava/util/List; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/Payment$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/Payment$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/Payment; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/Payment;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/Payment$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/PaymentCredential { - public static final field Companion Lcom/shopify/checkoutkit/PaymentCredential$Companion; - public fun (Ljava/lang/String;)V - public final fun component1 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;)Lcom/shopify/checkoutkit/PaymentCredential; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/PaymentCredential;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/PaymentCredential; - public fun equals (Ljava/lang/Object;)Z - public final fun getType ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/PaymentCredential$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/PaymentCredential$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/PaymentCredential; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/PaymentCredential;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/PaymentCredential$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/PaymentHandlerAvailableInstrument { - public static final field Companion Lcom/shopify/checkoutkit/PaymentHandlerAvailableInstrument$Companion; - public fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;)V - public synthetic fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Lkotlinx/serialization/json/JsonObject; - public final fun component2 ()Ljava/lang/String; - public final fun copy (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;)Lcom/shopify/checkoutkit/PaymentHandlerAvailableInstrument; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/PaymentHandlerAvailableInstrument;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/PaymentHandlerAvailableInstrument; - public fun equals (Ljava/lang/Object;)Z - public final fun getConstraints ()Lkotlinx/serialization/json/JsonObject; - public final fun getType ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/PaymentHandlerAvailableInstrument$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/PaymentHandlerAvailableInstrument$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/PaymentHandlerAvailableInstrument; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/PaymentHandlerAvailableInstrument;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/PaymentHandlerAvailableInstrument$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/PaymentHandlerElement { - public static final field Companion Lcom/shopify/checkoutkit/PaymentHandlerElement$Companion; - public fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V - public synthetic fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Lkotlinx/serialization/json/JsonObject; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/lang/String; - public final fun component5 ()Ljava/lang/String; - public final fun component6 ()Ljava/util/List; - public final fun copy (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Lcom/shopify/checkoutkit/PaymentHandlerElement; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/PaymentHandlerElement;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/checkoutkit/PaymentHandlerElement; - public fun equals (Ljava/lang/Object;)Z - public final fun getAvailableInstruments ()Ljava/util/List; - public final fun getConfig ()Lkotlinx/serialization/json/JsonObject; - public final fun getId ()Ljava/lang/String; - public final fun getSchema ()Ljava/lang/String; - public final fun getSpec ()Ljava/lang/String; - public final fun getVersion ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/PaymentHandlerElement$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/PaymentHandlerElement$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/PaymentHandlerElement; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/PaymentHandlerElement;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/PaymentHandlerElement$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/PaymentHandlerResponseSchema { - public static final field Companion Lcom/shopify/checkoutkit/PaymentHandlerResponseSchema$Companion; - public fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V - public synthetic fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Lkotlinx/serialization/json/JsonObject; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/lang/String; - public final fun component5 ()Ljava/lang/String; - public final fun component6 ()Ljava/util/List; - public final fun copy (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Lcom/shopify/checkoutkit/PaymentHandlerResponseSchema; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/PaymentHandlerResponseSchema;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/checkoutkit/PaymentHandlerResponseSchema; - public fun equals (Ljava/lang/Object;)Z - public final fun getAvailableInstruments ()Ljava/util/List; - public final fun getConfig ()Lkotlinx/serialization/json/JsonObject; - public final fun getId ()Ljava/lang/String; - public final fun getSchema ()Ljava/lang/String; - public final fun getSpec ()Ljava/lang/String; - public final fun getVersion ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/PaymentHandlerResponseSchema$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/PaymentHandlerResponseSchema$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/PaymentHandlerResponseSchema; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/PaymentHandlerResponseSchema;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/PaymentHandlerResponseSchema$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/PaymentHandlerResponseSchemaAvailableInstrument { - public static final field Companion Lcom/shopify/checkoutkit/PaymentHandlerResponseSchemaAvailableInstrument$Companion; - public fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;)V - public synthetic fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Lkotlinx/serialization/json/JsonObject; - public final fun component2 ()Ljava/lang/String; - public final fun copy (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;)Lcom/shopify/checkoutkit/PaymentHandlerResponseSchemaAvailableInstrument; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/PaymentHandlerResponseSchemaAvailableInstrument;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/PaymentHandlerResponseSchemaAvailableInstrument; - public fun equals (Ljava/lang/Object;)Z - public final fun getConstraints ()Lkotlinx/serialization/json/JsonObject; - public final fun getType ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/PaymentHandlerResponseSchemaAvailableInstrument$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/PaymentHandlerResponseSchemaAvailableInstrument$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/PaymentHandlerResponseSchemaAvailableInstrument; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/PaymentHandlerResponseSchemaAvailableInstrument;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/PaymentHandlerResponseSchemaAvailableInstrument$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; + public final fun d (Ljava/lang/String;Ljava/lang/String;)V + public final fun e (Ljava/lang/String;Ljava/lang/String;)V + public final fun e (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + public final fun w (Ljava/lang/String;Ljava/lang/String;)V } public abstract class com/shopify/checkoutkit/Platform { @@ -2340,51 +478,6 @@ public final class com/shopify/checkoutkit/Platform$ReactNative : com/shopify/ch public synthetic fun (Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V } -public final class com/shopify/checkoutkit/PostalAddress { - public static final field Companion Lcom/shopify/checkoutkit/PostalAddress$Companion; - public fun ()V - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/lang/String; - public final fun component5 ()Ljava/lang/String; - public final fun component6 ()Ljava/lang/String; - public final fun component7 ()Ljava/lang/String; - public final fun component8 ()Ljava/lang/String; - public final fun component9 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/shopify/checkoutkit/PostalAddress; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/PostalAddress;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/PostalAddress; - public fun equals (Ljava/lang/Object;)Z - public final fun getAddressCountry ()Ljava/lang/String; - public final fun getAddressLocality ()Ljava/lang/String; - public final fun getAddressRegion ()Ljava/lang/String; - public final fun getExtendedAddress ()Ljava/lang/String; - public final fun getFirstName ()Ljava/lang/String; - public final fun getLastName ()Ljava/lang/String; - public final fun getPhoneNumber ()Ljava/lang/String; - public final fun getPostalCode ()Ljava/lang/String; - public final fun getStreetAddress ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/PostalAddress$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/PostalAddress$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/PostalAddress; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/PostalAddress;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/PostalAddress$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - public final class com/shopify/checkoutkit/Preloading { public fun ()V public fun (Z)V @@ -2398,102 +491,6 @@ public final class com/shopify/checkoutkit/Preloading { public fun toString ()Ljava/lang/String; } -public final class com/shopify/checkoutkit/SelectedPaymentInstrument { - public static final field Companion Lcom/shopify/checkoutkit/SelectedPaymentInstrument$Companion; - public fun (Lcom/shopify/checkoutkit/PostalAddress;Lcom/shopify/checkoutkit/PaymentCredential;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)V - public synthetic fun (Lcom/shopify/checkoutkit/PostalAddress;Lcom/shopify/checkoutkit/PaymentCredential;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Lcom/shopify/checkoutkit/PostalAddress; - public final fun component2 ()Lcom/shopify/checkoutkit/PaymentCredential; - public final fun component3 ()Lkotlinx/serialization/json/JsonObject; - public final fun component4 ()Ljava/lang/String; - public final fun component5 ()Ljava/lang/String; - public final fun component6 ()Ljava/lang/String; - public final fun component7 ()Ljava/lang/Boolean; - public final fun copy (Lcom/shopify/checkoutkit/PostalAddress;Lcom/shopify/checkoutkit/PaymentCredential;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)Lcom/shopify/checkoutkit/SelectedPaymentInstrument; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/SelectedPaymentInstrument;Lcom/shopify/checkoutkit/PostalAddress;Lcom/shopify/checkoutkit/PaymentCredential;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;ILjava/lang/Object;)Lcom/shopify/checkoutkit/SelectedPaymentInstrument; - public fun equals (Ljava/lang/Object;)Z - public final fun getBillingAddress ()Lcom/shopify/checkoutkit/PostalAddress; - public final fun getCredential ()Lcom/shopify/checkoutkit/PaymentCredential; - public final fun getDisplay ()Lkotlinx/serialization/json/JsonObject; - public final fun getHandlerID ()Ljava/lang/String; - public final fun getId ()Ljava/lang/String; - public final fun getSelected ()Ljava/lang/Boolean; - public final fun getType ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/SelectedPaymentInstrument$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/SelectedPaymentInstrument$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/SelectedPaymentInstrument; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/SelectedPaymentInstrument;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/SelectedPaymentInstrument$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/ServiceResponseSchema { - public static final field Companion Lcom/shopify/checkoutkit/ServiceResponseSchema$Companion; - public fun (Lcom/shopify/checkoutkit/EmbeddedTransportConfig;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Transport;)V - public synthetic fun (Lcom/shopify/checkoutkit/EmbeddedTransportConfig;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Transport;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Lcom/shopify/checkoutkit/EmbeddedTransportConfig; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/lang/String; - public final fun component5 ()Ljava/lang/String; - public final fun component6 ()Ljava/lang/String; - public final fun component7 ()Lcom/shopify/checkoutkit/Transport; - public final fun copy (Lcom/shopify/checkoutkit/EmbeddedTransportConfig;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Transport;)Lcom/shopify/checkoutkit/ServiceResponseSchema; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/ServiceResponseSchema;Lcom/shopify/checkoutkit/EmbeddedTransportConfig;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Transport;ILjava/lang/Object;)Lcom/shopify/checkoutkit/ServiceResponseSchema; - public fun equals (Ljava/lang/Object;)Z - public final fun getConfig ()Lcom/shopify/checkoutkit/EmbeddedTransportConfig; - public final fun getEndpoint ()Ljava/lang/String; - public final fun getId ()Ljava/lang/String; - public final fun getSchema ()Ljava/lang/String; - public final fun getSpec ()Ljava/lang/String; - public final fun getTransport ()Lcom/shopify/checkoutkit/Transport; - public final fun getVersion ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/ServiceResponseSchema$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/ServiceResponseSchema$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/ServiceResponseSchema; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/ServiceResponseSchema;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/ServiceResponseSchema$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/Severity : java/lang/Enum { - public static final field Companion Lcom/shopify/checkoutkit/Severity$Companion; - public static final field Recoverable Lcom/shopify/checkoutkit/Severity; - public static final field RequiresBuyerInput Lcom/shopify/checkoutkit/Severity; - public static final field RequiresBuyerReview Lcom/shopify/checkoutkit/Severity; - public static final field Unrecoverable Lcom/shopify/checkoutkit/Severity; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public final fun getValue ()Ljava/lang/String; - public static fun valueOf (Ljava/lang/String;)Lcom/shopify/checkoutkit/Severity; - public static fun values ()[Lcom/shopify/checkoutkit/Severity; -} - -public final class com/shopify/checkoutkit/Severity$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - public final class com/shopify/checkoutkit/ShopifyCheckoutKit { public static final field INSTANCE Lcom/shopify/checkoutkit/ShopifyCheckoutKit; public static final field VERSION Ljava/lang/String; @@ -2502,195 +499,9 @@ public final class com/shopify/checkoutkit/ShopifyCheckoutKit { public static final fun invalidate ()V public static final fun preload (Ljava/lang/String;Landroidx/activity/ComponentActivity;)V public static final fun present (Ljava/lang/String;Landroidx/activity/ComponentActivity;Lcom/shopify/checkoutkit/DefaultCheckoutListener;)Lcom/shopify/checkoutkit/CheckoutKitDialog; - public static final fun present (Ljava/lang/String;Landroidx/activity/ComponentActivity;Lcom/shopify/checkoutkit/DefaultCheckoutListener;Lcom/shopify/checkoutkit/CheckoutCommunicationClient;)Lcom/shopify/checkoutkit/CheckoutKitDialog; + public static final fun present (Ljava/lang/String;Landroidx/activity/ComponentActivity;Lcom/shopify/checkoutkit/DefaultCheckoutListener;Lcom/shopify/checkoutkit/CheckoutProtocol$Client;)Lcom/shopify/checkoutkit/CheckoutKitDialog; public static final synthetic fun present (Ljava/lang/String;Landroidx/activity/ComponentActivity;Lkotlin/jvm/functions/Function1;)Lcom/shopify/checkoutkit/CheckoutKitDialog; - public static synthetic fun present$default (Ljava/lang/String;Landroidx/activity/ComponentActivity;Lcom/shopify/checkoutkit/DefaultCheckoutListener;Lcom/shopify/checkoutkit/CheckoutCommunicationClient;ILjava/lang/Object;)Lcom/shopify/checkoutkit/CheckoutKitDialog; -} - -public final class com/shopify/checkoutkit/Signals { - public static final field Companion Lcom/shopify/checkoutkit/Signals$Companion; - public fun ()V - public fun (Ljava/lang/String;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lcom/shopify/checkoutkit/Signals; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/Signals;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/Signals; - public fun equals (Ljava/lang/Object;)Z - public final fun getDevUcpBuyerIP ()Ljava/lang/String; - public final fun getDevUcpUserAgent ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/Signals$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/Signals$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/Signals; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/Signals;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/Signals$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/StatusEnum : java/lang/Enum { - public static final field Companion Lcom/shopify/checkoutkit/StatusEnum$Companion; - public static final field Error Lcom/shopify/checkoutkit/StatusEnum; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public final fun getValue ()Ljava/lang/String; - public static fun valueOf (Ljava/lang/String;)Lcom/shopify/checkoutkit/StatusEnum; - public static fun values ()[Lcom/shopify/checkoutkit/StatusEnum; -} - -public final class com/shopify/checkoutkit/StatusEnum$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/Transport : java/lang/Enum { - public static final field A2A Lcom/shopify/checkoutkit/Transport; - public static final field Companion Lcom/shopify/checkoutkit/Transport$Companion; - public static final field Embedded Lcom/shopify/checkoutkit/Transport; - public static final field MCP Lcom/shopify/checkoutkit/Transport; - public static final field REST Lcom/shopify/checkoutkit/Transport; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public final fun getValue ()Ljava/lang/String; - public static fun valueOf (Ljava/lang/String;)Lcom/shopify/checkoutkit/Transport; - public static fun values ()[Lcom/shopify/checkoutkit/Transport; -} - -public final class com/shopify/checkoutkit/Transport$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/UCPCheckoutResponseSchema { - public static final field Companion Lcom/shopify/checkoutkit/UCPCheckoutResponseSchema$Companion; - public fun (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;)V - public synthetic fun (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/util/Map; - public final fun component2 ()Ljava/util/Map; - public final fun component3 ()Ljava/util/Map; - public final fun component4 ()Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus; - public final fun component5 ()Ljava/lang/String; - public final fun copy (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;)Lcom/shopify/checkoutkit/UCPCheckoutResponseSchema; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/UCPCheckoutResponseSchema;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/UCPCheckoutResponseSchema; - public fun equals (Ljava/lang/Object;)Z - public final fun getCapabilities ()Ljava/util/Map; - public final fun getPaymentHandlers ()Ljava/util/Map; - public final fun getServices ()Ljava/util/Map; - public final fun getStatus ()Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus; - public final fun getVersion ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/UCPCheckoutResponseSchema$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/UCPCheckoutResponseSchema$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/UCPCheckoutResponseSchema; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/UCPCheckoutResponseSchema;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/UCPCheckoutResponseSchema$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus : java/lang/Enum { - public static final field Companion Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus$Companion; - public static final field Error Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus; - public static final field Success Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public final fun getValue ()Ljava/lang/String; - public static fun valueOf (Ljava/lang/String;)Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus; - public static fun values ()[Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus; -} - -public final class com/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/UCPOrderResponseSchema { - public static final field Companion Lcom/shopify/checkoutkit/UCPOrderResponseSchema$Companion; - public fun (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;)V - public synthetic fun (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/util/Map; - public final fun component2 ()Ljava/util/Map; - public final fun component3 ()Ljava/util/Map; - public final fun component4 ()Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus; - public final fun component5 ()Ljava/lang/String; - public final fun copy (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;)Lcom/shopify/checkoutkit/UCPOrderResponseSchema; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/UCPOrderResponseSchema;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/checkoutkit/UCPOrderResponseSchema; - public fun equals (Ljava/lang/Object;)Z - public final fun getCapabilities ()Ljava/util/Map; - public final fun getPaymentHandlers ()Ljava/util/Map; - public final fun getServices ()Ljava/util/Map; - public final fun getStatus ()Lcom/shopify/checkoutkit/UCPCheckoutResponseSchemaStatus; - public final fun getVersion ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/UCPOrderResponseSchema$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/UCPOrderResponseSchema$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/UCPOrderResponseSchema; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/UCPOrderResponseSchema;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/UCPOrderResponseSchema$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/UCPOrderResponseSchemaService { - public static final field Companion Lcom/shopify/checkoutkit/UCPOrderResponseSchemaService$Companion; - public fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Transport;)V - public synthetic fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Transport;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Lkotlinx/serialization/json/JsonObject; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/lang/String; - public final fun component5 ()Ljava/lang/String; - public final fun component6 ()Ljava/lang/String; - public final fun component7 ()Lcom/shopify/checkoutkit/Transport; - public final fun copy (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Transport;)Lcom/shopify/checkoutkit/UCPOrderResponseSchemaService; - public static synthetic fun copy$default (Lcom/shopify/checkoutkit/UCPOrderResponseSchemaService;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/checkoutkit/Transport;ILjava/lang/Object;)Lcom/shopify/checkoutkit/UCPOrderResponseSchemaService; - public fun equals (Ljava/lang/Object;)Z - public final fun getConfig ()Lkotlinx/serialization/json/JsonObject; - public final fun getEndpoint ()Ljava/lang/String; - public final fun getId ()Ljava/lang/String; - public final fun getSchema ()Ljava/lang/String; - public final fun getSpec ()Ljava/lang/String; - public final fun getTransport ()Lcom/shopify/checkoutkit/Transport; - public final fun getVersion ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class com/shopify/checkoutkit/UCPOrderResponseSchemaService$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lcom/shopify/checkoutkit/UCPOrderResponseSchemaService$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/checkoutkit/UCPOrderResponseSchemaService; - public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/checkoutkit/UCPOrderResponseSchemaService;)V - public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; -} - -public final class com/shopify/checkoutkit/UCPOrderResponseSchemaService$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; + public static synthetic fun present$default (Ljava/lang/String;Landroidx/activity/ComponentActivity;Lcom/shopify/checkoutkit/DefaultCheckoutListener;Lcom/shopify/checkoutkit/CheckoutProtocol$Client;ILjava/lang/Object;)Lcom/shopify/checkoutkit/CheckoutKitDialog; } public final class com/shopify/checkoutkit/WindowOpenRequest { diff --git a/platforms/android/lib/build.gradle b/platforms/android/lib/build.gradle index ee83f4891..2b42153f1 100644 --- a/platforms/android/lib/build.gradle +++ b/platforms/android/lib/build.gradle @@ -12,25 +12,10 @@ plugins { id 'io.gitlab.arturbosch.detekt' } -def versionName = "4.0.0-alpha.1" - -ext { - app_compat_version = '1.7.1' - kotlin_stdlib_version = '2.0.21' - kotlin_serialization_version = '1.7.3' - - androidx_test_version = '1.7.0' - androidx_junit_ext_version = '1.3.0' - androidx_webkit_version = '1.16.0' - - junit_version = '4.13.2' - robolectric_version = '4.16.1' - mockito_core_version = '5.23.0' - mockito_kotlin_version = '6.3.0' - assertj_version = '3.27.7' - awaitility_version = '4.3.0' - detekt_formatting_version = '1.23.8' -} +apply from: file('../gradle/android-library-versions.gradle') + +def kotlinCompatibility = kotlinVersionCompatibility +def versionName = libs.versions.checkoutKitAndroid.get() android { namespace = 'com.shopify.checkoutkit' @@ -52,6 +37,7 @@ android { lint { checkDependencies = true warningsAsErrors = true + disable 'GradleDependency', 'NewerVersionAvailable', 'SimilarGradleDependency' warning 'LintBaseline' informational 'AndroidGradlePluginVersion' } @@ -64,8 +50,8 @@ android { } } compileOptions { - sourceCompatibility JavaVersion.VERSION_11 - targetCompatibility JavaVersion.VERSION_11 + sourceCompatibility JavaVersion.toVersion(kotlinCompatibility.javaVersion) + targetCompatibility JavaVersion.toVersion(kotlinCompatibility.javaVersion) } testOptions { unitTests.includeAndroidResources = true @@ -90,14 +76,14 @@ android { tasks.withType(KotlinJvmCompile).configureEach { compilerOptions { - jvmTarget.set(JvmTarget.JVM_11) + jvmTarget.set(JvmTarget.valueOf(kotlinCompatibility.kotlinJvmTarget)) // Pin language/API version so bytecode stays consumable by Kotlin 2.0+ consumers // even though the compiler is on a newer 2.x. Kotlin 1.9 is deprecated by the 2.x // compiler, so 2.0 is the lowest pin we can hold without taking deprecation warnings; // keeping the compiler ahead of the pin leaves room to bump kotlinc without re-breaking // consumers. - apiVersion.set(KotlinVersion.KOTLIN_2_0) - languageVersion.set(KotlinVersion.KOTLIN_2_0) + apiVersion.set(KotlinVersion.valueOf(kotlinCompatibility.kotlinApiVersion)) + languageVersion.set(KotlinVersion.valueOf(kotlinCompatibility.kotlinLanguageVersion)) if (!name.contains("Test")) { freeCompilerArgs.add("-Xexplicit-api=strict") } @@ -105,27 +91,29 @@ tasks.withType(KotlinJvmCompile).configureEach { } dependencies { - detektPlugins "io.gitlab.arturbosch.detekt:detekt-formatting:$detekt_formatting_version" + detektPlugins libs.detekt.formatting + + api project(':embedded-checkout-protocol') - testImplementation "junit:junit:$junit_version" - testImplementation "org.robolectric:robolectric:$robolectric_version" - testImplementation "org.mockito:mockito-core:$mockito_core_version" - testImplementation "org.mockito.kotlin:mockito-kotlin:$mockito_kotlin_version" - testImplementation "org.mockito:mockito-android:$mockito_core_version" - testImplementation "org.assertj:assertj-core:$assertj_version" - testImplementation "org.awaitility:awaitility:$awaitility_version" + testImplementation libs.junit + testImplementation libs.robolectric + testImplementation libs.mockito.core + testImplementation libs.mockito.kotlin + testImplementation libs.mockito.android + testImplementation libs.assertj.core + testImplementation libs.awaitility - androidTestImplementation "androidx.test:core-ktx:$androidx_test_version" - androidTestImplementation "androidx.test.ext:junit-ktx:$androidx_junit_ext_version" + androidTestImplementation libs.androidx.test.core.ktx + androidTestImplementation libs.androidx.test.ext.junit.ktx // Keep the published stdlib dependency aligned with the Kotlin API/language // consumer floor, not the newer compiler used to build the AAR. - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_stdlib_version" + implementation libs.kotlin.stdlib //Implementation - implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlin_serialization_version" - implementation "androidx.appcompat:appcompat:$app_compat_version" - implementation "androidx.webkit:webkit:$androidx_webkit_version" + implementation libs.kotlinx.serialization.json + implementation libs.androidx.appcompat + implementation libs.androidx.webkit } signing { diff --git a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutCommunicationClient.kt b/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutCommunicationClient.kt deleted file mode 100644 index aba877543..000000000 --- a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutCommunicationClient.kt +++ /dev/null @@ -1,22 +0,0 @@ -package com.shopify.checkoutkit - -/** - * Implement this interface to handle Embedded Checkout Protocol (ECP) messages beyond - * the built-in methods handled natively by the SDK. - * - * Register an implementation via [ShopifyCheckoutKit.present]. - */ -public interface CheckoutCommunicationClient { - /** - * Process a JSON-RPC 2.0 ECP message from the checkout web page. - * - * Called for supported EC notifications (ec.start, ec.error, ec.complete, - * ec.*.change) and merchant-overridable delegations such as - * `ec.window.open_request`. For requests, return a JSON-RPC 2.0 response string; - * for notifications, return null (no response is sent). - * - * @param message JSON-RPC 2.0 encoded message string - * @return JSON-RPC 2.0 encoded response string, or null to send no response - */ - public fun process(message: String): String? -} diff --git a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutDialog.kt b/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutDialog.kt index 85eb93550..173445bca 100644 --- a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutDialog.kt +++ b/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutDialog.kt @@ -28,7 +28,7 @@ internal class CheckoutDialog( private val checkoutUrl: String, private val checkoutListener: CheckoutListener, context: Context, - private val communicationClient: CheckoutCommunicationClient? = null, + private val protocolClient: CheckoutProtocol.Client? = null, ) : ComponentDialog(context) { private var presentedCheckoutWebView: CheckoutWebView? = null @@ -64,8 +64,8 @@ internal class CheckoutDialog( checkoutWebView.markPresented() log.d(LOG_TAG, "Setting listener on WebView.") checkoutWebView.setListener(webViewListener()) - log.d(LOG_TAG, "Setting communication client on WebView.") - checkoutWebView.setClient(communicationClient) + log.d(LOG_TAG, "Setting protocol client on WebView.") + checkoutWebView.setClient(protocolClient) val colorScheme = ShopifyCheckoutKit.configuration.colorScheme log.d(LOG_TAG, "Configured colorScheme $colorScheme") diff --git a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutListener.kt b/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutListener.kt index 5c2ecd56a..11c209a6c 100644 --- a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutListener.kt +++ b/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutListener.kt @@ -12,7 +12,7 @@ import android.webkit.WebView * We'd strongly recommend extending DefaultCheckoutListener where possible. * * Completion (`ec.complete`) and in-checkout state updates (totals, line items, - * messages) flow through [CheckoutCommunicationClient] / the Embedded Checkout + * messages) flow through [CheckoutProtocol.Client] / the Embedded Checkout * Protocol — not through this interface. Kit-level failures continue to surface * here via [onCheckoutFailed]. */ diff --git a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutPresentation.kt b/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutPresentation.kt index f434ba1cd..9d77eda76 100644 --- a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutPresentation.kt +++ b/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutPresentation.kt @@ -21,7 +21,7 @@ public class CheckoutPresentation internal constructor() { internal var onGeolocationPermissionsShowPrompt: ((String, GeolocationPermissions.Callback) -> Unit)? = null internal var onGeolocationPermissionsHidePrompt: (() -> Unit)? = null - internal var communicationClient: CheckoutCommunicationClient? = null + internal var protocolClient: CheckoutProtocol.Client? = null /** * Called when checkout fails. @@ -74,10 +74,10 @@ public class CheckoutPresentation internal constructor() { } /** - * Connects a communication client for Embedded Checkout Protocol messages. + * Connects a typed client for supported Embedded Checkout Protocol callbacks. */ - public fun connect(client: CheckoutCommunicationClient?) { - communicationClient = client + public fun connect(client: CheckoutProtocol.Client?) { + protocolClient = client } internal fun buildListener(): DefaultCheckoutListener = diff --git a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutProtocol.kt b/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutProtocol.kt index 95c22bfab..b6d058962 100644 --- a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutProtocol.kt +++ b/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutProtocol.kt @@ -2,82 +2,47 @@ package com.shopify.checkoutkit import android.net.Uri import android.os.Looper -import androidx.core.net.toUri import com.shopify.checkoutkit.ShopifyCheckoutKit.log -import kotlinx.serialization.Serializable +import com.shopify.ucp.embedded.checkout.Checkout +import com.shopify.ucp.embedded.checkout.DelegationDescriptor +import com.shopify.ucp.embedded.checkout.EcpRequest +import com.shopify.ucp.embedded.checkout.EmbeddedCheckoutProtocol +import com.shopify.ucp.embedded.checkout.ErrorResponse +import com.shopify.ucp.embedded.checkout.NotificationDescriptor +import com.shopify.ucp.embedded.checkout.decodeProtocolRequest +import com.shopify.ucp.embedded.checkout.encodeJsonRpcError +import com.shopify.ucp.embedded.checkout.encodeJsonRpcResult +import com.shopify.ucp.embedded.checkout.jsonRpcRequestId import kotlinx.serialization.SerializationException -import kotlinx.serialization.json.Json import kotlinx.serialization.json.JsonElement -import kotlinx.serialization.json.JsonNull -import kotlinx.serialization.json.JsonObject -import kotlinx.serialization.json.JsonPrimitive -import kotlinx.serialization.json.buildJsonObject -import kotlinx.serialization.json.decodeFromJsonElement -import kotlinx.serialization.json.encodeToJsonElement -import kotlinx.serialization.json.jsonObject -import kotlinx.serialization.json.put -import kotlinx.serialization.json.putJsonObject import java.util.concurrent.CountDownLatch /** - * Entry point for the typed Embedded Checkout Protocol (ECP) client. + * Consumer-facing typed Embedded Checkout Protocol API curated by Checkout Kit. * - * Provides static [NotificationDescriptor] instances for every EC notification method, - * plus a fluent [Client] builder that implements [CheckoutCommunicationClient]. - * - * Example usage: - * ```kotlin - * val client = CheckoutProtocol.Client() - * .on(CheckoutProtocol.start) { checkout -> showProgressUI(checkout) } - * .on(CheckoutProtocol.complete) { checkout -> navigateToConfirmation(checkout) } - * - * ShopifyCheckoutKit.present(url, activity, checkoutListener, client) - * ``` + * The lower-level `embedded-checkout-protocol` artifact owns generated models and raw wire + * method names. Checkout Kit decides which of those methods are supported for app + * developers and exposes them through this typed namespace. */ public object CheckoutProtocol { - - public const val SPEC_VERSION: String = "2026-04-08" - internal const val READY_METHOD: String = "ec.ready" - - // Notifications — checkout carries the full current state - public val start: NotificationDescriptor = checkoutDescriptor("ec.start") - public val complete: NotificationDescriptor = checkoutDescriptor("ec.complete") - public val messagesChange: NotificationDescriptor = checkoutDescriptor("ec.messages.change") - public val lineItemsChange: NotificationDescriptor = checkoutDescriptor("ec.line_items.change") - public val totalsChange: NotificationDescriptor = checkoutDescriptor("ec.totals.change") - public val error: NotificationDescriptor = NotificationDescriptor( - method = "ec.error", - decode = { params -> - try { - json.decodeFromJsonElement(params ?: JsonNull).error - } catch (e: SerializationException) { - log.d(BaseWebView.ECP_LOG_TAG, "Failed to decode ec.error params: $e raw=$params") - null - } - } - ) - - // Delegations — request-response. Merchant-overridable: if a consumer registers a - // handler via [Client.on], it wins; otherwise [EmbeddedCheckoutProtocol] falls back - // to the kit's built-in handler from [EmbeddedCheckoutProtocol.defaultDelegationClient]. - public val windowOpen: DelegationDescriptor = DelegationDescriptor( - method = "ec.window.open_request", - decode = { params -> - try { - json.decodeFromJsonElement(params ?: JsonNull).url - .takeIf { it.isNotBlank() } - ?.let { runCatching { it.toUri() }.getOrNull() } - ?.let(::WindowOpenRequest) - } catch (e: SerializationException) { - log.d(BaseWebView.ECP_LOG_TAG, "Failed to decode ${windowOpen.method} params: $e raw=$params") - null - } + public const val SPEC_VERSION: String = EmbeddedCheckoutProtocol.SPEC_VERSION + + public val start: NotificationDescriptor = EmbeddedCheckoutProtocol.start + public val complete: NotificationDescriptor = EmbeddedCheckoutProtocol.complete + public val messagesChange: NotificationDescriptor = EmbeddedCheckoutProtocol.messagesChange + public val lineItemsChange: NotificationDescriptor = EmbeddedCheckoutProtocol.lineItemsChange + public val totalsChange: NotificationDescriptor = EmbeddedCheckoutProtocol.totalsChange + public val error: NotificationDescriptor = EmbeddedCheckoutProtocol.error + + public val windowOpen: DelegationDescriptor = EmbeddedCheckoutProtocol.windowOpen.map( + decode = { request -> + request.url.toString().let(Uri::parse).let(::WindowOpenRequest) }, - encode = { result -> encodeWindowOpenResult(result) }, + encode = ::encodeWindowOpenResult, ) internal val supportedProtocolMethods: Set = setOf( - READY_METHOD, + EmbeddedCheckoutProtocol.Event.ready, start.method, complete.method, error.method, @@ -87,8 +52,11 @@ public object CheckoutProtocol { windowOpen.method, ) - internal fun supportedProtocolMethod(message: String): String? = - decodeProtocolRequest(message)?.let(::supportedProtocolMethod) + internal fun supportedProtocolMethod(message: String): String? = try { + supportedProtocolMethod(decodeProtocolRequest(message)) + } catch (_: SerializationException) { + null + } internal fun supportedProtocolMethod(request: EcpRequest): String? = request.method.takeIf { @@ -97,95 +65,64 @@ public object CheckoutProtocol { request.hasValidJsonRpcRequestId() } - private fun decodeProtocolRequest(message: String): EcpRequest? = try { - decodeEcpRequest(message) - } catch (_: SerializationException) { - null - } + private val supportedNotificationDescriptors: Set> = setOf( + start, + complete, + messagesChange, + lineItemsChange, + totalsChange, + error, + ) - private fun checkoutDescriptor(method: String): NotificationDescriptor = - NotificationDescriptor( - method = method, - decode = { params -> - try { - json.decodeFromJsonElement(params ?: JsonNull).checkout - } catch (e: SerializationException) { - log.d(BaseWebView.ECP_LOG_TAG, "Failed to decode $method checkout params: $e raw=$params") - null - } - } - ) + private val supportedDelegationDescriptors: Set> = setOf( + windowOpen, + ) - private fun encodeWindowOpenResult(result: WindowOpenResult): JsonObject = when (result) { + private fun encodeWindowOpenResult( + result: WindowOpenResult, + ): com.shopify.ucp.embedded.checkout.WindowOpenResult = when (result) { is WindowOpenResult.Success -> - json.encodeToJsonElement( - WindowOpenSuccessDto(UcpEnvelope(SPEC_VERSION, "success")) - ).jsonObject + com.shopify.ucp.embedded.checkout.WindowOpenResult.Success is WindowOpenResult.Rejected -> - json.encodeToJsonElement( - WindowOpenErrorDto( - ucp = UcpEnvelope(SPEC_VERSION, "error"), - messages = listOf( - UcpMessage( - type = "error", - code = "window_open_rejected_error", - content = result.reason ?: "Window open rejected", - severity = "unrecoverable", - ) - ), - ) - ).jsonObject + com.shopify.ucp.embedded.checkout.WindowOpenResult.Rejected(result.reason) } - internal val json: Json = Json { ignoreUnknownKeys = true } - /** - * A typed, fluent implementation of [CheckoutCommunicationClient]. + * A typed, fluent client for supported Checkout Kit protocol callbacks. * - * Each [on] call returns a new [Client] instance (value semantics), - * making it safe to share a base configuration across multiple presents. + * Each [on] call returns a new [Client] instance, making it safe to share a + * base configuration across multiple checkout presentations. */ public class Client private constructor( - private val handlers: Map, + private val handlers: Map, private val delegations: Map, - ) : CheckoutCommunicationClient { - + ) { public constructor() : this(emptyMap(), emptyMap()) - /** - * Register a handler for an EC notification descriptor. - * - * The handler is invoked on the **main thread** whenever the checkout page - * sends the corresponding notification. Returning from the handler sends - * no response to the page (notifications are fire-and-forget). - */ public fun

on( descriptor: NotificationDescriptor

, handler: (P) -> Unit, ): Client { - @Suppress("UNCHECKED_CAST") - val entry = Handler( - decode = descriptor.decode, - invoke = { payload -> (payload as? P)?.let { handler(it) } }, + if (descriptor !in supportedNotificationDescriptors) return this + val entry = NotificationHandler( + decode = { params -> descriptor.decode(params) }, + invoke = { payload -> + @Suppress("UNCHECKED_CAST") + (payload as? P)?.let { handler(it) } + }, ) return Client(handlers + (descriptor.method to entry), delegations) } - /** - * Register a handler for an EC delegation descriptor. - * - * Delegations are request-response: the handler is invoked on the **main thread** - * and its typed return value is encoded back to the checkout page as a JSON-RPC - * response. If no handler is registered for a descriptor, the kit falls back to - * its built-in default (see [EmbeddedCheckoutProtocol.defaultDelegationClient]). - */ public fun

on( descriptor: DelegationDescriptor, handler: (P) -> R, - ): Client = Client(handlers, delegations + (descriptor.method to Delegation.Typed(descriptor, handler))) + ): Client { + if (descriptor !in supportedDelegationDescriptors) return this + return Client(handlers, delegations + (descriptor.method to Delegation.Typed(descriptor, handler))) + } - /** Called by [EmbeddedCheckoutProtocol] for every delegated EC message. */ - override fun process(message: String): String? = + internal fun process(message: String): String? = decodeRequest(message)?.let { request -> val delegation = delegations[request.method] if (delegation != null) { @@ -197,44 +134,43 @@ public object CheckoutProtocol { } private fun decodeRequest(message: String): EcpRequest? = try { - decodeEcpRequest(message) + decodeProtocolRequest(message) .takeIf { it.hasValidJsonRpcRequestId() } } catch (e: SerializationException) { log.d(LOG_TAG, "Error processing ECP message in typed client: $e") null } - /** - * Direct, typed invocation of a registered delegation handler. - * - * Used by the kit to dispatch synthesized delegations (e.g. direct anchor-tag - * clicks intercepted by the WebView) without round-tripping through JSON-RPC. - * Returns `null` if no handler is registered for [descriptor]. - */ - @Suppress("UNCHECKED_CAST") - internal fun

invoke(descriptor: DelegationDescriptor, payload: P): R? = - delegations[descriptor.method]?.let { invokeOnMainThread { it.invokeRaw(payload) } } as? R - private fun dispatchNotification(request: EcpRequest) { val handler = handlers[request.method] if (handler == null) { log.d(LOG_TAG, "No handler registered for method=${request.method}") return } - val payload = handler.decode(request.params) - log.d(LOG_TAG, "Decoded payload for method=${request.method}: ${payload ?: "null, skipping"}") + val payload = try { + handler.decode(request.params) + } catch (e: SerializationException) { + log.d( + LOG_TAG, + "Failed to decode ${request.method} notification params: $e raw=${request.params}", + ) + null + } + log.d( + LOG_TAG, + "Decoded payload for method=${request.method}: ${payload ?: "null, skipping"}", + ) payload?.let { onMainThread { handler.invoke(it) } } } } - private class Handler( + private class NotificationHandler( val decode: (JsonElement?) -> Any?, val invoke: (Any) -> Unit, ) private sealed class Delegation { abstract fun dispatch(request: EcpRequest): String - abstract fun invokeRaw(payload: Any): Any class Typed

( private val descriptor: DelegationDescriptor, @@ -244,52 +180,24 @@ public object CheckoutProtocol { val payload = try { descriptor.decode(request.params) } catch (e: SerializationException) { - log.d(LOG_TAG, "Decode failed for ${request.method}: $e") + log.d( + LOG_TAG, + "Failed to decode ${request.method} delegation params: $e raw=${request.params}", + ) null - } ?: return jsonRpcError( + } ?: return encodeJsonRpcError( request.id, CODE_INVALID_PARAMS, "Invalid params for ${request.method}", ) val result = invokeOnMainThread { handler(payload) } - return jsonRpcResult(request.id, descriptor.encode(result)) + return encodeJsonRpcResult(request.id, descriptor.encode(result)) } - - @Suppress("UNCHECKED_CAST") - override fun invokeRaw(payload: Any): Any = handler(payload as P) } } - private const val LOG_TAG = BaseWebView.ECP_LOG_TAG - private const val CODE_INVALID_PARAMS = -32602 - - private fun decodeEcpRequest(message: String): EcpRequest { - val requestObject = json.decodeFromString(message) - return json.decodeFromJsonElement(requestObject).copy(id = requestObject["id"]) - } - - private fun jsonRpcResult(id: JsonElement?, result: JsonElement): String = - json.encodeToString( - JsonObject.serializer(), - buildJsonObject { - put("jsonrpc", "2.0") - put("id", id ?: JsonNull) - put("result", result) - } - ) - - private fun jsonRpcError(id: JsonElement?, code: Int, message: String): String = - json.encodeToString( - JsonObject.serializer(), - buildJsonObject { - put("jsonrpc", "2.0") - put("id", id ?: JsonNull) - putJsonObject("error") { - put("code", code) - put("message", message) - } - } - ) + private const val CODE_INVALID_PARAMS: Int = -32602 + private const val LOG_TAG: String = BaseWebView.ECP_LOG_TAG private fun invokeOnMainThread(block: () -> R): R { if (Looper.myLooper() == Looper.getMainLooper()) return block() @@ -307,70 +215,6 @@ public object CheckoutProtocol { internal fun EcpRequest.hasValidJsonRpcRequestId(): Boolean = id == null || jsonRpcRequestId(id) != null -internal fun jsonRpcRequestId(id: JsonElement?): JsonElement? = - when (id) { - JsonNull -> JsonNull - is JsonPrimitive -> id.takeIf { - it.isString || - (!it.isString && JSON_RPC_INTEGER.matches(it.content) && it.content.toLongOrNull() != null) - } - else -> null - } - -private val JSON_RPC_INTEGER = Regex("-?(0|[1-9]\\d*)") - -/** - * Describes a typed EC notification handler binding. - * - * Create instances via [CheckoutProtocol] static properties; do not instantiate directly. - */ -public class NotificationDescriptor

internal constructor( - public val method: String, - internal val decode: (JsonElement?) -> P?, -) - -/** - * Describes a typed EC delegation handler binding. - * - * Delegations are request-response: the handler returns a typed result that gets - * encoded into a JSON-RPC response back to the checkout page. Obtain instances via - * [CheckoutProtocol] static properties (e.g. [CheckoutProtocol.windowOpen]); do not - * instantiate directly. - */ -public class DelegationDescriptor

internal constructor( - public val method: String, - internal val decode: (JsonElement?) -> P?, - internal val encode: (R) -> JsonElement, -) - -@Serializable -internal data class EcpRequest( - val jsonrpc: String = "2.0", - val method: String, - val id: JsonElement? = null, - val params: JsonElement? = null, -) - -@Serializable -internal data class ReadyParams( - val delegate: List = emptyList(), -) - -@Serializable -internal data class CheckoutParams( - val checkout: Checkout, -) - -@Serializable -internal data class ErrorParams( - val error: ErrorResponse, -) - -@Serializable -internal data class WindowOpenParams( - val url: String, -) - /** Payload delivered with the [CheckoutProtocol.windowOpen] delegation. */ @ConsistentCopyVisibility public data class WindowOpenRequest internal constructor(public val url: Uri) @@ -379,36 +223,10 @@ public data class WindowOpenRequest internal constructor(public val url: Uri) * Outcome a [CheckoutProtocol.windowOpen] handler returns to the checkout page. * * [Success] indicates the URL was opened externally. - * [Rejected] indicates the URL could not be (or was deliberately not) opened — the - * page receives a UCP `window_open_rejected_error` envelope and may surface a - * fallback message to the buyer. + * [Rejected] indicates the URL could not be opened, so checkout receives a UCP + * `window_open_rejected_error` envelope and may surface fallback UI. */ public sealed class WindowOpenResult { public object Success : WindowOpenResult() public data class Rejected(public val reason: String? = null) : WindowOpenResult() } - -// UCP wire envelopes for delegation responses. Mirror Swift's UCPSuccess / UCPError / -// WindowOpenRejectedBody (origin/swift/window.open_request: ShopifyCheckoutProtocol/Codec.swift + -// WindowOpen.swift). UcpEnvelope / UcpMessage are intentionally generic so the next delegation -// (ec.auth, ec.payment.*) can reuse them; promote out of this file once a second call site lands. - -@Serializable -private data class UcpEnvelope(val version: String, val status: String) - -@Serializable -private data class UcpMessage( - val type: String, - val code: String, - val content: String, - val severity: String, -) - -@Serializable -private data class WindowOpenSuccessDto(val ucp: UcpEnvelope) - -@Serializable -private data class WindowOpenErrorDto( - val ucp: UcpEnvelope, - val messages: List, -) diff --git a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutWebView.kt b/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutWebView.kt index f353c4adb..9c6349c22 100644 --- a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutWebView.kt +++ b/platforms/android/lib/src/main/java/com/shopify/checkoutkit/CheckoutWebView.kt @@ -18,7 +18,7 @@ internal class CheckoutWebView(context: Context, attributeSet: AttributeSet? = n BaseWebView(context, attributeSet) { private var listener = CheckoutWebViewListener(NoopCheckoutListener()) - private val embeddedCheckoutProtocol = EmbeddedCheckoutProtocol(this) + private val embeddedCheckoutProtocol = EmbeddedCheckoutProtocolBridge(this) private var loadComplete = false internal var isPresented = false private set @@ -27,7 +27,7 @@ internal class CheckoutWebView(context: Context, attributeSet: AttributeSet? = n init { webViewClient = CheckoutWebViewClient() - addJavascriptInterface(embeddedCheckoutProtocol, EmbeddedCheckoutProtocol.INTERFACE_NAME) + addJavascriptInterface(embeddedCheckoutProtocol, EmbeddedCheckoutProtocolBridge.INTERFACE_NAME) settings.userAgentString = "${settings.userAgentString} ${userAgentSuffix()}" } @@ -38,8 +38,8 @@ internal class CheckoutWebView(context: Context, attributeSet: AttributeSet? = n this.listener = listener } - fun setClient(client: CheckoutCommunicationClient?) { - log.d(LOG_TAG, "Setting communication client $client.") + fun setClient(client: CheckoutProtocol.Client?) { + log.d(LOG_TAG, "Setting protocol client $client.") embeddedCheckoutProtocol.setClient(client) } @@ -54,13 +54,13 @@ internal class CheckoutWebView(context: Context, attributeSet: AttributeSet? = n override fun onAttachedToWindow() { super.onAttachedToWindow() log.d(LOG_TAG, "Attached to window. Adding JavaScript interfaces.") - addJavascriptInterface(embeddedCheckoutProtocol, EmbeddedCheckoutProtocol.INTERFACE_NAME) + addJavascriptInterface(embeddedCheckoutProtocol, EmbeddedCheckoutProtocolBridge.INTERFACE_NAME) } override fun onDetachedFromWindow() { super.onDetachedFromWindow() log.d(LOG_TAG, "Detached from window. Removing JavaScript interfaces.") - removeJavascriptInterface(EmbeddedCheckoutProtocol.INTERFACE_NAME) + removeJavascriptInterface(EmbeddedCheckoutProtocolBridge.INTERFACE_NAME) } fun loadCheckout(url: String, isPreload: Boolean = false) { diff --git a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/ComposedCheckoutCommunicationClient.kt b/platforms/android/lib/src/main/java/com/shopify/checkoutkit/ComposedCheckoutProtocolClient.kt similarity index 82% rename from platforms/android/lib/src/main/java/com/shopify/checkoutkit/ComposedCheckoutCommunicationClient.kt rename to platforms/android/lib/src/main/java/com/shopify/checkoutkit/ComposedCheckoutProtocolClient.kt index bd5477ba4..fe11f0884 100644 --- a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/ComposedCheckoutCommunicationClient.kt +++ b/platforms/android/lib/src/main/java/com/shopify/checkoutkit/ComposedCheckoutProtocolClient.kt @@ -1,5 +1,6 @@ package com.shopify.checkoutkit +import com.shopify.ucp.embedded.checkout.decodeProtocolRequest import kotlinx.serialization.SerializationException /** @@ -10,11 +11,11 @@ import kotlinx.serialization.SerializationException * kit default when the merchant does not return a response, while mandatory kit * notifications such as [CheckoutProtocol.error] always run after the merchant client. */ -internal class ComposedCheckoutCommunicationClient( - private val merchant: CheckoutCommunicationClient?, +internal class ComposedCheckoutProtocolClient( + private val merchant: CheckoutProtocol.Client?, private val defaults: Map, -) : CheckoutCommunicationClient { - override fun process(message: String): String? { +) { + internal fun process(message: String): String? { val method = method(message) ?: return merchant?.process(message) var response = merchant?.process(message) @@ -35,14 +36,14 @@ internal class ComposedCheckoutCommunicationClient( } private fun method(message: String): String? = try { - CheckoutProtocol.json.decodeFromString(message).method + decodeProtocolRequest(message).method } catch (_: SerializationException) { null } } internal data class DefaultClientBinding( - val client: CheckoutCommunicationClient, + val client: CheckoutProtocol.Client, val policy: DefaultClientPolicy, ) diff --git a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/EmbeddedCheckoutProtocol.kt b/platforms/android/lib/src/main/java/com/shopify/checkoutkit/EmbeddedCheckoutProtocolBridge.kt similarity index 89% rename from platforms/android/lib/src/main/java/com/shopify/checkoutkit/EmbeddedCheckoutProtocol.kt rename to platforms/android/lib/src/main/java/com/shopify/checkoutkit/EmbeddedCheckoutProtocolBridge.kt index 5920335f9..c8f19024b 100644 --- a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/EmbeddedCheckoutProtocol.kt +++ b/platforms/android/lib/src/main/java/com/shopify/checkoutkit/EmbeddedCheckoutProtocolBridge.kt @@ -2,6 +2,12 @@ package com.shopify.checkoutkit import android.webkit.JavascriptInterface import com.shopify.checkoutkit.ShopifyCheckoutKit.log +import com.shopify.ucp.embedded.checkout.EcpRequest +import com.shopify.ucp.embedded.checkout.EmbeddedCheckoutProtocol +import com.shopify.ucp.embedded.checkout.ReadyParams +import com.shopify.ucp.embedded.checkout.Severity +import com.shopify.ucp.embedded.checkout.decodeProtocolRequest +import com.shopify.ucp.embedded.checkout.jsonRpcRequestId import kotlinx.serialization.SerializationException import kotlinx.serialization.json.Json import kotlinx.serialization.json.JsonElement @@ -20,9 +26,9 @@ import kotlinx.serialization.json.putJsonObject * `window.EmbeddedCheckoutProtocolConsumer.postMessage(jsonRpcString)`. * Responses are sent back via `window.EmbeddedCheckoutProtocol.postMessage(responseString)`. */ -internal class EmbeddedCheckoutProtocol( +internal class EmbeddedCheckoutProtocolBridge( private val view: CheckoutWebView, - @Volatile private var client: CheckoutCommunicationClient? = null, + @Volatile private var client: CheckoutProtocol.Client? = null, ) { private val decoder = Json { ignoreUnknownKeys = true } private val defaultClient: CheckoutProtocol.Client = defaultDelegationClient() @@ -40,26 +46,25 @@ internal class EmbeddedCheckoutProtocol( policy = DefaultClientPolicy.AlwaysRunAfterMerchant, ), ) - private val composedClient: CheckoutCommunicationClient - get() = ComposedCheckoutCommunicationClient( + private val composedClient: ComposedCheckoutProtocolClient + get() = ComposedCheckoutProtocolClient( merchant = client, defaults = defaultClientBindings, ) - internal fun setClient(client: CheckoutCommunicationClient?) { + internal fun setClient(client: CheckoutProtocol.Client?) { this.client = client } @JavascriptInterface fun postMessage(message: String) { try { - val requestObject = decoder.decodeFromString(message) - val request = decoder.decodeFromJsonElement(requestObject) + val request = decodeProtocolRequest(message) val method = CheckoutProtocol.supportedProtocolMethod(request) - val requestId = jsonRpcRequestId(requestObject["id"]) + val requestId = jsonRpcRequestId(request.id) log.d(LOG_TAG, "Received bridge message: method=${request.method} id=${request.id}") when (method) { - CheckoutProtocol.READY_METHOD -> requestId?.let { handleReady(request, it) } + EmbeddedCheckoutProtocol.Event.ready -> requestId?.let { handleReady(request, it) } CheckoutProtocol.windowOpen.method -> requestId?.let { handleWindowOpenRequest(message) } CheckoutProtocol.start.method -> handleStart(message) CheckoutProtocol.complete.method -> handleComplete(message) @@ -85,7 +90,7 @@ internal class EmbeddedCheckoutProtocol( val negotiatedDelegations = checkoutAcceptedDelegations.filter { it in KIT_SUPPORTED_DELEGATIONS } log.d( LOG_TAG, - "Handling ${CheckoutProtocol.READY_METHOD}, " + + "Handling ${EmbeddedCheckoutProtocol.Event.ready}, " + "isPreload=${view.isPreloadRequest} " + "checkoutAcceptedDelegations=$checkoutAcceptedDelegations " + "checkoutKitSupportedDelegations=$KIT_SUPPORTED_DELEGATIONS " + @@ -98,7 +103,7 @@ internal class EmbeddedCheckoutProtocol( try { decoder.decodeFromJsonElement(params ?: JsonObject(emptyMap())) } catch (e: SerializationException) { - log.d(LOG_TAG, "Failed to decode ${CheckoutProtocol.READY_METHOD} params: $e raw=$params") + log.d(LOG_TAG, "Failed to decode ${EmbeddedCheckoutProtocol.Event.ready} params: $e raw=$params") null } @@ -234,7 +239,7 @@ internal class EmbeddedCheckoutProtocol( // Delegations this SDK supports. Echoed back in the ec.ready response as the // intersection of checkout-accepted ∩ kit-supported. Must align with the // `ec_delegate` URL param emitted from [UriExtensions.appendEcpParams]. - private val KIT_SUPPORTED_DELEGATIONS = setOf("window.open") + private val KIT_SUPPORTED_DELEGATIONS = setOf(CheckoutProtocol.windowOpen.delegation) private const val CODE_PARSE_ERROR = -32700 private const val CODE_METHOD_NOT_FOUND = -32601 diff --git a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/ExternalUriLauncher.kt b/platforms/android/lib/src/main/java/com/shopify/checkoutkit/ExternalUriLauncher.kt index 10fa5f40e..d8e018b28 100644 --- a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/ExternalUriLauncher.kt +++ b/platforms/android/lib/src/main/java/com/shopify/checkoutkit/ExternalUriLauncher.kt @@ -9,9 +9,9 @@ import android.net.Uri * Single point of entry for launching an external `ACTION_VIEW` Intent. * * Used by both [CheckoutWebView.shouldOverrideUrlLoading] (for `mailto:` / `tel:` / custom-scheme - * deep links intercepted during navigation) and [EmbeddedCheckoutProtocol.defaultDelegationClient] - * (for `ec.window.open_request` payloads from the page). Centralizing the resolver check and - * `startActivity` failure handling keeps the two paths from drifting apart. + * deep links intercepted during navigation) and the default `ec.window.open_request` handler. + * Centralizing the resolver check and `startActivity` failure handling keeps the two paths from + * drifting apart. */ internal object ExternalUriLauncher { sealed class Result { diff --git a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/ShopifyCheckoutKit.kt b/platforms/android/lib/src/main/java/com/shopify/checkoutkit/ShopifyCheckoutKit.kt index c82fc5b18..6fc276e6e 100644 --- a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/ShopifyCheckoutKit.kt +++ b/platforms/android/lib/src/main/java/com/shopify/checkoutkit/ShopifyCheckoutKit.kt @@ -91,7 +91,7 @@ public object ShopifyCheckoutKit { * @param checkoutUrl The URL of the checkout to be presented, this can be obtained via the Storefront API * @param context The context the checkout is being presented from * @param configure a Kotlin-first builder for fail/cancel callbacks, browser/system hooks, - * and an optional communication client + * and an optional typed protocol client * @return An instance of [CheckoutKitDialog] if the dialog was successfully created and displayed. */ @JvmStatic @@ -106,7 +106,7 @@ public object ShopifyCheckoutKit { checkoutUrl = checkoutUrl, context = context, checkoutListener = presentation.buildListener(), - communicationClient = presentation.communicationClient, + protocolClient = presentation.protocolClient, ) } @@ -117,8 +117,8 @@ public object ShopifyCheckoutKit { * @param context The context the checkout is being presented from * @param checkoutListener provides callbacks to allow clients to listen for and respond to checkout lifecycle events * (failure, cancellation, permission prompts, file chooser). - * @param communicationClient optional handler for supported Embedded Checkout Protocol (ECP) - * messages from the checkout web page. Built-in messages + * @param protocolClient optional typed handler for supported Embedded Checkout Protocol (ECP) + * callbacks from the checkout web page. Built-in messages * (`ec.ready` and [ec.start][CheckoutProtocol.start]) * are handled automatically by the SDK. * @return An instance of [CheckoutKitDialog] if the dialog was successfully created and displayed. @@ -129,7 +129,7 @@ public object ShopifyCheckoutKit { checkoutUrl: String, context: ComponentActivity, checkoutListener: T, - communicationClient: CheckoutCommunicationClient? = null, + protocolClient: CheckoutProtocol.Client? = null, ): CheckoutKitDialog? { log.d("ShopifyCheckoutKit", "Present called with checkoutUrl ${checkoutUrl.redactedUrlForLogging()}.") if (context.isDestroyed || context.isFinishing) { @@ -137,7 +137,7 @@ public object ShopifyCheckoutKit { return null } log.d("ShopifyCheckoutKit", "Constructing Dialog") - val dialog = CheckoutDialog(checkoutUrl, checkoutListener, context, communicationClient) + val dialog = CheckoutDialog(checkoutUrl, checkoutListener, context, protocolClient) context.lifecycle.addObserver(object : DefaultLifecycleObserver { override fun onDestroy(owner: LifecycleOwner) { log.d("ShopifyCheckoutKit", "Context is being destroyed, dismissing dialog.") diff --git a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/UriExtensions.kt b/platforms/android/lib/src/main/java/com/shopify/checkoutkit/UriExtensions.kt index 49ff9d687..0f4829df3 100644 --- a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/UriExtensions.kt +++ b/platforms/android/lib/src/main/java/com/shopify/checkoutkit/UriExtensions.kt @@ -30,7 +30,7 @@ internal fun String.redactedUrlForLogging(): String = toUri().redactedForLogging * any existing SDK-owned protocol params. Idempotent on re-call. * * - `ec_version` — the ECP spec version the SDK speaks - * - `ec_delegate` — fixed to `window.open` so checkout delegates link opens to the bridge + * - `ec_delegate` — fixed to the supported window-open delegation so checkout delegates link opens to the bridge */ internal fun String.appendEcpParams(specVersion: String): String { val uri = this.toUri() @@ -45,7 +45,7 @@ internal fun String.appendEcpParams(specVersion: String): String { } builder.appendQueryParameter(EC_VERSION_PARAM, specVersion) - builder.appendQueryParameter(EC_DELEGATE_PARAM, EC_DELEGATE_VALUE) + builder.appendQueryParameter(EC_DELEGATE_PARAM, CheckoutProtocol.windowOpen.delegation) return builder.build().toString() } @@ -54,7 +54,6 @@ private val CONFIRMATION_PATH_REGEX = Regex(pattern = "^(thank[-_]+you)$", optio private const val EC_VERSION_PARAM = "ec_version" private const val EC_DELEGATE_PARAM = "ec_delegate" -private const val EC_DELEGATE_VALUE = "window.open" private const val REDACTED_QUERY_VALUE = "[REDACTED]" internal object Scheme { diff --git a/platforms/android/lib/src/test/java/com/shopify/checkoutkit/CheckoutPresentationTest.kt b/platforms/android/lib/src/test/java/com/shopify/checkoutkit/CheckoutPresentationTest.kt index 29a4f3d7a..f234ce96f 100644 --- a/platforms/android/lib/src/test/java/com/shopify/checkoutkit/CheckoutPresentationTest.kt +++ b/platforms/android/lib/src/test/java/com/shopify/checkoutkit/CheckoutPresentationTest.kt @@ -16,8 +16,6 @@ import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.kotlin.mock -import org.mockito.kotlin.verify -import org.mockito.kotlin.whenever import org.robolectric.Robolectric import org.robolectric.RobolectricTestRunner import org.robolectric.Shadows.shadowOf @@ -80,9 +78,9 @@ class CheckoutPresentationTest { @Test fun `present builder forwards connected client to embedded checkout protocol`() { - val rawMessage = """{"jsonrpc":"2.0","method":"ec.messages.change","params":{"checkout":{}}}""" - val client = mock() - whenever(client.process(rawMessage)).thenReturn(null) + var received = false + val client = CheckoutProtocol.Client() + .on(CheckoutProtocol.messagesChange) { received = true } ShopifyCheckoutKit.present("https://shopify.com", activity) { connect(client) @@ -92,10 +90,10 @@ class CheckoutPresentationTest { val dialog = ShadowDialog.getLatestDialog() as CheckoutDialog val webView = dialog.currentWebView() - webView.embeddedCheckoutProtocol().postMessage(rawMessage) + webView.embeddedCheckoutProtocol().postMessage(ecMessagesChangeMessage()) shadowOf(Looper.getMainLooper()).runToEndOfTasks() - verify(client).process(rawMessage) + assertThat(received).isTrue() } @Test @@ -204,9 +202,18 @@ class CheckoutPresentationTest { findViewById(R.id.checkoutKitContainer) .children.first { it is CheckoutWebView } as CheckoutWebView - private fun CheckoutWebView.embeddedCheckoutProtocol(): EmbeddedCheckoutProtocol { + private fun CheckoutWebView.embeddedCheckoutProtocol(): EmbeddedCheckoutProtocolBridge { val field = CheckoutWebView::class.java.getDeclaredField("embeddedCheckoutProtocol") field.isAccessible = true - return field.get(this) as EmbeddedCheckoutProtocol + return field.get(this) as EmbeddedCheckoutProtocolBridge + } + + private fun ecMessagesChangeMessage(): String = + """{"jsonrpc":"2.0","method":"ec.messages.change","params":{"checkout":$CHECKOUT_JSON}}""" + + private companion object { + private const val CHECKOUT_JSON = + """{"id":"chk1","currency":"USD","status":"incomplete","line_items":[],"totals":[],"links":[],"ucp":""" + + """{"payment_handlers":{},"version":"1.0"}}""" } } diff --git a/platforms/android/lib/src/test/java/com/shopify/checkoutkit/CheckoutProtocolTest.kt b/platforms/android/lib/src/test/java/com/shopify/checkoutkit/CheckoutProtocolTest.kt index 029754d0a..dd9a3f1bb 100644 --- a/platforms/android/lib/src/test/java/com/shopify/checkoutkit/CheckoutProtocolTest.kt +++ b/platforms/android/lib/src/test/java/com/shopify/checkoutkit/CheckoutProtocolTest.kt @@ -1,6 +1,22 @@ package com.shopify.checkoutkit import android.os.Looper +import com.shopify.ucp.embedded.checkout.Checkout +import com.shopify.ucp.embedded.checkout.DelegationDescriptor +import com.shopify.ucp.embedded.checkout.DiscountMethod +import com.shopify.ucp.embedded.checkout.EmbeddedCheckoutProtocol +import com.shopify.ucp.embedded.checkout.EmbeddedColorScheme +import com.shopify.ucp.embedded.checkout.EmbeddedTransportConfig +import com.shopify.ucp.embedded.checkout.ErrorResponse +import com.shopify.ucp.embedded.checkout.FulfillmentMethodType +import com.shopify.ucp.embedded.checkout.LineItemQuantity +import com.shopify.ucp.embedded.checkout.LineItemStatus +import com.shopify.ucp.embedded.checkout.Message +import com.shopify.ucp.embedded.checkout.MessageType +import com.shopify.ucp.embedded.checkout.NotificationDescriptor +import com.shopify.ucp.embedded.checkout.OrderLineItem +import com.shopify.ucp.embedded.checkout.Severity +import com.shopify.ucp.embedded.checkout.StatusEnum import kotlinx.serialization.decodeFromString import kotlinx.serialization.json.Json import org.assertj.core.api.Assertions.assertThat @@ -39,6 +55,12 @@ class CheckoutProtocolTest { assertThat(CheckoutProtocol.error.method).isEqualTo("ec.error") } + @Test + fun `window open descriptor has correct method and delegation`() { + assertThat(CheckoutProtocol.windowOpen.method).isEqualTo("ec.window.open_request") + assertThat(CheckoutProtocol.windowOpen.delegation).isEqualTo("window.open") + } + // endregion // region supported protocol methods @@ -46,7 +68,7 @@ class CheckoutProtocolTest { @Test fun `supported protocol methods include ready notifications and delegations`() { assertThat(CheckoutProtocol.supportedProtocolMethods).containsExactlyInAnyOrder( - CheckoutProtocol.READY_METHOD, + EmbeddedCheckoutProtocol.Event.ready, CheckoutProtocol.start.method, CheckoutProtocol.complete.method, CheckoutProtocol.error.method, @@ -140,6 +162,30 @@ class CheckoutProtocolTest { assertThat(received).isEmpty() } + @Test + fun `process does not dispatch custom uncurated descriptor`() { + val received = mutableListOf() + val client = CheckoutProtocol.Client() + .on(NotificationDescriptor("ec.buyer.change")) { checkout -> received.add(checkout) } + + client.process("""{"jsonrpc":"2.0","method":"ec.buyer.change","params":{"checkout":${checkoutJson()}}}""") + shadowOf(Looper.getMainLooper()).runToEndOfTasks() + + assertThat(received).isEmpty() + } + + @Test + fun `process does not dispatch custom descriptor with supported method`() { + val received = mutableListOf() + val client = CheckoutProtocol.Client() + .on(NotificationDescriptor(CheckoutProtocol.start.method)) { checkout -> received.add(checkout) } + + client.process(ecStartMessage()) + shadowOf(Looper.getMainLooper()).runToEndOfTasks() + + assertThat(received).isEmpty() + } + // endregion // region process — return value semantics @@ -218,6 +264,46 @@ class CheckoutProtocolTest { assertThat(handled).isFalse() } + @Test + fun `process does not dispatch custom delegation descriptor with unsupported delegation`() { + var handled = false + val client = CheckoutProtocol.Client() + .on( + DelegationDescriptor( + method = CheckoutProtocol.windowOpen.method, + delegation = "custom.delegation", + ) + ) { + handled = true + WindowOpenResult.Success + } + + val response = client.process(windowOpenMessage(id = "7")) + + assertThat(response).isNull() + assertThat(handled).isFalse() + } + + @Test + fun `process does not dispatch custom delegation descriptor with supported identity`() { + var handled = false + val client = CheckoutProtocol.Client() + .on( + DelegationDescriptor( + method = CheckoutProtocol.windowOpen.method, + delegation = CheckoutProtocol.windowOpen.delegation, + ) + ) { + handled = true + WindowOpenResult.Success + } + + val response = client.process(windowOpenMessage(id = "7")) + + assertThat(response).isNull() + assertThat(handled).isFalse() + } + // endregion // region process — message without checkout in params diff --git a/platforms/android/lib/src/test/java/com/shopify/checkoutkit/CheckoutWebViewTest.kt b/platforms/android/lib/src/test/java/com/shopify/checkoutkit/CheckoutWebViewTest.kt index 52c43eb46..8c1cbe57a 100644 --- a/platforms/android/lib/src/test/java/com/shopify/checkoutkit/CheckoutWebViewTest.kt +++ b/platforms/android/lib/src/test/java/com/shopify/checkoutkit/CheckoutWebViewTest.kt @@ -60,8 +60,8 @@ class CheckoutWebViewTest { assertThat(view.id).isNotNull assertThat(shadowOf(view).webViewClient.javaClass).isEqualTo(CheckoutWebView.CheckoutWebViewClient::class.java) assertThat(shadowOf(view).backgroundColor).isEqualTo(Color.TRANSPARENT) - assertThat(shadowOf(view).getJavascriptInterface(EmbeddedCheckoutProtocol.INTERFACE_NAME).javaClass) - .isEqualTo(EmbeddedCheckoutProtocol::class.java) + assertThat(shadowOf(view).getJavascriptInterface(EmbeddedCheckoutProtocolBridge.INTERFACE_NAME).javaClass) + .isEqualTo(EmbeddedCheckoutProtocolBridge::class.java) } @Test @@ -101,8 +101,8 @@ class CheckoutWebViewTest { val shadow = shadowOf(view) shadow.callOnAttachedToWindow() - assertThat(shadow.getJavascriptInterface(EmbeddedCheckoutProtocol.INTERFACE_NAME).javaClass) - .isEqualTo(EmbeddedCheckoutProtocol::class.java) + assertThat(shadow.getJavascriptInterface(EmbeddedCheckoutProtocolBridge.INTERFACE_NAME).javaClass) + .isEqualTo(EmbeddedCheckoutProtocolBridge::class.java) } @Test @@ -112,7 +112,7 @@ class CheckoutWebViewTest { val shadow = shadowOf(view) shadow.callOnDetachedFromWindow() - assertThat(shadow.getJavascriptInterface(EmbeddedCheckoutProtocol.INTERFACE_NAME)).isNull() + assertThat(shadow.getJavascriptInterface(EmbeddedCheckoutProtocolBridge.INTERFACE_NAME)).isNull() } @Test diff --git a/platforms/android/lib/src/test/java/com/shopify/checkoutkit/ComposedCheckoutCommunicationClientTest.kt b/platforms/android/lib/src/test/java/com/shopify/checkoutkit/ComposedCheckoutCommunicationClientTest.kt deleted file mode 100644 index 2db7f648c..000000000 --- a/platforms/android/lib/src/test/java/com/shopify/checkoutkit/ComposedCheckoutCommunicationClientTest.kt +++ /dev/null @@ -1,129 +0,0 @@ -package com.shopify.checkoutkit - -import org.assertj.core.api.Assertions.assertThat -import org.junit.Test - -class ComposedCheckoutCommunicationClientTest { - @Test - fun `run if unhandled returns merchant response and skips default`() { - val merchant = RecordingClient(response = MERCHANT_RESPONSE) - val default = RecordingClient(response = DEFAULT_RESPONSE) - val client = ComposedCheckoutCommunicationClient( - merchant = merchant, - defaults = mapOf( - CheckoutProtocol.windowOpen.method to DefaultClientBinding( - client = default, - policy = DefaultClientPolicy.RunIfUnhandled, - ), - ), - ) - - val response = client.process(WINDOW_OPEN_REQUEST) - - assertThat(response).isEqualTo(MERCHANT_RESPONSE) - assertThat(merchant.messages).containsExactly(WINDOW_OPEN_REQUEST) - assertThat(default.messages).isEmpty() - } - - @Test - fun `run if unhandled returns default response when merchant has no response`() { - val merchant = RecordingClient(response = null) - val default = RecordingClient(response = DEFAULT_RESPONSE) - val client = ComposedCheckoutCommunicationClient( - merchant = merchant, - defaults = mapOf( - CheckoutProtocol.windowOpen.method to DefaultClientBinding( - client = default, - policy = DefaultClientPolicy.RunIfUnhandled, - ), - ), - ) - - val response = client.process(WINDOW_OPEN_REQUEST) - - assertThat(response).isEqualTo(DEFAULT_RESPONSE) - assertThat(merchant.messages).containsExactly(WINDOW_OPEN_REQUEST) - assertThat(default.messages).containsExactly(WINDOW_OPEN_REQUEST) - } - - @Test - fun `always run after merchant runs default and keeps merchant response`() { - val merchant = RecordingClient(response = MERCHANT_RESPONSE) - val default = RecordingClient(response = DEFAULT_RESPONSE) - val client = ComposedCheckoutCommunicationClient( - merchant = merchant, - defaults = mapOf( - CheckoutProtocol.error.method to DefaultClientBinding( - client = default, - policy = DefaultClientPolicy.AlwaysRunAfterMerchant, - ), - ), - ) - - val response = client.process(ERROR_NOTIFICATION) - - assertThat(response).isEqualTo(MERCHANT_RESPONSE) - assertThat(merchant.messages).containsExactly(ERROR_NOTIFICATION) - assertThat(default.messages).containsExactly(ERROR_NOTIFICATION) - } - - @Test - fun `always run after merchant returns default response when merchant has no response`() { - val merchant = RecordingClient(response = null) - val default = RecordingClient(response = DEFAULT_RESPONSE) - val client = ComposedCheckoutCommunicationClient( - merchant = merchant, - defaults = mapOf( - CheckoutProtocol.error.method to DefaultClientBinding( - client = default, - policy = DefaultClientPolicy.AlwaysRunAfterMerchant, - ), - ), - ) - - val response = client.process(ERROR_NOTIFICATION) - - assertThat(response).isEqualTo(DEFAULT_RESPONSE) - assertThat(merchant.messages).containsExactly(ERROR_NOTIFICATION) - assertThat(default.messages).containsExactly(ERROR_NOTIFICATION) - } - - @Test - fun `default binding only runs for matching method`() { - val default = RecordingClient(response = DEFAULT_RESPONSE) - val client = ComposedCheckoutCommunicationClient( - merchant = null, - defaults = mapOf( - CheckoutProtocol.windowOpen.method to DefaultClientBinding( - client = default, - policy = DefaultClientPolicy.RunIfUnhandled, - ), - ), - ) - - val response = client.process(ERROR_NOTIFICATION) - - assertThat(response).isNull() - assertThat(default.messages).isEmpty() - } - - private class RecordingClient( - private val response: String?, - ) : CheckoutCommunicationClient { - val messages = mutableListOf() - - override fun process(message: String): String? { - messages += message - return response - } - } - - private companion object { - private const val MERCHANT_RESPONSE = """{"jsonrpc":"2.0","id":"merchant","result":{}}""" - private const val DEFAULT_RESPONSE = """{"jsonrpc":"2.0","id":"default","result":{}}""" - private const val WINDOW_OPEN_REQUEST = - """{"jsonrpc":"2.0","method":"ec.window.open_request","id":"1","params":{"url":"https://example.com"}}""" - private const val ERROR_NOTIFICATION = - """{"jsonrpc":"2.0","method":"ec.error","params":{"error":{"messages":[]}}}""" - } -} diff --git a/platforms/android/lib/src/test/java/com/shopify/checkoutkit/ComposedCheckoutProtocolClientTest.kt b/platforms/android/lib/src/test/java/com/shopify/checkoutkit/ComposedCheckoutProtocolClientTest.kt new file mode 100644 index 000000000..fdc317075 --- /dev/null +++ b/platforms/android/lib/src/test/java/com/shopify/checkoutkit/ComposedCheckoutProtocolClientTest.kt @@ -0,0 +1,142 @@ +package com.shopify.checkoutkit + +import android.os.Looper +import org.assertj.core.api.Assertions.assertThat +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner +import org.robolectric.Shadows.shadowOf + +@RunWith(RobolectricTestRunner::class) +class ComposedCheckoutProtocolClientTest { + @Test + fun `run if unhandled returns merchant response and skips default`() { + var defaultHandled = false + val merchant = CheckoutProtocol.Client() + .on(CheckoutProtocol.windowOpen) { WindowOpenResult.Rejected(reason = "merchant") } + val default = CheckoutProtocol.Client() + .on(CheckoutProtocol.windowOpen) { + defaultHandled = true + WindowOpenResult.Rejected(reason = "default") + } + val client = ComposedCheckoutProtocolClient( + merchant = merchant, + defaults = mapOf( + CheckoutProtocol.windowOpen.method to DefaultClientBinding( + client = default, + policy = DefaultClientPolicy.RunIfUnhandled, + ), + ), + ) + + val response = client.process(WINDOW_OPEN_REQUEST) + + assertThat(response).contains("merchant") + assertThat(defaultHandled).isFalse() + } + + @Test + fun `run if unhandled returns default response when merchant has no handler`() { + var defaultHandled = false + val merchant = CheckoutProtocol.Client() + val default = CheckoutProtocol.Client() + .on(CheckoutProtocol.windowOpen) { + defaultHandled = true + WindowOpenResult.Rejected(reason = "default") + } + val client = ComposedCheckoutProtocolClient( + merchant = merchant, + defaults = mapOf( + CheckoutProtocol.windowOpen.method to DefaultClientBinding( + client = default, + policy = DefaultClientPolicy.RunIfUnhandled, + ), + ), + ) + + val response = client.process(WINDOW_OPEN_REQUEST) + + assertThat(response).contains("default") + assertThat(defaultHandled).isTrue() + } + + @Test + fun `always run after merchant runs both notification handlers`() { + var merchantHandled = false + var defaultHandled = false + val merchant = CheckoutProtocol.Client() + .on(CheckoutProtocol.error) { merchantHandled = true } + val default = CheckoutProtocol.Client() + .on(CheckoutProtocol.error) { defaultHandled = true } + val client = ComposedCheckoutProtocolClient( + merchant = merchant, + defaults = mapOf( + CheckoutProtocol.error.method to DefaultClientBinding( + client = default, + policy = DefaultClientPolicy.AlwaysRunAfterMerchant, + ), + ), + ) + + val response = client.process(ERROR_NOTIFICATION) + shadowOf(Looper.getMainLooper()).runToEndOfTasks() + + assertThat(response).isNull() + assertThat(merchantHandled).isTrue() + assertThat(defaultHandled).isTrue() + } + + @Test + fun `always run after merchant runs default when merchant has no handler`() { + var defaultHandled = false + val merchant = CheckoutProtocol.Client() + val default = CheckoutProtocol.Client() + .on(CheckoutProtocol.error) { defaultHandled = true } + val client = ComposedCheckoutProtocolClient( + merchant = merchant, + defaults = mapOf( + CheckoutProtocol.error.method to DefaultClientBinding( + client = default, + policy = DefaultClientPolicy.AlwaysRunAfterMerchant, + ), + ), + ) + + val response = client.process(ERROR_NOTIFICATION) + shadowOf(Looper.getMainLooper()).runToEndOfTasks() + + assertThat(response).isNull() + assertThat(defaultHandled).isTrue() + } + + @Test + fun `default binding only runs for matching method`() { + var defaultHandled = false + val default = CheckoutProtocol.Client() + .on(CheckoutProtocol.windowOpen) { + defaultHandled = true + WindowOpenResult.Success + } + val client = ComposedCheckoutProtocolClient( + merchant = null, + defaults = mapOf( + CheckoutProtocol.windowOpen.method to DefaultClientBinding( + client = default, + policy = DefaultClientPolicy.RunIfUnhandled, + ), + ), + ) + + val response = client.process(ERROR_NOTIFICATION) + + assertThat(response).isNull() + assertThat(defaultHandled).isFalse() + } + + private companion object { + private const val WINDOW_OPEN_REQUEST = + """{"jsonrpc":"2.0","method":"ec.window.open_request","id":"1","params":{"url":"https://example.com"}}""" + private const val ERROR_NOTIFICATION = + """{"jsonrpc":"2.0","method":"ec.error","params":{"error":{"ucp":{"version":"2026-04-08","status":"error"},"messages":[]}}}""" + } +} diff --git a/platforms/android/lib/src/test/java/com/shopify/checkoutkit/EmbeddedCheckoutProtocolTest.kt b/platforms/android/lib/src/test/java/com/shopify/checkoutkit/EmbeddedCheckoutProtocolBridgeTest.kt similarity index 91% rename from platforms/android/lib/src/test/java/com/shopify/checkoutkit/EmbeddedCheckoutProtocolTest.kt rename to platforms/android/lib/src/test/java/com/shopify/checkoutkit/EmbeddedCheckoutProtocolBridgeTest.kt index ed840281f..a5f31bc74 100644 --- a/platforms/android/lib/src/test/java/com/shopify/checkoutkit/EmbeddedCheckoutProtocolTest.kt +++ b/platforms/android/lib/src/test/java/com/shopify/checkoutkit/EmbeddedCheckoutProtocolBridgeTest.kt @@ -25,12 +25,12 @@ import org.robolectric.RobolectricTestRunner import org.robolectric.Shadows.shadowOf @RunWith(RobolectricTestRunner::class) -class EmbeddedCheckoutProtocolTest { +class EmbeddedCheckoutProtocolBridgeTest { private lateinit var activity: ComponentActivity private lateinit var viewSpy: CheckoutWebView private lateinit var mockListener: CheckoutWebViewListener - private lateinit var ecp: EmbeddedCheckoutProtocol + private lateinit var ecp: EmbeddedCheckoutProtocolBridge @Before fun setUp() { @@ -44,7 +44,7 @@ class EmbeddedCheckoutProtocolTest { viewSpy = Mockito.spy(CheckoutWebView(activity)) mockListener = mock() whenever(viewSpy.getListener()).thenReturn(mockListener) - ecp = EmbeddedCheckoutProtocol(viewSpy) + ecp = EmbeddedCheckoutProtocolBridge(viewSpy) } // region ec.ready @@ -385,23 +385,22 @@ class EmbeddedCheckoutProtocolTest { @Test fun `ec start bubbles up to client`() { - val rawMessage = """{"jsonrpc":"2.0","method":"ec.start","params":{"checkout":{}}}""" - val client = mock() + var received = false + val client = CheckoutProtocol.Client() + .on(CheckoutProtocol.start) { received = true } ecp.setClient(client) - ecp.postMessage(rawMessage) + ecp.postMessage(ecStartMessage()) shadowOf(Looper.getMainLooper()).runToEndOfTasks() - verify(client).process(rawMessage) + assertThat(received).isTrue() } @Test fun `ec start sends no response to checkout`() { - val client = mock() - whenever(client.process(any())).thenReturn(null) - ecp.setClient(client) + ecp.setClient(CheckoutProtocol.Client()) - ecp.postMessage("""{"jsonrpc":"2.0","method":"ec.start","params":{"checkout":{}}}""") + ecp.postMessage(ecStartMessage()) shadowOf(Looper.getMainLooper()).runToEndOfTasks() verify(viewSpy, never()).evaluateJavascript(any(), any()) @@ -414,25 +413,29 @@ class EmbeddedCheckoutProtocolTest { @Test fun `ec error is forwarded to client regardless of severity`() { val rawMessage = ecErrorMessage(severity = "recoverable") - val client = mock() + var received = false + val client = CheckoutProtocol.Client() + .on(CheckoutProtocol.error) { received = true } ecp.setClient(client) ecp.postMessage(rawMessage) shadowOf(Looper.getMainLooper()).runToEndOfTasks() - verify(client).process(rawMessage) + assertThat(received).isTrue() } @Test fun `ec error with unrecoverable severity dismisses via listener`() { val rawMessage = ecErrorMessage(severity = "unrecoverable") - val client = mock() + var received = false + val client = CheckoutProtocol.Client() + .on(CheckoutProtocol.error) { received = true } ecp.setClient(client) ecp.postMessage(rawMessage) shadowOf(Looper.getMainLooper()).runToEndOfTasks() - verify(client).process(rawMessage) + assertThat(received).isTrue() val captor = argumentCaptor() verify(mockListener).onCheckoutViewFailedWithError(captor.capture()) assertThat(captor.firstValue).isInstanceOf(ClientException::class.java) @@ -454,16 +457,17 @@ class EmbeddedCheckoutProtocolTest { } @Test - fun `ec error with unrecoverable severity dismisses even when client returns response`() { + fun `ec error with unrecoverable severity dismisses even when merchant handles error`() { val rawMessage = ecErrorMessage(severity = "unrecoverable") - val client = mock() - whenever(client.process(rawMessage)).thenReturn("""{"jsonrpc":"2.0","id":null,"result":{}}""") + var received = false + val client = CheckoutProtocol.Client() + .on(CheckoutProtocol.error) { received = true } ecp.setClient(client) ecp.postMessage(rawMessage) shadowOf(Looper.getMainLooper()).runToEndOfTasks() - verify(client).process(rawMessage) + assertThat(received).isTrue() verify(mockListener).onCheckoutViewFailedWithError( argThat { this is ClientException }, ) @@ -472,7 +476,7 @@ class EmbeddedCheckoutProtocolTest { @Test fun `ec error with recoverable severity does not dismiss`() { val rawMessage = ecErrorMessage(severity = "recoverable") - ecp.setClient(mock()) + ecp.setClient(CheckoutProtocol.Client()) ecp.postMessage(rawMessage) shadowOf(Looper.getMainLooper()).runToEndOfTasks() @@ -483,7 +487,7 @@ class EmbeddedCheckoutProtocolTest { @Test fun `ec error with requires_buyer_input severity does not dismiss`() { val rawMessage = ecErrorMessage(severity = "requires_buyer_input") - ecp.setClient(mock()) + ecp.setClient(CheckoutProtocol.Client()) ecp.postMessage(rawMessage) shadowOf(Looper.getMainLooper()).runToEndOfTasks() @@ -494,7 +498,7 @@ class EmbeddedCheckoutProtocolTest { @Test fun `ec error with requires_buyer_review severity does not dismiss`() { val rawMessage = ecErrorMessage(severity = "requires_buyer_review") - ecp.setClient(mock()) + ecp.setClient(CheckoutProtocol.Client()) ecp.postMessage(rawMessage) shadowOf(Looper.getMainLooper()).runToEndOfTasks() @@ -510,7 +514,7 @@ class EmbeddedCheckoutProtocolTest { |] """.trimMargin() val rawMessage = ecErrorMessageWithMessages(messages) - ecp.setClient(mock()) + ecp.setClient(CheckoutProtocol.Client()) ecp.postMessage(rawMessage) shadowOf(Looper.getMainLooper()).runToEndOfTasks() @@ -539,14 +543,15 @@ class EmbeddedCheckoutProtocolTest { @Test fun `ec complete is delegated to client`() { - val rawMessage = """{"jsonrpc":"2.0","method":"ec.complete","params":{"checkout":{}}}""" - val client = mock() + var received = false + val client = CheckoutProtocol.Client() + .on(CheckoutProtocol.complete) { received = true } ecp.setClient(client) - ecp.postMessage(rawMessage) + ecp.postMessage(ecCompleteMessage()) shadowOf(Looper.getMainLooper()).runToEndOfTasks() - verify(client).process(rawMessage) + assertThat(received).isTrue() } @Test @@ -573,25 +578,26 @@ class EmbeddedCheckoutProtocolTest { } @Test - fun `non-null client response for supported request is sent back to checkout`() { + fun `typed delegation response for supported request is sent back to checkout`() { val rawMessage = windowOpenRequest(id = "\"9\"", url = "https://example.com") - val clientResponse = """{"jsonrpc":"2.0","id":"9","result":{"data":"ok"}}""" - val client = mock() - whenever(client.process(rawMessage)).thenReturn(clientResponse) + val client = CheckoutProtocol.Client() + .on(CheckoutProtocol.windowOpen) { + WindowOpenResult.Rejected(reason = "merchant says no") + } ecp.setClient(client) val js = captureEvaluatedJs { ecp.postMessage(rawMessage) } assertThat(js).contains("window.EmbeddedCheckoutProtocol") assertThat(js).contains(".postMessage(") - assertThat(js).contains("ok") + assertThat(js).contains("merchant says no") } @Test fun `null client response for supported notification sends nothing to checkout`() { - val rawMessage = """{"jsonrpc":"2.0","method":"ec.messages.change","params":{"checkout":{}}}""" - val client = mock() - whenever(client.process(rawMessage)).thenReturn(null) + val rawMessage = ecMessagesChangeMessage() + val client = CheckoutProtocol.Client() + .on(CheckoutProtocol.messagesChange) { /* no-op */ } ecp.setClient(client) ecp.postMessage(rawMessage) @@ -691,19 +697,16 @@ class EmbeddedCheckoutProtocolTest { """{"jsonrpc":"2.0","method":"ec.window.open_request","id":$id,"params":{"url":"$url"}}""" private fun assertIgnoredByBridge(rawMessage: String) { - val client = mock() - ecp.setClient(client) + ecp.setClient(CheckoutProtocol.Client()) ecp.postMessage(rawMessage) shadowOf(Looper.getMainLooper()).runToEndOfTasks() verify(viewSpy, never()).evaluateJavascript(any(), any()) - verify(client, never()).process(any()) } private fun assertMethodNotFoundByBridge(rawMessage: String, expectedId: String) { - val client = mock() - ecp.setClient(client) + ecp.setClient(CheckoutProtocol.Client()) val js = captureEvaluatedJs { ecp.postMessage(rawMessage) @@ -713,7 +716,6 @@ class EmbeddedCheckoutProtocolTest { assertThat(js).contains("-32601") assertThat(js).contains("Method not found") assertThat(js).contains(expectedId) - verify(client, never()).process(any()) } private fun ecErrorMessage(severity: String): String { @@ -727,6 +729,12 @@ class EmbeddedCheckoutProtocolTest { return """{"jsonrpc":"2.0","method":"ec.error","params":{"error":$error}}""" } + private fun ecStartMessage(): String = + """{"jsonrpc":"2.0","method":"ec.start","params":{"checkout":${checkoutJson()}}}""" + + private fun ecMessagesChangeMessage(): String = + """{"jsonrpc":"2.0","method":"ec.messages.change","params":{"checkout":${checkoutJson()}}}""" + private fun ecCompleteMessage(): String = """{"jsonrpc":"2.0","method":"ec.complete","params":{"checkout":${checkoutJson(status = "completed")}}}""" diff --git a/platforms/android/samples/CheckoutKitAndroidDemo/app/build.gradle b/platforms/android/samples/CheckoutKitAndroidDemo/app/build.gradle index 92dad4e37..c07f13762 100644 --- a/platforms/android/samples/CheckoutKitAndroidDemo/app/build.gradle +++ b/platforms/android/samples/CheckoutKitAndroidDemo/app/build.gradle @@ -119,47 +119,47 @@ dependencies { // Checkout Kit implementation project(':lib') - implementation "androidx.appcompat:appcompat:$app_compat_version" - implementation "androidx.browser:browser:$browser_version" - implementation "androidx.core:core-ktx:$core_version" - implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version" - implementation "androidx.activity:activity-compose:$activity_version" - implementation "androidx.compose.ui:ui:$compose_ui_version" - implementation "androidx.compose.ui:ui-tooling-preview:$compose_ui_version" - implementation "androidx.compose.material:material:$compose_ui_version" - implementation "androidx.navigation:navigation-compose:$nav_version" - implementation "androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycle_version" - implementation "androidx.datastore:datastore-preferences:$datastore_version" - implementation "io.insert-koin:koin-androidx-compose:$koin_android_compose_version" - implementation "androidx.room:room-runtime:$room_version" - implementation "androidx.compose.material3:material3-android:$material3_version" - implementation "androidx.paging:paging-compose-android:$paging_version" - - annotationProcessor "androidx.room:room-compiler:$room_version" - ksp "androidx.room:room-compiler:$room_version" + implementation libs.androidx.appcompat + implementation libs.androidx.browser + implementation libs.androidx.core.ktx + implementation libs.androidx.lifecycle.runtime.ktx + implementation libs.androidx.activity.compose + implementation libs.androidx.compose.ui + implementation libs.androidx.compose.ui.tooling.preview + implementation libs.androidx.compose.material + implementation libs.androidx.navigation.compose + implementation libs.androidx.lifecycle.viewmodel.compose + implementation libs.androidx.datastore.preferences + implementation libs.koin.androidx.compose + implementation libs.androidx.room.runtime + implementation libs.androidx.compose.material3 + implementation libs.androidx.paging.compose + + annotationProcessor libs.androidx.room.compiler + ksp libs.androidx.room.compiler // Apollo GraphQL client for the Shopify Storefront API - implementation "com.apollographql.apollo:apollo-runtime:$apollo_version" - implementation "com.apollographql.cache:normalized-cache:$apollo_cache_version" + implementation libs.apollo.runtime + implementation libs.apollo.cache.normalized // Image loading library - implementation "io.coil-kt:coil-compose:$coil_version" + implementation libs.coil.compose // Logging - implementation "com.jakewharton.timber:timber:$timber_version" + implementation libs.timber // Serialization - implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlin_serialization_version" + implementation libs.kotlinx.serialization.json.demo - debugImplementation "androidx.compose.ui:ui-tooling:$compose_ui_version" - debugImplementation "androidx.compose.ui:ui-test-manifest:$compose_ui_version" + debugImplementation libs.androidx.compose.ui.tooling + debugImplementation libs.androidx.compose.ui.test.manifest } apollo { service("storefront") { packageName.set("com.shopify.checkout_kit_android_demo.graphql") srcDir("src/main/graphql") - plugin("com.apollographql.cache:normalized-cache-apollo-compiler-plugin:$apollo_cache_version") + plugin("com.apollographql.cache:normalized-cache-apollo-compiler-plugin:${libs.versions.apolloCache.get()}") pluginArgument("com.apollographql.cache.packageName", packageName.get()) } } diff --git a/platforms/android/samples/CheckoutKitAndroidDemo/app/src/main/java/com/shopify/checkout_kit_android_demo/cart/CartViewModel.kt b/platforms/android/samples/CheckoutKitAndroidDemo/app/src/main/java/com/shopify/checkout_kit_android_demo/cart/CartViewModel.kt index 0482de470..97f818eab 100644 --- a/platforms/android/samples/CheckoutKitAndroidDemo/app/src/main/java/com/shopify/checkout_kit_android_demo/cart/CartViewModel.kt +++ b/platforms/android/samples/CheckoutKitAndroidDemo/app/src/main/java/com/shopify/checkout_kit_android_demo/cart/CartViewModel.kt @@ -19,11 +19,11 @@ import com.shopify.checkout_kit_android_demo.common.navigation.Screen import com.shopify.checkout_kit_android_demo.settings.PreferencesManager import com.shopify.checkout_kit_android_demo.settings.authentication.data.CustomerRepository import com.shopify.checkout_kit_android_demo.settings.data.WindowOpenHandler -import com.shopify.checkoutkit.Checkout import com.shopify.checkoutkit.CheckoutProtocol import com.shopify.checkoutkit.CheckoutException import com.shopify.checkoutkit.ShopifyCheckoutKit import com.shopify.checkoutkit.WindowOpenResult +import com.shopify.ucp.embedded.checkout.Checkout import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow @@ -122,7 +122,7 @@ class CartViewModel( mainActivity.onGeolocationPermissionsHidePrompt() } } - connect(buildCommunicationClient(navController, activity, windowOpenHandler)) + connect(buildProtocolClient(navController, activity, windowOpenHandler)) } } @@ -168,7 +168,7 @@ class CartViewModel( logger.log("Checkout canceled") } - private fun buildCommunicationClient( + private fun buildProtocolClient( navController: NavController, activity: ComponentActivity, windowOpenHandler: WindowOpenHandler, diff --git a/platforms/android/samples/CheckoutKitAndroidDemo/app/src/main/java/com/shopify/checkout_kit_android_demo/common/logs/Logger.kt b/platforms/android/samples/CheckoutKitAndroidDemo/app/src/main/java/com/shopify/checkout_kit_android_demo/common/logs/Logger.kt index 75447de0c..7322b5283 100644 --- a/platforms/android/samples/CheckoutKitAndroidDemo/app/src/main/java/com/shopify/checkout_kit_android_demo/common/logs/Logger.kt +++ b/platforms/android/samples/CheckoutKitAndroidDemo/app/src/main/java/com/shopify/checkout_kit_android_demo/common/logs/Logger.kt @@ -1,7 +1,7 @@ package com.shopify.checkout_kit_android_demo.common.logs -import com.shopify.checkoutkit.Checkout import com.shopify.checkoutkit.CheckoutException +import com.shopify.ucp.embedded.checkout.Checkout import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch import kotlinx.serialization.encodeToString diff --git a/platforms/android/samples/CheckoutKitAndroidDemo/build.gradle b/platforms/android/samples/CheckoutKitAndroidDemo/build.gradle index fb4b44df4..484dde196 100644 --- a/platforms/android/samples/CheckoutKitAndroidDemo/build.gradle +++ b/platforms/android/samples/CheckoutKitAndroidDemo/build.gradle @@ -1,30 +1,10 @@ -buildscript { - ext { - activity_version = '1.13.0' - apollo_version = '5.0.0' - apollo_cache_version = '1.0.3' - app_compat_version = '1.7.1' - browser_version = '1.10.0' - compose_ui_version = '1.10.6' - coil_version = '2.7.0' - core_version = '1.18.0' - datastore_version = '1.2.1' - koin_android_compose_version = '4.2.1' - kotlin_serialization_version = '1.11.0' - lifecycle_version = '2.10.0' - material3_version = '1.4.0' - nav_version = '2.9.7' - paging_version = '3.5.0' - room_version = '2.8.4' - timber_version = '5.0.1' - } -} plugins { - id 'com.android.application' version '9.2.1' apply false - id 'org.jetbrains.kotlin.android' version '2.3.21' apply false - id 'org.jetbrains.kotlin.plugin.serialization' version '2.3.21' apply false - id 'io.gitlab.arturbosch.detekt' version '1.23.8' apply false - id 'com.google.devtools.ksp' version '2.3.8' apply false - id 'org.jetbrains.kotlin.plugin.compose' version '2.3.21' apply false - id 'com.apollographql.apollo' version "$apollo_version" apply false + alias(libs.plugins.android.application) apply false + alias(libs.plugins.kotlin.android) apply false + alias(libs.plugins.kotlin.jvm) apply false + alias(libs.plugins.kotlin.serialization) apply false + alias(libs.plugins.detekt) apply false + alias(libs.plugins.ksp) apply false + alias(libs.plugins.kotlin.compose) apply false + alias(libs.plugins.apollo) apply false } diff --git a/platforms/android/samples/CheckoutKitAndroidDemo/settings.gradle b/platforms/android/samples/CheckoutKitAndroidDemo/settings.gradle index 65fc1f9bc..00b46edd6 100644 --- a/platforms/android/samples/CheckoutKitAndroidDemo/settings.gradle +++ b/platforms/android/samples/CheckoutKitAndroidDemo/settings.gradle @@ -18,8 +18,15 @@ dependencyResolutionManagement { google() mavenCentral() } + versionCatalogs { + libs { + from(files('../../gradle/libs.versions.toml')) + } + } } rootProject.name = "CheckoutKitAndroidDemo" include ':app' +include ':embedded-checkout-protocol' include ':lib' +project(':embedded-checkout-protocol').projectDir = new File(settingsDir, '../../../../protocol/languages/kotlin/embedded-checkout-protocol') project(':lib').projectDir = new File(settingsDir, '../../lib') diff --git a/platforms/android/settings.gradle b/platforms/android/settings.gradle index 1d9558f65..247447593 100644 --- a/platforms/android/settings.gradle +++ b/platforms/android/settings.gradle @@ -16,4 +16,6 @@ dependencyResolutionManagement { } rootProject.name = "checkout-kit" +include ':embedded-checkout-protocol' +project(':embedded-checkout-protocol').projectDir = file('../../protocol/languages/kotlin/embedded-checkout-protocol') include ':lib' diff --git a/platforms/react-native/CONTRIBUTING.md b/platforms/react-native/CONTRIBUTING.md index 4ef13f1d1..680599d6a 100644 --- a/platforms/react-native/CONTRIBUTING.md +++ b/platforms/react-native/CONTRIBUTING.md @@ -69,7 +69,7 @@ The flag is opt-in because the in-repo SDKs change as we develop. Default publis ### How it works -- **Android**: every `--local` invocation runs `scripts/publish_android_snapshot`, which publishes the current local `com.shopify:checkout-kit` version to `~/.m2/` via the lib's own Gradle wrapper. The sample's `build.gradle` declares `mavenLocal()` first in the repository order, so the freshly-published AAR is picked up before falling through to Maven Central. +- **Android**: every `--local` invocation runs `scripts/publish_android_snapshot`, which publishes the current local `com.shopify:embedded-checkout-protocol` and `com.shopify:checkout-kit` versions to `~/.m2/` via the Android Gradle build. The sample's `build.gradle` uses exclusive Maven Local resolution for those modules, so validation fails rather than falling back to a published artifact if the local publish is missing. - **iOS**: with `--local`, the Podfile injects `pod "ShopifyCheckoutKit", :path => "../../../../"` (the repo root, where `ShopifyCheckoutKit.podspec` lives). CocoaPods reads Swift sources from `platforms/swift/` directly. Internally `--local` exports `USE_LOCAL_SDK=1` before invoking the underlying tool. Setting the env var directly works too: @@ -85,8 +85,8 @@ CI uses the default (published) path naturally — no special flag handling. Kee ### Gotchas - **iOS**: `dev rn ios` runs `pod install` before launching, so dropping or adding `--local` will re-resolve the pods as needed. You can still run `dev rn pod-install [--local]` directly when you only want to refresh pods. -- **Android (CLI)**: covered automatically by the publish script — every `--local` run re-publishes the AAR before building. -- **Android (Android Studio)**: when running the sample via Android Studio's Run button after editing `platforms/android/lib/src/**`, run `platforms/react-native/scripts/publish_android_snapshot` once manually (with `USE_LOCAL_SDK=1`) or run `dev rn android --local` from a terminal to refresh `~/.m2/`. +- **Android (CLI)**: covered automatically by the publish script — every `--local` run re-publishes the local Android and Kotlin protocol artifacts before building. +- **Android (Android Studio)**: when running the sample via Android Studio's Run button after editing `platforms/android/**` or `protocol/languages/kotlin/**`, run `platforms/react-native/scripts/publish_android_snapshot` once manually (with `USE_LOCAL_SDK=1`) or run `dev rn android --local` from a terminal to refresh `~/.m2/`. - The flag affects **only the RN build**. The standalone Swift and Android SDK builds (`dev android build`, `swift build`, etc.) are unaffected. ## Optional: Speed up builds with sccache diff --git a/platforms/react-native/modules/@shopify/checkout-kit-react-native/android/build.gradle b/platforms/react-native/modules/@shopify/checkout-kit-react-native/android/build.gradle index a34630302..79655de80 100644 --- a/platforms/react-native/modules/@shopify/checkout-kit-react-native/android/build.gradle +++ b/platforms/react-native/modules/@shopify/checkout-kit-react-native/android/build.gradle @@ -106,7 +106,6 @@ android { } -def useLocalSdk = (System.getenv("USE_LOCAL_SDK") ?: "0") == "1" def packageJsonFile = file("../package.json") def packageJson = new groovy.json.JsonSlurper().parse(packageJsonFile) def shopifySdkVersion = packageJson.checkoutKit?.nativeSdkVersions?.android as String @@ -118,16 +117,6 @@ if (shopifySdkVersion == null || shopifySdkVersion.trim().isEmpty()) { def shopifySdkArtifact = "com.shopify:checkout-kit:$shopifySdkVersion" repositories { - if (useLocalSdk) { - exclusiveContent { - forRepository { - mavenLocal() - } - filter { - includeModule("com.shopify", "checkout-kit") - } - } - } mavenCentral() google() } diff --git a/platforms/react-native/modules/@shopify/checkout-kit-react-native/android/src/test/java/com/shopify/reactnative/checkoutkit/ProtocolRelayTest.kt b/platforms/react-native/modules/@shopify/checkout-kit-react-native/android/src/test/java/com/shopify/reactnative/checkoutkit/ProtocolRelayTest.kt index 4ff53a95f..3e91ee794 100644 --- a/platforms/react-native/modules/@shopify/checkout-kit-react-native/android/src/test/java/com/shopify/reactnative/checkoutkit/ProtocolRelayTest.kt +++ b/platforms/react-native/modules/@shopify/checkout-kit-react-native/android/src/test/java/com/shopify/reactnative/checkoutkit/ProtocolRelayTest.kt @@ -2,6 +2,7 @@ package com.shopify.reactnative.checkoutkit import android.os.Looper import android.util.Log +import com.shopify.checkoutkit.CheckoutProtocol import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.encodeToString @@ -44,7 +45,7 @@ class ProtocolRelayTest { DispatchCallback { json -> captured = json }, ) - client.process(ecStartNotificationFixture) + client.processForTest(ecStartNotificationFixture) shadowOf(Looper.getMainLooper()).runToEndOfTasks() val json = captured @@ -73,7 +74,7 @@ class ProtocolRelayTest { DispatchCallback { throw failure }, ) - client.process(ecStartNotificationFixture) + client.processForTest(ecStartNotificationFixture) shadowOf(Looper.getMainLooper()).runToEndOfTasks() val logs = ShadowLog.getLogsForTag("ShopifyCheckoutKit") @@ -100,7 +101,7 @@ class ProtocolRelayTest { DispatchCallback { json -> captured = json }, ) - client.process(checkoutNotificationFixture(method)) + client.processForTest(checkoutNotificationFixture(method)) shadowOf(Looper.getMainLooper()).runToEndOfTasks() val json = captured @@ -119,7 +120,7 @@ class ProtocolRelayTest { DispatchCallback { json -> captured = json }, ) - client.process(ecErrorNotificationFixture) + client.processForTest(ecErrorNotificationFixture) shadowOf(Looper.getMainLooper()).runToEndOfTasks() val json = captured @@ -141,7 +142,7 @@ class ProtocolRelayTest { DispatchCallback { json -> captured = json }, ) - client.process(ecStartNotificationFixture) + client.processForTest(ecStartNotificationFixture) shadowOf(Looper.getMainLooper()).runToEndOfTasks() assertThat(captured).isNull() @@ -157,13 +158,25 @@ class ProtocolRelayTest { ) dispatch.release() - client.process(ecStartNotificationFixture) + client.processForTest(ecStartNotificationFixture) shadowOf(Looper.getMainLooper()).runToEndOfTasks() assertThat(captured).isNull() } } +private fun CheckoutProtocol.Client.processForTest(message: String): String? { + // `process` is intentionally internal; tests invoke it reflectively to simulate bridge delivery. + val process = javaClass.methods + .filter { it.parameterTypes.contentEquals(arrayOf(String::class.java)) } + .firstOrNull { it.name == "process" } + ?: javaClass.methods.single { + it.name.startsWith("process\$") && + it.parameterTypes.contentEquals(arrayOf(String::class.java)) + } + return process.invoke(this, message) as String? +} + @Serializable private data class SnakePayload( @SerialName("continue_url") val continueUrl: String, diff --git a/platforms/react-native/sample/android/build.gradle b/platforms/react-native/sample/android/build.gradle index 560340ca5..f39eb2c3d 100644 --- a/platforms/react-native/sample/android/build.gradle +++ b/platforms/react-native/sample/android/build.gradle @@ -39,6 +39,7 @@ allprojects { mavenLocal() } filter { + includeModule("com.shopify", "embedded-checkout-protocol") includeModule("com.shopify", "checkout-kit") } } diff --git a/platforms/react-native/scripts/publish_android_snapshot b/platforms/react-native/scripts/publish_android_snapshot index ce7c23a84..967d5016a 100755 --- a/platforms/react-native/scripts/publish_android_snapshot +++ b/platforms/react-native/scripts/publish_android_snapshot @@ -10,5 +10,5 @@ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" ANDROID_SDK_PATH="$SCRIPT_DIR/../../android" cd "$ANDROID_SDK_PATH" -./gradlew :lib:publishToMavenLocal -q -echo "publish_android_snapshot: published com.shopify:checkout-kit to ~/.m2/" +./gradlew :embedded-checkout-protocol:publishToMavenLocal :lib:publishToMavenLocal -q +echo "publish_android_snapshot: published com.shopify:embedded-checkout-protocol and com.shopify:checkout-kit to ~/.m2/" diff --git a/protocol/languages/kotlin/.gitignore b/protocol/languages/kotlin/.gitignore new file mode 100644 index 000000000..67bcc2f72 --- /dev/null +++ b/protocol/languages/kotlin/.gitignore @@ -0,0 +1,2 @@ +.gradle/ +build/ diff --git a/protocol/languages/kotlin/build.gradle b/protocol/languages/kotlin/build.gradle new file mode 100644 index 000000000..461bb2a28 --- /dev/null +++ b/protocol/languages/kotlin/build.gradle @@ -0,0 +1,6 @@ +plugins { + alias(libs.plugins.kotlin.jvm) apply false + alias(libs.plugins.kotlin.serialization) apply false + alias(libs.plugins.detekt) apply false + alias(libs.plugins.binary.compatibility.validator) +} diff --git a/protocol/languages/kotlin/embedded-checkout-protocol/.gitignore b/protocol/languages/kotlin/embedded-checkout-protocol/.gitignore new file mode 100644 index 000000000..567609b12 --- /dev/null +++ b/protocol/languages/kotlin/embedded-checkout-protocol/.gitignore @@ -0,0 +1 @@ +build/ diff --git a/protocol/languages/kotlin/embedded-checkout-protocol/api/embedded-checkout-protocol.api b/protocol/languages/kotlin/embedded-checkout-protocol/api/embedded-checkout-protocol.api new file mode 100644 index 000000000..a44931af8 --- /dev/null +++ b/protocol/languages/kotlin/embedded-checkout-protocol/api/embedded-checkout-protocol.api @@ -0,0 +1,2334 @@ +public final class com/shopify/ucp/embedded/checkout/Adjustment { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/Adjustment$Companion; + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/AdjustmentStatus;Ljava/util/List;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/AdjustmentStatus;Ljava/util/List;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/util/List; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Lcom/shopify/ucp/embedded/checkout/AdjustmentStatus; + public final fun component6 ()Ljava/util/List; + public final fun component7 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/AdjustmentStatus;Ljava/util/List;Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/Adjustment; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/Adjustment;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/AdjustmentStatus;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/Adjustment; + public fun equals (Ljava/lang/Object;)Z + public final fun getDescription ()Ljava/lang/String; + public final fun getId ()Ljava/lang/String; + public final fun getLineItems ()Ljava/util/List; + public final fun getOccurredAt ()Ljava/lang/String; + public final fun getStatus ()Lcom/shopify/ucp/embedded/checkout/AdjustmentStatus; + public final fun getTotals ()Ljava/util/List; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/Adjustment$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/Adjustment$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/Adjustment; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/Adjustment;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Adjustment$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/AdjustmentLineItem { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/AdjustmentLineItem$Companion; + public fun (Ljava/lang/String;J)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()J + public final fun copy (Ljava/lang/String;J)Lcom/shopify/ucp/embedded/checkout/AdjustmentLineItem; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/AdjustmentLineItem;Ljava/lang/String;JILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/AdjustmentLineItem; + public fun equals (Ljava/lang/Object;)Z + public final fun getId ()Ljava/lang/String; + public final fun getQuantity ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/AdjustmentLineItem$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/AdjustmentLineItem$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/AdjustmentLineItem; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/AdjustmentLineItem;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/AdjustmentLineItem$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/AdjustmentStatus : java/lang/Enum { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/AdjustmentStatus$Companion; + public static final field Completed Lcom/shopify/ucp/embedded/checkout/AdjustmentStatus; + public static final field Failed Lcom/shopify/ucp/embedded/checkout/AdjustmentStatus; + public static final field Pending Lcom/shopify/ucp/embedded/checkout/AdjustmentStatus; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public final fun getValue ()Ljava/lang/String; + public static fun valueOf (Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/AdjustmentStatus; + public static fun values ()[Lcom/shopify/ucp/embedded/checkout/AdjustmentStatus; +} + +public final class com/shopify/ucp/embedded/checkout/AdjustmentStatus$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/AppliedDiscount { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/AppliedDiscount$Companion; + public fun (Ljava/util/List;JLjava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/DiscountMethod;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/String;)V + public synthetic fun (Ljava/util/List;JLjava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/DiscountMethod;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()J + public final fun component3 ()Ljava/lang/Boolean; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Lcom/shopify/ucp/embedded/checkout/DiscountMethod; + public final fun component7 ()Ljava/lang/Long; + public final fun component8 ()Ljava/lang/Boolean; + public final fun component9 ()Ljava/lang/String; + public final fun copy (Ljava/util/List;JLjava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/DiscountMethod;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/AppliedDiscount; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/AppliedDiscount;Ljava/util/List;JLjava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/DiscountMethod;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/AppliedDiscount; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllocations ()Ljava/util/List; + public final fun getAmount ()J + public final fun getAutomatic ()Ljava/lang/Boolean; + public final fun getCode ()Ljava/lang/String; + public final fun getEligibility ()Ljava/lang/String; + public final fun getMethod ()Lcom/shopify/ucp/embedded/checkout/DiscountMethod; + public final fun getPriority ()Ljava/lang/Long; + public final fun getProvisional ()Ljava/lang/Boolean; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/AppliedDiscount$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/AppliedDiscount$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/AppliedDiscount; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/AppliedDiscount;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/AppliedDiscount$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Buyer { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/Buyer$Companion; + public fun ()V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/Buyer; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/Buyer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/Buyer; + public fun equals (Ljava/lang/Object;)Z + public final fun getEmail ()Ljava/lang/String; + public final fun getFirstName ()Ljava/lang/String; + public final fun getLastName ()Ljava/lang/String; + public final fun getPhoneNumber ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/Buyer$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/Buyer$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/Buyer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/Buyer;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Buyer$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/CapabilityElement { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/CapabilityElement$Companion; + public fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Extends;)V + public synthetic fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Extends;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lkotlinx/serialization/json/JsonObject; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Lcom/shopify/ucp/embedded/checkout/Extends; + public final fun copy (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Extends;)Lcom/shopify/ucp/embedded/checkout/CapabilityElement; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/CapabilityElement;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Extends;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/CapabilityElement; + public fun equals (Ljava/lang/Object;)Z + public final fun getConfig ()Lkotlinx/serialization/json/JsonObject; + public final fun getExtends ()Lcom/shopify/ucp/embedded/checkout/Extends; + public final fun getId ()Ljava/lang/String; + public final fun getSchema ()Ljava/lang/String; + public final fun getSpec ()Ljava/lang/String; + public final fun getVersion ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/CapabilityElement$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/CapabilityElement$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/CapabilityElement; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/CapabilityElement;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/CapabilityElement$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/CapabilityResponseSchema { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/CapabilityResponseSchema$Companion; + public fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Extends;)V + public synthetic fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Extends;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lkotlinx/serialization/json/JsonObject; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Lcom/shopify/ucp/embedded/checkout/Extends; + public final fun copy (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Extends;)Lcom/shopify/ucp/embedded/checkout/CapabilityResponseSchema; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/CapabilityResponseSchema;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Extends;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/CapabilityResponseSchema; + public fun equals (Ljava/lang/Object;)Z + public final fun getConfig ()Lkotlinx/serialization/json/JsonObject; + public final fun getExtends ()Lcom/shopify/ucp/embedded/checkout/Extends; + public final fun getId ()Ljava/lang/String; + public final fun getSchema ()Ljava/lang/String; + public final fun getSpec ()Ljava/lang/String; + public final fun getVersion ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/CapabilityResponseSchema$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/CapabilityResponseSchema$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/CapabilityResponseSchema; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/CapabilityResponseSchema;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/CapabilityResponseSchema$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Checkout { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/Checkout$Companion; + public fun (Ljava/util/Map;Lcom/shopify/ucp/embedded/checkout/Buyer;Lcom/shopify/ucp/embedded/checkout/Context;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/CheckoutDiscounts;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/CheckoutFulfillment;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/OrderConfirmation;Lcom/shopify/ucp/embedded/checkout/Payment;Lcom/shopify/ucp/embedded/checkout/Signals;Lcom/shopify/ucp/embedded/checkout/CheckoutStatus;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchema;)V + public synthetic fun (Ljava/util/Map;Lcom/shopify/ucp/embedded/checkout/Buyer;Lcom/shopify/ucp/embedded/checkout/Context;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/CheckoutDiscounts;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/CheckoutFulfillment;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/OrderConfirmation;Lcom/shopify/ucp/embedded/checkout/Payment;Lcom/shopify/ucp/embedded/checkout/Signals;Lcom/shopify/ucp/embedded/checkout/CheckoutStatus;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchema;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/Map; + public final fun component10 ()Ljava/util/List; + public final fun component11 ()Ljava/util/List; + public final fun component12 ()Ljava/util/List; + public final fun component13 ()Lcom/shopify/ucp/embedded/checkout/OrderConfirmation; + public final fun component14 ()Lcom/shopify/ucp/embedded/checkout/Payment; + public final fun component15 ()Lcom/shopify/ucp/embedded/checkout/Signals; + public final fun component16 ()Lcom/shopify/ucp/embedded/checkout/CheckoutStatus; + public final fun component17 ()Ljava/util/List; + public final fun component18 ()Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchema; + public final fun component2 ()Lcom/shopify/ucp/embedded/checkout/Buyer; + public final fun component3 ()Lcom/shopify/ucp/embedded/checkout/Context; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Lcom/shopify/ucp/embedded/checkout/CheckoutDiscounts; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Lcom/shopify/ucp/embedded/checkout/CheckoutFulfillment; + public final fun component9 ()Ljava/lang/String; + public final fun copy (Ljava/util/Map;Lcom/shopify/ucp/embedded/checkout/Buyer;Lcom/shopify/ucp/embedded/checkout/Context;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/CheckoutDiscounts;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/CheckoutFulfillment;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/OrderConfirmation;Lcom/shopify/ucp/embedded/checkout/Payment;Lcom/shopify/ucp/embedded/checkout/Signals;Lcom/shopify/ucp/embedded/checkout/CheckoutStatus;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchema;)Lcom/shopify/ucp/embedded/checkout/Checkout; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/Checkout;Ljava/util/Map;Lcom/shopify/ucp/embedded/checkout/Buyer;Lcom/shopify/ucp/embedded/checkout/Context;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/CheckoutDiscounts;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/CheckoutFulfillment;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/OrderConfirmation;Lcom/shopify/ucp/embedded/checkout/Payment;Lcom/shopify/ucp/embedded/checkout/Signals;Lcom/shopify/ucp/embedded/checkout/CheckoutStatus;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchema;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/Checkout; + public fun equals (Ljava/lang/Object;)Z + public final fun getAttribution ()Ljava/util/Map; + public final fun getBuyer ()Lcom/shopify/ucp/embedded/checkout/Buyer; + public final fun getContext ()Lcom/shopify/ucp/embedded/checkout/Context; + public final fun getContinueURL ()Ljava/lang/String; + public final fun getCurrency ()Ljava/lang/String; + public final fun getDiscounts ()Lcom/shopify/ucp/embedded/checkout/CheckoutDiscounts; + public final fun getExpiresAt ()Ljava/lang/String; + public final fun getFulfillment ()Lcom/shopify/ucp/embedded/checkout/CheckoutFulfillment; + public final fun getId ()Ljava/lang/String; + public final fun getLineItems ()Ljava/util/List; + public final fun getLinks ()Ljava/util/List; + public final fun getMessages ()Ljava/util/List; + public final fun getOrder ()Lcom/shopify/ucp/embedded/checkout/OrderConfirmation; + public final fun getPayment ()Lcom/shopify/ucp/embedded/checkout/Payment; + public final fun getSignals ()Lcom/shopify/ucp/embedded/checkout/Signals; + public final fun getStatus ()Lcom/shopify/ucp/embedded/checkout/CheckoutStatus; + public final fun getTotals ()Ljava/util/List; + public final fun getUcp ()Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchema; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/Checkout$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/Checkout$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/Checkout; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/Checkout;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Checkout$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/CheckoutDiscounts { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/CheckoutDiscounts$Companion; + public fun ()V + public fun (Ljava/util/List;Ljava/util/List;)V + public synthetic fun (Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/List; + public final fun copy (Ljava/util/List;Ljava/util/List;)Lcom/shopify/ucp/embedded/checkout/CheckoutDiscounts; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/CheckoutDiscounts;Ljava/util/List;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/CheckoutDiscounts; + public fun equals (Ljava/lang/Object;)Z + public final fun getApplied ()Ljava/util/List; + public final fun getCodes ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/CheckoutDiscounts$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/CheckoutDiscounts$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/CheckoutDiscounts; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/CheckoutDiscounts;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/CheckoutDiscounts$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/CheckoutFulfillment { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/CheckoutFulfillment$Companion; + public fun ()V + public fun (Ljava/util/List;Ljava/util/List;)V + public synthetic fun (Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/List; + public final fun copy (Ljava/util/List;Ljava/util/List;)Lcom/shopify/ucp/embedded/checkout/CheckoutFulfillment; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/CheckoutFulfillment;Ljava/util/List;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/CheckoutFulfillment; + public fun equals (Ljava/lang/Object;)Z + public final fun getAvailableMethods ()Ljava/util/List; + public final fun getMethods ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/CheckoutFulfillment$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/CheckoutFulfillment$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/CheckoutFulfillment; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/CheckoutFulfillment;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/CheckoutFulfillment$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/CheckoutStatus : java/lang/Enum { + public static final field Canceled Lcom/shopify/ucp/embedded/checkout/CheckoutStatus; + public static final field Companion Lcom/shopify/ucp/embedded/checkout/CheckoutStatus$Companion; + public static final field CompleteInProgress Lcom/shopify/ucp/embedded/checkout/CheckoutStatus; + public static final field Completed Lcom/shopify/ucp/embedded/checkout/CheckoutStatus; + public static final field Incomplete Lcom/shopify/ucp/embedded/checkout/CheckoutStatus; + public static final field ReadyForComplete Lcom/shopify/ucp/embedded/checkout/CheckoutStatus; + public static final field RequiresEscalation Lcom/shopify/ucp/embedded/checkout/CheckoutStatus; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public final fun getValue ()Ljava/lang/String; + public static fun valueOf (Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/CheckoutStatus; + public static fun values ()[Lcom/shopify/ucp/embedded/checkout/CheckoutStatus; +} + +public final class com/shopify/ucp/embedded/checkout/CheckoutStatus$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/CheckoutTotal { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/CheckoutTotal$Companion; + public fun (JLjava/lang/String;Ljava/lang/String;Ljava/util/List;)V + public synthetic fun (JLjava/lang/String;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()J + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/util/List; + public final fun copy (JLjava/lang/String;Ljava/lang/String;Ljava/util/List;)Lcom/shopify/ucp/embedded/checkout/CheckoutTotal; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/CheckoutTotal;JLjava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/CheckoutTotal; + public fun equals (Ljava/lang/Object;)Z + public final fun getAmount ()J + public final fun getDisplayText ()Ljava/lang/String; + public final fun getLines ()Ljava/util/List; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/CheckoutTotal$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/CheckoutTotal$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/CheckoutTotal; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/CheckoutTotal;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/CheckoutTotal$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/ContentType : java/lang/Enum { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/ContentType$Companion; + public static final field Markdown Lcom/shopify/ucp/embedded/checkout/ContentType; + public static final field Plain Lcom/shopify/ucp/embedded/checkout/ContentType; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public final fun getValue ()Ljava/lang/String; + public static fun valueOf (Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/ContentType; + public static fun values ()[Lcom/shopify/ucp/embedded/checkout/ContentType; +} + +public final class com/shopify/ucp/embedded/checkout/ContentType$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Context { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/Context$Companion; + public fun ()V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/util/List; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/Context; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/Context; + public fun equals (Ljava/lang/Object;)Z + public final fun getAddressCountry ()Ljava/lang/String; + public final fun getAddressRegion ()Ljava/lang/String; + public final fun getCurrency ()Ljava/lang/String; + public final fun getEligibility ()Ljava/util/List; + public final fun getIntent ()Ljava/lang/String; + public final fun getLanguage ()Ljava/lang/String; + public final fun getPostalCode ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/Context$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/Context$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/Context; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/Context;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Context$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/CredentialCheckout { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/CredentialCheckout$Companion; + public fun ()V + public fun (Lcom/shopify/ucp/embedded/checkout/Payment;)V + public synthetic fun (Lcom/shopify/ucp/embedded/checkout/Payment;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lcom/shopify/ucp/embedded/checkout/Payment; + public final fun copy (Lcom/shopify/ucp/embedded/checkout/Payment;)Lcom/shopify/ucp/embedded/checkout/CredentialCheckout; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/CredentialCheckout;Lcom/shopify/ucp/embedded/checkout/Payment;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/CredentialCheckout; + public fun equals (Ljava/lang/Object;)Z + public final fun getPayment ()Lcom/shopify/ucp/embedded/checkout/Payment; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/CredentialCheckout$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/CredentialCheckout$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/CredentialCheckout; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/CredentialCheckout;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/CredentialCheckout$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/CredentialResult { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/CredentialResult$Companion; + public fun (Lcom/shopify/ucp/embedded/checkout/CredentialCheckout;Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResultUcp;Ljava/lang/String;Ljava/util/List;)V + public synthetic fun (Lcom/shopify/ucp/embedded/checkout/CredentialCheckout;Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResultUcp;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lcom/shopify/ucp/embedded/checkout/CredentialCheckout; + public final fun component2 ()Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResultUcp; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/util/List; + public final fun copy (Lcom/shopify/ucp/embedded/checkout/CredentialCheckout;Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResultUcp;Ljava/lang/String;Ljava/util/List;)Lcom/shopify/ucp/embedded/checkout/CredentialResult; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/CredentialResult;Lcom/shopify/ucp/embedded/checkout/CredentialCheckout;Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResultUcp;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/CredentialResult; + public fun equals (Ljava/lang/Object;)Z + public final fun getCheckout ()Lcom/shopify/ucp/embedded/checkout/CredentialCheckout; + public final fun getContinueURL ()Ljava/lang/String; + public final fun getMessages ()Ljava/util/List; + public final fun getUcp ()Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResultUcp; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/CredentialResult$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/CredentialResult$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/CredentialResult; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/CredentialResult;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/CredentialResult$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/DelegationDescriptor { + public fun (Ljava/lang/String;Ljava/lang/String;)V + public final fun decode (Lkotlinx/serialization/json/JsonElement;)Ljava/lang/Object; + public final fun encode (Ljava/lang/Object;)Lkotlinx/serialization/json/JsonElement; + public final fun getDelegation ()Ljava/lang/String; + public final fun getMethod ()Ljava/lang/String; + public final fun map (Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Lcom/shopify/ucp/embedded/checkout/DelegationDescriptor; +} + +public final class com/shopify/ucp/embedded/checkout/DescriptorsKt { + public static final fun delegationDescriptor (Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/KSerializer;Lkotlinx/serialization/KSerializer;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Lcom/shopify/ucp/embedded/checkout/DelegationDescriptor; + public static final fun notificationDescriptor (Ljava/lang/String;Lkotlinx/serialization/KSerializer;Lkotlin/jvm/functions/Function1;)Lcom/shopify/ucp/embedded/checkout/NotificationDescriptor; +} + +public final class com/shopify/ucp/embedded/checkout/DiscountAllocation { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/DiscountAllocation$Companion; + public fun (JLjava/lang/String;)V + public final fun component1 ()J + public final fun component2 ()Ljava/lang/String; + public final fun copy (JLjava/lang/String;)Lcom/shopify/ucp/embedded/checkout/DiscountAllocation; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/DiscountAllocation;JLjava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/DiscountAllocation; + public fun equals (Ljava/lang/Object;)Z + public final fun getAmount ()J + public final fun getPath ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/DiscountAllocation$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/DiscountAllocation$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/DiscountAllocation; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/DiscountAllocation;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/DiscountAllocation$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/DiscountMethod : java/lang/Enum { + public static final field Across Lcom/shopify/ucp/embedded/checkout/DiscountMethod; + public static final field Companion Lcom/shopify/ucp/embedded/checkout/DiscountMethod$Companion; + public static final field Each Lcom/shopify/ucp/embedded/checkout/DiscountMethod; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public final fun getValue ()Ljava/lang/String; + public static fun valueOf (Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/DiscountMethod; + public static fun values ()[Lcom/shopify/ucp/embedded/checkout/DiscountMethod; +} + +public final class com/shopify/ucp/embedded/checkout/DiscountMethod$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/EcpRequest { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/EcpRequest$Companion; + public fun (Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;Lkotlinx/serialization/json/JsonElement;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;Lkotlinx/serialization/json/JsonElement;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lkotlinx/serialization/json/JsonElement; + public final fun component4 ()Lkotlinx/serialization/json/JsonElement; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;Lkotlinx/serialization/json/JsonElement;)Lcom/shopify/ucp/embedded/checkout/EcpRequest; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/EcpRequest;Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;Lkotlinx/serialization/json/JsonElement;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/EcpRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getId ()Lkotlinx/serialization/json/JsonElement; + public final fun getJsonrpc ()Ljava/lang/String; + public final fun getMethod ()Ljava/lang/String; + public final fun getParams ()Lkotlinx/serialization/json/JsonElement; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/EcpRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/EcpRequest$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/EcpRequest; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/EcpRequest;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/EcpRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/EmbeddedCheckoutProtocol { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/EmbeddedCheckoutProtocol; + public static final field SPEC_VERSION Ljava/lang/String; + public final fun getComplete ()Lcom/shopify/ucp/embedded/checkout/NotificationDescriptor; + public final fun getError ()Lcom/shopify/ucp/embedded/checkout/NotificationDescriptor; + public final fun getLineItemsChange ()Lcom/shopify/ucp/embedded/checkout/NotificationDescriptor; + public final fun getMessagesChange ()Lcom/shopify/ucp/embedded/checkout/NotificationDescriptor; + public final fun getStart ()Lcom/shopify/ucp/embedded/checkout/NotificationDescriptor; + public final fun getTotalsChange ()Lcom/shopify/ucp/embedded/checkout/NotificationDescriptor; + public final fun getWindowOpen ()Lcom/shopify/ucp/embedded/checkout/DelegationDescriptor; +} + +public final class com/shopify/ucp/embedded/checkout/EmbeddedCheckoutProtocol$Event { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/EmbeddedCheckoutProtocol$Event; + public static final field auth Ljava/lang/String; + public static final field buyerChange Ljava/lang/String; + public static final field complete Ljava/lang/String; + public static final field error Ljava/lang/String; + public static final field fulfillmentAddressChangeRequest Ljava/lang/String; + public static final field fulfillmentChange Ljava/lang/String; + public static final field lineItemsChange Ljava/lang/String; + public static final field messagesChange Ljava/lang/String; + public static final field paymentChange Ljava/lang/String; + public static final field paymentCredentialRequest Ljava/lang/String; + public static final field paymentInstrumentsChangeRequest Ljava/lang/String; + public static final field ready Ljava/lang/String; + public static final field start Ljava/lang/String; + public static final field totalsChange Ljava/lang/String; + public static final field windowOpenRequest Ljava/lang/String; + public final fun getAll ()Ljava/util/Set; +} + +public final class com/shopify/ucp/embedded/checkout/EmbeddedCheckoutProtocolKt { + public static final fun decodeProtocolRequest (Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/EcpRequest; + public static final fun encodeJsonRpcError (Lkotlinx/serialization/json/JsonElement;ILjava/lang/String;)Ljava/lang/String; + public static final fun encodeJsonRpcResult (Lkotlinx/serialization/json/JsonElement;Lkotlinx/serialization/json/JsonElement;)Ljava/lang/String; + public static final fun jsonRpcRequestId (Lkotlinx/serialization/json/JsonElement;)Lkotlinx/serialization/json/JsonElement; +} + +public final class com/shopify/ucp/embedded/checkout/EmbeddedColorScheme : java/lang/Enum { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/EmbeddedColorScheme$Companion; + public static final field Dark Lcom/shopify/ucp/embedded/checkout/EmbeddedColorScheme; + public static final field Light Lcom/shopify/ucp/embedded/checkout/EmbeddedColorScheme; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public final fun getValue ()Ljava/lang/String; + public static fun valueOf (Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/EmbeddedColorScheme; + public static fun values ()[Lcom/shopify/ucp/embedded/checkout/EmbeddedColorScheme; +} + +public final class com/shopify/ucp/embedded/checkout/EmbeddedColorScheme$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/EmbeddedTransportConfig { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/EmbeddedTransportConfig$Companion; + public fun ()V + public fun (Ljava/util/List;Ljava/util/List;)V + public synthetic fun (Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/List; + public final fun copy (Ljava/util/List;Ljava/util/List;)Lcom/shopify/ucp/embedded/checkout/EmbeddedTransportConfig; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/EmbeddedTransportConfig;Ljava/util/List;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/EmbeddedTransportConfig; + public fun equals (Ljava/lang/Object;)Z + public final fun getColorScheme ()Ljava/util/List; + public final fun getDelegate ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/EmbeddedTransportConfig$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/EmbeddedTransportConfig$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/EmbeddedTransportConfig; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/EmbeddedTransportConfig;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/EmbeddedTransportConfig$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/ErrorResponse { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/ErrorResponse$Companion; + public fun (Ljava/lang/String;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/ErrorResponseUcp;)V + public synthetic fun (Ljava/lang/String;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/ErrorResponseUcp;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/util/List; + public final fun component3 ()Lcom/shopify/ucp/embedded/checkout/ErrorResponseUcp; + public final fun copy (Ljava/lang/String;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/ErrorResponseUcp;)Lcom/shopify/ucp/embedded/checkout/ErrorResponse; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/ErrorResponse;Ljava/lang/String;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/ErrorResponseUcp;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/ErrorResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getContinueURL ()Ljava/lang/String; + public final fun getMessages ()Ljava/util/List; + public final fun getUcp ()Lcom/shopify/ucp/embedded/checkout/ErrorResponseUcp; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/ErrorResponse$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/ErrorResponse$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/ErrorResponse; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/ErrorResponse;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/ErrorResponse$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/ErrorResponseUcp { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/ErrorResponseUcp$Companion; + public fun (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/ucp/embedded/checkout/StatusEnum;Ljava/lang/String;)V + public synthetic fun (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/ucp/embedded/checkout/StatusEnum;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/Map; + public final fun component2 ()Ljava/util/Map; + public final fun component3 ()Ljava/util/Map; + public final fun component4 ()Lcom/shopify/ucp/embedded/checkout/StatusEnum; + public final fun component5 ()Ljava/lang/String; + public final fun copy (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/ucp/embedded/checkout/StatusEnum;Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/ErrorResponseUcp; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/ErrorResponseUcp;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/ucp/embedded/checkout/StatusEnum;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/ErrorResponseUcp; + public fun equals (Ljava/lang/Object;)Z + public final fun getCapabilities ()Ljava/util/Map; + public final fun getPaymentHandlers ()Ljava/util/Map; + public final fun getServices ()Ljava/util/Map; + public final fun getStatus ()Lcom/shopify/ucp/embedded/checkout/StatusEnum; + public final fun getVersion ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/ErrorResponseUcp$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/ErrorResponseUcp$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/ErrorResponseUcp; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/ErrorResponseUcp;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/ErrorResponseUcp$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/EventLineItem { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/EventLineItem$Companion; + public fun (Ljava/lang/String;J)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()J + public final fun copy (Ljava/lang/String;J)Lcom/shopify/ucp/embedded/checkout/EventLineItem; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/EventLineItem;Ljava/lang/String;JILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/EventLineItem; + public fun equals (Ljava/lang/Object;)Z + public final fun getId ()Ljava/lang/String; + public final fun getQuantity ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/EventLineItem$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/EventLineItem$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/EventLineItem; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/EventLineItem;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/EventLineItem$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Expectation { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/Expectation$Companion; + public fun (Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/PostalAddress;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/MethodType;)V + public synthetic fun (Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/PostalAddress;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/MethodType;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lcom/shopify/ucp/embedded/checkout/PostalAddress; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/util/List; + public final fun component6 ()Lcom/shopify/ucp/embedded/checkout/MethodType; + public final fun copy (Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/PostalAddress;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/MethodType;)Lcom/shopify/ucp/embedded/checkout/Expectation; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/Expectation;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/PostalAddress;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/MethodType;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/Expectation; + public fun equals (Ljava/lang/Object;)Z + public final fun getDescription ()Ljava/lang/String; + public final fun getDestination ()Lcom/shopify/ucp/embedded/checkout/PostalAddress; + public final fun getFulfillableOn ()Ljava/lang/String; + public final fun getId ()Ljava/lang/String; + public final fun getLineItems ()Ljava/util/List; + public final fun getMethodType ()Lcom/shopify/ucp/embedded/checkout/MethodType; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/Expectation$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/Expectation$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/Expectation; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/Expectation;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Expectation$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/ExpectationLineItem { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/ExpectationLineItem$Companion; + public fun (Ljava/lang/String;J)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()J + public final fun copy (Ljava/lang/String;J)Lcom/shopify/ucp/embedded/checkout/ExpectationLineItem; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/ExpectationLineItem;Ljava/lang/String;JILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/ExpectationLineItem; + public fun equals (Ljava/lang/Object;)Z + public final fun getId ()Ljava/lang/String; + public final fun getQuantity ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/ExpectationLineItem$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/ExpectationLineItem$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/ExpectationLineItem; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/ExpectationLineItem;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/ExpectationLineItem$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public abstract class com/shopify/ucp/embedded/checkout/Extends { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/Extends$Companion; +} + +public final class com/shopify/ucp/embedded/checkout/Extends$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Extends$StringArrayValue : com/shopify/ucp/embedded/checkout/Extends { + public fun (Ljava/util/List;)V + public final fun getValue ()Ljava/util/List; +} + +public final class com/shopify/ucp/embedded/checkout/Extends$StringValue : com/shopify/ucp/embedded/checkout/Extends { + public fun (Ljava/lang/String;)V + public final fun getValue ()Ljava/lang/String; +} + +public final class com/shopify/ucp/embedded/checkout/Fulfillment { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/Fulfillment$Companion; + public fun ()V + public fun (Ljava/util/List;Ljava/util/List;)V + public synthetic fun (Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/List; + public final fun copy (Ljava/util/List;Ljava/util/List;)Lcom/shopify/ucp/embedded/checkout/Fulfillment; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/Fulfillment;Ljava/util/List;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/Fulfillment; + public fun equals (Ljava/lang/Object;)Z + public final fun getEvents ()Ljava/util/List; + public final fun getExpectations ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/Fulfillment$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/Fulfillment$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/Fulfillment; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/Fulfillment;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Fulfillment$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/FulfillmentAvailableMethod { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/FulfillmentAvailableMethod$Companion; + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/FulfillmentMethodType;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/FulfillmentMethodType;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/util/List; + public final fun component4 ()Lcom/shopify/ucp/embedded/checkout/FulfillmentMethodType; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/FulfillmentMethodType;)Lcom/shopify/ucp/embedded/checkout/FulfillmentAvailableMethod; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/FulfillmentAvailableMethod;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/FulfillmentMethodType;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/FulfillmentAvailableMethod; + public fun equals (Ljava/lang/Object;)Z + public final fun getDescription ()Ljava/lang/String; + public final fun getFulfillableOn ()Ljava/lang/String; + public final fun getLineItemIDS ()Ljava/util/List; + public final fun getType ()Lcom/shopify/ucp/embedded/checkout/FulfillmentMethodType; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/FulfillmentAvailableMethod$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/FulfillmentAvailableMethod$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/FulfillmentAvailableMethod; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/FulfillmentAvailableMethod;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/FulfillmentAvailableMethod$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/FulfillmentDestination { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/FulfillmentDestination$Companion; + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/PostalAddress;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/PostalAddress;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component10 ()Ljava/lang/String; + public final fun component11 ()Lcom/shopify/ucp/embedded/checkout/PostalAddress; + public final fun component12 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/String; + public final fun component9 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/PostalAddress;Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/FulfillmentDestination; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/FulfillmentDestination;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/PostalAddress;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/FulfillmentDestination; + public fun equals (Ljava/lang/Object;)Z + public final fun getAddress ()Lcom/shopify/ucp/embedded/checkout/PostalAddress; + public final fun getAddressCountry ()Ljava/lang/String; + public final fun getAddressLocality ()Ljava/lang/String; + public final fun getAddressRegion ()Ljava/lang/String; + public final fun getExtendedAddress ()Ljava/lang/String; + public final fun getFirstName ()Ljava/lang/String; + public final fun getId ()Ljava/lang/String; + public final fun getLastName ()Ljava/lang/String; + public final fun getName ()Ljava/lang/String; + public final fun getPhoneNumber ()Ljava/lang/String; + public final fun getPostalCode ()Ljava/lang/String; + public final fun getStreetAddress ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/FulfillmentDestination$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/FulfillmentDestination$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/FulfillmentDestination; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/FulfillmentDestination;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/FulfillmentDestination$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/FulfillmentEvent { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/FulfillmentEvent$Companion; + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/util/List; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/FulfillmentEvent; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/FulfillmentEvent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/FulfillmentEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getCarrier ()Ljava/lang/String; + public final fun getDescription ()Ljava/lang/String; + public final fun getId ()Ljava/lang/String; + public final fun getLineItems ()Ljava/util/List; + public final fun getOccurredAt ()Ljava/lang/String; + public final fun getTrackingNumber ()Ljava/lang/String; + public final fun getTrackingURL ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/FulfillmentEvent$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/FulfillmentEvent$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/FulfillmentEvent; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/FulfillmentEvent;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/FulfillmentEvent$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/FulfillmentGroup { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/FulfillmentGroup$Companion; + public fun (Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/util/List; + public final fun component3 ()Ljava/util/List; + public final fun component4 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/FulfillmentGroup; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/FulfillmentGroup;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/FulfillmentGroup; + public fun equals (Ljava/lang/Object;)Z + public final fun getId ()Ljava/lang/String; + public final fun getLineItemIDS ()Ljava/util/List; + public final fun getOptions ()Ljava/util/List; + public final fun getSelectedOptionID ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/FulfillmentGroup$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/FulfillmentGroup$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/FulfillmentGroup; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/FulfillmentGroup;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/FulfillmentGroup$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/FulfillmentMethod { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/FulfillmentMethod$Companion; + public fun (Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/FulfillmentMethodType;)V + public synthetic fun (Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/FulfillmentMethodType;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/util/List; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/util/List; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Lcom/shopify/ucp/embedded/checkout/FulfillmentMethodType; + public final fun copy (Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/FulfillmentMethodType;)Lcom/shopify/ucp/embedded/checkout/FulfillmentMethod; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/FulfillmentMethod;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/FulfillmentMethodType;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/FulfillmentMethod; + public fun equals (Ljava/lang/Object;)Z + public final fun getDestinations ()Ljava/util/List; + public final fun getGroups ()Ljava/util/List; + public final fun getId ()Ljava/lang/String; + public final fun getLineItemIDS ()Ljava/util/List; + public final fun getSelectedDestinationID ()Ljava/lang/String; + public final fun getType ()Lcom/shopify/ucp/embedded/checkout/FulfillmentMethodType; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/FulfillmentMethod$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/FulfillmentMethod$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/FulfillmentMethod; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/FulfillmentMethod;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/FulfillmentMethod$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/FulfillmentMethodType : java/lang/Enum { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/FulfillmentMethodType$Companion; + public static final field Pickup Lcom/shopify/ucp/embedded/checkout/FulfillmentMethodType; + public static final field Shipping Lcom/shopify/ucp/embedded/checkout/FulfillmentMethodType; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public final fun getValue ()Ljava/lang/String; + public static fun valueOf (Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/FulfillmentMethodType; + public static fun values ()[Lcom/shopify/ucp/embedded/checkout/FulfillmentMethodType; +} + +public final class com/shopify/ucp/embedded/checkout/FulfillmentMethodType$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/FulfillmentOption { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/FulfillmentOption$Companion; + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/util/List; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Lcom/shopify/ucp/embedded/checkout/FulfillmentOption; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/FulfillmentOption;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/FulfillmentOption; + public fun equals (Ljava/lang/Object;)Z + public final fun getCarrier ()Ljava/lang/String; + public final fun getDescription ()Ljava/lang/String; + public final fun getEarliestFulfillmentTime ()Ljava/lang/String; + public final fun getId ()Ljava/lang/String; + public final fun getLatestFulfillmentTime ()Ljava/lang/String; + public final fun getTitle ()Ljava/lang/String; + public final fun getTotals ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/FulfillmentOption$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/FulfillmentOption$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/FulfillmentOption; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/FulfillmentOption;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/FulfillmentOption$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/InstrumentsChangeCheckout { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeCheckout$Companion; + public fun ()V + public fun (Lcom/shopify/ucp/embedded/checkout/InstrumentsChangePayment;)V + public synthetic fun (Lcom/shopify/ucp/embedded/checkout/InstrumentsChangePayment;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lcom/shopify/ucp/embedded/checkout/InstrumentsChangePayment; + public final fun copy (Lcom/shopify/ucp/embedded/checkout/InstrumentsChangePayment;)Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeCheckout; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeCheckout;Lcom/shopify/ucp/embedded/checkout/InstrumentsChangePayment;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeCheckout; + public fun equals (Ljava/lang/Object;)Z + public final fun getPayment ()Lcom/shopify/ucp/embedded/checkout/InstrumentsChangePayment; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/InstrumentsChangeCheckout$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeCheckout$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeCheckout; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeCheckout;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/InstrumentsChangeCheckout$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/InstrumentsChangePayment { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/InstrumentsChangePayment$Companion; + public fun ()V + public fun (Ljava/util/List;Ljava/lang/String;)V + public synthetic fun (Ljava/util/List;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Ljava/util/List;Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/InstrumentsChangePayment; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/InstrumentsChangePayment;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/InstrumentsChangePayment; + public fun equals (Ljava/lang/Object;)Z + public final fun getInstruments ()Ljava/util/List; + public final fun getSelectedInstrumentID ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/InstrumentsChangePayment$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/InstrumentsChangePayment$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/InstrumentsChangePayment; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/InstrumentsChangePayment;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/InstrumentsChangePayment$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/InstrumentsChangeResult { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResult$Companion; + public fun (Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeCheckout;Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResultUcp;Ljava/lang/String;Ljava/util/List;)V + public synthetic fun (Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeCheckout;Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResultUcp;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeCheckout; + public final fun component2 ()Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResultUcp; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/util/List; + public final fun copy (Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeCheckout;Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResultUcp;Ljava/lang/String;Ljava/util/List;)Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResult; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResult;Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeCheckout;Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResultUcp;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResult; + public fun equals (Ljava/lang/Object;)Z + public final fun getCheckout ()Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeCheckout; + public final fun getContinueURL ()Ljava/lang/String; + public final fun getMessages ()Ljava/util/List; + public final fun getUcp ()Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResultUcp; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/InstrumentsChangeResult$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResult$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResult; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResult;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/InstrumentsChangeResult$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/InstrumentsChangeResultUcp { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResultUcp$Companion; + public fun (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;)V + public synthetic fun (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/Map; + public final fun component2 ()Ljava/util/Map; + public final fun component3 ()Ljava/util/Map; + public final fun component4 ()Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus; + public final fun component5 ()Ljava/lang/String; + public final fun copy (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResultUcp; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResultUcp;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResultUcp; + public fun equals (Ljava/lang/Object;)Z + public final fun getCapabilities ()Ljava/util/Map; + public final fun getPaymentHandlers ()Ljava/util/Map; + public final fun getServices ()Ljava/util/Map; + public final fun getStatus ()Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus; + public final fun getVersion ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/InstrumentsChangeResultUcp$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResultUcp$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResultUcp; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeResultUcp;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/InstrumentsChangeResultUcp$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/InstrumentsChangeService { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeService$Companion; + public fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Transport;)V + public synthetic fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Transport;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lkotlinx/serialization/json/JsonObject; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Lcom/shopify/ucp/embedded/checkout/Transport; + public final fun copy (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Transport;)Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeService; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeService;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Transport;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeService; + public fun equals (Ljava/lang/Object;)Z + public final fun getConfig ()Lkotlinx/serialization/json/JsonObject; + public final fun getEndpoint ()Ljava/lang/String; + public final fun getId ()Ljava/lang/String; + public final fun getSchema ()Ljava/lang/String; + public final fun getSpec ()Ljava/lang/String; + public final fun getTransport ()Lcom/shopify/ucp/embedded/checkout/Transport; + public final fun getVersion ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/InstrumentsChangeService$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeService$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeService; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/InstrumentsChangeService;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/InstrumentsChangeService$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Item { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/Item$Companion; + public fun (Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()J + public final fun component4 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;)Lcom/shopify/ucp/embedded/checkout/Item; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/Item;Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/Item; + public fun equals (Ljava/lang/Object;)Z + public final fun getId ()Ljava/lang/String; + public final fun getImageURL ()Ljava/lang/String; + public final fun getPrice ()J + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/Item$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/Item$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/Item; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/Item;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Item$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Line { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/Line$Companion; + public fun (JLjava/lang/String;)V + public final fun component1 ()J + public final fun component2 ()Ljava/lang/String; + public final fun copy (JLjava/lang/String;)Lcom/shopify/ucp/embedded/checkout/Line; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/Line;JLjava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/Line; + public fun equals (Ljava/lang/Object;)Z + public final fun getAmount ()J + public final fun getDisplayText ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/Line$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/Line$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/Line; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/Line;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Line$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/LineItem { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/LineItem$Companion; + public fun (Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Item;Ljava/lang/String;JLjava/util/List;)V + public synthetic fun (Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Item;Ljava/lang/String;JLjava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lcom/shopify/ucp/embedded/checkout/Item; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()J + public final fun component5 ()Ljava/util/List; + public final fun copy (Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Item;Ljava/lang/String;JLjava/util/List;)Lcom/shopify/ucp/embedded/checkout/LineItem; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/LineItem;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Item;Ljava/lang/String;JLjava/util/List;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/LineItem; + public fun equals (Ljava/lang/Object;)Z + public final fun getId ()Ljava/lang/String; + public final fun getItem ()Lcom/shopify/ucp/embedded/checkout/Item; + public final fun getParentID ()Ljava/lang/String; + public final fun getQuantity ()J + public final fun getTotals ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/LineItem$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/LineItem$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/LineItem; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/LineItem;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/LineItem$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/LineItemQuantity { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/LineItemQuantity$Companion; + public fun (JLjava/lang/Long;J)V + public synthetic fun (JLjava/lang/Long;JILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()J + public final fun component2 ()Ljava/lang/Long; + public final fun component3 ()J + public final fun copy (JLjava/lang/Long;J)Lcom/shopify/ucp/embedded/checkout/LineItemQuantity; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/LineItemQuantity;JLjava/lang/Long;JILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/LineItemQuantity; + public fun equals (Ljava/lang/Object;)Z + public final fun getFulfilled ()J + public final fun getOriginal ()Ljava/lang/Long; + public final fun getTotal ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/LineItemQuantity$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/LineItemQuantity$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/LineItemQuantity; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/LineItemQuantity;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/LineItemQuantity$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/LineItemStatus : java/lang/Enum { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/LineItemStatus$Companion; + public static final field Fulfilled Lcom/shopify/ucp/embedded/checkout/LineItemStatus; + public static final field Partial Lcom/shopify/ucp/embedded/checkout/LineItemStatus; + public static final field Processing Lcom/shopify/ucp/embedded/checkout/LineItemStatus; + public static final field Removed Lcom/shopify/ucp/embedded/checkout/LineItemStatus; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public final fun getValue ()Ljava/lang/String; + public static fun valueOf (Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/LineItemStatus; + public static fun values ()[Lcom/shopify/ucp/embedded/checkout/LineItemStatus; +} + +public final class com/shopify/ucp/embedded/checkout/LineItemStatus$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/LineItemTotal { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/LineItemTotal$Companion; + public fun (JLjava/lang/String;Ljava/lang/String;)V + public synthetic fun (JLjava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()J + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun copy (JLjava/lang/String;Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/LineItemTotal; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/LineItemTotal;JLjava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/LineItemTotal; + public fun equals (Ljava/lang/Object;)Z + public final fun getAmount ()J + public final fun getDisplayText ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/LineItemTotal$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/LineItemTotal$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/LineItemTotal; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/LineItemTotal;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/LineItemTotal$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Link { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/Link$Companion; + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/Link; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/Link;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/Link; + public fun equals (Ljava/lang/Object;)Z + public final fun getTitle ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public final fun getUrl ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/Link$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/Link$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/Link; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/Link;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Link$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Message { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/Message$Companion; + public fun (Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/ContentType;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Severity;Lcom/shopify/ucp/embedded/checkout/MessageType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/ContentType;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Severity;Lcom/shopify/ucp/embedded/checkout/MessageType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lcom/shopify/ucp/embedded/checkout/ContentType; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Lcom/shopify/ucp/embedded/checkout/Severity; + public final fun component6 ()Lcom/shopify/ucp/embedded/checkout/MessageType; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/String; + public final fun component9 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/ContentType;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Severity;Lcom/shopify/ucp/embedded/checkout/MessageType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/Message; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/Message;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/ContentType;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Severity;Lcom/shopify/ucp/embedded/checkout/MessageType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/Message; + public fun equals (Ljava/lang/Object;)Z + public final fun getCode ()Ljava/lang/String; + public final fun getContent ()Ljava/lang/String; + public final fun getContentType ()Lcom/shopify/ucp/embedded/checkout/ContentType; + public final fun getImageURL ()Ljava/lang/String; + public final fun getPath ()Ljava/lang/String; + public final fun getPresentation ()Ljava/lang/String; + public final fun getSeverity ()Lcom/shopify/ucp/embedded/checkout/Severity; + public final fun getType ()Lcom/shopify/ucp/embedded/checkout/MessageType; + public final fun getUrl ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/Message$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/Message$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/Message; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/Message;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Message$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/MessageType : java/lang/Enum { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/MessageType$Companion; + public static final field Error Lcom/shopify/ucp/embedded/checkout/MessageType; + public static final field Info Lcom/shopify/ucp/embedded/checkout/MessageType; + public static final field Warning Lcom/shopify/ucp/embedded/checkout/MessageType; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public final fun getValue ()Ljava/lang/String; + public static fun valueOf (Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/MessageType; + public static fun values ()[Lcom/shopify/ucp/embedded/checkout/MessageType; +} + +public final class com/shopify/ucp/embedded/checkout/MessageType$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/MethodType : java/lang/Enum { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/MethodType$Companion; + public static final field Digital Lcom/shopify/ucp/embedded/checkout/MethodType; + public static final field Pickup Lcom/shopify/ucp/embedded/checkout/MethodType; + public static final field Shipping Lcom/shopify/ucp/embedded/checkout/MethodType; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public final fun getValue ()Ljava/lang/String; + public static fun valueOf (Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/MethodType; + public static fun values ()[Lcom/shopify/ucp/embedded/checkout/MethodType; +} + +public final class com/shopify/ucp/embedded/checkout/MethodType$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/NotificationDescriptor { + public fun (Ljava/lang/String;)V + public final fun decode (Lkotlinx/serialization/json/JsonElement;)Ljava/lang/Object; + public final fun getMethod ()Ljava/lang/String; + public final fun map (Lkotlin/jvm/functions/Function1;)Lcom/shopify/ucp/embedded/checkout/NotificationDescriptor; +} + +public final class com/shopify/ucp/embedded/checkout/Order { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/Order$Companion; + public fun (Ljava/util/List;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Fulfillment;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/UCPOrderResponseSchema;)V + public synthetic fun (Ljava/util/List;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Fulfillment;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/UCPOrderResponseSchema;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component10 ()Ljava/lang/String; + public final fun component11 ()Ljava/util/List; + public final fun component12 ()Lcom/shopify/ucp/embedded/checkout/UCPOrderResponseSchema; + public final fun component2 ()Ljava/util/Map; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Lcom/shopify/ucp/embedded/checkout/Fulfillment; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/util/List; + public final fun component9 ()Ljava/util/List; + public final fun copy (Ljava/util/List;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Fulfillment;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/UCPOrderResponseSchema;)Lcom/shopify/ucp/embedded/checkout/Order; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/Order;Ljava/util/List;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Fulfillment;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Lcom/shopify/ucp/embedded/checkout/UCPOrderResponseSchema;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/Order; + public fun equals (Ljava/lang/Object;)Z + public final fun getAdjustments ()Ljava/util/List; + public final fun getAttribution ()Ljava/util/Map; + public final fun getCheckoutID ()Ljava/lang/String; + public final fun getCurrency ()Ljava/lang/String; + public final fun getFulfillment ()Lcom/shopify/ucp/embedded/checkout/Fulfillment; + public final fun getId ()Ljava/lang/String; + public final fun getLabel ()Ljava/lang/String; + public final fun getLineItems ()Ljava/util/List; + public final fun getMessages ()Ljava/util/List; + public final fun getPermalinkURL ()Ljava/lang/String; + public final fun getTotals ()Ljava/util/List; + public final fun getUcp ()Lcom/shopify/ucp/embedded/checkout/UCPOrderResponseSchema; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/Order$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/Order$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/Order; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/Order;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Order$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/OrderConfirmation { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/OrderConfirmation$Companion; + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/OrderConfirmation; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/OrderConfirmation;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/OrderConfirmation; + public fun equals (Ljava/lang/Object;)Z + public final fun getId ()Ljava/lang/String; + public final fun getLabel ()Ljava/lang/String; + public final fun getPermalinkURL ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/OrderConfirmation$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/OrderConfirmation$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/OrderConfirmation; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/OrderConfirmation;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/OrderConfirmation$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/OrderLineItem { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/OrderLineItem$Companion; + public fun (Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Item;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/LineItemQuantity;Lcom/shopify/ucp/embedded/checkout/LineItemStatus;Ljava/util/List;)V + public synthetic fun (Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Item;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/LineItemQuantity;Lcom/shopify/ucp/embedded/checkout/LineItemStatus;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lcom/shopify/ucp/embedded/checkout/Item; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Lcom/shopify/ucp/embedded/checkout/LineItemQuantity; + public final fun component5 ()Lcom/shopify/ucp/embedded/checkout/LineItemStatus; + public final fun component6 ()Ljava/util/List; + public final fun copy (Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Item;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/LineItemQuantity;Lcom/shopify/ucp/embedded/checkout/LineItemStatus;Ljava/util/List;)Lcom/shopify/ucp/embedded/checkout/OrderLineItem; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/OrderLineItem;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Item;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/LineItemQuantity;Lcom/shopify/ucp/embedded/checkout/LineItemStatus;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/OrderLineItem; + public fun equals (Ljava/lang/Object;)Z + public final fun getId ()Ljava/lang/String; + public final fun getItem ()Lcom/shopify/ucp/embedded/checkout/Item; + public final fun getParentID ()Ljava/lang/String; + public final fun getQuantity ()Lcom/shopify/ucp/embedded/checkout/LineItemQuantity; + public final fun getStatus ()Lcom/shopify/ucp/embedded/checkout/LineItemStatus; + public final fun getTotals ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/OrderLineItem$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/OrderLineItem$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/OrderLineItem; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/OrderLineItem;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/OrderLineItem$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Payment { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/Payment$Companion; + public fun ()V + public fun (Ljava/util/List;)V + public synthetic fun (Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun copy (Ljava/util/List;)Lcom/shopify/ucp/embedded/checkout/Payment; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/Payment;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/Payment; + public fun equals (Ljava/lang/Object;)Z + public final fun getInstruments ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/Payment$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/Payment$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/Payment; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/Payment;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Payment$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/PaymentCredential { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/PaymentCredential$Companion; + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/PaymentCredential; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/PaymentCredential;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/PaymentCredential; + public fun equals (Ljava/lang/Object;)Z + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/PaymentCredential$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/PaymentCredential$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/PaymentCredential; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/PaymentCredential;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/PaymentCredential$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/PaymentHandlerAvailableInstrument { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/PaymentHandlerAvailableInstrument$Companion; + public fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;)V + public synthetic fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lkotlinx/serialization/json/JsonObject; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/PaymentHandlerAvailableInstrument; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/PaymentHandlerAvailableInstrument;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/PaymentHandlerAvailableInstrument; + public fun equals (Ljava/lang/Object;)Z + public final fun getConstraints ()Lkotlinx/serialization/json/JsonObject; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/PaymentHandlerAvailableInstrument$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/PaymentHandlerAvailableInstrument$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/PaymentHandlerAvailableInstrument; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/PaymentHandlerAvailableInstrument;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/PaymentHandlerAvailableInstrument$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/PaymentHandlerElement { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/PaymentHandlerElement$Companion; + public fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V + public synthetic fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lkotlinx/serialization/json/JsonObject; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/util/List; + public final fun copy (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Lcom/shopify/ucp/embedded/checkout/PaymentHandlerElement; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/PaymentHandlerElement;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/PaymentHandlerElement; + public fun equals (Ljava/lang/Object;)Z + public final fun getAvailableInstruments ()Ljava/util/List; + public final fun getConfig ()Lkotlinx/serialization/json/JsonObject; + public final fun getId ()Ljava/lang/String; + public final fun getSchema ()Ljava/lang/String; + public final fun getSpec ()Ljava/lang/String; + public final fun getVersion ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/PaymentHandlerElement$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/PaymentHandlerElement$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/PaymentHandlerElement; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/PaymentHandlerElement;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/PaymentHandlerElement$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/PaymentHandlerResponseSchema { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/PaymentHandlerResponseSchema$Companion; + public fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V + public synthetic fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lkotlinx/serialization/json/JsonObject; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/util/List; + public final fun copy (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Lcom/shopify/ucp/embedded/checkout/PaymentHandlerResponseSchema; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/PaymentHandlerResponseSchema;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/PaymentHandlerResponseSchema; + public fun equals (Ljava/lang/Object;)Z + public final fun getAvailableInstruments ()Ljava/util/List; + public final fun getConfig ()Lkotlinx/serialization/json/JsonObject; + public final fun getId ()Ljava/lang/String; + public final fun getSchema ()Ljava/lang/String; + public final fun getSpec ()Ljava/lang/String; + public final fun getVersion ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/PaymentHandlerResponseSchema$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/PaymentHandlerResponseSchema$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/PaymentHandlerResponseSchema; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/PaymentHandlerResponseSchema;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/PaymentHandlerResponseSchema$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/PaymentHandlerResponseSchemaAvailableInstrument { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/PaymentHandlerResponseSchemaAvailableInstrument$Companion; + public fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;)V + public synthetic fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lkotlinx/serialization/json/JsonObject; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/PaymentHandlerResponseSchemaAvailableInstrument; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/PaymentHandlerResponseSchemaAvailableInstrument;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/PaymentHandlerResponseSchemaAvailableInstrument; + public fun equals (Ljava/lang/Object;)Z + public final fun getConstraints ()Lkotlinx/serialization/json/JsonObject; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/PaymentHandlerResponseSchemaAvailableInstrument$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/PaymentHandlerResponseSchemaAvailableInstrument$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/PaymentHandlerResponseSchemaAvailableInstrument; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/PaymentHandlerResponseSchemaAvailableInstrument;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/PaymentHandlerResponseSchemaAvailableInstrument$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/PostalAddress { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/PostalAddress$Companion; + public fun ()V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/String; + public final fun component9 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/PostalAddress; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/PostalAddress;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/PostalAddress; + public fun equals (Ljava/lang/Object;)Z + public final fun getAddressCountry ()Ljava/lang/String; + public final fun getAddressLocality ()Ljava/lang/String; + public final fun getAddressRegion ()Ljava/lang/String; + public final fun getExtendedAddress ()Ljava/lang/String; + public final fun getFirstName ()Ljava/lang/String; + public final fun getLastName ()Ljava/lang/String; + public final fun getPhoneNumber ()Ljava/lang/String; + public final fun getPostalCode ()Ljava/lang/String; + public final fun getStreetAddress ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/PostalAddress$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/PostalAddress$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/PostalAddress; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/PostalAddress;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/PostalAddress$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/ReadyParams { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/ReadyParams$Companion; + public fun ()V + public fun (Ljava/util/List;)V + public synthetic fun (Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun copy (Ljava/util/List;)Lcom/shopify/ucp/embedded/checkout/ReadyParams; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/ReadyParams;Ljava/util/List;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/ReadyParams; + public fun equals (Ljava/lang/Object;)Z + public final fun getDelegate ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/ReadyParams$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/ReadyParams$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/ReadyParams; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/ReadyParams;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/ReadyParams$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/SelectedPaymentInstrument { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/SelectedPaymentInstrument$Companion; + public fun (Lcom/shopify/ucp/embedded/checkout/PostalAddress;Lcom/shopify/ucp/embedded/checkout/PaymentCredential;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)V + public synthetic fun (Lcom/shopify/ucp/embedded/checkout/PostalAddress;Lcom/shopify/ucp/embedded/checkout/PaymentCredential;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lcom/shopify/ucp/embedded/checkout/PostalAddress; + public final fun component2 ()Lcom/shopify/ucp/embedded/checkout/PaymentCredential; + public final fun component3 ()Lkotlinx/serialization/json/JsonObject; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/Boolean; + public final fun copy (Lcom/shopify/ucp/embedded/checkout/PostalAddress;Lcom/shopify/ucp/embedded/checkout/PaymentCredential;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)Lcom/shopify/ucp/embedded/checkout/SelectedPaymentInstrument; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/SelectedPaymentInstrument;Lcom/shopify/ucp/embedded/checkout/PostalAddress;Lcom/shopify/ucp/embedded/checkout/PaymentCredential;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/SelectedPaymentInstrument; + public fun equals (Ljava/lang/Object;)Z + public final fun getBillingAddress ()Lcom/shopify/ucp/embedded/checkout/PostalAddress; + public final fun getCredential ()Lcom/shopify/ucp/embedded/checkout/PaymentCredential; + public final fun getDisplay ()Lkotlinx/serialization/json/JsonObject; + public final fun getHandlerID ()Ljava/lang/String; + public final fun getId ()Ljava/lang/String; + public final fun getSelected ()Ljava/lang/Boolean; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/SelectedPaymentInstrument$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/SelectedPaymentInstrument$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/SelectedPaymentInstrument; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/SelectedPaymentInstrument;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/SelectedPaymentInstrument$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/ServiceResponseSchema { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/ServiceResponseSchema$Companion; + public fun (Lcom/shopify/ucp/embedded/checkout/EmbeddedTransportConfig;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Transport;)V + public synthetic fun (Lcom/shopify/ucp/embedded/checkout/EmbeddedTransportConfig;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Transport;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lcom/shopify/ucp/embedded/checkout/EmbeddedTransportConfig; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Lcom/shopify/ucp/embedded/checkout/Transport; + public final fun copy (Lcom/shopify/ucp/embedded/checkout/EmbeddedTransportConfig;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Transport;)Lcom/shopify/ucp/embedded/checkout/ServiceResponseSchema; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/ServiceResponseSchema;Lcom/shopify/ucp/embedded/checkout/EmbeddedTransportConfig;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Transport;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/ServiceResponseSchema; + public fun equals (Ljava/lang/Object;)Z + public final fun getConfig ()Lcom/shopify/ucp/embedded/checkout/EmbeddedTransportConfig; + public final fun getEndpoint ()Ljava/lang/String; + public final fun getId ()Ljava/lang/String; + public final fun getSchema ()Ljava/lang/String; + public final fun getSpec ()Ljava/lang/String; + public final fun getTransport ()Lcom/shopify/ucp/embedded/checkout/Transport; + public final fun getVersion ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/ServiceResponseSchema$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/ServiceResponseSchema$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/ServiceResponseSchema; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/ServiceResponseSchema;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/ServiceResponseSchema$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Severity : java/lang/Enum { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/Severity$Companion; + public static final field Recoverable Lcom/shopify/ucp/embedded/checkout/Severity; + public static final field RequiresBuyerInput Lcom/shopify/ucp/embedded/checkout/Severity; + public static final field RequiresBuyerReview Lcom/shopify/ucp/embedded/checkout/Severity; + public static final field Unrecoverable Lcom/shopify/ucp/embedded/checkout/Severity; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public final fun getValue ()Ljava/lang/String; + public static fun valueOf (Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/Severity; + public static fun values ()[Lcom/shopify/ucp/embedded/checkout/Severity; +} + +public final class com/shopify/ucp/embedded/checkout/Severity$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Signals { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/Signals$Companion; + public fun ()V + public fun (Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/Signals; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/Signals;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/Signals; + public fun equals (Ljava/lang/Object;)Z + public final fun getDevUcpBuyerIP ()Ljava/lang/String; + public final fun getDevUcpUserAgent ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/Signals$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/Signals$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/Signals; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/Signals;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Signals$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/StatusEnum : java/lang/Enum { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/StatusEnum$Companion; + public static final field Error Lcom/shopify/ucp/embedded/checkout/StatusEnum; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public final fun getValue ()Ljava/lang/String; + public static fun valueOf (Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/StatusEnum; + public static fun values ()[Lcom/shopify/ucp/embedded/checkout/StatusEnum; +} + +public final class com/shopify/ucp/embedded/checkout/StatusEnum$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/Transport : java/lang/Enum { + public static final field A2A Lcom/shopify/ucp/embedded/checkout/Transport; + public static final field Companion Lcom/shopify/ucp/embedded/checkout/Transport$Companion; + public static final field Embedded Lcom/shopify/ucp/embedded/checkout/Transport; + public static final field MCP Lcom/shopify/ucp/embedded/checkout/Transport; + public static final field REST Lcom/shopify/ucp/embedded/checkout/Transport; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public final fun getValue ()Ljava/lang/String; + public static fun valueOf (Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/Transport; + public static fun values ()[Lcom/shopify/ucp/embedded/checkout/Transport; +} + +public final class com/shopify/ucp/embedded/checkout/Transport$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchema { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchema$Companion; + public fun (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;)V + public synthetic fun (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/Map; + public final fun component2 ()Ljava/util/Map; + public final fun component3 ()Ljava/util/Map; + public final fun component4 ()Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus; + public final fun component5 ()Ljava/lang/String; + public final fun copy (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchema; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchema;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchema; + public fun equals (Ljava/lang/Object;)Z + public final fun getCapabilities ()Ljava/util/Map; + public final fun getPaymentHandlers ()Ljava/util/Map; + public final fun getServices ()Ljava/util/Map; + public final fun getStatus ()Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus; + public final fun getVersion ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchema$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchema$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchema; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchema;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchema$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus : java/lang/Enum { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus$Companion; + public static final field Error Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus; + public static final field Success Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public final fun getValue ()Ljava/lang/String; + public static fun valueOf (Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus; + public static fun values ()[Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus; +} + +public final class com/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/UCPOrderResponseSchema { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/UCPOrderResponseSchema$Companion; + public fun (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;)V + public synthetic fun (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/Map; + public final fun component2 ()Ljava/util/Map; + public final fun component3 ()Ljava/util/Map; + public final fun component4 ()Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus; + public final fun component5 ()Ljava/lang/String; + public final fun copy (Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/UCPOrderResponseSchema; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/UCPOrderResponseSchema;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/UCPOrderResponseSchema; + public fun equals (Ljava/lang/Object;)Z + public final fun getCapabilities ()Ljava/util/Map; + public final fun getPaymentHandlers ()Ljava/util/Map; + public final fun getServices ()Ljava/util/Map; + public final fun getStatus ()Lcom/shopify/ucp/embedded/checkout/UCPCheckoutResponseSchemaStatus; + public final fun getVersion ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/UCPOrderResponseSchema$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/UCPOrderResponseSchema$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/UCPOrderResponseSchema; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/UCPOrderResponseSchema;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/UCPOrderResponseSchema$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/UCPOrderResponseSchemaService { + public static final field Companion Lcom/shopify/ucp/embedded/checkout/UCPOrderResponseSchemaService$Companion; + public fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Transport;)V + public synthetic fun (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Transport;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lkotlinx/serialization/json/JsonObject; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Lcom/shopify/ucp/embedded/checkout/Transport; + public final fun copy (Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Transport;)Lcom/shopify/ucp/embedded/checkout/UCPOrderResponseSchemaService; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/UCPOrderResponseSchemaService;Lkotlinx/serialization/json/JsonObject;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/shopify/ucp/embedded/checkout/Transport;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/UCPOrderResponseSchemaService; + public fun equals (Ljava/lang/Object;)Z + public final fun getConfig ()Lkotlinx/serialization/json/JsonObject; + public final fun getEndpoint ()Ljava/lang/String; + public final fun getId ()Ljava/lang/String; + public final fun getSchema ()Ljava/lang/String; + public final fun getSpec ()Ljava/lang/String; + public final fun getTransport ()Lcom/shopify/ucp/embedded/checkout/Transport; + public final fun getVersion ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class com/shopify/ucp/embedded/checkout/UCPOrderResponseSchemaService$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/UCPOrderResponseSchemaService$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/shopify/ucp/embedded/checkout/UCPOrderResponseSchemaService; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/shopify/ucp/embedded/checkout/UCPOrderResponseSchemaService;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/UCPOrderResponseSchemaService$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class com/shopify/ucp/embedded/checkout/WindowOpenRequest { + public fun (Ljava/net/URI;)V + public final fun component1 ()Ljava/net/URI; + public final fun copy (Ljava/net/URI;)Lcom/shopify/ucp/embedded/checkout/WindowOpenRequest; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/WindowOpenRequest;Ljava/net/URI;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/WindowOpenRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getUrl ()Ljava/net/URI; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract class com/shopify/ucp/embedded/checkout/WindowOpenResult { +} + +public final class com/shopify/ucp/embedded/checkout/WindowOpenResult$Rejected : com/shopify/ucp/embedded/checkout/WindowOpenResult { + public fun ()V + public fun (Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lcom/shopify/ucp/embedded/checkout/WindowOpenResult$Rejected; + public static synthetic fun copy$default (Lcom/shopify/ucp/embedded/checkout/WindowOpenResult$Rejected;Ljava/lang/String;ILjava/lang/Object;)Lcom/shopify/ucp/embedded/checkout/WindowOpenResult$Rejected; + public fun equals (Ljava/lang/Object;)Z + public final fun getReason ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class com/shopify/ucp/embedded/checkout/WindowOpenResult$Success : com/shopify/ucp/embedded/checkout/WindowOpenResult { + public static final field INSTANCE Lcom/shopify/ucp/embedded/checkout/WindowOpenResult$Success; +} + diff --git a/protocol/languages/kotlin/embedded-checkout-protocol/build.gradle b/protocol/languages/kotlin/embedded-checkout-protocol/build.gradle new file mode 100644 index 000000000..85d827b1c --- /dev/null +++ b/protocol/languages/kotlin/embedded-checkout-protocol/build.gradle @@ -0,0 +1,123 @@ +import io.gitlab.arturbosch.detekt.Detekt +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.dsl.KotlinVersion +import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile + +plugins { + id 'signing' + id 'maven-publish' + id 'java-library' + id 'org.jetbrains.kotlin.jvm' + id 'org.jetbrains.kotlin.plugin.serialization' + id 'io.gitlab.arturbosch.detekt' +} + +apply from: file('../../../../platforms/android/gradle/android-library-versions.gradle') + +def kotlinCompatibility = kotlinVersionCompatibility +def versionName = libs.versions.embeddedCheckoutProtocolAndroid.get() + +java { + sourceCompatibility = JavaVersion.toVersion(kotlinCompatibility.javaVersion) + targetCompatibility = JavaVersion.toVersion(kotlinCompatibility.javaVersion) + withSourcesJar() + withJavadocJar() +} + +tasks.withType(KotlinJvmCompile).configureEach { + compilerOptions { + jvmTarget.set(JvmTarget.valueOf(kotlinCompatibility.kotlinJvmTarget)) + apiVersion.set(KotlinVersion.valueOf(kotlinCompatibility.kotlinApiVersion)) + languageVersion.set(KotlinVersion.valueOf(kotlinCompatibility.kotlinLanguageVersion)) + if (!name.contains("Test")) { + freeCompilerArgs.add("-Xexplicit-api=strict") + } + } +} + +tasks.withType(Test).configureEach { + testLogging { + events "passed", "skipped", "failed", "standardOut", "standardError" + outputs.upToDateWhen { false } + showStandardStreams = true + } +} + +dependencies { + detektPlugins libs.detekt.formatting + + testImplementation libs.junit + testImplementation libs.assertj.core + + api libs.kotlin.stdlib + api libs.kotlinx.serialization.json +} + +signing { + def signingKeyId = findProperty("signingKeyId") + def signingKey = findProperty("signingKey") + def signingPassword = findProperty("signingPassword") + if (signingKey) { + useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword) + sign publishing.publications + } +} + +detekt { + buildUponDefaultConfig = true + config.setFrom('../../../../platforms/android/lib/detekt.config.yml') + autoCorrect = true +} + +// Generated protocol files are checked through codegen review, not detekt style rules. +tasks.withType(Detekt).configureEach { + exclude('**/Models.kt') + exclude('**/EmbeddedCheckoutProtocol.kt') +} + +publishing { + publications { + release(MavenPublication) { + from components.java + + pom { + name = "EmbeddedCheckoutProtocol" + description = "Shopify Embedded Checkout Protocol models and wire helpers." + url = "https://github.com/Shopify/checkout-kit" + groupId = "com.shopify" + artifactId = "embedded-checkout-protocol" + version = versionName + + licenses { + license { + name = "MIT" + url = "https://opensource.org/licenses/MIT" + } + } + + developers { + developer { + name = "Shopify Inc." + } + } + + scm { + connection = "https://github.com/Shopify/checkout-kit.git" + developerConnection = "https://github.com/Shopify/checkout-kit.git" + url = "https://github.com/Shopify/checkout-kit.git" + } + } + } + } + + repositories { + maven { + name = 'ossrh-staging-api' + url = "https://ossrh-staging-api.central.sonatype.com/service/local/staging/deploy/maven2/" + credentials { + username = System.getenv("OSSRH_USERNAME") + password = System.getenv("OSSRH_PASSWORD") + } + } + } +} diff --git a/protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/Descriptors.kt b/protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/Descriptors.kt new file mode 100644 index 000000000..0a685f01c --- /dev/null +++ b/protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/Descriptors.kt @@ -0,0 +1,107 @@ +package com.shopify.ucp.embedded.checkout + +import kotlinx.serialization.KSerializer +import kotlinx.serialization.json.JsonElement +import kotlinx.serialization.json.JsonNull +import kotlinx.serialization.json.decodeFromJsonElement +import kotlinx.serialization.json.encodeToJsonElement + +/** + * Describes a typed protocol notification. + * + * Protocol modules own descriptor primitives and spec-level codecs. Host SDKs + * decide which descriptors they expose and can adapt payloads for their platform. + */ +public class NotificationDescriptor

internal constructor( + public val method: String, + private val decodePayload: (JsonElement?) -> P?, +) { + public constructor(method: String) : this(method, decodePayload = { null }) + + public fun decode(params: JsonElement?): P? = decodePayload(params) + + public fun map( + decode: (P) -> MappedPayload?, + ): NotificationDescriptor = + NotificationDescriptor( + method = method, + decodePayload = { params -> + decodePayload(params)?.let(decode) + }, + ) +} + +/** + * Describes a typed protocol request/response delegation. + * + * [method] is the JSON-RPC method name. [delegation] is the capability token used + * during protocol negotiation, such as `window.open`. + */ +public class DelegationDescriptor

internal constructor( + public val method: String, + public val delegation: String, + private val decodePayload: (JsonElement?) -> P?, + private val encodeResult: (R) -> JsonElement, +) { + public constructor( + method: String, + delegation: String, + ) : this(method, delegation, decodePayload = { null }, encodeResult = { JsonNull }) + + public fun decode(params: JsonElement?): P? = decodePayload(params) + + public fun encode(result: R): JsonElement = encodeResult(result) + + public fun map( + decode: (P) -> MappedPayload?, + encode: (MappedResult) -> R, + ): DelegationDescriptor = + DelegationDescriptor( + method = method, + delegation = delegation, + decodePayload = { params -> + decodePayload(params)?.let(decode) + }, + encodeResult = { result -> + encodeResult(encode(result)) + }, + ) +} + +public fun notificationDescriptor( + method: String, + paramsSerializer: KSerializer, + decode: (Params) -> P?, +): NotificationDescriptor

= + NotificationDescriptor( + method = method, + decodePayload = { params -> + decodeDescriptorParams(paramsSerializer, params).let(decode) + }, + ) + +@Suppress("LongParameterList") +public fun delegationDescriptor( + method: String, + delegation: String, + requestSerializer: KSerializer, + responseSerializer: KSerializer, + decode: (RequestParams) -> P?, + encode: (R) -> ResponsePayload, +): DelegationDescriptor = + DelegationDescriptor( + method = method, + delegation = delegation, + decodePayload = { params -> + decodeDescriptorParams(requestSerializer, params).let(decode) + }, + encodeResult = { result -> + embeddedProtocolJson.encodeToJsonElement(responseSerializer, encode(result)) + }, + ) + +private fun decodeDescriptorParams( + serializer: KSerializer, + params: JsonElement?, +): Params = + embeddedProtocolJson.decodeFromJsonElement(serializer, params ?: JsonNull) diff --git a/protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/EmbeddedCheckoutProtocol.kt b/protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/EmbeddedCheckoutProtocol.kt new file mode 100644 index 000000000..d1ee19175 --- /dev/null +++ b/protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/EmbeddedCheckoutProtocol.kt @@ -0,0 +1,73 @@ +// This file is generated by protocol/scripts/generate_kotlin_catalog.mjs. +// Do not edit directly. + +package com.shopify.ucp.embedded.checkout + +/** + * Low-level Embedded Checkout Protocol constants, raw method catalog, and + * typed spec descriptors. + * + * This module intentionally does not decide which protocol methods Checkout Kit + * exposes to app developers. Host SDKs build their curated typed APIs on top of + * these wire-level names, descriptors, and generated payload models. + */ +public object EmbeddedCheckoutProtocol { + public const val SPEC_VERSION: String = "2026-04-08" + + public val start: NotificationDescriptor + get() = embeddedCheckoutStartDescriptor + + public val complete: NotificationDescriptor + get() = embeddedCheckoutCompleteDescriptor + + public val messagesChange: NotificationDescriptor + get() = embeddedCheckoutMessagesChangeDescriptor + + public val lineItemsChange: NotificationDescriptor + get() = embeddedCheckoutLineItemsChangeDescriptor + + public val totalsChange: NotificationDescriptor + get() = embeddedCheckoutTotalsChangeDescriptor + + public val error: NotificationDescriptor + get() = embeddedCheckoutErrorDescriptor + + public val windowOpen: DelegationDescriptor + get() = embeddedCheckoutWindowOpenDescriptor + + public object Event { + public const val ready: String = "ec.ready" + public const val auth: String = "ec.auth" + public const val error: String = "ec.error" + public const val start: String = "ec.start" + public const val complete: String = "ec.complete" + public const val messagesChange: String = "ec.messages.change" + public const val lineItemsChange: String = "ec.line_items.change" + public const val buyerChange: String = "ec.buyer.change" + public const val totalsChange: String = "ec.totals.change" + public const val paymentChange: String = "ec.payment.change" + public const val paymentInstrumentsChangeRequest: String = "ec.payment.instruments_change_request" + public const val paymentCredentialRequest: String = "ec.payment.credential_request" + public const val windowOpenRequest: String = "ec.window.open_request" + public const val fulfillmentChange: String = "ec.fulfillment.change" + public const val fulfillmentAddressChangeRequest: String = "ec.fulfillment.address_change_request" + + public val all: Set = setOf( + ready, + auth, + error, + start, + complete, + messagesChange, + lineItemsChange, + buyerChange, + totalsChange, + paymentChange, + paymentInstrumentsChangeRequest, + paymentCredentialRequest, + windowOpenRequest, + fulfillmentChange, + fulfillmentAddressChangeRequest, + ) + } +} diff --git a/protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/EmbeddedCheckoutProtocolDescriptors.kt b/protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/EmbeddedCheckoutProtocolDescriptors.kt new file mode 100644 index 000000000..1c4ca5969 --- /dev/null +++ b/protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/EmbeddedCheckoutProtocolDescriptors.kt @@ -0,0 +1,97 @@ +package com.shopify.ucp.embedded.checkout + +import kotlinx.serialization.Serializable +import java.net.URI + +internal val embeddedCheckoutStartDescriptor: NotificationDescriptor = + checkoutDescriptor(EmbeddedCheckoutProtocol.Event.start) +internal val embeddedCheckoutCompleteDescriptor: NotificationDescriptor = + checkoutDescriptor(EmbeddedCheckoutProtocol.Event.complete) +internal val embeddedCheckoutMessagesChangeDescriptor: NotificationDescriptor = + checkoutDescriptor(EmbeddedCheckoutProtocol.Event.messagesChange) +internal val embeddedCheckoutLineItemsChangeDescriptor: NotificationDescriptor = + checkoutDescriptor(EmbeddedCheckoutProtocol.Event.lineItemsChange) +internal val embeddedCheckoutTotalsChangeDescriptor: NotificationDescriptor = + checkoutDescriptor(EmbeddedCheckoutProtocol.Event.totalsChange) +internal val embeddedCheckoutErrorDescriptor: NotificationDescriptor = notificationDescriptor( + method = EmbeddedCheckoutProtocol.Event.error, + paramsSerializer = ErrorParams.serializer(), + decode = { it.error }, +) +internal val embeddedCheckoutWindowOpenDescriptor: DelegationDescriptor = + delegationDescriptor( + method = EmbeddedCheckoutProtocol.Event.windowOpenRequest, + delegation = "window.open", + requestSerializer = WindowOpenParams.serializer(), + responseSerializer = WindowOpenResultDto.serializer(), + decode = { params -> + params.url + .takeIf { it.isNotBlank() } + ?.let { runCatching { URI(it) }.getOrNull() } + ?.let(::WindowOpenRequest) + }, + encode = ::encodeWindowOpenResult, + ) + +public data class WindowOpenRequest(public val url: URI) + +public sealed class WindowOpenResult { + public object Success : WindowOpenResult() + public data class Rejected(public val reason: String? = null) : WindowOpenResult() +} + +private fun checkoutDescriptor(method: String): NotificationDescriptor = + notificationDescriptor( + method = method, + paramsSerializer = CheckoutParams.serializer(), + decode = { it.checkout }, + ) + +private fun encodeWindowOpenResult(result: WindowOpenResult): WindowOpenResultDto = when (result) { + is WindowOpenResult.Success -> + WindowOpenResultDto(ucp = UcpEnvelope(EmbeddedCheckoutProtocol.SPEC_VERSION, "success")) + is WindowOpenResult.Rejected -> + WindowOpenResultDto( + ucp = UcpEnvelope(EmbeddedCheckoutProtocol.SPEC_VERSION, "error"), + messages = listOf( + UcpMessage( + type = "error", + code = "window_open_rejected_error", + content = result.reason ?: "Window open rejected", + severity = "unrecoverable", + ) + ), + ) +} + +@Serializable +private data class CheckoutParams( + val checkout: Checkout, +) + +@Serializable +private data class ErrorParams( + val error: ErrorResponse, +) + +@Serializable +private data class WindowOpenParams( + val url: String, +) + +@Serializable +private data class UcpEnvelope(val version: String, val status: String) + +@Serializable +private data class UcpMessage( + val type: String, + val code: String, + val content: String, + val severity: String, +) + +@Serializable +private data class WindowOpenResultDto( + val ucp: UcpEnvelope, + val messages: List? = null, +) diff --git a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/ExtendsSerializer.kt b/protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/ExtendsSerializer.kt similarity index 93% rename from platforms/android/lib/src/main/java/com/shopify/checkoutkit/ExtendsSerializer.kt rename to protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/ExtendsSerializer.kt index 73cfccb92..056d79bd5 100644 --- a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/ExtendsSerializer.kt +++ b/protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/ExtendsSerializer.kt @@ -1,4 +1,4 @@ -package com.shopify.checkoutkit +package com.shopify.ucp.embedded.checkout import kotlinx.serialization.KSerializer import kotlinx.serialization.SerializationException @@ -14,7 +14,7 @@ import kotlinx.serialization.json.JsonPrimitive internal object ExtendsSerializer : KSerializer { override val descriptor: SerialDescriptor = - buildClassSerialDescriptor("com.shopify.checkoutkit.Extends") + buildClassSerialDescriptor("com.shopify.ucp.embedded.checkout.Extends") override fun deserialize(decoder: Decoder): Extends { val input = decoder as? JsonDecoder diff --git a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/Models.kt b/protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/Models.kt similarity index 99% rename from platforms/android/lib/src/main/java/com/shopify/checkoutkit/Models.kt rename to protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/Models.kt index 653018b24..90f45d34f 100644 --- a/platforms/android/lib/src/main/java/com/shopify/checkoutkit/Models.kt +++ b/protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/Models.kt @@ -1,4 +1,4 @@ -package com.shopify.checkoutkit +package com.shopify.ucp.embedded.checkout import kotlinx.serialization.* import kotlinx.serialization.json.* @@ -10,6 +10,8 @@ import kotlinx.serialization.encoding.* */ @Serializable public data class Checkout ( + public val attribution: Map? = null, + /** * Representation of the buyer. */ @@ -714,12 +716,6 @@ public data class Link ( */ @Serializable public data class Message ( - /** - * Warning code. Machine-readable identifier for the warning type (e.g., final_sale, prop65, - * fulfillment_changed, age_restricted, etc.). - * - * Info code for programmatic handling. - */ public val code: String? = null, /** @@ -1236,6 +1232,12 @@ public data class Order ( */ public val adjustments: List? = null, + /** + * Snapshot of the attribution associated with the originating checkout. Read-only on the + * order. + */ + public val attribution: Map? = null, + /** * Associated checkout ID for reconciliation. */ diff --git a/protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/ProtocolCodec.kt b/protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/ProtocolCodec.kt new file mode 100644 index 000000000..b256f6db6 --- /dev/null +++ b/protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/ProtocolCodec.kt @@ -0,0 +1,70 @@ +@file:kotlin.jvm.JvmName("EmbeddedCheckoutProtocolKt") + +package com.shopify.ucp.embedded.checkout + +import kotlinx.serialization.Serializable +import kotlinx.serialization.decodeFromString +import kotlinx.serialization.json.Json +import kotlinx.serialization.json.JsonElement +import kotlinx.serialization.json.JsonNull +import kotlinx.serialization.json.JsonObject +import kotlinx.serialization.json.JsonPrimitive +import kotlinx.serialization.json.buildJsonObject +import kotlinx.serialization.json.decodeFromJsonElement +import kotlinx.serialization.json.put +import kotlinx.serialization.json.putJsonObject + +internal val embeddedProtocolJson: Json = Json { ignoreUnknownKeys = true } + +public fun decodeProtocolRequest(message: String): EcpRequest { + val requestObject = embeddedProtocolJson.decodeFromString(message) + return embeddedProtocolJson.decodeFromJsonElement(requestObject).copy(id = requestObject["id"]) +} + +public fun jsonRpcRequestId(id: JsonElement?): JsonElement? = + when (id) { + JsonNull -> JsonNull + is JsonPrimitive -> id.takeIf { + it.isString || + (!it.isString && JSON_RPC_INTEGER.matches(it.content) && it.content.toLongOrNull() != null) + } + else -> null + } + +public fun encodeJsonRpcResult(id: JsonElement?, result: JsonElement): String = + embeddedProtocolJson.encodeToString( + JsonObject.serializer(), + buildJsonObject { + put("jsonrpc", "2.0") + put("id", id ?: JsonNull) + put("result", result) + } + ) + +public fun encodeJsonRpcError(id: JsonElement?, code: Int, message: String): String = + embeddedProtocolJson.encodeToString( + JsonObject.serializer(), + buildJsonObject { + put("jsonrpc", "2.0") + put("id", id ?: JsonNull) + putJsonObject("error") { + put("code", code) + put("message", message) + } + } + ) + +private val JSON_RPC_INTEGER: Regex = Regex("-?(0|[1-9]\\d*)") + +@Serializable +public data class EcpRequest( + public val jsonrpc: String = "2.0", + public val method: String, + public val id: JsonElement? = null, + public val params: JsonElement? = null, +) + +@Serializable +public data class ReadyParams( + public val delegate: List = emptyList(), +) diff --git a/protocol/languages/kotlin/embedded-checkout-protocol/src/test/java/com/shopify/ucp/embedded/checkout/EmbeddedCheckoutProtocolTest.kt b/protocol/languages/kotlin/embedded-checkout-protocol/src/test/java/com/shopify/ucp/embedded/checkout/EmbeddedCheckoutProtocolTest.kt new file mode 100644 index 000000000..f613a1f56 --- /dev/null +++ b/protocol/languages/kotlin/embedded-checkout-protocol/src/test/java/com/shopify/ucp/embedded/checkout/EmbeddedCheckoutProtocolTest.kt @@ -0,0 +1,252 @@ +package com.shopify.ucp.embedded.checkout + +import kotlinx.serialization.Serializable +import kotlinx.serialization.SerializationException +import kotlinx.serialization.json.Json +import kotlinx.serialization.json.JsonNull +import kotlinx.serialization.json.JsonPrimitive +import org.assertj.core.api.Assertions.assertThat +import org.assertj.core.api.Assertions.assertThatThrownBy +import org.junit.Test + +class EmbeddedCheckoutProtocolTest { + @Test + fun `SPEC_VERSION is non-empty`() { + assertThat(EmbeddedCheckoutProtocol.SPEC_VERSION).isNotEmpty() + } + + @Test + fun `event catalog exposes embedded checkout methods`() { + assertThat(EmbeddedCheckoutProtocol.Event.all).containsExactlyInAnyOrder( + "ec.ready", + "ec.auth", + "ec.error", + "ec.start", + "ec.complete", + "ec.messages.change", + "ec.line_items.change", + "ec.buyer.change", + "ec.totals.change", + "ec.payment.change", + "ec.payment.instruments_change_request", + "ec.payment.credential_request", + "ec.window.open_request", + "ec.fulfillment.change", + "ec.fulfillment.address_change_request", + ) + } + + @Test + fun `event catalog methods are unique`() { + assertThat(EmbeddedCheckoutProtocol.Event.all).hasSameSizeAs(EmbeddedCheckoutProtocol.Event.all.toSet()) + } + + @Test + fun `event catalog excludes sibling capabilities`() { + assertThat(EmbeddedCheckoutProtocol.Event.all).doesNotContain("ep.cart.ready") + } + + @Test + fun `notification descriptor exposes method identity`() { + val descriptor = NotificationDescriptor(EmbeddedCheckoutProtocol.Event.start) + + assertThat(descriptor.method).isEqualTo("ec.start") + } + + @Test + fun `notification descriptor decodes params with serializer helper`() { + val descriptor = notificationDescriptor( + method = EmbeddedCheckoutProtocol.Event.ready, + paramsSerializer = ReadyParams.serializer(), + decode = { it.delegate }, + ) + + val payload = descriptor.decode(Json.parseToJsonElement("""{"delegate":["window.open"]}""")) + + assertThat(payload).containsExactly("window.open") + } + + @Test + fun `notification descriptor throws when params cannot be decoded`() { + val descriptor = notificationDescriptor( + method = EmbeddedCheckoutProtocol.Event.ready, + paramsSerializer = ReadyParams.serializer(), + decode = { it.delegate }, + ) + + assertThatThrownBy { + descriptor.decode(Json.parseToJsonElement("""{"delegate":[{}]}""")) + }.isInstanceOf(SerializationException::class.java) + } + + @Test + fun `delegation descriptor exposes method and delegation identity`() { + val descriptor = DelegationDescriptor( + method = EmbeddedCheckoutProtocol.Event.windowOpenRequest, + delegation = "window.open", + ) + + assertThat(descriptor.method).isEqualTo("ec.window.open_request") + assertThat(descriptor.delegation).isEqualTo("window.open") + } + + @Test + fun `delegation descriptor decodes and encodes with serializer helper`() { + val descriptor: DelegationDescriptor = delegationDescriptor( + method = EmbeddedCheckoutProtocol.Event.windowOpenRequest, + delegation = "window.open", + requestSerializer = TestRequestParams.serializer(), + responseSerializer = TestResponseParams.serializer(), + decode = { it.url }, + encode = { TestResponseParams(opened = it) }, + ) + + val payload = descriptor.decode(Json.parseToJsonElement("""{"url":"https://example.com"}""")) + val response = descriptor.encode(true) + + assertThat(payload).isEqualTo("https://example.com") + assertThat(response.toString()).isEqualTo("""{"opened":true}""") + } + + @Test + fun `delegation descriptor throws when params cannot be decoded`() { + val descriptor: DelegationDescriptor = delegationDescriptor( + method = EmbeddedCheckoutProtocol.Event.windowOpenRequest, + delegation = "window.open", + requestSerializer = TestRequestParams.serializer(), + responseSerializer = TestResponseParams.serializer(), + decode = { it.url }, + encode = { TestResponseParams(opened = it) }, + ) + + assertThatThrownBy { + descriptor.decode(Json.parseToJsonElement("""{"url":{}}""")) + }.isInstanceOf(SerializationException::class.java) + } + + @Test + fun `embedded checkout descriptors decode checkout notifications`() { + val payload = EmbeddedCheckoutProtocol.start.decode(Json.parseToJsonElement(checkoutParamsFixture)) + + assertThat(payload?.id).isEqualTo("checkout-123") + assertThat(payload?.currency).isEqualTo("USD") + } + + @Test + fun `embedded checkout descriptors decode error notifications`() { + val payload = EmbeddedCheckoutProtocol.error.decode(Json.parseToJsonElement(errorParamsFixture)) + + assertThat(payload?.messages?.single()?.content).isEqualTo("Something went wrong") + assertThat(payload?.ucp?.status).isEqualTo(StatusEnum.Error) + } + + @Test + fun `embedded checkout window open descriptor decodes and encodes`() { + val payload = EmbeddedCheckoutProtocol.windowOpen.decode( + Json.parseToJsonElement("""{"url":"https://example.com"}"""), + ) + val success = EmbeddedCheckoutProtocol.windowOpen.encode(WindowOpenResult.Success) + val rejected = EmbeddedCheckoutProtocol.windowOpen.encode(WindowOpenResult.Rejected("Blocked")) + + assertThat(payload?.url.toString()).isEqualTo("https://example.com") + assertThat(success.toString()).isEqualTo("""{"ucp":{"version":"2026-04-08","status":"success"}}""") + assertThat(rejected.toString()).contains("window_open_rejected_error") + assertThat(rejected.toString()).contains("Blocked") + } + + @Test + fun `embedded checkout window open descriptor rejects invalid urls`() { + val blank = EmbeddedCheckoutProtocol.windowOpen.decode(Json.parseToJsonElement("""{"url":""}""")) + val malformed = EmbeddedCheckoutProtocol.windowOpen.decode( + Json.parseToJsonElement("""{"url":"https://exa mple.com"}"""), + ) + + assertThat(blank).isNull() + assertThat(malformed).isNull() + } + + @Test + fun `delegation descriptor map transforms payload and result`() { + val descriptor = EmbeddedCheckoutProtocol.windowOpen.map( + decode = { request -> request.url }, + encode = { reason: String -> WindowOpenResult.Rejected(reason) }, + ) + + val payload = descriptor.decode(Json.parseToJsonElement("""{"url":"https://example.com"}""")) + val response = descriptor.encode("No handler") + + assertThat(payload.toString()).isEqualTo("https://example.com") + assertThat(response.toString()).contains("No handler") + } + + @Test + fun `decode protocol request preserves null and numeric ids`() { + val nullId = decodeProtocolRequest("""{"jsonrpc":"2.0","method":"ec.ready","id":null,"params":{}}""") + val numericId = decodeProtocolRequest("""{"jsonrpc":"2.0","method":"ec.ready","id":7,"params":{}}""") + + assertThat(nullId.id).isEqualTo(JsonNull) + assertThat(numericId.id).isEqualTo(JsonPrimitive(7)) + } + + @Test + fun `decode protocol request rejects malformed messages`() { + assertThatThrownBy { + decodeProtocolRequest("not json") + }.isInstanceOf(SerializationException::class.java) + } + + @Test + fun `json rpc request id accepts string integer and null ids`() { + assertThat(jsonRpcRequestId(JsonPrimitive("id-1"))).isEqualTo(JsonPrimitive("id-1")) + assertThat(jsonRpcRequestId(JsonPrimitive(7))).isEqualTo(JsonPrimitive(7)) + assertThat(jsonRpcRequestId(JsonNull)).isEqualTo(JsonNull) + } + + @Test + fun `json rpc request id rejects unsupported id shapes`() { + assertThat(jsonRpcRequestId(JsonPrimitive(1.5))).isNull() + assertThat(jsonRpcRequestId(JsonPrimitive(true))).isNull() + } + + @Serializable + private data class TestRequestParams(val url: String) + + @Serializable + private data class TestResponseParams(val opened: Boolean) +} + +private val checkoutParamsFixture = """ +{ + "checkout": { + "ucp": { + "version": "2026-04-08", + "payment_handlers": {} + }, + "id": "checkout-123", + "status": "incomplete", + "currency": "USD", + "line_items": [], + "links": [], + "totals": [] + } +} +""".trimIndent() + +private val errorParamsFixture = """ +{ + "error": { + "ucp": { + "version": "2026-04-08", + "status": "error" + }, + "messages": [ + { + "type": "error", + "code": "checkout_error", + "content": "Something went wrong", + "severity": "unrecoverable" + } + ] + } +} +""".trimIndent() diff --git a/platforms/android/lib/src/test/java/com/shopify/checkoutkit/ExtendsSerializerTest.kt b/protocol/languages/kotlin/embedded-checkout-protocol/src/test/java/com/shopify/ucp/embedded/checkout/ExtendsSerializerTest.kt similarity index 98% rename from platforms/android/lib/src/test/java/com/shopify/checkoutkit/ExtendsSerializerTest.kt rename to protocol/languages/kotlin/embedded-checkout-protocol/src/test/java/com/shopify/ucp/embedded/checkout/ExtendsSerializerTest.kt index 823b03c88..62f64ef2d 100644 --- a/platforms/android/lib/src/test/java/com/shopify/checkoutkit/ExtendsSerializerTest.kt +++ b/protocol/languages/kotlin/embedded-checkout-protocol/src/test/java/com/shopify/ucp/embedded/checkout/ExtendsSerializerTest.kt @@ -1,4 +1,4 @@ -package com.shopify.checkoutkit +package com.shopify.ucp.embedded.checkout import kotlinx.serialization.SerializationException import kotlinx.serialization.json.Json diff --git a/protocol/languages/kotlin/gradle.properties b/protocol/languages/kotlin/gradle.properties new file mode 100644 index 000000000..bf7d93b94 --- /dev/null +++ b/protocol/languages/kotlin/gradle.properties @@ -0,0 +1,2 @@ +kotlin.code.style=official +kotlin.stdlib.default.dependency=false diff --git a/protocol/languages/kotlin/gradle/wrapper/gradle-wrapper.jar b/protocol/languages/kotlin/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 000000000..b1b8ef56b Binary files /dev/null and b/protocol/languages/kotlin/gradle/wrapper/gradle-wrapper.jar differ diff --git a/protocol/languages/kotlin/gradle/wrapper/gradle-wrapper.properties b/protocol/languages/kotlin/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 000000000..df6a6ad76 --- /dev/null +++ b/protocol/languages/kotlin/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,9 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip +networkTimeout=10000 +retries=0 +retryBackOffMs=500 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/protocol/languages/kotlin/gradlew b/protocol/languages/kotlin/gradlew new file mode 100755 index 000000000..b9bb139f7 --- /dev/null +++ b/protocol/languages/kotlin/gradlew @@ -0,0 +1,248 @@ +#!/bin/sh + +# +# Copyright © 2015 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/protocol/languages/kotlin/gradlew.bat b/protocol/languages/kotlin/gradlew.bat new file mode 100644 index 000000000..aa5f10b06 --- /dev/null +++ b/protocol/languages/kotlin/gradlew.bat @@ -0,0 +1,82 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables, and ensure extensions are enabled +setlocal EnableExtensions + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +"%COMSPEC%" /c exit 1 + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +"%COMSPEC%" /c exit 1 + +:execute +@rem Setup the command line + + + +@rem Execute Gradle +@rem endlocal doesn't take effect until after the line is parsed and variables are expanded +@rem which allows us to clear the local environment before executing the java command +endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel + +:exitWithErrorLevel +@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts +"%COMSPEC%" /c exit %ERRORLEVEL% diff --git a/protocol/languages/kotlin/settings.gradle b/protocol/languages/kotlin/settings.gradle new file mode 100644 index 000000000..51b6d69f8 --- /dev/null +++ b/protocol/languages/kotlin/settings.gradle @@ -0,0 +1,22 @@ +import org.gradle.api.initialization.resolve.RepositoriesMode + +pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + } +} +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + mavenCentral() + } + versionCatalogs { + libs { + from(files('../../../platforms/android/gradle/libs.versions.toml')) + } + } +} +rootProject.name = "checkout-protocol-kotlin" + +include ':embedded-checkout-protocol' diff --git a/protocol/scripts/generate_kotlin_catalog.mjs b/protocol/scripts/generate_kotlin_catalog.mjs new file mode 100644 index 000000000..cb8934462 --- /dev/null +++ b/protocol/scripts/generate_kotlin_catalog.mjs @@ -0,0 +1,152 @@ +#!/usr/bin/env node +import fs from "node:fs"; +import path from "node:path"; +import {fileURLToPath} from "node:url"; + +const scriptDir = path.dirname(fileURLToPath(import.meta.url)); +const protocolRoot = path.resolve(scriptDir, ".."); +const repoRoot = path.resolve(protocolRoot, ".."); + +const openRpcPath = path.resolve( + protocolRoot, + "services/shopping/embedded.openrpc.json", +); +const outputPath = path.resolve( + repoRoot, + "protocol/languages/kotlin/embedded-checkout-protocol/src/main/java/com/shopify/ucp/embedded/checkout/EmbeddedCheckoutProtocol.kt", +); + +const specVersion = "2026-04-08"; + +function resolvePointer(doc, pointer) { + if (!pointer) return doc; + + return pointer + .split("/") + .filter(Boolean) + .reduce((node, rawSegment) => { + if (node == null) return undefined; + const segment = rawSegment.replace(/~1/g, "/").replace(/~0/g, "~"); + return node[segment]; + }, doc); +} + +function resolveMethod(rawMethod, openRpcDir) { + const ref = rawMethod?.$ref; + if (typeof ref !== "string") { + return rawMethod; + } + + const [relativePath, pointer = ""] = ref.split("#"); + const targetPath = path.resolve(openRpcDir, relativePath); + const targetDoc = JSON.parse(fs.readFileSync(targetPath, "utf8")); + return resolvePointer(targetDoc, pointer); +} + +function methodNameToIdentifier(methodName) { + // Drop the leading `ec` capability segment; the enclosing + // EmbeddedCheckoutProtocol.Event namespace already conveys it. + const [, ...parts] = methodName.split(/[._]/g).filter(Boolean); + + return parts + .map((part, index) => + index === 0 ? part : part.charAt(0).toUpperCase() + part.slice(1), + ) + .join(""); +} + +function collectEvents(openRpc, openRpcDir) { + const events = []; + + for (const rawMethod of openRpc.methods ?? []) { + const method = resolveMethod(rawMethod, openRpcDir); + if (typeof method?.name !== "string") { + throw new Error("Encountered OpenRPC method without a name"); + } + + // Scope the Android catalog to the Embedded Checkout (`ec.*`) capability, + // matching Swift. Sibling capabilities get their own generated namespaces. + if (!method.name.startsWith("ec.")) { + continue; + } + + events.push({ + identifier: methodNameToIdentifier(method.name), + method: method.name, + }); + } + + const seen = new Set(); + for (const event of events) { + if (seen.has(event.identifier)) { + throw new Error(`Duplicate catalog identifier: ${event.identifier}`); + } + seen.add(event.identifier); + } + + return events; +} + +function renderModule(events) { + return `// This file is generated by protocol/scripts/generate_kotlin_catalog.mjs. +// Do not edit directly. + +package com.shopify.ucp.embedded.checkout + +/** + * Low-level Embedded Checkout Protocol constants, raw method catalog, and + * typed spec descriptors. + * + * This module intentionally does not decide which protocol methods Checkout Kit + * exposes to app developers. Host SDKs build their curated typed APIs on top of + * these wire-level names, descriptors, and generated payload models. + */ +public object EmbeddedCheckoutProtocol { + public const val SPEC_VERSION: String = "${specVersion}" + + public val start: NotificationDescriptor + get() = embeddedCheckoutStartDescriptor + + public val complete: NotificationDescriptor + get() = embeddedCheckoutCompleteDescriptor + + public val messagesChange: NotificationDescriptor + get() = embeddedCheckoutMessagesChangeDescriptor + + public val lineItemsChange: NotificationDescriptor + get() = embeddedCheckoutLineItemsChangeDescriptor + + public val totalsChange: NotificationDescriptor + get() = embeddedCheckoutTotalsChangeDescriptor + + public val error: NotificationDescriptor + get() = embeddedCheckoutErrorDescriptor + + public val windowOpen: DelegationDescriptor + get() = embeddedCheckoutWindowOpenDescriptor + + public object Event { +${events + .map( + event => ` public const val ${event.identifier}: String = "${event.method}"`, + ) + .join("\n")} + + public val all: Set = setOf( +${events.map(event => ` ${event.identifier},`).join("\n")} + ) + } +} +`; +} + +function main() { + const openRpc = JSON.parse(fs.readFileSync(openRpcPath, "utf8")); + const events = collectEvents(openRpc, path.dirname(openRpcPath)); + const generated = renderModule(events); + fs.mkdirSync(path.dirname(outputPath), {recursive: true}); + fs.writeFileSync(outputPath, generated); + console.log(`Generated ${outputPath}`); +} + +main(); diff --git a/protocol/scripts/generate_models.mjs b/protocol/scripts/generate_models.mjs index 8f6f31a99..011d986e8 100755 --- a/protocol/scripts/generate_models.mjs +++ b/protocol/scripts/generate_models.mjs @@ -299,7 +299,7 @@ async function generateKotlin(specDir, output) { "kotlinx", ...commonSchemaSources(specDir), "--package", - "com.shopify.checkoutkit", + "com.shopify.ucp.embedded.checkout", "-o", output, ]); @@ -452,8 +452,24 @@ async function main() { switch (lang) { case "kotlin": { - const target = output || path.join(REPO_ROOT, "platforms", "android", "lib", "src", "main", "java", "com", "shopify", "checkoutkit", "Models.kt"); + const target = output || path.join( + REPO_ROOT, + "protocol", + "languages", + "kotlin", + "embedded-checkout-protocol", + "src", + "main", + "java", + "com", + "shopify", + "ucp", + "embedded", + "checkout", + "Models.kt", + ); await generateKotlin(specDir, target); + await run("node", [path.join(PROTOCOL_DIR, "scripts", "generate_kotlin_catalog.mjs")]); console.log(`Generated ${target}`); break; }