@adapty/capacitor 3.16.0 → 3.16.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AdaptyCapacitor.podspec +3 -3
- package/Package.swift +1 -1
- package/README.md +1 -1
- package/dist/esm/adapters.d.ts +16 -0
- package/dist/esm/adapters.js +31 -0
- package/dist/esm/adapters.js.map +1 -0
- package/dist/esm/adapty-emitter.js +2 -2
- package/dist/esm/adapty-emitter.js.map +1 -1
- package/dist/esm/adapty.d.ts +8 -6
- package/dist/esm/adapty.js +40 -78
- package/dist/esm/adapty.js.map +1 -1
- package/dist/esm/coders/factory.d.ts +6 -0
- package/dist/esm/coders/factory.js +11 -0
- package/dist/esm/coders/factory.js.map +1 -0
- package/dist/esm/coders/parse-onboarding.d.ts +3 -0
- package/dist/esm/coders/parse-onboarding.js +4 -0
- package/dist/esm/coders/parse-onboarding.js.map +1 -0
- package/dist/esm/coders/parse-paywall.d.ts +3 -0
- package/dist/esm/coders/parse-paywall.js +4 -0
- package/dist/esm/coders/parse-paywall.js.map +1 -0
- package/dist/esm/coders/parse.d.ts +5 -0
- package/dist/esm/coders/parse.js +5 -0
- package/dist/esm/coders/parse.js.map +1 -0
- package/dist/esm/default-configs.js +1 -1
- package/dist/esm/default-configs.js.map +1 -1
- package/dist/esm/index.d.ts +5 -7
- package/dist/esm/index.js +3 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/logger/index.d.ts +2 -0
- package/dist/esm/logger/index.js +2 -0
- package/dist/esm/logger/index.js.map +1 -0
- package/dist/esm/types/adapty-plugin.d.ts +4 -4
- package/dist/esm/types/adapty-plugin.js.map +1 -1
- package/dist/esm/types/configs.d.ts +2 -2
- package/dist/esm/types/configs.js.map +1 -1
- package/dist/esm/types/index.d.ts +5 -0
- package/dist/esm/types/index.js +6 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/inputs.d.ts +1 -0
- package/dist/esm/types/inputs.js +2 -0
- package/dist/esm/types/inputs.js.map +1 -0
- package/dist/esm/types/method-types.d.ts +1 -0
- package/dist/esm/types/method-types.js +2 -0
- package/dist/esm/types/method-types.js.map +1 -0
- package/dist/esm/types/onboarding-events.d.ts +1 -0
- package/dist/esm/types/onboarding-events.js +2 -0
- package/dist/esm/types/onboarding-events.js.map +1 -0
- package/dist/esm/types/paywall-events.d.ts +1 -0
- package/dist/esm/types/paywall-events.js +2 -0
- package/dist/esm/types/paywall-events.js.map +1 -0
- package/dist/esm/ui-builder/base-view-emitter.d.ts +1 -1
- package/dist/esm/ui-builder/base-view-emitter.js +1 -1
- package/dist/esm/ui-builder/base-view-emitter.js.map +1 -1
- package/dist/esm/ui-builder/create-onboarding-view.d.ts +1 -1
- package/dist/esm/ui-builder/create-onboarding-view.js.map +1 -1
- package/dist/esm/ui-builder/create-paywall-view.d.ts +1 -1
- package/dist/esm/ui-builder/create-paywall-view.js.map +1 -1
- package/dist/esm/ui-builder/onboarding-view-controller.d.ts +1 -1
- package/dist/esm/ui-builder/onboarding-view-controller.js +7 -9
- package/dist/esm/ui-builder/onboarding-view-controller.js.map +1 -1
- package/dist/esm/ui-builder/onboarding-view-emitter.d.ts +2 -2
- package/dist/esm/ui-builder/onboarding-view-emitter.js +2 -2
- package/dist/esm/ui-builder/onboarding-view-emitter.js.map +1 -1
- package/dist/esm/ui-builder/paywall-view-controller.d.ts +1 -1
- package/dist/esm/ui-builder/paywall-view-controller.js +6 -8
- package/dist/esm/ui-builder/paywall-view-controller.js.map +1 -1
- package/dist/esm/ui-builder/paywall-view-emitter.d.ts +2 -2
- package/dist/esm/ui-builder/paywall-view-emitter.js +2 -2
- package/dist/esm/ui-builder/paywall-view-emitter.js.map +1 -1
- package/dist/esm/ui-builder/types.d.ts +3 -3
- package/dist/esm/ui-builder/types.js +1 -1
- package/dist/esm/ui-builder/types.js.map +1 -1
- package/dist/esm/utils/index.d.ts +1 -0
- package/dist/esm/utils/index.js +2 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/plugin.cjs.js +2882 -2777
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +5321 -5216
- package/dist/plugin.js.map +1 -1
- package/package.json +13 -7
- package/dist/esm/coder-registry.d.ts +0 -27
- package/dist/esm/coder-registry.js +0 -25
- package/dist/esm/coder-registry.js.map +0 -1
- package/dist/esm/shared/adapty-error.d.ts +0 -19
- package/dist/esm/shared/adapty-error.js +0 -46
- package/dist/esm/shared/adapty-error.js.map +0 -1
- package/dist/esm/shared/coders/adapty-access-level.d.ts +0 -10
- package/dist/esm/shared/coders/adapty-access-level.js +0 -113
- package/dist/esm/shared/coders/adapty-access-level.js.map +0 -1
- package/dist/esm/shared/coders/adapty-configuration.d.ts +0 -8
- package/dist/esm/shared/coders/adapty-configuration.js +0 -68
- package/dist/esm/shared/coders/adapty-configuration.js.map +0 -1
- package/dist/esm/shared/coders/adapty-discount-phase.d.ts +0 -10
- package/dist/esm/shared/coders/adapty-discount-phase.js +0 -39
- package/dist/esm/shared/coders/adapty-discount-phase.js.map +0 -1
- package/dist/esm/shared/coders/adapty-identify-params.d.ts +0 -11
- package/dist/esm/shared/coders/adapty-identify-params.js +0 -19
- package/dist/esm/shared/coders/adapty-identify-params.js.map +0 -1
- package/dist/esm/shared/coders/adapty-installation-details.d.ts +0 -7
- package/dist/esm/shared/coders/adapty-installation-details.js +0 -25
- package/dist/esm/shared/coders/adapty-installation-details.js.map +0 -1
- package/dist/esm/shared/coders/adapty-installation-status.d.ts +0 -7
- package/dist/esm/shared/coders/adapty-installation-status.js +0 -42
- package/dist/esm/shared/coders/adapty-installation-status.js.map +0 -1
- package/dist/esm/shared/coders/adapty-native-error.d.ts +0 -14
- package/dist/esm/shared/coders/adapty-native-error.js +0 -21
- package/dist/esm/shared/coders/adapty-native-error.js.map +0 -1
- package/dist/esm/shared/coders/adapty-non-subscription.d.ts +0 -10
- package/dist/esm/shared/coders/adapty-non-subscription.js +0 -31
- package/dist/esm/shared/coders/adapty-non-subscription.js.map +0 -1
- package/dist/esm/shared/coders/adapty-onboarding-builder.d.ts +0 -10
- package/dist/esm/shared/coders/adapty-onboarding-builder.js +0 -14
- package/dist/esm/shared/coders/adapty-onboarding-builder.js.map +0 -1
- package/dist/esm/shared/coders/adapty-onboarding.d.ts +0 -13
- package/dist/esm/shared/coders/adapty-onboarding.js +0 -55
- package/dist/esm/shared/coders/adapty-onboarding.js.map +0 -1
- package/dist/esm/shared/coders/adapty-paywall-builder.d.ts +0 -10
- package/dist/esm/shared/coders/adapty-paywall-builder.js +0 -19
- package/dist/esm/shared/coders/adapty-paywall-builder.js.map +0 -1
- package/dist/esm/shared/coders/adapty-paywall-product.d.ts +0 -11
- package/dist/esm/shared/coders/adapty-paywall-product.js +0 -94
- package/dist/esm/shared/coders/adapty-paywall-product.js.map +0 -1
- package/dist/esm/shared/coders/adapty-paywall.d.ts +0 -13
- package/dist/esm/shared/coders/adapty-paywall.js +0 -75
- package/dist/esm/shared/coders/adapty-paywall.js.map +0 -1
- package/dist/esm/shared/coders/adapty-placement.d.ts +0 -10
- package/dist/esm/shared/coders/adapty-placement.js +0 -23
- package/dist/esm/shared/coders/adapty-placement.js.map +0 -1
- package/dist/esm/shared/coders/adapty-price.d.ts +0 -10
- package/dist/esm/shared/coders/adapty-price.js +0 -29
- package/dist/esm/shared/coders/adapty-price.js.map +0 -1
- package/dist/esm/shared/coders/adapty-profile-parameters.d.ts +0 -10
- package/dist/esm/shared/coders/adapty-profile-parameters.js +0 -30
- package/dist/esm/shared/coders/adapty-profile-parameters.js.map +0 -1
- package/dist/esm/shared/coders/adapty-profile.d.ts +0 -10
- package/dist/esm/shared/coders/adapty-profile.js +0 -47
- package/dist/esm/shared/coders/adapty-profile.js.map +0 -1
- package/dist/esm/shared/coders/adapty-purchase-params.d.ts +0 -7
- package/dist/esm/shared/coders/adapty-purchase-params.js +0 -37
- package/dist/esm/shared/coders/adapty-purchase-params.js.map +0 -1
- package/dist/esm/shared/coders/adapty-purchase-result.d.ts +0 -12
- package/dist/esm/shared/coders/adapty-purchase-result.js +0 -54
- package/dist/esm/shared/coders/adapty-purchase-result.js.map +0 -1
- package/dist/esm/shared/coders/adapty-remote-config.d.ts +0 -13
- package/dist/esm/shared/coders/adapty-remote-config.js +0 -41
- package/dist/esm/shared/coders/adapty-remote-config.js.map +0 -1
- package/dist/esm/shared/coders/adapty-subscription-details.d.ts +0 -11
- package/dist/esm/shared/coders/adapty-subscription-details.js +0 -64
- package/dist/esm/shared/coders/adapty-subscription-details.js.map +0 -1
- package/dist/esm/shared/coders/adapty-subscription-offer-identifier.d.ts +0 -10
- package/dist/esm/shared/coders/adapty-subscription-offer-identifier.js +0 -19
- package/dist/esm/shared/coders/adapty-subscription-offer-identifier.js.map +0 -1
- package/dist/esm/shared/coders/adapty-subscription-offer.d.ts +0 -11
- package/dist/esm/shared/coders/adapty-subscription-offer.js +0 -50
- package/dist/esm/shared/coders/adapty-subscription-offer.js.map +0 -1
- package/dist/esm/shared/coders/adapty-subscription-period.d.ts +0 -10
- package/dist/esm/shared/coders/adapty-subscription-period.js +0 -11
- package/dist/esm/shared/coders/adapty-subscription-period.js.map +0 -1
- package/dist/esm/shared/coders/adapty-subscription.d.ts +0 -10
- package/dist/esm/shared/coders/adapty-subscription.js +0 -116
- package/dist/esm/shared/coders/adapty-subscription.js.map +0 -1
- package/dist/esm/shared/coders/adapty-ui-create-onboarding-view-params.d.ts +0 -8
- package/dist/esm/shared/coders/adapty-ui-create-onboarding-view-params.js +0 -10
- package/dist/esm/shared/coders/adapty-ui-create-onboarding-view-params.js.map +0 -1
- package/dist/esm/shared/coders/adapty-ui-create-paywall-view-params.d.ts +0 -18
- package/dist/esm/shared/coders/adapty-ui-create-paywall-view-params.js +0 -142
- package/dist/esm/shared/coders/adapty-ui-create-paywall-view-params.js.map +0 -1
- package/dist/esm/shared/coders/adapty-ui-media-cache.d.ts +0 -10
- package/dist/esm/shared/coders/adapty-ui-media-cache.js +0 -24
- package/dist/esm/shared/coders/adapty-ui-media-cache.js.map +0 -1
- package/dist/esm/shared/coders/adapty-ui-onboarding-meta.d.ts +0 -10
- package/dist/esm/shared/coders/adapty-ui-onboarding-meta.js +0 -29
- package/dist/esm/shared/coders/adapty-ui-onboarding-meta.js.map +0 -1
- package/dist/esm/shared/coders/adapty-ui-onboarding-state-params.d.ts +0 -10
- package/dist/esm/shared/coders/adapty-ui-onboarding-state-params.js +0 -24
- package/dist/esm/shared/coders/adapty-ui-onboarding-state-params.js.map +0 -1
- package/dist/esm/shared/coders/adapty-ui-onboarding-state-updated-action.d.ts +0 -14
- package/dist/esm/shared/coders/adapty-ui-onboarding-state-updated-action.js +0 -55
- package/dist/esm/shared/coders/adapty-ui-onboarding-state-updated-action.js.map +0 -1
- package/dist/esm/shared/coders/array.d.ts +0 -15
- package/dist/esm/shared/coders/array.js +0 -34
- package/dist/esm/shared/coders/array.js.map +0 -1
- package/dist/esm/shared/coders/bridge-error.d.ts +0 -13
- package/dist/esm/shared/coders/bridge-error.js +0 -78
- package/dist/esm/shared/coders/bridge-error.js.map +0 -1
- package/dist/esm/shared/coders/coder.d.ts +0 -13
- package/dist/esm/shared/coders/coder.js +0 -118
- package/dist/esm/shared/coders/coder.js.map +0 -1
- package/dist/esm/shared/coders/date.d.ts +0 -9
- package/dist/esm/shared/coders/date.js +0 -36
- package/dist/esm/shared/coders/date.js.map +0 -1
- package/dist/esm/shared/coders/error-coder.d.ts +0 -6
- package/dist/esm/shared/coders/error-coder.js +0 -2
- package/dist/esm/shared/coders/error-coder.js.map +0 -1
- package/dist/esm/shared/coders/hashmap.d.ts +0 -7
- package/dist/esm/shared/coders/hashmap.js +0 -25
- package/dist/esm/shared/coders/hashmap.js.map +0 -1
- package/dist/esm/shared/coders/json.d.ts +0 -8
- package/dist/esm/shared/coders/json.js +0 -15
- package/dist/esm/shared/coders/json.js.map +0 -1
- package/dist/esm/shared/coders/parse-onboarding.d.ts +0 -3
- package/dist/esm/shared/coders/parse-onboarding.js +0 -86
- package/dist/esm/shared/coders/parse-onboarding.js.map +0 -1
- package/dist/esm/shared/coders/parse-paywall.d.ts +0 -4
- package/dist/esm/shared/coders/parse-paywall.js +0 -141
- package/dist/esm/shared/coders/parse-paywall.js.map +0 -1
- package/dist/esm/shared/coders/parse.d.ts +0 -6
- package/dist/esm/shared/coders/parse.js +0 -135
- package/dist/esm/shared/coders/parse.js.map +0 -1
- package/dist/esm/shared/coders/product-reference.d.ts +0 -10
- package/dist/esm/shared/coders/product-reference.js +0 -53
- package/dist/esm/shared/coders/product-reference.js.map +0 -1
- package/dist/esm/shared/coders/types.d.ts +0 -23
- package/dist/esm/shared/coders/types.js +0 -2
- package/dist/esm/shared/coders/types.js.map +0 -1
- package/dist/esm/shared/coders/utils.d.ts +0 -18
- package/dist/esm/shared/coders/utils.js +0 -50
- package/dist/esm/shared/coders/utils.js.map +0 -1
- package/dist/esm/shared/constants.d.ts +0 -42
- package/dist/esm/shared/constants.js +0 -37
- package/dist/esm/shared/constants.js.map +0 -1
- package/dist/esm/shared/index.d.ts +0 -3
- package/dist/esm/shared/index.js +0 -4
- package/dist/esm/shared/index.js.map +0 -1
- package/dist/esm/shared/logger/console-sink.d.ts +0 -2
- package/dist/esm/shared/logger/console-sink.js +0 -23
- package/dist/esm/shared/logger/console-sink.js.map +0 -1
- package/dist/esm/shared/logger/index.d.ts +0 -5
- package/dist/esm/shared/logger/index.js +0 -5
- package/dist/esm/shared/logger/index.js.map +0 -1
- package/dist/esm/shared/logger/log-context.d.ts +0 -23
- package/dist/esm/shared/logger/log-context.js +0 -61
- package/dist/esm/shared/logger/log-context.js.map +0 -1
- package/dist/esm/shared/logger/log-scope.d.ts +0 -25
- package/dist/esm/shared/logger/log-scope.js +0 -26
- package/dist/esm/shared/logger/log-scope.js.map +0 -1
- package/dist/esm/shared/logger/log.d.ts +0 -34
- package/dist/esm/shared/logger/log.js +0 -110
- package/dist/esm/shared/logger/log.js.map +0 -1
- package/dist/esm/shared/logger/types.d.ts +0 -20
- package/dist/esm/shared/logger/types.js +0 -2
- package/dist/esm/shared/logger/types.js.map +0 -1
- package/dist/esm/shared/types/bridge.d.ts +0 -50
- package/dist/esm/shared/types/bridge.js +0 -78
- package/dist/esm/shared/types/bridge.js.map +0 -1
- package/dist/esm/shared/types/error.d.ts +0 -325
- package/dist/esm/shared/types/error.js +0 -176
- package/dist/esm/shared/types/error.js.map +0 -1
- package/dist/esm/shared/types/index.d.ts +0 -718
- package/dist/esm/shared/types/index.js +0 -14
- package/dist/esm/shared/types/index.js.map +0 -1
- package/dist/esm/shared/types/inputs.d.ts +0 -238
- package/dist/esm/shared/types/inputs.js +0 -42
- package/dist/esm/shared/types/inputs.js.map +0 -1
- package/dist/esm/shared/types/method-types.d.ts +0 -86
- package/dist/esm/shared/types/method-types.js +0 -13
- package/dist/esm/shared/types/method-types.js.map +0 -1
- package/dist/esm/shared/types/onboarding-events.d.ts +0 -60
- package/dist/esm/shared/types/onboarding-events.js +0 -11
- package/dist/esm/shared/types/onboarding-events.js.map +0 -1
- package/dist/esm/shared/types/paywall-events.d.ts +0 -84
- package/dist/esm/shared/types/paywall-events.js +0 -16
- package/dist/esm/shared/types/paywall-events.js.map +0 -1
- package/dist/esm/shared/utils/compact-object.d.ts +0 -6
- package/dist/esm/shared/utils/compact-object.js +0 -9
- package/dist/esm/shared/utils/compact-object.js.map +0 -1
- package/dist/esm/shared/utils/map-values.d.ts +0 -8
- package/dist/esm/shared/utils/map-values.js +0 -11
- package/dist/esm/shared/utils/map-values.js.map +0 -1
- package/dist/esm/shared/utils/merge-options.d.ts +0 -7
- package/dist/esm/shared/utils/merge-options.js +0 -93
- package/dist/esm/shared/utils/merge-options.js.map +0 -1
- package/dist/esm/shared/utils/platform.d.ts +0 -2
- package/dist/esm/shared/utils/platform.js +0 -5
- package/dist/esm/shared/utils/platform.js.map +0 -1
- package/dist/esm/shared/utils/with-error-context.d.ts +0 -7
- package/dist/esm/shared/utils/with-error-context.js +0 -33
- package/dist/esm/shared/utils/with-error-context.js.map +0 -1
package/AdaptyCapacitor.podspec
CHANGED
|
@@ -13,8 +13,8 @@ Pod::Spec.new do |s|
|
|
|
13
13
|
s.source_files = 'ios/Sources/**/*.{swift,h,m,c,cc,mm,cpp}'
|
|
14
14
|
s.ios.deployment_target = '15.0'
|
|
15
15
|
s.dependency 'Capacitor'
|
|
16
|
-
s.dependency 'Adapty', '3.15.
|
|
17
|
-
s.dependency 'AdaptyUI', '3.15.
|
|
18
|
-
s.dependency 'AdaptyPlugin', '3.15.
|
|
16
|
+
s.dependency 'Adapty', '3.15.5'
|
|
17
|
+
s.dependency 'AdaptyUI', '3.15.5'
|
|
18
|
+
s.dependency 'AdaptyPlugin', '3.15.5'
|
|
19
19
|
s.swift_version = '5.1'
|
|
20
20
|
end
|
package/Package.swift
CHANGED
|
@@ -11,7 +11,7 @@ let package = Package(
|
|
|
11
11
|
],
|
|
12
12
|
dependencies: [
|
|
13
13
|
.package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", from: "8.0.0"),
|
|
14
|
-
.package(url: "https://github.com/adaptyteam/AdaptySDK-iOS.git", exact: "3.15.
|
|
14
|
+
.package(url: "https://github.com/adaptyteam/AdaptySDK-iOS.git", exact: "3.15.5")
|
|
15
15
|
],
|
|
16
16
|
targets: [
|
|
17
17
|
.target(
|
package/README.md
CHANGED
|
@@ -108,7 +108,7 @@ Adapty SDK for Capacitor is fully supported on **iOS** and **Android** platforms
|
|
|
108
108
|
|
|
109
109
|
| Capacitor version | `@adapty/capacitor` version |
|
|
110
110
|
| --- |-----------------------------|
|
|
111
|
-
| 8.x | 3.16.0
|
|
111
|
+
| 8.x | 3.16.0 and newer |
|
|
112
112
|
| 7.x | 3.15.x and older |
|
|
113
113
|
| 6.x and older | Not supported |
|
|
114
114
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { IPlatformAdapter, ISdkMetadataAdapter, PlatformOS } from '@adapty/core';
|
|
2
|
+
/**
|
|
3
|
+
* Capacitor implementation of IPlatformAdapter
|
|
4
|
+
* Wraps Capacitor.getPlatform() to detect current OS
|
|
5
|
+
*/
|
|
6
|
+
export declare class CapacitorPlatformAdapter implements IPlatformAdapter {
|
|
7
|
+
get OS(): PlatformOS;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Capacitor implementation of ISdkMetadataAdapter
|
|
11
|
+
* Provides SDK name and version metadata
|
|
12
|
+
*/
|
|
13
|
+
export declare class CapacitorSdkMetadataAdapter implements ISdkMetadataAdapter {
|
|
14
|
+
get sdkName(): string;
|
|
15
|
+
get sdkVersion(): string;
|
|
16
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Capacitor } from '@capacitor/core';
|
|
2
|
+
import VERSION from './version';
|
|
3
|
+
/**
|
|
4
|
+
* Capacitor implementation of IPlatformAdapter
|
|
5
|
+
* Wraps Capacitor.getPlatform() to detect current OS
|
|
6
|
+
*/
|
|
7
|
+
export class CapacitorPlatformAdapter {
|
|
8
|
+
get OS() {
|
|
9
|
+
const platform = Capacitor.getPlatform();
|
|
10
|
+
if (platform === 'ios' || platform === 'android') {
|
|
11
|
+
return platform;
|
|
12
|
+
}
|
|
13
|
+
if (platform === 'web') {
|
|
14
|
+
return 'web';
|
|
15
|
+
}
|
|
16
|
+
return 'unknown';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Capacitor implementation of ISdkMetadataAdapter
|
|
21
|
+
* Provides SDK name and version metadata
|
|
22
|
+
*/
|
|
23
|
+
export class CapacitorSdkMetadataAdapter {
|
|
24
|
+
get sdkName() {
|
|
25
|
+
return 'capacitor';
|
|
26
|
+
}
|
|
27
|
+
get sdkVersion() {
|
|
28
|
+
return VERSION;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=adapters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../src/adapters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC;;;GAGG;AACH,MAAM,OAAO,wBAAwB;IACnC,IAAI,EAAE;QACJ,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACjD,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,2BAA2B;IACtC,IAAI,OAAO;QACT,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;CACF","sourcesContent":["import type { IPlatformAdapter, ISdkMetadataAdapter, PlatformOS } from '@adapty/core';\nimport { Capacitor } from '@capacitor/core';\n\nimport VERSION from './version';\n\n/**\n * Capacitor implementation of IPlatformAdapter\n * Wraps Capacitor.getPlatform() to detect current OS\n */\nexport class CapacitorPlatformAdapter implements IPlatformAdapter {\n get OS(): PlatformOS {\n const platform = Capacitor.getPlatform();\n if (platform === 'ios' || platform === 'android') {\n return platform;\n }\n if (platform === 'web') {\n return 'web';\n }\n return 'unknown';\n }\n}\n\n/**\n * Capacitor implementation of ISdkMetadataAdapter\n * Provides SDK name and version metadata\n */\nexport class CapacitorSdkMetadataAdapter implements ISdkMetadataAdapter {\n get sdkName(): string {\n return 'capacitor';\n }\n\n get sdkVersion(): string {\n return VERSION;\n }\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AdaptyCapacitorPlugin } from './bridge/plugin';
|
|
2
|
-
import { parseCommonEvent } from './
|
|
3
|
-
import { LogContext } from './
|
|
2
|
+
import { parseCommonEvent } from './coders/parse';
|
|
3
|
+
import { LogContext } from './logger';
|
|
4
4
|
// Type-safe parser functions for each event
|
|
5
5
|
function parseProfileEvent(raw, eventCtx) {
|
|
6
6
|
const profile = parseCommonEvent('did_load_latest_profile', raw, eventCtx);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapty-emitter.js","sourceRoot":"","sources":["../../src/adapty-emitter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAS7C,4CAA4C;AAC5C,SAAS,iBAAiB,CAAC,GAAW,EAAE,QAAoB;IAC1D,MAAM,OAAO,GAAG,gBAAgB,CAAC,yBAAyB,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC3E,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAwB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAChE,CAAC;AAED,SAAS,oCAAoC,CAC3C,GAAW,EACX,QAAoB;IAEpB,MAAM,OAAO,GAAG,gBAAgB,CAAC,iCAAiC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IACnF,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAoC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5E,CAAC;AAED,SAAS,iCAAiC,CACxC,GAAW,EACX,QAAoB;IAEpB,MAAM,KAAK,GAAG,gBAAgB,CAAC,8BAA8B,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC9E,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAoB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED,MAAM,SAAS,GAAqD;IAClE,mBAAmB,EAAE;QACnB,MAAM,EAAE,yBAAyB;QACjC,KAAK,EAAE,iBAAiB;KACzB;IACD,4BAA4B,EAAE;QAC5B,MAAM,EAAE,iCAAiC;QACzC,KAAK,EAAE,oCAAoC;KAC5C;IACD,yBAAyB,EAAE;QACzB,MAAM,EAAE,8BAA8B;QACtC,KAAK,EAAE,iCAAiC;KACzC;CACF,CAAC;AAEF,MAAM,OAAO,aAAa;IAA1B;QACU,yBAAoB,GAAsC,IAAI,GAAG,EAAE,CAAC;QACpE,qBAAgB,GAQpB,IAAI,GAAG,EAAE,CAAC;QAEP,gBAAW,GAAkB,KAAK,EACvC,SAAY,EACZ,QAA4C,EACb,EAAE;;YACjC,MAAM,GAAG,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;YACpD,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YAEjC,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;YAC9D,CAAC;YAED,MAAM,SAAS,GAAG,GAAG,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/D,MAAM,gBAAgB,GAAG,MAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,mCAAI,EAAE,CAAC;YAC7E,gBAAgB,CAAC,IAAI,CAAC;gBACpB,EAAE,EAAE,SAAS;gBACb,WAAW,EAAE,SAAS;gBACtB,QAAQ,EAAE,QAAkE;gBAC5E,MAAM,EAAE,WAAiD;aAC1D,CAAC,CAAC;YACH,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YAEhE,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBACvC,MAAM,YAAY,GAAG,MAAM,qBAAqB,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,GAAqB,EAAE,EAAE;;oBACzG,MAAM,QAAQ,GAAG,IAAI,UAAU,EAAE,CAAC;oBAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;oBACpE,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;oBAErC,MAAM,YAAY,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,CAAC;oBAC/B,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;wBACrC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,gDAAgD,CAAC,EAAE,CAAC,CAAC,CAAC;wBAChG,OAAO;oBACT,CAAC;oBAED,MAAM,aAAa,GAAG,MAAA,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,mCAAI,EAAE,CAAC;oBAC7D,KAAK,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;wBAC9D,IAAI,OAAO,GAAkD,IAAI,CAAC;wBAClE,IAAI,CAAC;4BACH,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;wBACjD,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;4BACxC,SAAS;wBACX,CAAC;wBAED,IAAI,CAAC,OAAO,EAAE,CAAC;4BACb,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC,CAAC;4BACjF,SAAS;wBACX,CAAC;wBAED,IAAI,CAAC;4BACH,QAAQ,CAAC,OAAO,CAAC,CAAC;4BAClB,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;wBACnF,CAAC;wBAAC,OAAO,YAAY,EAAE,CAAC;4BACtB,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;wBACzD,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAClE,CAAC;YAED,8DAA8D;YAC9D,MAAM,aAAa,GAAyB;gBAC1C,MAAM,EAAE,KAAK,IAAI,EAAE;oBACjB,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC1D,CAAC;aACsB,CAAC;YAE1B,OAAO,aAAa,CAAC;QACvB,CAAC,CAAC;IA4FJ,CAAC;IA1FS,KAAK,CAAC,aAAa,CAAC,WAAmB,EAAE,SAAiB;QAChE,MAAM,GAAG,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,CAAC;QACtD,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAE9C,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,oCAAoC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;YACpF,OAAO;QACT,CAAC;QAED,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,MAAM,CAAC;QACrD,8BAA8B;QAC9B,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QAC5E,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAEzD,MAAM,cAAc,GAAG,gBAAgB,CAAC,MAAM,GAAG,oBAAoB,CAAC;QACtE,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBACjB,OAAO,EAAE,oCAAoC;gBAC7C,WAAW;gBACX,SAAS;gBACT,iBAAiB,EAAE,gBAAgB,CAAC,MAAM;aAC3C,CAAC,CAAC,CAAC;YACJ,OAAO;QACT,CAAC;QAED,qEAAqE;QACrE,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAChE,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC;oBACH,MAAM,YAAY,CAAC,MAAM,EAAE,CAAC;oBAC5B,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;oBAC9C,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;wBACjB,OAAO,EAAE,sDAAsD;wBAC/D,WAAW;wBACX,SAAS;qBACV,CAAC,CAAC,CAAC;gBACN,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;wBAChB,OAAO,EAAE,qCAAqC,WAAW,EAAE;wBAC3D,KAAK;wBACL,WAAW;wBACX,SAAS;qBACV,CAAC,CAAC,CAAC;gBACN,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;oBACjB,OAAO,EAAE,+CAA+C;oBACxD,WAAW;oBACX,SAAS;iBACV,CAAC,CAAC,CAAC;YACN,CAAC;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBACjB,OAAO,EAAE,8BAA8B;gBACvC,WAAW;gBACX,SAAS;gBACT,iBAAiB,EAAE,gBAAgB,CAAC,MAAM;aAC3C,CAAC,CAAC,CAAC;QACN,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,GAAG,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,oBAAoB,EAAE,CAAC,CAAC;QAC3D,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAEtE,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAC1F,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC9B,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;oBAChB,OAAO,EAAE,mCAAmC,KAAK,EAAE;oBACnD,KAAK;oBACL,KAAK;iBACN,CAAC,CAAC,CAAC;YACN,CAAC,CAAC,CACH,CAAC;YAEF,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAClC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAC9B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF","sourcesContent":["import type { PluginListenerHandle } from '@capacitor/core';\n\nimport { AdaptyCapacitorPlugin } from './bridge/plugin';\nimport type { AdaptyError } from './shared/adapty-error';\nimport { parseCommonEvent } from './shared/coders/parse';\nimport { LogContext } from './shared/logger';\nimport type { AdaptyProfile, AdaptyInstallationDetails } from './shared/types';\nimport type { AddListenerFn, EventPayloadMap } from './types/adapty-plugin';\n\ntype EventConfig<K extends keyof EventPayloadMap> = {\n native: 'did_load_latest_profile' | 'on_installation_details_success' | 'on_installation_details_fail';\n parse: (raw: string, eventCtx: LogContext) => EventPayloadMap[K] | null;\n};\n\n// Type-safe parser functions for each event\nfunction parseProfileEvent(raw: string, eventCtx: LogContext): EventPayloadMap['onLatestProfileLoad'] | null {\n const profile = parseCommonEvent('did_load_latest_profile', raw, eventCtx);\n return profile ? { profile: profile as AdaptyProfile } : null;\n}\n\nfunction parseInstallationDetailsSuccessEvent(\n raw: string,\n eventCtx: LogContext,\n): EventPayloadMap['onInstallationDetailsSuccess'] | null {\n const details = parseCommonEvent('on_installation_details_success', raw, eventCtx);\n return details ? { details: details as AdaptyInstallationDetails } : null;\n}\n\nfunction parseInstallationDetailsFailEvent(\n raw: string,\n eventCtx: LogContext,\n): EventPayloadMap['onInstallationDetailsFail'] | null {\n const error = parseCommonEvent('on_installation_details_fail', raw, eventCtx);\n return error ? { error: error as AdaptyError } : null;\n}\n\nconst EVENT_MAP: { [K in keyof EventPayloadMap]: EventConfig<K> } = {\n onLatestProfileLoad: {\n native: 'did_load_latest_profile',\n parse: parseProfileEvent,\n },\n onInstallationDetailsSuccess: {\n native: 'on_installation_details_success',\n parse: parseInstallationDetailsSuccessEvent,\n },\n onInstallationDetailsFail: {\n native: 'on_installation_details_fail',\n parse: parseInstallationDetailsFailEvent,\n },\n};\n\nexport class AdaptyEmitter {\n private nativeEventListeners: Map<string, PluginListenerHandle> = new Map();\n private externalHandlers: Map<\n string,\n {\n id: string;\n handlerName: keyof EventPayloadMap;\n listener: (data: EventPayloadMap[keyof EventPayloadMap]) => void;\n config: EventConfig<keyof EventPayloadMap>;\n }[]\n > = new Map();\n\n public addListener: AddListenerFn = async <T extends keyof EventPayloadMap>(\n eventName: T,\n listener: (data: EventPayloadMap[T]) => void,\n ): Promise<PluginListenerHandle> => {\n const ctx = new LogContext();\n const log = ctx.call({ methodName: 'addListener' });\n log.start(() => ({ eventName }));\n\n const eventConfig = EVENT_MAP[eventName];\n if (!eventConfig) {\n throw new Error(`[Adapty] Unsupported event: ${eventName}`);\n }\n\n const handlerId = `${eventName}_${Math.random().toString(36)}`;\n const handlersForEvent = this.externalHandlers.get(eventConfig.native) ?? [];\n handlersForEvent.push({\n id: handlerId,\n handlerName: eventName,\n listener: listener as (data: EventPayloadMap[keyof EventPayloadMap]) => void,\n config: eventConfig as EventConfig<keyof EventPayloadMap>,\n });\n this.externalHandlers.set(eventConfig.native, handlersForEvent);\n\n if (!this.nativeEventListeners.has(eventConfig.native)) {\n const handlers = this.externalHandlers;\n const subscription = await AdaptyCapacitorPlugin.addListener(eventConfig.native, (arg: { data: string }) => {\n const eventCtx = new LogContext();\n const eventLog = eventCtx.event({ methodName: eventConfig.native });\n eventLog.start(() => ({ raw: arg }));\n\n const rawEventData = arg?.data;\n if (typeof rawEventData !== 'string') {\n eventLog.failed(() => ({ error: new Error('[Adapty] Expected event data to be JSON string') }));\n return;\n }\n\n const eventHandlers = handlers.get(eventConfig.native) ?? [];\n for (const { handlerName, listener, config } of eventHandlers) {\n let payload: EventPayloadMap[keyof EventPayloadMap] | null = null;\n try {\n payload = config.parse(rawEventData, eventCtx);\n } catch (err) {\n eventLog.failed(() => ({ error: err }));\n continue;\n }\n\n if (!payload) {\n eventLog.failed(() => ({ error: new Error('[Adapty] Parsed payload is null') }));\n continue;\n }\n\n try {\n listener(payload);\n eventLog.success(() => ({ message: 'Event handled successfully', handlerName }));\n } catch (handlerError) {\n eventLog.failed(() => ({ handlerName, handlerError }));\n }\n }\n });\n this.nativeEventListeners.set(eventConfig.native, subscription);\n }\n\n // Return wrapper handle that can remove this specific handler\n const wrappedHandle: PluginListenerHandle = {\n remove: async () => {\n await this.removeHandler(eventConfig.native, handlerId);\n },\n } as PluginListenerHandle;\n\n return wrappedHandle;\n };\n\n private async removeHandler(nativeEvent: string, handlerId: string): Promise<void> {\n const ctx = new LogContext();\n const log = ctx.call({ methodName: 'removeHandler' });\n log.start(() => ({ nativeEvent, handlerId }));\n\n const handlersForEvent = this.externalHandlers.get(nativeEvent);\n if (!handlersForEvent) {\n log.success(() => ({ message: 'No handlers found for native event', nativeEvent }));\n return;\n }\n\n const initialHandlersCount = handlersForEvent.length;\n // Remove the specific handler\n const filteredHandlers = handlersForEvent.filter((h) => h.id !== handlerId);\n this.externalHandlers.set(nativeEvent, filteredHandlers);\n\n const handlerRemoved = filteredHandlers.length < initialHandlersCount;\n if (!handlerRemoved) {\n log.success(() => ({\n message: 'Handler not found in handlers list',\n nativeEvent,\n handlerId,\n remainingHandlers: filteredHandlers.length,\n }));\n return;\n }\n\n // If no more handlers for this native event, remove the subscription\n if (filteredHandlers.length === 0) {\n this.externalHandlers.delete(nativeEvent);\n const subscription = this.nativeEventListeners.get(nativeEvent);\n if (subscription) {\n try {\n await subscription.remove();\n this.nativeEventListeners.delete(nativeEvent);\n log.success(() => ({\n message: 'Handler and native subscription removed successfully',\n nativeEvent,\n handlerId,\n }));\n } catch (error) {\n log.failed(() => ({\n message: `Failed to remove subscription for ${nativeEvent}`,\n error,\n nativeEvent,\n handlerId,\n }));\n }\n } else {\n log.success(() => ({\n message: 'Handler removed, no native subscription found',\n nativeEvent,\n handlerId,\n }));\n }\n } else {\n log.success(() => ({\n message: 'Handler removed successfully',\n nativeEvent,\n handlerId,\n remainingHandlers: filteredHandlers.length,\n }));\n }\n }\n\n async removeAllListeners(): Promise<void> {\n const ctx = new LogContext();\n const log = ctx.call({ methodName: 'removeAllListeners' });\n log.start(() => ({ listenersCount: this.nativeEventListeners.size }));\n\n try {\n const removePromises = Array.from(this.nativeEventListeners.values()).map((handle, index) =>\n handle.remove().catch((error) => {\n log.failed(() => ({\n message: `Failed to remove event listener ${index}`,\n error,\n index,\n }));\n }),\n );\n\n this.nativeEventListeners.clear();\n this.externalHandlers.clear();\n await Promise.all(removePromises);\n log.success(() => ({ message: 'All listeners removed successfully' }));\n } catch (error) {\n log.failed(() => ({ error }));\n throw error;\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"adapty-emitter.js","sourceRoot":"","sources":["../../src/adapty-emitter.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AdaptyError } from '@adapty/core';\nimport type { PluginListenerHandle } from '@capacitor/core';\n\nimport { AdaptyCapacitorPlugin } from './bridge/plugin';\nimport { parseCommonEvent } from './coders/parse';\nimport { LogContext } from './logger';\nimport type { AdaptyProfile, AdaptyInstallationDetails } from './types';\nimport type { AddListenerFn, EventPayloadMap } from './types/adapty-plugin';\n\ntype EventConfig<K extends keyof EventPayloadMap> = {\n native: 'did_load_latest_profile' | 'on_installation_details_success' | 'on_installation_details_fail';\n parse: (raw: string, eventCtx: LogContext) => EventPayloadMap[K] | null;\n};\n\n// Type-safe parser functions for each event\nfunction parseProfileEvent(raw: string, eventCtx: LogContext): EventPayloadMap['onLatestProfileLoad'] | null {\n const profile = parseCommonEvent('did_load_latest_profile', raw, eventCtx);\n return profile ? { profile: profile as AdaptyProfile } : null;\n}\n\nfunction parseInstallationDetailsSuccessEvent(\n raw: string,\n eventCtx: LogContext,\n): EventPayloadMap['onInstallationDetailsSuccess'] | null {\n const details = parseCommonEvent('on_installation_details_success', raw, eventCtx);\n return details ? { details: details as AdaptyInstallationDetails } : null;\n}\n\nfunction parseInstallationDetailsFailEvent(\n raw: string,\n eventCtx: LogContext,\n): EventPayloadMap['onInstallationDetailsFail'] | null {\n const error = parseCommonEvent('on_installation_details_fail', raw, eventCtx);\n return error ? { error: error as AdaptyError } : null;\n}\n\nconst EVENT_MAP: { [K in keyof EventPayloadMap]: EventConfig<K> } = {\n onLatestProfileLoad: {\n native: 'did_load_latest_profile',\n parse: parseProfileEvent,\n },\n onInstallationDetailsSuccess: {\n native: 'on_installation_details_success',\n parse: parseInstallationDetailsSuccessEvent,\n },\n onInstallationDetailsFail: {\n native: 'on_installation_details_fail',\n parse: parseInstallationDetailsFailEvent,\n },\n};\n\nexport class AdaptyEmitter {\n private nativeEventListeners: Map<string, PluginListenerHandle> = new Map();\n private externalHandlers: Map<\n string,\n {\n id: string;\n handlerName: keyof EventPayloadMap;\n listener: (data: EventPayloadMap[keyof EventPayloadMap]) => void;\n config: EventConfig<keyof EventPayloadMap>;\n }[]\n > = new Map();\n\n public addListener: AddListenerFn = async <T extends keyof EventPayloadMap>(\n eventName: T,\n listener: (data: EventPayloadMap[T]) => void,\n ): Promise<PluginListenerHandle> => {\n const ctx = new LogContext();\n const log = ctx.call({ methodName: 'addListener' });\n log.start(() => ({ eventName }));\n\n const eventConfig = EVENT_MAP[eventName];\n if (!eventConfig) {\n throw new Error(`[Adapty] Unsupported event: ${eventName}`);\n }\n\n const handlerId = `${eventName}_${Math.random().toString(36)}`;\n const handlersForEvent = this.externalHandlers.get(eventConfig.native) ?? [];\n handlersForEvent.push({\n id: handlerId,\n handlerName: eventName,\n listener: listener as (data: EventPayloadMap[keyof EventPayloadMap]) => void,\n config: eventConfig as EventConfig<keyof EventPayloadMap>,\n });\n this.externalHandlers.set(eventConfig.native, handlersForEvent);\n\n if (!this.nativeEventListeners.has(eventConfig.native)) {\n const handlers = this.externalHandlers;\n const subscription = await AdaptyCapacitorPlugin.addListener(eventConfig.native, (arg: { data: string }) => {\n const eventCtx = new LogContext();\n const eventLog = eventCtx.event({ methodName: eventConfig.native });\n eventLog.start(() => ({ raw: arg }));\n\n const rawEventData = arg?.data;\n if (typeof rawEventData !== 'string') {\n eventLog.failed(() => ({ error: new Error('[Adapty] Expected event data to be JSON string') }));\n return;\n }\n\n const eventHandlers = handlers.get(eventConfig.native) ?? [];\n for (const { handlerName, listener, config } of eventHandlers) {\n let payload: EventPayloadMap[keyof EventPayloadMap] | null = null;\n try {\n payload = config.parse(rawEventData, eventCtx);\n } catch (err) {\n eventLog.failed(() => ({ error: err }));\n continue;\n }\n\n if (!payload) {\n eventLog.failed(() => ({ error: new Error('[Adapty] Parsed payload is null') }));\n continue;\n }\n\n try {\n listener(payload);\n eventLog.success(() => ({ message: 'Event handled successfully', handlerName }));\n } catch (handlerError) {\n eventLog.failed(() => ({ handlerName, handlerError }));\n }\n }\n });\n this.nativeEventListeners.set(eventConfig.native, subscription);\n }\n\n // Return wrapper handle that can remove this specific handler\n const wrappedHandle: PluginListenerHandle = {\n remove: async () => {\n await this.removeHandler(eventConfig.native, handlerId);\n },\n } as PluginListenerHandle;\n\n return wrappedHandle;\n };\n\n private async removeHandler(nativeEvent: string, handlerId: string): Promise<void> {\n const ctx = new LogContext();\n const log = ctx.call({ methodName: 'removeHandler' });\n log.start(() => ({ nativeEvent, handlerId }));\n\n const handlersForEvent = this.externalHandlers.get(nativeEvent);\n if (!handlersForEvent) {\n log.success(() => ({ message: 'No handlers found for native event', nativeEvent }));\n return;\n }\n\n const initialHandlersCount = handlersForEvent.length;\n // Remove the specific handler\n const filteredHandlers = handlersForEvent.filter((h) => h.id !== handlerId);\n this.externalHandlers.set(nativeEvent, filteredHandlers);\n\n const handlerRemoved = filteredHandlers.length < initialHandlersCount;\n if (!handlerRemoved) {\n log.success(() => ({\n message: 'Handler not found in handlers list',\n nativeEvent,\n handlerId,\n remainingHandlers: filteredHandlers.length,\n }));\n return;\n }\n\n // If no more handlers for this native event, remove the subscription\n if (filteredHandlers.length === 0) {\n this.externalHandlers.delete(nativeEvent);\n const subscription = this.nativeEventListeners.get(nativeEvent);\n if (subscription) {\n try {\n await subscription.remove();\n this.nativeEventListeners.delete(nativeEvent);\n log.success(() => ({\n message: 'Handler and native subscription removed successfully',\n nativeEvent,\n handlerId,\n }));\n } catch (error) {\n log.failed(() => ({\n message: `Failed to remove subscription for ${nativeEvent}`,\n error,\n nativeEvent,\n handlerId,\n }));\n }\n } else {\n log.success(() => ({\n message: 'Handler removed, no native subscription found',\n nativeEvent,\n handlerId,\n }));\n }\n } else {\n log.success(() => ({\n message: 'Handler removed successfully',\n nativeEvent,\n handlerId,\n remainingHandlers: filteredHandlers.length,\n }));\n }\n }\n\n async removeAllListeners(): Promise<void> {\n const ctx = new LogContext();\n const log = ctx.call({ methodName: 'removeAllListeners' });\n log.start(() => ({ listenersCount: this.nativeEventListeners.size }));\n\n try {\n const removePromises = Array.from(this.nativeEventListeners.values()).map((handle, index) =>\n handle.remove().catch((error) => {\n log.failed(() => ({\n message: `Failed to remove event listener ${index}`,\n error,\n index,\n }));\n }),\n );\n\n this.nativeEventListeners.clear();\n this.externalHandlers.clear();\n await Promise.all(removePromises);\n log.success(() => ({ message: 'All listeners removed successfully' }));\n } catch (error) {\n log.failed(() => ({ error }));\n throw error;\n }\n }\n}\n"]}
|
package/dist/esm/adapty.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
-
import { type MethodName, type MethodResponseMap } from './shared/types/method-types';
|
|
1
|
+
import { type AdaptyType } from './coders/parse';
|
|
2
|
+
import { LogContext } from './logger';
|
|
3
|
+
import type { LoggerConfig, LogScope } from './logger';
|
|
4
|
+
import type { AdaptyPaywall, AdaptyPaywallProduct, AdaptyOnboarding, AdaptyProfile, AdaptyPurchaseResult, AdaptyProfileParameters, RefundPreference, AdaptyInstallationStatus, WebPresentation } from './types';
|
|
6
5
|
import type { AdaptyPlugin, AddListenerFn } from './types/adapty-plugin';
|
|
7
6
|
import type { GetPaywallOptions, GetPaywallForDefaultAudienceOptions, MakePurchaseOptions, GetOnboardingOptions, GetOnboardingForDefaultAudienceOptions } from './types/configs';
|
|
7
|
+
import type { ActivateParamsInput, FileLocation, LogLevel, IdentifyParamsInput } from './types/inputs';
|
|
8
|
+
import type { MethodName } from './types/method-types';
|
|
8
9
|
/**
|
|
9
10
|
* Entry point for the Adapty SDK.
|
|
10
11
|
*
|
|
@@ -14,6 +15,7 @@ import type { GetPaywallOptions, GetPaywallForDefaultAudienceOptions, MakePurcha
|
|
|
14
15
|
* @public
|
|
15
16
|
*/
|
|
16
17
|
export declare class Adapty implements AdaptyPlugin {
|
|
18
|
+
constructor();
|
|
17
19
|
private activating;
|
|
18
20
|
private resolveHeldActivation?;
|
|
19
21
|
private readonly emitter;
|
|
@@ -27,7 +29,7 @@ export declare class Adapty implements AdaptyPlugin {
|
|
|
27
29
|
* Handle method calls through crossplatform bridge with type safety
|
|
28
30
|
* @internal
|
|
29
31
|
*/
|
|
30
|
-
handleMethodCall<M extends MethodName>(methodName: M, args: string, ctx: LogContext, log: LogScope): Promise<
|
|
32
|
+
handleMethodCall<M extends MethodName>(methodName: M, args: string, ctx: LogContext, log: LogScope, resultType?: AdaptyType): Promise<any>;
|
|
31
33
|
private isPaywallProduct;
|
|
32
34
|
/**
|
|
33
35
|
* Initializes the Adapty SDK.
|
package/dist/esm/adapty.js
CHANGED
|
@@ -1,20 +1,14 @@
|
|
|
1
1
|
// PluginListenerHandle is no longer referenced directly in this file
|
|
2
|
+
import { AdaptyError } from '@adapty/core';
|
|
2
3
|
import { Capacitor } from '@capacitor/core';
|
|
3
4
|
import { AdaptyEmitter } from './adapty-emitter';
|
|
4
5
|
import { AdaptyCapacitorPlugin } from './bridge/plugin';
|
|
5
|
-
import {
|
|
6
|
+
import { coderFactory } from './coders/factory';
|
|
7
|
+
import { parseMethodResult } from './coders/parse';
|
|
6
8
|
import { defaultAdaptyOptions } from './default-configs';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
10
|
-
import { AdaptyPaywallProductCoder } from './shared/coders/adapty-paywall-product';
|
|
11
|
-
import { AdaptyProfileParametersCoder } from './shared/coders/adapty-profile-parameters';
|
|
12
|
-
import { AdaptyPurchaseParamsCoder } from './shared/coders/adapty-purchase-params';
|
|
13
|
-
import { Log, LogContext } from './shared/logger';
|
|
14
|
-
import { isErrorResponse, isSuccessResponse, } from './shared/types/method-types';
|
|
15
|
-
import { filterUndefined } from './shared/utils/compact-object';
|
|
16
|
-
import { mergeOptions } from './shared/utils/merge-options';
|
|
17
|
-
import { withErrorContext } from './shared/utils/with-error-context';
|
|
9
|
+
import { Log, LogContext } from './logger';
|
|
10
|
+
import { filterUndefined, mergeOptions, withErrorContext } from './utils';
|
|
11
|
+
import VERSION from './version';
|
|
18
12
|
/**
|
|
19
13
|
* Entry point for the Adapty SDK.
|
|
20
14
|
*
|
|
@@ -69,6 +63,7 @@ export class Adapty {
|
|
|
69
63
|
const wrappedListener = withErrorContext(listenerFunc, eventName, 'Adapty');
|
|
70
64
|
return this.emitter.addListener(eventName, wrappedListener);
|
|
71
65
|
};
|
|
66
|
+
Log.setVersion(VERSION);
|
|
72
67
|
}
|
|
73
68
|
/**
|
|
74
69
|
* Helper method for logging encode operations
|
|
@@ -93,7 +88,7 @@ export class Adapty {
|
|
|
93
88
|
* Handle method calls through crossplatform bridge with type safety
|
|
94
89
|
* @internal
|
|
95
90
|
*/
|
|
96
|
-
async handleMethodCall(methodName, args, ctx, log) {
|
|
91
|
+
async handleMethodCall(methodName, args, ctx, log, resultType = 'Void') {
|
|
97
92
|
// Hold on deferred activation first
|
|
98
93
|
if (this.resolveHeldActivation && !this.nonWaitingMethods.includes(methodName)) {
|
|
99
94
|
log.wait(() => ({}));
|
|
@@ -114,53 +109,20 @@ export class Adapty {
|
|
|
114
109
|
methodName,
|
|
115
110
|
args,
|
|
116
111
|
});
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
const
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
const error = parsedResponse.error;
|
|
123
|
-
const errorMessage = `Native error: ${error.message} (code: ${error.adaptyCode})`;
|
|
124
|
-
const nativeError = new Error(errorMessage);
|
|
125
|
-
log.failed(() => ({ error: nativeError }));
|
|
126
|
-
throw nativeError;
|
|
127
|
-
}
|
|
128
|
-
// Extract success data with type safety
|
|
129
|
-
if (isSuccessResponse(parsedResponse)) {
|
|
130
|
-
const successData = parsedResponse.success;
|
|
131
|
-
// Apply decoder if available for this method
|
|
132
|
-
const coder = getCoder(methodName);
|
|
133
|
-
let result;
|
|
134
|
-
if (coder) {
|
|
135
|
-
// Create decode scope for logging decode operations
|
|
136
|
-
const decodeLog = ctx.decode({ methodName: `decode/${methodName}` });
|
|
137
|
-
decodeLog.start(() => ({ successData }));
|
|
138
|
-
try {
|
|
139
|
-
result = coder.decode(successData);
|
|
140
|
-
decodeLog.success(() => ({ result }));
|
|
141
|
-
}
|
|
142
|
-
catch (error) {
|
|
143
|
-
decodeLog.failed(() => ({ error }));
|
|
144
|
-
throw error;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
result = successData;
|
|
149
|
-
}
|
|
150
|
-
log.success(() => ({ result }));
|
|
151
|
-
return result;
|
|
152
|
-
}
|
|
153
|
-
const formatError = new Error('Invalid response format: missing success or error field');
|
|
154
|
-
log.failed(() => ({ error: formatError }));
|
|
155
|
-
throw formatError;
|
|
112
|
+
const resultJson = result.crossPlatformJson;
|
|
113
|
+
bridgeLog.success(() => ({ crossPlatformJson: resultJson }));
|
|
114
|
+
const decoded = parseMethodResult(resultJson, resultType, ctx);
|
|
115
|
+
log.success(() => ({ result: decoded }));
|
|
116
|
+
return decoded;
|
|
156
117
|
}
|
|
157
118
|
catch (error) {
|
|
119
|
+
if (error instanceof AdaptyError) {
|
|
120
|
+
log.failed(() => ({ error }));
|
|
121
|
+
throw error;
|
|
122
|
+
}
|
|
158
123
|
bridgeLog.failed(() => ({ error }));
|
|
159
|
-
// If it's our custom error and log wasn't called yet, log it
|
|
160
124
|
if (error instanceof Error && !error.message.startsWith('{')) {
|
|
161
|
-
|
|
162
|
-
log.failed(() => ({ error }));
|
|
163
|
-
}
|
|
125
|
+
log.failed(() => ({ error }));
|
|
164
126
|
throw error;
|
|
165
127
|
}
|
|
166
128
|
// If JSON parsing fails, wrap the error
|
|
@@ -251,7 +213,7 @@ export class Adapty {
|
|
|
251
213
|
const ctx = new LogContext();
|
|
252
214
|
const log = ctx.call({ methodName: method });
|
|
253
215
|
log.start(() => ({ apiKey, params }));
|
|
254
|
-
const configurationCoder =
|
|
216
|
+
const configurationCoder = coderFactory.createConfigurationCoder();
|
|
255
217
|
const configuration = configurationCoder.encode(apiKey, params);
|
|
256
218
|
const activateRequestWithUndefined = {
|
|
257
219
|
method,
|
|
@@ -275,7 +237,7 @@ export class Adapty {
|
|
|
275
237
|
method,
|
|
276
238
|
};
|
|
277
239
|
const args = filterUndefined(argsWithUndefined);
|
|
278
|
-
return await this.handleMethodCall(method, JSON.stringify(args), ctx, log);
|
|
240
|
+
return await this.handleMethodCall(method, JSON.stringify(args), ctx, log, 'Boolean');
|
|
279
241
|
}
|
|
280
242
|
/**
|
|
281
243
|
* Gets the current installation status.
|
|
@@ -312,7 +274,7 @@ export class Adapty {
|
|
|
312
274
|
method,
|
|
313
275
|
};
|
|
314
276
|
const args = filterUndefined(argsWithUndefined);
|
|
315
|
-
return await this.handleMethodCall(method, JSON.stringify(args), ctx, log);
|
|
277
|
+
return await this.handleMethodCall(method, JSON.stringify(args), ctx, log, 'AdaptyInstallationStatus');
|
|
316
278
|
}
|
|
317
279
|
/**
|
|
318
280
|
* Fetches the paywall by the specified placement.
|
|
@@ -363,7 +325,7 @@ export class Adapty {
|
|
|
363
325
|
: { type: params.fetchPolicy },
|
|
364
326
|
};
|
|
365
327
|
const args = filterUndefined(argsWithUndefined);
|
|
366
|
-
return await this.handleMethodCall(method, JSON.stringify(args), ctx, log);
|
|
328
|
+
return await this.handleMethodCall(method, JSON.stringify(args), ctx, log, 'AdaptyPaywall');
|
|
367
329
|
}
|
|
368
330
|
/**
|
|
369
331
|
* Fetches the paywall of the specified placement for the **All Users** audience.
|
|
@@ -419,7 +381,7 @@ export class Adapty {
|
|
|
419
381
|
: { type: (_a = params.fetchPolicy) !== null && _a !== void 0 ? _a : 'reload_revalidating_cache_data' },
|
|
420
382
|
};
|
|
421
383
|
const args = filterUndefined(argsWithUndefined);
|
|
422
|
-
return await this.handleMethodCall(method, JSON.stringify(args), ctx, log);
|
|
384
|
+
return await this.handleMethodCall(method, JSON.stringify(args), ctx, log, 'AdaptyPaywall');
|
|
423
385
|
}
|
|
424
386
|
/**
|
|
425
387
|
* Fetches a list of products associated with a provided paywall.
|
|
@@ -447,13 +409,13 @@ export class Adapty {
|
|
|
447
409
|
const ctx = new LogContext();
|
|
448
410
|
const log = ctx.call({ methodName: method });
|
|
449
411
|
log.start(() => ({ options }));
|
|
450
|
-
const paywallCoder =
|
|
412
|
+
const paywallCoder = coderFactory.createPaywallCoder();
|
|
451
413
|
const argsWithUndefined = {
|
|
452
414
|
method,
|
|
453
415
|
paywall: this.encodeWithLogging(paywallCoder, options.paywall, 'AdaptyPaywall', ctx),
|
|
454
416
|
};
|
|
455
417
|
const args = filterUndefined(argsWithUndefined);
|
|
456
|
-
return await this.handleMethodCall(method, JSON.stringify(args), ctx, log);
|
|
418
|
+
return await this.handleMethodCall(method, JSON.stringify(args), ctx, log, 'Array<AdaptyPaywallProduct>');
|
|
457
419
|
}
|
|
458
420
|
/**
|
|
459
421
|
* Fetches the onboarding by the specified placement.
|
|
@@ -506,7 +468,7 @@ export class Adapty {
|
|
|
506
468
|
: { type: params.fetchPolicy },
|
|
507
469
|
};
|
|
508
470
|
const args = filterUndefined(argsWithUndefined);
|
|
509
|
-
return await this.handleMethodCall(method, JSON.stringify(args), ctx, log);
|
|
471
|
+
return await this.handleMethodCall(method, JSON.stringify(args), ctx, log, 'AdaptyOnboarding');
|
|
510
472
|
}
|
|
511
473
|
/**
|
|
512
474
|
* Fetches the onboarding of the specified placement for the **All Users** audience.
|
|
@@ -556,7 +518,7 @@ export class Adapty {
|
|
|
556
518
|
: { type: (_a = params.fetchPolicy) !== null && _a !== void 0 ? _a : 'reload_revalidating_cache_data' },
|
|
557
519
|
};
|
|
558
520
|
const args = filterUndefined(argsWithUndefined);
|
|
559
|
-
return await this.handleMethodCall(method, JSON.stringify(args), ctx, log);
|
|
521
|
+
return await this.handleMethodCall(method, JSON.stringify(args), ctx, log, 'AdaptyOnboarding');
|
|
560
522
|
}
|
|
561
523
|
/**
|
|
562
524
|
* Fetches a user profile.
|
|
@@ -599,7 +561,7 @@ export class Adapty {
|
|
|
599
561
|
method,
|
|
600
562
|
};
|
|
601
563
|
const args = filterUndefined(argsWithUndefined);
|
|
602
|
-
return await this.handleMethodCall(method, JSON.stringify(args), ctx, log);
|
|
564
|
+
return await this.handleMethodCall(method, JSON.stringify(args), ctx, log, 'AdaptyProfile');
|
|
603
565
|
}
|
|
604
566
|
/**
|
|
605
567
|
* Logs in a user with a provided customerUserId.
|
|
@@ -633,7 +595,7 @@ export class Adapty {
|
|
|
633
595
|
const ctx = new LogContext();
|
|
634
596
|
const log = ctx.call({ methodName: method });
|
|
635
597
|
log.start(() => ({ options }));
|
|
636
|
-
const identifyParamsCoder =
|
|
598
|
+
const identifyParamsCoder = coderFactory.createIdentifyParamsCoder();
|
|
637
599
|
const parameters = identifyParamsCoder.encode(options.params);
|
|
638
600
|
const argsWithUndefined = {
|
|
639
601
|
method,
|
|
@@ -674,7 +636,7 @@ export class Adapty {
|
|
|
674
636
|
const ctx = new LogContext();
|
|
675
637
|
const log = ctx.call({ methodName: method });
|
|
676
638
|
log.start(() => ({ options }));
|
|
677
|
-
const paywallCoder =
|
|
639
|
+
const paywallCoder = coderFactory.createPaywallCoder();
|
|
678
640
|
const argsWithUndefined = {
|
|
679
641
|
method,
|
|
680
642
|
paywall: this.encodeWithLogging(paywallCoder, options.paywall, 'AdaptyPaywall', ctx),
|
|
@@ -707,8 +669,8 @@ export class Adapty {
|
|
|
707
669
|
const ctx = new LogContext();
|
|
708
670
|
const log = ctx.call({ methodName: method });
|
|
709
671
|
log.start(() => ({ options }));
|
|
710
|
-
const paywallCoder =
|
|
711
|
-
const productCoder =
|
|
672
|
+
const paywallCoder = coderFactory.createPaywallCoder();
|
|
673
|
+
const productCoder = coderFactory.createPaywallProductCoder();
|
|
712
674
|
const argsWithUndefined = Object.assign(Object.assign({ method }, (this.isPaywallProduct(options.paywallOrProduct)
|
|
713
675
|
? { product: this.encodeWithLogging(productCoder, options.paywallOrProduct, 'AdaptyPaywallProduct', ctx) }
|
|
714
676
|
: { paywall: this.encodeWithLogging(paywallCoder, options.paywallOrProduct, 'AdaptyPaywall', ctx) })), (options.openIn ? { open_in: options.openIn } : {}));
|
|
@@ -745,13 +707,13 @@ export class Adapty {
|
|
|
745
707
|
const ctx = new LogContext();
|
|
746
708
|
const log = ctx.call({ methodName: method });
|
|
747
709
|
log.start(() => ({ options }));
|
|
748
|
-
const paywallCoder =
|
|
749
|
-
const productCoder =
|
|
710
|
+
const paywallCoder = coderFactory.createPaywallCoder();
|
|
711
|
+
const productCoder = coderFactory.createPaywallProductCoder();
|
|
750
712
|
const argsWithUndefined = Object.assign({ method }, (this.isPaywallProduct(options.paywallOrProduct)
|
|
751
713
|
? { product: this.encodeWithLogging(productCoder, options.paywallOrProduct, 'AdaptyPaywallProduct', ctx) }
|
|
752
714
|
: { paywall: this.encodeWithLogging(paywallCoder, options.paywallOrProduct, 'AdaptyPaywall', ctx) }));
|
|
753
715
|
const args = filterUndefined(argsWithUndefined);
|
|
754
|
-
return await this.handleMethodCall(method, JSON.stringify(args), ctx, log);
|
|
716
|
+
return await this.handleMethodCall(method, JSON.stringify(args), ctx, log, 'String');
|
|
755
717
|
}
|
|
756
718
|
/**
|
|
757
719
|
* Logs out the current user.
|
|
@@ -824,8 +786,8 @@ export class Adapty {
|
|
|
824
786
|
const ctx = new LogContext();
|
|
825
787
|
const log = ctx.call({ methodName: method });
|
|
826
788
|
log.start(() => ({ options }));
|
|
827
|
-
const productCoder =
|
|
828
|
-
const purchaseParamsCoder =
|
|
789
|
+
const productCoder = coderFactory.createPaywallProductCoder();
|
|
790
|
+
const purchaseParamsCoder = coderFactory.createPurchaseParamsCoder();
|
|
829
791
|
const encodedProduct = this.encodeWithLogging(productCoder, options.product, 'AdaptyPaywallProduct', ctx);
|
|
830
792
|
const productInput = productCoder.getInput(encodedProduct);
|
|
831
793
|
const purchaseParams = this.encodeWithLogging(purchaseParamsCoder, params, 'AdaptyPurchaseParams', ctx);
|
|
@@ -835,7 +797,7 @@ export class Adapty {
|
|
|
835
797
|
parameters: purchaseParams,
|
|
836
798
|
};
|
|
837
799
|
const args = filterUndefined(argsWithUndefined);
|
|
838
|
-
return await this.handleMethodCall(method, JSON.stringify(args), ctx, log);
|
|
800
|
+
return await this.handleMethodCall(method, JSON.stringify(args), ctx, log, 'AdaptyPurchaseResult');
|
|
839
801
|
}
|
|
840
802
|
/**
|
|
841
803
|
* Opens a native modal screen to redeem Apple Offer Codes.
|
|
@@ -951,7 +913,7 @@ export class Adapty {
|
|
|
951
913
|
method,
|
|
952
914
|
};
|
|
953
915
|
const args = filterUndefined(argsWithUndefined);
|
|
954
|
-
return await this.handleMethodCall(method, JSON.stringify(args), ctx, log);
|
|
916
|
+
return await this.handleMethodCall(method, JSON.stringify(args), ctx, log, 'AdaptyProfile');
|
|
955
917
|
}
|
|
956
918
|
/**
|
|
957
919
|
* Sets the fallback paywalls.
|
|
@@ -1283,7 +1245,7 @@ export class Adapty {
|
|
|
1283
1245
|
const ctx = new LogContext();
|
|
1284
1246
|
const log = ctx.call({ methodName: method });
|
|
1285
1247
|
log.start(() => ({ options }));
|
|
1286
|
-
const profileParametersCoder =
|
|
1248
|
+
const profileParametersCoder = coderFactory.createProfileParametersCoder();
|
|
1287
1249
|
const argsWithUndefined = {
|
|
1288
1250
|
method,
|
|
1289
1251
|
params: this.encodeWithLogging(profileParametersCoder, options, 'AdaptyProfileParameters', ctx),
|