@encorekit/capacitor 0.1.1 → 0.1.3

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/README.md CHANGED
@@ -52,6 +52,33 @@ if (result.status === 'granted') {
52
52
  await Encore.reset();
53
53
  ```
54
54
 
55
+ ## Registering Callbacks (Setter Semantics)
56
+
57
+ > **Setter semantics.** `onPurchaseRequest`, `onPurchaseComplete`, and `onPassthrough` each **replace** the previous handler when called again (matching iOS, Android, and Flutter). They are global singleton handlers, not multi-listener subscriptions. No manual cleanup is required — re-registration is safe and idempotent.
58
+
59
+ Register once, right after `configure` / `registerCallbacks`:
60
+
61
+ ```typescript
62
+ Encore.onPurchaseRequest(async ({ productId }) => {
63
+ try {
64
+ await Billing.purchase(productId);
65
+ await Encore.completePurchaseRequest(true);
66
+ } catch {
67
+ await Encore.completePurchaseRequest(false);
68
+ }
69
+ });
70
+
71
+ Encore.onPurchaseComplete(({ productId, transactionId }) => {
72
+ // Optional: sync with backends that don't auto-detect StoreKit/Play Billing
73
+ });
74
+
75
+ Encore.onPassthrough(({ placementId }) => {
76
+ // User dismissed without purchasing — resume your original flow
77
+ });
78
+ ```
79
+
80
+ This works the same way regardless of framework (Angular, Vue, React, vanilla JS). Call them at app startup — no lifecycle hooks needed.
81
+
55
82
  ## API Reference
56
83
 
57
84
  | Method | Description |
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACV,MAAM,eAAe,CAAC;AAEvB,QAAA,MAAM,qBAAqB,cAK1B,CAAC;AAiBF,QAAA,MAAM,MAAM,EAAE,SAsFb,CAAC;AAEF,eAAe,MAAM,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,CAAC;AACjC,YAAY,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,GACV,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACV,MAAM,eAAe,CAAC;AAEvB,QAAA,MAAM,qBAAqB,cAK1B,CAAC;AA+BF,QAAA,MAAM,MAAM,EAAE,SAqGb,CAAC;AAEF,eAAe,MAAM,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,CAAC;AACjC,YAAY,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,GACV,CAAC"}
package/dist/esm/index.js CHANGED
@@ -5,6 +5,18 @@ import { registerPlugin } from '@capacitor/core';
5
5
  const EncoreCapacitorPlugin = registerPlugin('EncoreCapacitorPlugin', {
6
6
  web: () => import('./web').then((m) => new m.EncorePluginWeb()),
7
7
  });
8
+ // Setter semantics: each on*() call replaces the previous handler instead of
9
+ // appending. Matches Swift / Android / Flutter parity. Without this, repeat
10
+ // registrations (e.g. hot reload, re-renders without cleanup) would accumulate
11
+ // listeners and cause N duplicate purchase attempts per event.
12
+ let currentPurchaseRequestHandle = null;
13
+ let currentPurchaseCompleteHandle = null;
14
+ let currentPassthroughHandle = null;
15
+ function removeHandle(handle) {
16
+ handle?.then((h) => h.remove()).catch(() => {
17
+ // Swallow — listener cleanup failures must never crash host apps.
18
+ });
19
+ }
8
20
  async function safeBridgeCall(method, call, fallback) {
9
21
  try {
10
22
  return await call();
@@ -32,21 +44,36 @@ const Encore = {
32
44
  registerCallbacks: () => safeBridgeCall('registerCallbacks', () => EncoreCapacitorPlugin.registerCallbacks(), { success: false }),
33
45
  completePurchaseRequest: (success) => safeBridgeCall('completePurchaseRequest', () => EncoreCapacitorPlugin.completePurchaseRequest({ success }), { success: false }),
34
46
  onPurchaseRequest: (handler) => {
47
+ removeHandle(currentPurchaseRequestHandle);
35
48
  const handle = EncoreCapacitorPlugin.addListener('onPurchaseRequest', handler);
49
+ currentPurchaseRequestHandle = handle;
36
50
  return () => {
37
- handle.then((h) => h.remove());
51
+ removeHandle(handle);
52
+ if (currentPurchaseRequestHandle === handle) {
53
+ currentPurchaseRequestHandle = null;
54
+ }
38
55
  };
39
56
  },
40
57
  onPurchaseComplete: (handler) => {
58
+ removeHandle(currentPurchaseCompleteHandle);
41
59
  const handle = EncoreCapacitorPlugin.addListener('onPurchaseComplete', handler);
60
+ currentPurchaseCompleteHandle = handle;
42
61
  return () => {
43
- handle.then((h) => h.remove());
62
+ removeHandle(handle);
63
+ if (currentPurchaseCompleteHandle === handle) {
64
+ currentPurchaseCompleteHandle = null;
65
+ }
44
66
  };
45
67
  },
46
68
  onPassthrough: (handler) => {
69
+ removeHandle(currentPassthroughHandle);
47
70
  const handle = EncoreCapacitorPlugin.addListener('onPassthrough', handler);
71
+ currentPassthroughHandle = handle;
48
72
  return () => {
49
- handle.then((h) => h.remove());
73
+ removeHandle(handle);
74
+ if (currentPassthroughHandle === handle) {
75
+ currentPassthroughHandle = null;
76
+ }
50
77
  };
51
78
  },
52
79
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,iEAAiE;AACjE,sDAAsD;AAEtD,OAAO,EAAE,cAAc,EAA6B,MAAM,iBAAiB,CAAC;AAe5E,MAAM,qBAAqB,GAAG,cAAc,CAC1C,uBAAuB,EACvB;IACE,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;CAChE,CACF,CAAC;AAEF,6EAA6E;AAC7E,4EAA4E;AAC5E,+EAA+E;AAC/E,+DAA+D;AAC/D,IAAI,4BAA4B,GAAyC,IAAI,CAAC;AAC9E,IAAI,6BAA6B,GAAyC,IAAI,CAAC;AAC/E,IAAI,wBAAwB,GAAyC,IAAI,CAAC;AAE1E,SAAS,YAAY,CAAC,MAA4C;IAChE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACzC,kEAAkE;IACpE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,MAAc,EACd,IAAsB,EACtB,QAAW;IAEX,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,YAAY,MAAM,UAAU,EAAE,KAAK,CAAC,CAAC;QAClD,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,qBAAqB;AAErB,MAAM,MAAM,GAAc;IACxB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE,CAClC,cAAc,CACZ,WAAW,EACX,GAAG,EAAE,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,EAC7E,EAAE,OAAO,EAAE,KAAK,EAAE,CACnB;IAEH,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAC/B,cAAc,CACZ,UAAU,EACV,GAAG,EAAE,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAC5D,EAAE,OAAO,EAAE,KAAK,EAAE,CACnB;IAEH,iBAAiB,EAAE,CAAC,UAAU,EAAE,EAAE,CAChC,cAAc,CACZ,mBAAmB,EACnB,GAAG,EAAE,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE,CAAC,EAC7D,EAAE,OAAO,EAAE,KAAK,EAAE,CACnB;IAEH,KAAK,EAAE,GAAG,EAAE,CACV,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,KAAK,EAAE,EAAE;QAC3D,OAAO,EAAE,KAAK;KACf,CAAC;IAEJ,SAAS,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC3B,IAAI,EAAE,GAAG,EAAE,CACT,cAAc,CACZ,MAAM,EACN,GAAG,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,EACjD,EAAE,MAAM,EAAE,aAAsB,EAAE,MAAM,EAAE,WAAW,EAAE,CACxD;KACJ,CAAC;IAEF,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CACpB,cAAc,CACZ,MAAM,EACN,GAAG,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,EACjD,EAAE,MAAM,EAAE,aAAsB,EAAE,MAAM,EAAE,WAAW,EAAE,CACxD;IAEH,UAAU,EAAE;QACV,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE,CAC3B,cAAc,CACZ,iBAAiB,EACjB,GAAG,EAAE,CAAC,qBAAqB,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,EACxD,EAAE,OAAO,EAAE,KAAK,EAAE,CACnB;KACJ;IAED,iBAAiB,EAAE,GAAG,EAAE,CACtB,cAAc,CACZ,mBAAmB,EACnB,GAAG,EAAE,CAAC,qBAAqB,CAAC,iBAAiB,EAAE,EAC/C,EAAE,OAAO,EAAE,KAAK,EAAE,CACnB;IAEH,uBAAuB,EAAE,CAAC,OAAO,EAAE,EAAE,CACnC,cAAc,CACZ,yBAAyB,EACzB,GAAG,EAAE,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,CAAC,EAChE,EAAE,OAAO,EAAE,KAAK,EAAE,CACnB;IAEH,iBAAiB,EAAE,CAAC,OAAO,EAAE,EAAE;QAC7B,YAAY,CAAC,4BAA4B,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,qBAAqB,CAAC,WAAW,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAC/E,4BAA4B,GAAG,MAAM,CAAC;QACtC,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,MAAM,CAAC,CAAC;YACrB,IAAI,4BAA4B,KAAK,MAAM,EAAE,CAAC;gBAC5C,4BAA4B,GAAG,IAAI,CAAC;YACtC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED,kBAAkB,EAAE,CAAC,OAAO,EAAE,EAAE;QAC9B,YAAY,CAAC,6BAA6B,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,qBAAqB,CAAC,WAAW,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;QAChF,6BAA6B,GAAG,MAAM,CAAC;QACvC,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,MAAM,CAAC,CAAC;YACrB,IAAI,6BAA6B,KAAK,MAAM,EAAE,CAAC;gBAC7C,6BAA6B,GAAG,IAAI,CAAC;YACvC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE;QACzB,YAAY,CAAC,wBAAwB,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,qBAAqB,CAAC,WAAW,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC3E,wBAAwB,GAAG,MAAM,CAAC;QAClC,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,MAAM,CAAC,CAAC;YACrB,IAAI,wBAAwB,KAAK,MAAM,EAAE,CAAC;gBACxC,wBAAwB,GAAG,IAAI,CAAC;YAClC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,eAAe,MAAM,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
@@ -10,6 +10,18 @@ var core = require('@capacitor/core');
10
10
  const EncoreCapacitorPlugin = core.registerPlugin('EncoreCapacitorPlugin', {
11
11
  web: () => Promise.resolve().then(function () { return web; }).then((m) => new m.EncorePluginWeb()),
12
12
  });
13
+ // Setter semantics: each on*() call replaces the previous handler instead of
14
+ // appending. Matches Swift / Android / Flutter parity. Without this, repeat
15
+ // registrations (e.g. hot reload, re-renders without cleanup) would accumulate
16
+ // listeners and cause N duplicate purchase attempts per event.
17
+ let currentPurchaseRequestHandle = null;
18
+ let currentPurchaseCompleteHandle = null;
19
+ let currentPassthroughHandle = null;
20
+ function removeHandle(handle) {
21
+ handle?.then((h) => h.remove()).catch(() => {
22
+ // Swallow — listener cleanup failures must never crash host apps.
23
+ });
24
+ }
13
25
  async function safeBridgeCall(method, call, fallback) {
14
26
  try {
15
27
  return await call();
@@ -37,21 +49,36 @@ const Encore = {
37
49
  registerCallbacks: () => safeBridgeCall('registerCallbacks', () => EncoreCapacitorPlugin.registerCallbacks(), { success: false }),
38
50
  completePurchaseRequest: (success) => safeBridgeCall('completePurchaseRequest', () => EncoreCapacitorPlugin.completePurchaseRequest({ success }), { success: false }),
39
51
  onPurchaseRequest: (handler) => {
52
+ removeHandle(currentPurchaseRequestHandle);
40
53
  const handle = EncoreCapacitorPlugin.addListener('onPurchaseRequest', handler);
54
+ currentPurchaseRequestHandle = handle;
41
55
  return () => {
42
- handle.then((h) => h.remove());
56
+ removeHandle(handle);
57
+ if (currentPurchaseRequestHandle === handle) {
58
+ currentPurchaseRequestHandle = null;
59
+ }
43
60
  };
44
61
  },
45
62
  onPurchaseComplete: (handler) => {
63
+ removeHandle(currentPurchaseCompleteHandle);
46
64
  const handle = EncoreCapacitorPlugin.addListener('onPurchaseComplete', handler);
65
+ currentPurchaseCompleteHandle = handle;
47
66
  return () => {
48
- handle.then((h) => h.remove());
67
+ removeHandle(handle);
68
+ if (currentPurchaseCompleteHandle === handle) {
69
+ currentPurchaseCompleteHandle = null;
70
+ }
49
71
  };
50
72
  },
51
73
  onPassthrough: (handler) => {
74
+ removeHandle(currentPassthroughHandle);
52
75
  const handle = EncoreCapacitorPlugin.addListener('onPassthrough', handler);
76
+ currentPassthroughHandle = handle;
53
77
  return () => {
54
- handle.then((h) => h.remove());
78
+ removeHandle(handle);
79
+ if (currentPassthroughHandle === handle) {
80
+ currentPassthroughHandle = null;
81
+ }
55
82
  };
56
83
  },
57
84
  };
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["// Encore Capacitor SDK\n// Bridge-only layer — delegates to native SDKs on each platform.\n// iOS: encore-swift-sdk | Android: encore-android-sdk\nimport { registerPlugin } from '@capacitor/core';\nconst EncoreCapacitorPlugin = registerPlugin('EncoreCapacitorPlugin', {\n web: () => import('./web').then((m) => new m.EncorePluginWeb()),\n});\nasync function safeBridgeCall(method, call, fallback) {\n try {\n return await call();\n }\n catch (error) {\n console.warn(`[Encore] ${method} failed:`, error);\n return fallback;\n }\n}\n// -- Typed Export --\nconst Encore = {\n configure: (apiKey, options = {}) => safeBridgeCall('configure', () => EncoreCapacitorPlugin.configure({ apiKey, logLevel: options.logLevel }), { success: false }),\n identify: (userId, attributes) => safeBridgeCall('identify', () => EncoreCapacitorPlugin.identify({ userId, attributes }), { success: false }),\n setUserAttributes: (attributes) => safeBridgeCall('setUserAttributes', () => EncoreCapacitorPlugin.setUserAttributes({ attributes }), { success: false }),\n reset: () => safeBridgeCall('reset', () => EncoreCapacitorPlugin.reset(), {\n success: false,\n }),\n placement: (placementId) => ({\n show: () => safeBridgeCall('show', () => EncoreCapacitorPlugin.show({ placementId }), { status: 'not_granted', reason: 'sdk_error' }),\n }),\n show: (placementId) => safeBridgeCall('show', () => EncoreCapacitorPlugin.show({ placementId }), { status: 'not_granted', reason: 'sdk_error' }),\n placements: {\n setClaimEnabled: (enabled) => safeBridgeCall('setClaimEnabled', () => EncoreCapacitorPlugin.setClaimEnabled({ enabled }), { success: false }),\n },\n registerCallbacks: () => safeBridgeCall('registerCallbacks', () => EncoreCapacitorPlugin.registerCallbacks(), { success: false }),\n completePurchaseRequest: (success) => safeBridgeCall('completePurchaseRequest', () => EncoreCapacitorPlugin.completePurchaseRequest({ success }), { success: false }),\n onPurchaseRequest: (handler) => {\n const handle = EncoreCapacitorPlugin.addListener('onPurchaseRequest', handler);\n return () => {\n handle.then((h) => h.remove());\n };\n },\n onPurchaseComplete: (handler) => {\n const handle = EncoreCapacitorPlugin.addListener('onPurchaseComplete', handler);\n return () => {\n handle.then((h) => h.remove());\n };\n },\n onPassthrough: (handler) => {\n const handle = EncoreCapacitorPlugin.addListener('onPassthrough', handler);\n return () => {\n handle.then((h) => h.remove());\n };\n },\n};\nexport default Encore;\nexport { EncoreCapacitorPlugin };\n//# sourceMappingURL=index.js.map","// Web fallback — noop stubs with console warnings.\n// Real web SDK is a separate product (web-sdk/).\nimport { WebPlugin } from '@capacitor/core';\nexport class EncorePluginWeb extends WebPlugin {\n async configure() {\n console.warn('[Encore] Capacitor plugin is not supported on web.');\n return { success: false };\n }\n async identify() {\n console.warn('[Encore] identify is not supported on web.');\n return { success: false };\n }\n async setUserAttributes() {\n console.warn('[Encore] setUserAttributes is not supported on web.');\n return { success: false };\n }\n async reset() {\n console.warn('[Encore] reset is not supported on web.');\n return { success: false };\n }\n async show() {\n console.warn('[Encore] show is not supported on web.');\n return { status: 'not_granted', reason: 'web_unsupported' };\n }\n async setClaimEnabled() {\n console.warn('[Encore] setClaimEnabled is not supported on web.');\n return { success: false };\n }\n async registerCallbacks() {\n console.warn('[Encore] registerCallbacks is not supported on web.');\n return { success: false };\n }\n async completePurchaseRequest() {\n console.warn('[Encore] completePurchaseRequest is not supported on web.');\n return { success: false };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["// Encore Capacitor SDK\n// Bridge-only layer — delegates to native SDKs on each platform.\n// iOS: encore-swift-sdk | Android: encore-android-sdk\nimport { registerPlugin } from '@capacitor/core';\nconst EncoreCapacitorPlugin = registerPlugin('EncoreCapacitorPlugin', {\n web: () => import('./web').then((m) => new m.EncorePluginWeb()),\n});\n// Setter semantics: each on*() call replaces the previous handler instead of\n// appending. Matches Swift / Android / Flutter parity. Without this, repeat\n// registrations (e.g. hot reload, re-renders without cleanup) would accumulate\n// listeners and cause N duplicate purchase attempts per event.\nlet currentPurchaseRequestHandle = null;\nlet currentPurchaseCompleteHandle = null;\nlet currentPassthroughHandle = null;\nfunction removeHandle(handle) {\n handle?.then((h) => h.remove()).catch(() => {\n // Swallow — listener cleanup failures must never crash host apps.\n });\n}\nasync function safeBridgeCall(method, call, fallback) {\n try {\n return await call();\n }\n catch (error) {\n console.warn(`[Encore] ${method} failed:`, error);\n return fallback;\n }\n}\n// -- Typed Export --\nconst Encore = {\n configure: (apiKey, options = {}) => safeBridgeCall('configure', () => EncoreCapacitorPlugin.configure({ apiKey, logLevel: options.logLevel }), { success: false }),\n identify: (userId, attributes) => safeBridgeCall('identify', () => EncoreCapacitorPlugin.identify({ userId, attributes }), { success: false }),\n setUserAttributes: (attributes) => safeBridgeCall('setUserAttributes', () => EncoreCapacitorPlugin.setUserAttributes({ attributes }), { success: false }),\n reset: () => safeBridgeCall('reset', () => EncoreCapacitorPlugin.reset(), {\n success: false,\n }),\n placement: (placementId) => ({\n show: () => safeBridgeCall('show', () => EncoreCapacitorPlugin.show({ placementId }), { status: 'not_granted', reason: 'sdk_error' }),\n }),\n show: (placementId) => safeBridgeCall('show', () => EncoreCapacitorPlugin.show({ placementId }), { status: 'not_granted', reason: 'sdk_error' }),\n placements: {\n setClaimEnabled: (enabled) => safeBridgeCall('setClaimEnabled', () => EncoreCapacitorPlugin.setClaimEnabled({ enabled }), { success: false }),\n },\n registerCallbacks: () => safeBridgeCall('registerCallbacks', () => EncoreCapacitorPlugin.registerCallbacks(), { success: false }),\n completePurchaseRequest: (success) => safeBridgeCall('completePurchaseRequest', () => EncoreCapacitorPlugin.completePurchaseRequest({ success }), { success: false }),\n onPurchaseRequest: (handler) => {\n removeHandle(currentPurchaseRequestHandle);\n const handle = EncoreCapacitorPlugin.addListener('onPurchaseRequest', handler);\n currentPurchaseRequestHandle = handle;\n return () => {\n removeHandle(handle);\n if (currentPurchaseRequestHandle === handle) {\n currentPurchaseRequestHandle = null;\n }\n };\n },\n onPurchaseComplete: (handler) => {\n removeHandle(currentPurchaseCompleteHandle);\n const handle = EncoreCapacitorPlugin.addListener('onPurchaseComplete', handler);\n currentPurchaseCompleteHandle = handle;\n return () => {\n removeHandle(handle);\n if (currentPurchaseCompleteHandle === handle) {\n currentPurchaseCompleteHandle = null;\n }\n };\n },\n onPassthrough: (handler) => {\n removeHandle(currentPassthroughHandle);\n const handle = EncoreCapacitorPlugin.addListener('onPassthrough', handler);\n currentPassthroughHandle = handle;\n return () => {\n removeHandle(handle);\n if (currentPassthroughHandle === handle) {\n currentPassthroughHandle = null;\n }\n };\n },\n};\nexport default Encore;\nexport { EncoreCapacitorPlugin };\n//# sourceMappingURL=index.js.map","// Web fallback — noop stubs with console warnings.\n// Real web SDK is a separate product (web-sdk/).\nimport { WebPlugin } from '@capacitor/core';\nexport class EncorePluginWeb extends WebPlugin {\n async configure() {\n console.warn('[Encore] Capacitor plugin is not supported on web.');\n return { success: false };\n }\n async identify() {\n console.warn('[Encore] identify is not supported on web.');\n return { success: false };\n }\n async setUserAttributes() {\n console.warn('[Encore] setUserAttributes is not supported on web.');\n return { success: false };\n }\n async reset() {\n console.warn('[Encore] reset is not supported on web.');\n return { success: false };\n }\n async show() {\n console.warn('[Encore] show is not supported on web.');\n return { status: 'not_granted', reason: 'web_unsupported' };\n }\n async setClaimEnabled() {\n console.warn('[Encore] setClaimEnabled is not supported on web.');\n return { success: false };\n }\n async registerCallbacks() {\n console.warn('[Encore] registerCallbacks is not supported on web.');\n return { success: false };\n }\n async completePurchaseRequest() {\n console.warn('[Encore] completePurchaseRequest is not supported on web.');\n return { success: false };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
package/dist/plugin.js CHANGED
@@ -7,6 +7,18 @@ var capacitorEncorePlugin = (function (exports, core) {
7
7
  const EncoreCapacitorPlugin = core.registerPlugin('EncoreCapacitorPlugin', {
8
8
  web: () => Promise.resolve().then(function () { return web; }).then((m) => new m.EncorePluginWeb()),
9
9
  });
10
+ // Setter semantics: each on*() call replaces the previous handler instead of
11
+ // appending. Matches Swift / Android / Flutter parity. Without this, repeat
12
+ // registrations (e.g. hot reload, re-renders without cleanup) would accumulate
13
+ // listeners and cause N duplicate purchase attempts per event.
14
+ let currentPurchaseRequestHandle = null;
15
+ let currentPurchaseCompleteHandle = null;
16
+ let currentPassthroughHandle = null;
17
+ function removeHandle(handle) {
18
+ handle?.then((h) => h.remove()).catch(() => {
19
+ // Swallow — listener cleanup failures must never crash host apps.
20
+ });
21
+ }
10
22
  async function safeBridgeCall(method, call, fallback) {
11
23
  try {
12
24
  return await call();
@@ -34,21 +46,36 @@ var capacitorEncorePlugin = (function (exports, core) {
34
46
  registerCallbacks: () => safeBridgeCall('registerCallbacks', () => EncoreCapacitorPlugin.registerCallbacks(), { success: false }),
35
47
  completePurchaseRequest: (success) => safeBridgeCall('completePurchaseRequest', () => EncoreCapacitorPlugin.completePurchaseRequest({ success }), { success: false }),
36
48
  onPurchaseRequest: (handler) => {
49
+ removeHandle(currentPurchaseRequestHandle);
37
50
  const handle = EncoreCapacitorPlugin.addListener('onPurchaseRequest', handler);
51
+ currentPurchaseRequestHandle = handle;
38
52
  return () => {
39
- handle.then((h) => h.remove());
53
+ removeHandle(handle);
54
+ if (currentPurchaseRequestHandle === handle) {
55
+ currentPurchaseRequestHandle = null;
56
+ }
40
57
  };
41
58
  },
42
59
  onPurchaseComplete: (handler) => {
60
+ removeHandle(currentPurchaseCompleteHandle);
43
61
  const handle = EncoreCapacitorPlugin.addListener('onPurchaseComplete', handler);
62
+ currentPurchaseCompleteHandle = handle;
44
63
  return () => {
45
- handle.then((h) => h.remove());
64
+ removeHandle(handle);
65
+ if (currentPurchaseCompleteHandle === handle) {
66
+ currentPurchaseCompleteHandle = null;
67
+ }
46
68
  };
47
69
  },
48
70
  onPassthrough: (handler) => {
71
+ removeHandle(currentPassthroughHandle);
49
72
  const handle = EncoreCapacitorPlugin.addListener('onPassthrough', handler);
73
+ currentPassthroughHandle = handle;
50
74
  return () => {
51
- handle.then((h) => h.remove());
75
+ removeHandle(handle);
76
+ if (currentPassthroughHandle === handle) {
77
+ currentPassthroughHandle = null;
78
+ }
52
79
  };
53
80
  },
54
81
  };
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["// Encore Capacitor SDK\n// Bridge-only layer — delegates to native SDKs on each platform.\n// iOS: encore-swift-sdk | Android: encore-android-sdk\nimport { registerPlugin } from '@capacitor/core';\nconst EncoreCapacitorPlugin = registerPlugin('EncoreCapacitorPlugin', {\n web: () => import('./web').then((m) => new m.EncorePluginWeb()),\n});\nasync function safeBridgeCall(method, call, fallback) {\n try {\n return await call();\n }\n catch (error) {\n console.warn(`[Encore] ${method} failed:`, error);\n return fallback;\n }\n}\n// -- Typed Export --\nconst Encore = {\n configure: (apiKey, options = {}) => safeBridgeCall('configure', () => EncoreCapacitorPlugin.configure({ apiKey, logLevel: options.logLevel }), { success: false }),\n identify: (userId, attributes) => safeBridgeCall('identify', () => EncoreCapacitorPlugin.identify({ userId, attributes }), { success: false }),\n setUserAttributes: (attributes) => safeBridgeCall('setUserAttributes', () => EncoreCapacitorPlugin.setUserAttributes({ attributes }), { success: false }),\n reset: () => safeBridgeCall('reset', () => EncoreCapacitorPlugin.reset(), {\n success: false,\n }),\n placement: (placementId) => ({\n show: () => safeBridgeCall('show', () => EncoreCapacitorPlugin.show({ placementId }), { status: 'not_granted', reason: 'sdk_error' }),\n }),\n show: (placementId) => safeBridgeCall('show', () => EncoreCapacitorPlugin.show({ placementId }), { status: 'not_granted', reason: 'sdk_error' }),\n placements: {\n setClaimEnabled: (enabled) => safeBridgeCall('setClaimEnabled', () => EncoreCapacitorPlugin.setClaimEnabled({ enabled }), { success: false }),\n },\n registerCallbacks: () => safeBridgeCall('registerCallbacks', () => EncoreCapacitorPlugin.registerCallbacks(), { success: false }),\n completePurchaseRequest: (success) => safeBridgeCall('completePurchaseRequest', () => EncoreCapacitorPlugin.completePurchaseRequest({ success }), { success: false }),\n onPurchaseRequest: (handler) => {\n const handle = EncoreCapacitorPlugin.addListener('onPurchaseRequest', handler);\n return () => {\n handle.then((h) => h.remove());\n };\n },\n onPurchaseComplete: (handler) => {\n const handle = EncoreCapacitorPlugin.addListener('onPurchaseComplete', handler);\n return () => {\n handle.then((h) => h.remove());\n };\n },\n onPassthrough: (handler) => {\n const handle = EncoreCapacitorPlugin.addListener('onPassthrough', handler);\n return () => {\n handle.then((h) => h.remove());\n };\n },\n};\nexport default Encore;\nexport { EncoreCapacitorPlugin };\n//# sourceMappingURL=index.js.map","// Web fallback — noop stubs with console warnings.\n// Real web SDK is a separate product (web-sdk/).\nimport { WebPlugin } from '@capacitor/core';\nexport class EncorePluginWeb extends WebPlugin {\n async configure() {\n console.warn('[Encore] Capacitor plugin is not supported on web.');\n return { success: false };\n }\n async identify() {\n console.warn('[Encore] identify is not supported on web.');\n return { success: false };\n }\n async setUserAttributes() {\n console.warn('[Encore] setUserAttributes is not supported on web.');\n return { success: false };\n }\n async reset() {\n console.warn('[Encore] reset is not supported on web.');\n return { success: false };\n }\n async show() {\n console.warn('[Encore] show is not supported on web.');\n return { status: 'not_granted', reason: 'web_unsupported' };\n }\n async setClaimEnabled() {\n console.warn('[Encore] setClaimEnabled is not supported on web.');\n return { success: false };\n }\n async registerCallbacks() {\n console.warn('[Encore] registerCallbacks is not supported on web.');\n return { success: false };\n }\n async completePurchaseRequest() {\n console.warn('[Encore] completePurchaseRequest is not supported on web.');\n return { success: false };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;IAAA;IACA;IACA;AAEK,UAAC,qBAAqB,GAAGA,mBAAc,CAAC,uBAAuB,EAAE;IACtE,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACnE,CAAC;IACD,eAAe,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;IACtD,IAAI,IAAI;IACR,QAAQ,OAAO,MAAM,IAAI,EAAE;IAC3B,IAAI;IACJ,IAAI,OAAO,KAAK,EAAE;IAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;IACzD,QAAQ,OAAO,QAAQ;IACvB,IAAI;IACJ;IACA;AACK,UAAC,MAAM,GAAG;IACf,IAAI,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,EAAE,KAAK,cAAc,CAAC,WAAW,EAAE,MAAM,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACvK,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,cAAc,CAAC,UAAU,EAAE,MAAM,qBAAqB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAClJ,IAAI,iBAAiB,EAAE,CAAC,UAAU,KAAK,cAAc,CAAC,mBAAmB,EAAE,MAAM,qBAAqB,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC7J,IAAI,KAAK,EAAE,MAAM,cAAc,CAAC,OAAO,EAAE,MAAM,qBAAqB,CAAC,KAAK,EAAE,EAAE;IAC9E,QAAQ,OAAO,EAAE,KAAK;IACtB,KAAK,CAAC;IACN,IAAI,SAAS,EAAE,CAAC,WAAW,MAAM;IACjC,QAAQ,IAAI,EAAE,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,qBAAqB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAC7I,KAAK,CAAC;IACN,IAAI,IAAI,EAAE,CAAC,WAAW,KAAK,cAAc,CAAC,MAAM,EAAE,MAAM,qBAAqB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACpJ,IAAI,UAAU,EAAE;IAChB,QAAQ,eAAe,EAAE,CAAC,OAAO,KAAK,cAAc,CAAC,iBAAiB,EAAE,MAAM,qBAAqB,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACrJ,KAAK;IACL,IAAI,iBAAiB,EAAE,MAAM,cAAc,CAAC,mBAAmB,EAAE,MAAM,qBAAqB,CAAC,iBAAiB,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACrI,IAAI,uBAAuB,EAAE,CAAC,OAAO,KAAK,cAAc,CAAC,yBAAyB,EAAE,MAAM,qBAAqB,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACzK,IAAI,iBAAiB,EAAE,CAAC,OAAO,KAAK;IACpC,QAAQ,MAAM,MAAM,GAAG,qBAAqB,CAAC,WAAW,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtF,QAAQ,OAAO,MAAM;IACrB,YAAY,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC;IACT,IAAI,CAAC;IACL,IAAI,kBAAkB,EAAE,CAAC,OAAO,KAAK;IACrC,QAAQ,MAAM,MAAM,GAAG,qBAAqB,CAAC,WAAW,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACvF,QAAQ,OAAO,MAAM;IACrB,YAAY,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC;IACT,IAAI,CAAC;IACL,IAAI,aAAa,EAAE,CAAC,OAAO,KAAK;IAChC,QAAQ,MAAM,MAAM,GAAG,qBAAqB,CAAC,WAAW,CAAC,eAAe,EAAE,OAAO,CAAC;IAClF,QAAQ,OAAO,MAAM;IACrB,YAAY,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC;IACT,IAAI,CAAC;IACL;;ICnDA;IACA;IAEO,MAAM,eAAe,SAASC,cAAS,CAAC;IAC/C,IAAI,MAAM,SAAS,GAAG;IACtB,QAAQ,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC;IAC1E,QAAQ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;IACjC,IAAI;IACJ,IAAI,MAAM,QAAQ,GAAG;IACrB,QAAQ,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC;IAClE,QAAQ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;IACjC,IAAI;IACJ,IAAI,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC;IAC3E,QAAQ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;IACjC,IAAI;IACJ,IAAI,MAAM,KAAK,GAAG;IAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC;IAC/D,QAAQ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;IACjC,IAAI;IACJ,IAAI,MAAM,IAAI,GAAG;IACjB,QAAQ,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC;IAC9D,QAAQ,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE;IACnE,IAAI;IACJ,IAAI,MAAM,eAAe,GAAG;IAC5B,QAAQ,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC;IACzE,QAAQ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;IACjC,IAAI;IACJ,IAAI,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC;IAC3E,QAAQ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;IACjC,IAAI;IACJ,IAAI,MAAM,uBAAuB,GAAG;IACpC,QAAQ,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC;IACjF,QAAQ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;IACjC,IAAI;IACJ;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["// Encore Capacitor SDK\n// Bridge-only layer — delegates to native SDKs on each platform.\n// iOS: encore-swift-sdk | Android: encore-android-sdk\nimport { registerPlugin } from '@capacitor/core';\nconst EncoreCapacitorPlugin = registerPlugin('EncoreCapacitorPlugin', {\n web: () => import('./web').then((m) => new m.EncorePluginWeb()),\n});\n// Setter semantics: each on*() call replaces the previous handler instead of\n// appending. Matches Swift / Android / Flutter parity. Without this, repeat\n// registrations (e.g. hot reload, re-renders without cleanup) would accumulate\n// listeners and cause N duplicate purchase attempts per event.\nlet currentPurchaseRequestHandle = null;\nlet currentPurchaseCompleteHandle = null;\nlet currentPassthroughHandle = null;\nfunction removeHandle(handle) {\n handle?.then((h) => h.remove()).catch(() => {\n // Swallow — listener cleanup failures must never crash host apps.\n });\n}\nasync function safeBridgeCall(method, call, fallback) {\n try {\n return await call();\n }\n catch (error) {\n console.warn(`[Encore] ${method} failed:`, error);\n return fallback;\n }\n}\n// -- Typed Export --\nconst Encore = {\n configure: (apiKey, options = {}) => safeBridgeCall('configure', () => EncoreCapacitorPlugin.configure({ apiKey, logLevel: options.logLevel }), { success: false }),\n identify: (userId, attributes) => safeBridgeCall('identify', () => EncoreCapacitorPlugin.identify({ userId, attributes }), { success: false }),\n setUserAttributes: (attributes) => safeBridgeCall('setUserAttributes', () => EncoreCapacitorPlugin.setUserAttributes({ attributes }), { success: false }),\n reset: () => safeBridgeCall('reset', () => EncoreCapacitorPlugin.reset(), {\n success: false,\n }),\n placement: (placementId) => ({\n show: () => safeBridgeCall('show', () => EncoreCapacitorPlugin.show({ placementId }), { status: 'not_granted', reason: 'sdk_error' }),\n }),\n show: (placementId) => safeBridgeCall('show', () => EncoreCapacitorPlugin.show({ placementId }), { status: 'not_granted', reason: 'sdk_error' }),\n placements: {\n setClaimEnabled: (enabled) => safeBridgeCall('setClaimEnabled', () => EncoreCapacitorPlugin.setClaimEnabled({ enabled }), { success: false }),\n },\n registerCallbacks: () => safeBridgeCall('registerCallbacks', () => EncoreCapacitorPlugin.registerCallbacks(), { success: false }),\n completePurchaseRequest: (success) => safeBridgeCall('completePurchaseRequest', () => EncoreCapacitorPlugin.completePurchaseRequest({ success }), { success: false }),\n onPurchaseRequest: (handler) => {\n removeHandle(currentPurchaseRequestHandle);\n const handle = EncoreCapacitorPlugin.addListener('onPurchaseRequest', handler);\n currentPurchaseRequestHandle = handle;\n return () => {\n removeHandle(handle);\n if (currentPurchaseRequestHandle === handle) {\n currentPurchaseRequestHandle = null;\n }\n };\n },\n onPurchaseComplete: (handler) => {\n removeHandle(currentPurchaseCompleteHandle);\n const handle = EncoreCapacitorPlugin.addListener('onPurchaseComplete', handler);\n currentPurchaseCompleteHandle = handle;\n return () => {\n removeHandle(handle);\n if (currentPurchaseCompleteHandle === handle) {\n currentPurchaseCompleteHandle = null;\n }\n };\n },\n onPassthrough: (handler) => {\n removeHandle(currentPassthroughHandle);\n const handle = EncoreCapacitorPlugin.addListener('onPassthrough', handler);\n currentPassthroughHandle = handle;\n return () => {\n removeHandle(handle);\n if (currentPassthroughHandle === handle) {\n currentPassthroughHandle = null;\n }\n };\n },\n};\nexport default Encore;\nexport { EncoreCapacitorPlugin };\n//# sourceMappingURL=index.js.map","// Web fallback — noop stubs with console warnings.\n// Real web SDK is a separate product (web-sdk/).\nimport { WebPlugin } from '@capacitor/core';\nexport class EncorePluginWeb extends WebPlugin {\n async configure() {\n console.warn('[Encore] Capacitor plugin is not supported on web.');\n return { success: false };\n }\n async identify() {\n console.warn('[Encore] identify is not supported on web.');\n return { success: false };\n }\n async setUserAttributes() {\n console.warn('[Encore] setUserAttributes is not supported on web.');\n return { success: false };\n }\n async reset() {\n console.warn('[Encore] reset is not supported on web.');\n return { success: false };\n }\n async show() {\n console.warn('[Encore] show is not supported on web.');\n return { status: 'not_granted', reason: 'web_unsupported' };\n }\n async setClaimEnabled() {\n console.warn('[Encore] setClaimEnabled is not supported on web.');\n return { success: false };\n }\n async registerCallbacks() {\n console.warn('[Encore] registerCallbacks is not supported on web.');\n return { success: false };\n }\n async completePurchaseRequest() {\n console.warn('[Encore] completePurchaseRequest is not supported on web.');\n return { success: false };\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;IAAA;IACA;IACA;AAEK,UAAC,qBAAqB,GAAGA,mBAAc,CAAC,uBAAuB,EAAE;IACtE,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACnE,CAAC;IACD;IACA;IACA;IACA;IACA,IAAI,4BAA4B,GAAG,IAAI;IACvC,IAAI,6BAA6B,GAAG,IAAI;IACxC,IAAI,wBAAwB,GAAG,IAAI;IACnC,SAAS,YAAY,CAAC,MAAM,EAAE;IAC9B,IAAI,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM;IAChD;IACA,IAAI,CAAC,CAAC;IACN;IACA,eAAe,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;IACtD,IAAI,IAAI;IACR,QAAQ,OAAO,MAAM,IAAI,EAAE;IAC3B,IAAI;IACJ,IAAI,OAAO,KAAK,EAAE;IAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;IACzD,QAAQ,OAAO,QAAQ;IACvB,IAAI;IACJ;IACA;AACK,UAAC,MAAM,GAAG;IACf,IAAI,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,EAAE,KAAK,cAAc,CAAC,WAAW,EAAE,MAAM,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACvK,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,cAAc,CAAC,UAAU,EAAE,MAAM,qBAAqB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAClJ,IAAI,iBAAiB,EAAE,CAAC,UAAU,KAAK,cAAc,CAAC,mBAAmB,EAAE,MAAM,qBAAqB,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC7J,IAAI,KAAK,EAAE,MAAM,cAAc,CAAC,OAAO,EAAE,MAAM,qBAAqB,CAAC,KAAK,EAAE,EAAE;IAC9E,QAAQ,OAAO,EAAE,KAAK;IACtB,KAAK,CAAC;IACN,IAAI,SAAS,EAAE,CAAC,WAAW,MAAM;IACjC,QAAQ,IAAI,EAAE,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,qBAAqB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAC7I,KAAK,CAAC;IACN,IAAI,IAAI,EAAE,CAAC,WAAW,KAAK,cAAc,CAAC,MAAM,EAAE,MAAM,qBAAqB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACpJ,IAAI,UAAU,EAAE;IAChB,QAAQ,eAAe,EAAE,CAAC,OAAO,KAAK,cAAc,CAAC,iBAAiB,EAAE,MAAM,qBAAqB,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACrJ,KAAK;IACL,IAAI,iBAAiB,EAAE,MAAM,cAAc,CAAC,mBAAmB,EAAE,MAAM,qBAAqB,CAAC,iBAAiB,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACrI,IAAI,uBAAuB,EAAE,CAAC,OAAO,KAAK,cAAc,CAAC,yBAAyB,EAAE,MAAM,qBAAqB,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACzK,IAAI,iBAAiB,EAAE,CAAC,OAAO,KAAK;IACpC,QAAQ,YAAY,CAAC,4BAA4B,CAAC;IAClD,QAAQ,MAAM,MAAM,GAAG,qBAAqB,CAAC,WAAW,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtF,QAAQ,4BAA4B,GAAG,MAAM;IAC7C,QAAQ,OAAO,MAAM;IACrB,YAAY,YAAY,CAAC,MAAM,CAAC;IAChC,YAAY,IAAI,4BAA4B,KAAK,MAAM,EAAE;IACzD,gBAAgB,4BAA4B,GAAG,IAAI;IACnD,YAAY;IACZ,QAAQ,CAAC;IACT,IAAI,CAAC;IACL,IAAI,kBAAkB,EAAE,CAAC,OAAO,KAAK;IACrC,QAAQ,YAAY,CAAC,6BAA6B,CAAC;IACnD,QAAQ,MAAM,MAAM,GAAG,qBAAqB,CAAC,WAAW,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACvF,QAAQ,6BAA6B,GAAG,MAAM;IAC9C,QAAQ,OAAO,MAAM;IACrB,YAAY,YAAY,CAAC,MAAM,CAAC;IAChC,YAAY,IAAI,6BAA6B,KAAK,MAAM,EAAE;IAC1D,gBAAgB,6BAA6B,GAAG,IAAI;IACpD,YAAY;IACZ,QAAQ,CAAC;IACT,IAAI,CAAC;IACL,IAAI,aAAa,EAAE,CAAC,OAAO,KAAK;IAChC,QAAQ,YAAY,CAAC,wBAAwB,CAAC;IAC9C,QAAQ,MAAM,MAAM,GAAG,qBAAqB,CAAC,WAAW,CAAC,eAAe,EAAE,OAAO,CAAC;IAClF,QAAQ,wBAAwB,GAAG,MAAM;IACzC,QAAQ,OAAO,MAAM;IACrB,YAAY,YAAY,CAAC,MAAM,CAAC;IAChC,YAAY,IAAI,wBAAwB,KAAK,MAAM,EAAE;IACrD,gBAAgB,wBAAwB,GAAG,IAAI;IAC/C,YAAY;IACZ,QAAQ,CAAC;IACT,IAAI,CAAC;IACL;;IC9EA;IACA;IAEO,MAAM,eAAe,SAASC,cAAS,CAAC;IAC/C,IAAI,MAAM,SAAS,GAAG;IACtB,QAAQ,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC;IAC1E,QAAQ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;IACjC,IAAI;IACJ,IAAI,MAAM,QAAQ,GAAG;IACrB,QAAQ,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC;IAClE,QAAQ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;IACjC,IAAI;IACJ,IAAI,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC;IAC3E,QAAQ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;IACjC,IAAI;IACJ,IAAI,MAAM,KAAK,GAAG;IAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC;IAC/D,QAAQ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;IACjC,IAAI;IACJ,IAAI,MAAM,IAAI,GAAG;IACjB,QAAQ,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC;IAC9D,QAAQ,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE;IACnE,IAAI;IACJ,IAAI,MAAM,eAAe,GAAG;IAC5B,QAAQ,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC;IACzE,QAAQ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;IACjC,IAAI;IACJ,IAAI,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC;IAC3E,QAAQ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;IACjC,IAAI;IACJ,IAAI,MAAM,uBAAuB,GAAG;IACpC,QAAQ,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC;IACjF,QAAQ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;IACjC,IAAI;IACJ;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@encorekit/capacitor",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "sdkVersions": {
5
5
  "ios": {
6
- "EncoreKit": "1.4.39"
6
+ "EncoreKit": "1.4.42"
7
7
  },
8
8
  "android": {
9
- "com.encorekit:encore": "1.4.38"
9
+ "com.encorekit:encore": "1.4.48"
10
10
  }
11
11
  },
12
12
  "description": "Encore Capacitor bridge — thin native plugin layer delegating to encore-swift-sdk (iOS) and encore-android-sdk (Android)",