@apex-inc/capacitor-plugin 0.3.9 → 2.2.0

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.
Files changed (73) hide show
  1. package/README.md +5 -5
  2. package/android/build.gradle +4 -2
  3. package/android/src/main/AndroidManifest.xml +35 -3
  4. package/android/src/main/java/inc/apex/capacitor/ApexCapacitorPlugin.kt +404 -7
  5. package/android/src/main/java/inc/apex/capacitor/ApexEvents.kt +122 -0
  6. package/android/src/main/java/inc/apex/capacitor/ApexFirebaseMessagingService.kt +99 -0
  7. package/android/src/main/java/inc/apex/capacitor/NativeBatchSender.kt +260 -0
  8. package/dist/batch-sender.d.ts +16 -4
  9. package/dist/batch-sender.d.ts.map +1 -1
  10. package/dist/batch-sender.js +29 -4
  11. package/dist/batch-sender.js.map +1 -1
  12. package/dist/cart-helpers.d.ts +63 -0
  13. package/dist/cart-helpers.d.ts.map +1 -0
  14. package/dist/cart-helpers.js +50 -0
  15. package/dist/cart-helpers.js.map +1 -0
  16. package/dist/definitions.d.ts +150 -5
  17. package/dist/definitions.d.ts.map +1 -1
  18. package/dist/esm/batch-sender.d.ts +16 -4
  19. package/dist/esm/batch-sender.d.ts.map +1 -1
  20. package/dist/esm/batch-sender.js +29 -4
  21. package/dist/esm/batch-sender.js.map +1 -1
  22. package/dist/esm/cart-helpers.d.ts +63 -0
  23. package/dist/esm/cart-helpers.d.ts.map +1 -0
  24. package/dist/esm/cart-helpers.js +44 -0
  25. package/dist/esm/cart-helpers.js.map +1 -0
  26. package/dist/esm/definitions.d.ts +150 -5
  27. package/dist/esm/definitions.d.ts.map +1 -1
  28. package/dist/esm/events.d.ts +85 -0
  29. package/dist/esm/events.d.ts.map +1 -0
  30. package/dist/esm/events.js +96 -0
  31. package/dist/esm/events.js.map +1 -0
  32. package/dist/esm/index.d.ts +5 -6
  33. package/dist/esm/index.d.ts.map +1 -1
  34. package/dist/esm/index.js +20 -2
  35. package/dist/esm/index.js.map +1 -1
  36. package/dist/esm/offline-queue.d.ts +15 -0
  37. package/dist/esm/offline-queue.d.ts.map +1 -1
  38. package/dist/esm/offline-queue.js +35 -0
  39. package/dist/esm/offline-queue.js.map +1 -1
  40. package/dist/esm/screen-view.d.ts +18 -0
  41. package/dist/esm/screen-view.d.ts.map +1 -0
  42. package/dist/esm/screen-view.js +28 -0
  43. package/dist/esm/screen-view.js.map +1 -0
  44. package/dist/esm/web.d.ts +29 -1
  45. package/dist/esm/web.d.ts.map +1 -1
  46. package/dist/esm/web.js +167 -2
  47. package/dist/esm/web.js.map +1 -1
  48. package/dist/events.d.ts +85 -0
  49. package/dist/events.d.ts.map +1 -0
  50. package/dist/events.js +99 -0
  51. package/dist/events.js.map +1 -0
  52. package/dist/index.d.ts +5 -6
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +28 -3
  55. package/dist/index.js.map +1 -1
  56. package/dist/offline-queue.d.ts +15 -0
  57. package/dist/offline-queue.d.ts.map +1 -1
  58. package/dist/offline-queue.js +35 -0
  59. package/dist/offline-queue.js.map +1 -1
  60. package/dist/screen-view.d.ts +18 -0
  61. package/dist/screen-view.d.ts.map +1 -0
  62. package/dist/screen-view.js +31 -0
  63. package/dist/screen-view.js.map +1 -0
  64. package/dist/web.d.ts +29 -1
  65. package/dist/web.d.ts.map +1 -1
  66. package/dist/web.js +167 -2
  67. package/dist/web.js.map +1 -1
  68. package/ios/Sources/ApexCapacitorPlugin/ApexEvents.swift +124 -0
  69. package/ios/Sources/ApexCapacitorPlugin/BatchSender.swift +24 -6
  70. package/ios/Sources/ApexCapacitorPlugin/OfflineQueue.swift +19 -0
  71. package/ios/Sources/ApexCapacitorPlugin/PushNotificationManager.swift +47 -0
  72. package/ios/Sources/ApexCapacitorPluginBridge/ApexCapacitorPlugin.swift +288 -28
  73. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -8,7 +8,7 @@
8
8
  * ```ts
9
9
  * import { Apex } from "@apex-inc/capacitor-plugin";
10
10
  *
11
- * await Apex.initialize({ projectKey: "prj_..." });
11
+ * await Apex.initialize({ workspaceKey: "prj_..." });
12
12
  * await Apex.track({ type: "app_open" });
13
13
  * ```
14
14
  */
@@ -49,15 +49,23 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
49
49
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
50
50
  };
51
51
  Object.defineProperty(exports, "__esModule", { value: true });
52
- exports.isValidEventId = exports.generateEventId = exports.BatchSender = exports.SessionManager = exports.IndexedDBStorage = exports.InMemoryStorage = exports.OfflineQueue = exports.Apex = void 0;
52
+ exports.trackScreenView = exports.trackCheckoutCompleted = exports.trackCartSnapshot = exports.trackCartRemove = exports.trackCartAdd = exports.APEX_SPEC_VERSION = exports.ApexEvents = exports.isValidEventId = exports.generateEventId = exports.BatchSender = exports.SessionManager = exports.IndexedDBStorage = exports.InMemoryStorage = exports.OfflineQueue = exports.Apex = void 0;
53
53
  const core_1 = require("@capacitor/core");
54
54
  /**
55
55
  * Capacitor plugin proxy. In a native app, calls route through the bridge to
56
56
  * the iOS (Swift) or Android (Kotlin) implementation. In a web context
57
57
  * (browser or Capacitor PWA), the web fallback in `./web.ts` takes over.
58
+ *
59
+ * MOBX-005 (post-mortem #2) — the web factory is MEMOIZED. Capacitor's
60
+ * registerPlugin invokes the factory lazily per first call, and
61
+ * concurrent first calls at app mount (initialize() + track() racing)
62
+ * each constructed their OWN ApexCapacitorWeb; initialize() landed on
63
+ * a discarded instance and every other call failed with "plugin not
64
+ * initialized". One shared promise guarantees one instance.
58
65
  */
66
+ let webImplPromise = null;
59
67
  exports.Apex = (0, core_1.registerPlugin)("ApexCapacitorPlugin", {
60
- web: () => Promise.resolve().then(() => __importStar(require("./web"))).then((m) => new m.ApexCapacitorWeb()),
68
+ web: () => (webImplPromise ?? (webImplPromise = Promise.resolve().then(() => __importStar(require("./web"))).then((m) => new m.ApexCapacitorWeb()))),
61
69
  });
62
70
  // Re-export types so consumers can import them cleanly.
63
71
  __exportStar(require("./definitions"), exports);
@@ -73,4 +81,21 @@ Object.defineProperty(exports, "BatchSender", { enumerable: true, get: function
73
81
  var event_id_1 = require("./event-id");
74
82
  Object.defineProperty(exports, "generateEventId", { enumerable: true, get: function () { return event_id_1.generateEventId; } });
75
83
  Object.defineProperty(exports, "isValidEventId", { enumerable: true, get: function () { return event_id_1.isValidEventId; } });
84
+ // Apex Spec — canonical event name constants.
85
+ var events_1 = require("./events");
86
+ Object.defineProperty(exports, "ApexEvents", { enumerable: true, get: function () { return events_1.ApexEvents; } });
87
+ Object.defineProperty(exports, "APEX_SPEC_VERSION", { enumerable: true, get: function () { return events_1.APEX_SPEC_VERSION; } });
88
+ // Journey Exit Semantics — typed cart helpers. Wraps `Apex.track()`
89
+ // with the canonical payload shape the server-side cart rollup
90
+ // writer expects.
91
+ var cart_helpers_1 = require("./cart-helpers");
92
+ Object.defineProperty(exports, "trackCartAdd", { enumerable: true, get: function () { return cart_helpers_1.trackCartAdd; } });
93
+ Object.defineProperty(exports, "trackCartRemove", { enumerable: true, get: function () { return cart_helpers_1.trackCartRemove; } });
94
+ Object.defineProperty(exports, "trackCartSnapshot", { enumerable: true, get: function () { return cart_helpers_1.trackCartSnapshot; } });
95
+ Object.defineProperty(exports, "trackCheckoutCompleted", { enumerable: true, get: function () { return cart_helpers_1.trackCheckoutCompleted; } });
96
+ // MOBX-006 — screen-tracking convenience helper. Wraps
97
+ // `Apex.track({ type: "screen_view", data: { screen_name, … } })`
98
+ // so screens land in the spec's canonical snake_case shape.
99
+ var screen_view_1 = require("./screen-view");
100
+ Object.defineProperty(exports, "trackScreenView", { enumerable: true, get: function () { return screen_view_1.trackScreenView; } });
76
101
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,0CAAiD;AAGjD;;;;GAIG;AACU,QAAA,IAAI,GAAwB,IAAA,qBAAc,EACrD,qBAAqB,EACrB;IACE,GAAG,EAAE,GAAG,EAAE,CAAC,kDAAO,OAAO,IAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC;CACjE,CACF,CAAC;AAEF,wDAAwD;AACxD,gDAA8B;AAE9B,kDAAkD;AAClD,iDAAkF;AAAzE,6GAAA,YAAY,OAAA;AAAE,gHAAA,eAAe,OAAA;AAAE,iHAAA,gBAAgB,OAAA;AAExD,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AAEvB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAEpB,uCAA6D;AAApD,2GAAA,eAAe,OAAA;AAAE,0GAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,0CAAiD;AAGjD;;;;;;;;;;;GAWG;AACH,IAAI,cAAc,GAA4B,IAAI,CAAC;AAEtC,QAAA,IAAI,GAAwB,IAAA,qBAAc,EACrD,qBAAqB,EACrB;IACE,GAAG,EAAE,GAAG,EAAE,CACR,CAAC,cAAc,KAAd,cAAc,GAAK,kDAAO,OAAO,IAAE,IAAI,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAChC,EAAC;CACL,CACF,CAAC;AAEF,wDAAwD;AACxD,gDAA8B;AAE9B,kDAAkD;AAClD,iDAAkF;AAAzE,6GAAA,YAAY,OAAA;AAAE,gHAAA,eAAe,OAAA;AAAE,iHAAA,gBAAgB,OAAA;AAExD,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AAEvB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAEpB,uCAA6D;AAApD,2GAAA,eAAe,OAAA;AAAE,0GAAA,cAAc,OAAA;AAExC,8CAA8C;AAC9C,mCAAyD;AAAhD,oGAAA,UAAU,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AAGtC,oEAAoE;AACpE,+DAA+D;AAC/D,kBAAkB;AAClB,+CAMwB;AALtB,4GAAA,YAAY,OAAA;AACZ,+GAAA,eAAe,OAAA;AACf,iHAAA,iBAAiB,OAAA;AACjB,sHAAA,sBAAsB,OAAA;AAIxB,uDAAuD;AACvD,kEAAkE;AAClE,4DAA4D;AAC5D,6CAAgD;AAAvC,8GAAA,eAAe,OAAA"}
@@ -70,6 +70,21 @@ export declare class OfflineQueue {
70
70
  markSent(eventIds: string[]): Promise<void>;
71
71
  /** Increment attempt count for events that failed to send (for backoff). */
72
72
  markFailed(eventIds: string[]): Promise<void>;
73
+ /**
74
+ * MOBX-005 (post-mortem #5) — queue hygiene. Evicts events that are
75
+ * older than `maxAgeMs` or have failed more than `maxAttempts`
76
+ * delivery attempts. Without this, month-old poison events with 40+
77
+ * attempts sat at the FRONT of the queue forever and, because flush
78
+ * drains FIFO and aborts on a failing batch, fresh events never got
79
+ * a chance to send (head-of-line blocking).
80
+ *
81
+ * Returns the number of evicted events. `onEvicted` fires per event.
82
+ */
83
+ evictStale(opts: {
84
+ maxAttempts: number;
85
+ maxAgeMs: number;
86
+ now?: number;
87
+ }): Promise<number>;
73
88
  /** Current queue size. */
74
89
  size(): Promise<number>;
75
90
  /** ISO timestamp of the oldest queued event, or null if queue is empty. */
@@ -1 +1 @@
1
- {"version":3,"file":"offline-queue.d.ts","sourceRoot":"","sources":["../src/offline-queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"offline-queue.d.ts","sourceRoot":"","sources":["../src/offline-queue.ts"],"names":[],"mappings":"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"}
@@ -98,6 +98,41 @@ class OfflineQueue {
98
98
  const next = all.map((q) => q.event.id && idSet.has(q.event.id) ? { ...q, attempts: q.attempts + 1 } : q);
99
99
  await this.storage.replaceAll(next);
100
100
  }
101
+ /**
102
+ * MOBX-005 (post-mortem #5) — queue hygiene. Evicts events that are
103
+ * older than `maxAgeMs` or have failed more than `maxAttempts`
104
+ * delivery attempts. Without this, month-old poison events with 40+
105
+ * attempts sat at the FRONT of the queue forever and, because flush
106
+ * drains FIFO and aborts on a failing batch, fresh events never got
107
+ * a chance to send (head-of-line blocking).
108
+ *
109
+ * Returns the number of evicted events. `onEvicted` fires per event.
110
+ */
111
+ async evictStale(opts) {
112
+ const now = opts.now ?? Date.now();
113
+ const all = await this.storage.readAll();
114
+ const keep = [];
115
+ const evicted = [];
116
+ for (const q of all) {
117
+ const age = now - Date.parse(q.enqueuedAt);
118
+ const tooOld = Number.isFinite(age) && age > opts.maxAgeMs;
119
+ const tooManyAttempts = q.attempts > opts.maxAttempts;
120
+ if (tooOld || tooManyAttempts) {
121
+ evicted.push(q);
122
+ }
123
+ else {
124
+ keep.push(q);
125
+ }
126
+ }
127
+ if (evicted.length > 0) {
128
+ await this.storage.replaceAll(keep);
129
+ if (this.onEvicted) {
130
+ for (const ev of evicted)
131
+ this.onEvicted(ev);
132
+ }
133
+ }
134
+ return evicted.length;
135
+ }
101
136
  /** Current queue size. */
102
137
  async size() {
103
138
  return this.storage.size();
@@ -1 +1 @@
1
- {"version":3,"file":"offline-queue.js","sourceRoot":"","sources":["../src/offline-queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"offline-queue.js","sourceRoot":"","sources":["../src/offline-queue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * MOBX-006 — screen-tracking convenience helper.
3
+ *
4
+ * The install-step copy promises "app_open and screen_view fire
5
+ * automatically"; `app_open` is auto-fired by `initialize()` (web.ts),
6
+ * and this helper is the one-liner apps drop into their navigation
7
+ * layer (router listener, `useEffect` on route change, etc.) so
8
+ * `screen_view` events land in the spec's canonical shape
9
+ * (`screen_name` / `previous_screen` — see `apex-spec/events.ts`).
10
+ *
11
+ * Delegates to `Apex.track()` so the offline queue / batch sender /
12
+ * session manager paths stay unchanged.
13
+ */
14
+ /** Track a mobile screen render (the native equivalent of `page_view`). */
15
+ export declare function trackScreenView(screenName: string, opts?: {
16
+ previousScreen?: string;
17
+ }): Promise<void>;
18
+ //# sourceMappingURL=screen-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screen-view.d.ts","sourceRoot":"","sources":["../src/screen-view.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,2EAA2E;AAC3E,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GACjC,OAAO,CAAC,IAAI,CAAC,CAUf"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /**
3
+ * MOBX-006 — screen-tracking convenience helper.
4
+ *
5
+ * The install-step copy promises "app_open and screen_view fire
6
+ * automatically"; `app_open` is auto-fired by `initialize()` (web.ts),
7
+ * and this helper is the one-liner apps drop into their navigation
8
+ * layer (router listener, `useEffect` on route change, etc.) so
9
+ * `screen_view` events land in the spec's canonical shape
10
+ * (`screen_name` / `previous_screen` — see `apex-spec/events.ts`).
11
+ *
12
+ * Delegates to `Apex.track()` so the offline queue / batch sender /
13
+ * session manager paths stay unchanged.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.trackScreenView = trackScreenView;
17
+ const index_1 = require("./index");
18
+ const events_1 = require("./events");
19
+ /** Track a mobile screen render (the native equivalent of `page_view`). */
20
+ async function trackScreenView(screenName, opts) {
21
+ await index_1.Apex.track({
22
+ type: events_1.ApexEvents.ScreenView,
23
+ data: {
24
+ screen_name: screenName,
25
+ ...(opts?.previousScreen
26
+ ? { previous_screen: opts.previousScreen }
27
+ : {}),
28
+ },
29
+ });
30
+ }
31
+ //# sourceMappingURL=screen-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screen-view.js","sourceRoot":"","sources":["../src/screen-view.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;AAMH,0CAaC;AAjBD,mCAA+B;AAC/B,qCAAsC;AAEtC,2EAA2E;AACpE,KAAK,UAAU,eAAe,CACnC,UAAkB,EAClB,IAAkC;IAElC,MAAM,YAAI,CAAC,KAAK,CAAC;QACf,IAAI,EAAE,mBAAU,CAAC,UAAU;QAC3B,IAAI,EAAE;YACJ,WAAW,EAAE,UAAU;YACvB,GAAG,CAAC,IAAI,EAAE,cAAc;gBACtB,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,cAAc,EAAE;gBAC1C,CAAC,CAAC,EAAE,CAAC;SACR;KACF,CAAC,CAAC;AACL,CAAC"}
package/dist/web.d.ts CHANGED
@@ -11,7 +11,7 @@
11
11
  * in separate files so unit tests can cover them without DOM mocking.
12
12
  */
13
13
  import { WebPlugin } from "@capacitor/core";
14
- import type { AdvertisingIdResult, ApexCapacitorPlugin, ApexEvent, AttStatus, DeviceInfo, FlushResult, InitializeOptions, PushRegistrationResult, QueueStatus, SessionInfo, SkanCoarseValue, VariantAssignmentResult } from "./definitions";
14
+ import type { AdvertisingIdResult, ApexCapacitorPlugin, ApexEvent, AttStatus, DeviceInfo, FlushResult, IdentifyOptions, InitializeOptions, PushRegistrationResult, QueueStatus, SessionInfo, SkanCoarseValue, VariantAssignmentResult } from "./definitions";
15
15
  export declare class ApexCapacitorWeb extends WebPlugin implements ApexCapacitorPlugin {
16
16
  private queue?;
17
17
  private session?;
@@ -20,6 +20,18 @@ export declare class ApexCapacitorWeb extends WebPlugin implements ApexCapacitor
20
20
  private testMode;
21
21
  private debug;
22
22
  private initialized;
23
+ /** Workspace-bound SDK key forwarded as `x-apex-api-key`. */
24
+ private apiKey?;
25
+ /** Resolved API base URL — also used by identify(). */
26
+ private apiBaseUrl;
27
+ /** Workspace key from initialize — used by identify(). */
28
+ private workspaceKey?;
29
+ /**
30
+ * MOBX-006 — has an `app_open` (manual or auto) been tracked by
31
+ * this instance? Set synchronously at the top of `track()` so a
32
+ * manual fire in the same tick beats the deferred auto-fire below.
33
+ */
34
+ private appOpenTracked;
23
35
  initialize(options: InitializeOptions): Promise<void>;
24
36
  requestTrackingAuthorization(): Promise<{
25
37
  status: AttStatus;
@@ -43,6 +55,22 @@ export declare class ApexCapacitorWeb extends WebPlugin implements ApexCapacitor
43
55
  setVisitorId(options: {
44
56
  visitorId: string;
45
57
  }): Promise<void>;
58
+ /**
59
+ * Phase 2-SDK (council-revised plan). Posts to
60
+ * `${apiBaseUrl}/api/identity/stitch` with the current visitorId,
61
+ * the supplied email, optional userId + traits, and the workspace-
62
+ * bound API key (when set). The server stamps the resulting Contact
63
+ * `verifiedAt = now` and runs the verified-mode downstream pipeline
64
+ * (affiliate stamping, scoring, journey dispatch).
65
+ *
66
+ * Failures are surfaced as thrown errors so the caller can decide
67
+ * whether to retry. Network failures specifically should be
68
+ * recoverable — the SDK does not currently retry identify because
69
+ * promoting on the second attempt is identical to promoting on the
70
+ * first; merchants typically wire identify behind a one-shot
71
+ * boundary (signup-complete hook, auth-state-change listener).
72
+ */
73
+ identify(options: IdentifyOptions): Promise<void>;
46
74
  updateConversionValue(_options: {
47
75
  fineValue: number;
48
76
  coarseValue?: SkanCoarseValue;
package/dist/web.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACT,SAAS,EACT,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,WAAW,EACX,WAAW,EACX,eAAe,EACf,uBAAuB,EACxB,MAAM,eAAe,CAAC;AAQvB,qBAAa,gBAAiB,SAAQ,SAAU,YAAW,mBAAmB;IAC5E,OAAO,CAAC,KAAK,CAAC,CAAe;IAC7B,OAAO,CAAC,OAAO,CAAC,CAAiB;IACjC,OAAO,CAAC,MAAM,CAAC,CAAc;IAC7B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,WAAW,CAAS;IAEtB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCrD,4BAA4B,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC;IAI9D,iBAAiB,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC;IAIzD;;;;OAIG;IACG,4BAA4B,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAI/D,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAIhD,kBAAkB,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAI1D,YAAY,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAO9C,YAAY,CAAC,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3D,qBAAqB,CAAC,QAAQ,EAAE;QACpC,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,eAAe,CAAC;KAC/B,GAAG,OAAO,CAAC,IAAI,CAAC;IAIX,kBAAkB,IAAI,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAOrD,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAiBpC,YAAY,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAM9C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC;IAQ/C;;;OAGG;IACH,OAAO,CAAC,eAAe,CAA2E;IAE5F,UAAU,CAAC,OAAO,EAAE;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAqD9B,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CtC,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC;IASpC,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IAMlC,WAAW,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzC,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,iBAAiB;CAK1B"}
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"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"}
package/dist/web.js CHANGED
@@ -19,12 +19,81 @@ const event_id_1 = require("./event-id");
19
19
  const offline_queue_1 = require("./offline-queue");
20
20
  const session_manager_1 = require("./session-manager");
21
21
  const VISITOR_ID_KEY = "apex.visitorId";
22
+ /** Copies `fields` onto `target`, skipping `undefined` values. */
23
+ function assignDefined(target, fields) {
24
+ for (const [key, value] of Object.entries(fields)) {
25
+ if (value !== undefined)
26
+ target[key] = value;
27
+ }
28
+ }
29
+ /**
30
+ * MOBX-006 (plugin/spec parity) — workspace the typed `purchase` /
31
+ * `subscription` contexts into the event's `data` bag using the Apex
32
+ * Spec's snake_case field names (the `in_app_purchase` /
33
+ * `subscription_event` shapes in `apex-spec/events.ts`).
34
+ *
35
+ * Why: the server's wiring detection, journey triggers, and template
36
+ * variables all read the snake_case spec fields from `data`
37
+ * (`order_id`, `value`, `currency`, `product_id`, …). The typed
38
+ * contexts are persisted verbatim under `event.purchase` /
39
+ * `event.subscription`, but nothing translated their camelCase fields
40
+ * into the data bag — so a developer using the typed contract got an
41
+ * event that LOOKED right but never matched the spec's field shapes.
42
+ *
43
+ * Precedence: anything the developer explicitly set in `data` wins —
44
+ * we only fill fields they did not provide.
45
+ */
46
+ function projectTypedContextsIntoData(event) {
47
+ const projected = {};
48
+ const p = event.purchase;
49
+ if (p) {
50
+ assignDefined(projected, {
51
+ // The spec's `in_app_purchase` has no dedicated transaction
52
+ // field as the order identity, so the store transaction id is
53
+ // the best stable order id; fall back to the product id.
54
+ order_id: p.transactionId ?? p.productId,
55
+ value: p.amount,
56
+ currency: p.currency,
57
+ product_id: p.productId,
58
+ // Not part of the typed contract, but projected when a caller
59
+ // passes it through anyway (the context is open at runtime).
60
+ product_name: p.productName,
61
+ transaction_id: p.transactionId,
62
+ is_restored: p.isRestored,
63
+ });
64
+ }
65
+ const s = event.subscription;
66
+ if (s) {
67
+ assignDefined(projected, {
68
+ product_id: s.productId,
69
+ action: s.action,
70
+ amount: s.amount,
71
+ currency: s.currency,
72
+ period_type: s.periodType,
73
+ transaction_id: s.transactionId,
74
+ expires_at: s.expiresAt,
75
+ is_trial: s.isTrial,
76
+ });
77
+ }
78
+ if (Object.keys(projected).length === 0)
79
+ return event.data;
80
+ // Explicit developer-set data wins over projected fields.
81
+ return { ...projected, ...(event.data ?? {}) };
82
+ }
22
83
  class ApexCapacitorWeb extends core_1.WebPlugin {
23
84
  constructor() {
24
85
  super(...arguments);
25
86
  this.testMode = false;
26
87
  this.debug = false;
27
88
  this.initialized = false;
89
+ /** Resolved API base URL — also used by identify(). */
90
+ this.apiBaseUrl = "https://app.apex.inc";
91
+ /**
92
+ * MOBX-006 — has an `app_open` (manual or auto) been tracked by
93
+ * this instance? Set synchronously at the top of `track()` so a
94
+ * manual fire in the same tick beats the deferred auto-fire below.
95
+ */
96
+ this.appOpenTracked = false;
28
97
  /**
29
98
  * In-memory assignment cache. Keyed by experimentId; entry contains the
30
99
  * result and the fetch timestamp. Never exceeds this set within a session.
@@ -36,6 +105,15 @@ class ApexCapacitorWeb extends core_1.WebPlugin {
36
105
  return;
37
106
  this.testMode = options.testMode ?? false;
38
107
  this.debug = options.debug ?? false;
108
+ this.apiKey = options.apiKey;
109
+ // `projectKey` is the deprecated permanent alias (2026-06 rename).
110
+ this.workspaceKey = options.workspaceKey ?? options.projectKey ?? "";
111
+ if (!this.workspaceKey) {
112
+ throw new Error("Apex.initialize: `workspaceKey` is required");
113
+ }
114
+ if (options.apiUrl) {
115
+ this.apiBaseUrl = options.apiUrl.replace(/\/+$/, "");
116
+ }
39
117
  const storage = typeof indexedDB !== "undefined" ? new offline_queue_1.IndexedDBStorage() : new offline_queue_1.InMemoryStorage();
40
118
  this.queue = new offline_queue_1.OfflineQueue({
41
119
  storage,
@@ -52,12 +130,35 @@ class ApexCapacitorWeb extends core_1.WebPlugin {
52
130
  });
53
131
  this.sender = new batch_sender_1.BatchSender({
54
132
  apiUrl: options.apiUrl,
55
- projectKey: options.projectKey,
133
+ workspaceKey: options.workspaceKey,
56
134
  platformHeader: "web",
135
+ apiKey: this.apiKey,
57
136
  debug: this.debug,
58
137
  });
59
138
  this.visitorId = this.loadOrCreateVisitorId();
60
139
  this.initialized = true;
140
+ // MOBX-006 — auto-fire one `app_open` (source: "launch") per page
141
+ // load. The install-step copy promises "app_open and screen_view
142
+ // fire automatically"; before this, only apps that wired the call
143
+ // themselves ever lit up the lifecycle signal. Idempotency:
144
+ // • instance flag (`appOpenTracked`) + the memoized web-impl
145
+ // factory in index.ts → at most one auto fire per page load;
146
+ // • `initialize()` early-returns when already initialized, so
147
+ // repeat init calls can't re-arm the timer;
148
+ // • the fire is deferred one macrotask so an app that fires its
149
+ // own app_open right after `await initialize()` wins — their
150
+ // track() sets the flag synchronously and we skip ours.
151
+ // Skipped outside a window context (SSR / Node): without a
152
+ // foregrounded UI there is no "app open" to report.
153
+ if (typeof window !== "undefined") {
154
+ setTimeout(() => {
155
+ if (this.appOpenTracked)
156
+ return;
157
+ void this.track({ type: "app_open", data: { source: "launch" } }).catch(() => {
158
+ /* best-effort — never throw from a timer */
159
+ });
160
+ }, 0);
161
+ }
61
162
  }
62
163
  async requestTrackingAuthorization() {
63
164
  return { status: "authorized" };
@@ -89,6 +190,55 @@ class ApexCapacitorWeb extends core_1.WebPlugin {
89
190
  this.visitorId = options.visitorId;
90
191
  this.saveVisitorId(options.visitorId);
91
192
  }
193
+ /**
194
+ * Phase 2-SDK (council-revised plan). Posts to
195
+ * `${apiBaseUrl}/api/identity/stitch` with the current visitorId,
196
+ * the supplied email, optional userId + traits, and the workspace-
197
+ * bound API key (when set). The server stamps the resulting Contact
198
+ * `verifiedAt = now` and runs the verified-mode downstream pipeline
199
+ * (affiliate stamping, scoring, journey dispatch).
200
+ *
201
+ * Failures are surfaced as thrown errors so the caller can decide
202
+ * whether to retry. Network failures specifically should be
203
+ * recoverable — the SDK does not currently retry identify because
204
+ * promoting on the second attempt is identical to promoting on the
205
+ * first; merchants typically wire identify behind a one-shot
206
+ * boundary (signup-complete hook, auth-state-change listener).
207
+ */
208
+ async identify(options) {
209
+ this.ensureInitialized();
210
+ const email = options.email?.trim();
211
+ if (!email) {
212
+ throw new Error("Apex.identify: `email` is required.");
213
+ }
214
+ const visitorId = this.visitorId ?? this.loadOrCreateVisitorId();
215
+ const url = `${this.apiBaseUrl}/api/identity/stitch`;
216
+ const headers = {
217
+ "Content-Type": "application/json",
218
+ "x-apex-source": "sdk",
219
+ };
220
+ if (this.apiKey)
221
+ headers["x-apex-api-key"] = this.apiKey;
222
+ if (this.workspaceKey)
223
+ headers["x-apex-workspace"] = this.workspaceKey;
224
+ const body = {
225
+ visitorId,
226
+ email,
227
+ workspaceKey: this.workspaceKey,
228
+ ...(options.userId ? { userId: options.userId } : {}),
229
+ ...(options.traits ? { metadata: options.traits } : {}),
230
+ timestamp: new Date().toISOString(),
231
+ };
232
+ const res = await fetch(url, {
233
+ method: "POST",
234
+ headers,
235
+ body: JSON.stringify(body),
236
+ });
237
+ if (!res.ok) {
238
+ const detail = await res.text().catch(() => "");
239
+ throw new Error(`Apex.identify: server rejected (HTTP ${res.status}) ${detail}`.trim());
240
+ }
241
+ }
92
242
  async updateConversionValue(_options) {
93
243
  // No-op on web / non-iOS.
94
244
  }
@@ -111,6 +261,9 @@ class ApexCapacitorWeb extends core_1.WebPlugin {
111
261
  bundleId: typeof location !== "undefined" ? location.host : "web",
112
262
  timezone: tz,
113
263
  locale,
264
+ // Web events never get a `releaseChannel` — they don't represent a
265
+ // native build at all. The dashboard build filter is mobile-scoped
266
+ // and skips web events entirely (see `audienceOf()` server-side).
114
267
  };
115
268
  }
116
269
  async startSession() {
@@ -140,7 +293,7 @@ class ApexCapacitorWeb extends core_1.WebPlugin {
140
293
  }
141
294
  // The SDK calls the unified assign endpoint so it receives the rich
142
295
  // mobile-surface payload alongside the variant key.
143
- const apiUrl = this.sender?.getApiUrl() ?? "https://api.apex.inc";
296
+ const apiUrl = this.sender?.getApiUrl() ?? "https://app.apex.inc";
144
297
  const url = `${apiUrl.replace(/\/$/, "")}/api/experiments/${encodeURIComponent(experimentId)}/assign?unified=true&source=sdk`;
145
298
  try {
146
299
  const res = await fetch(url, {
@@ -180,6 +333,8 @@ class ApexCapacitorWeb extends core_1.WebPlugin {
180
333
  }
181
334
  async track(event) {
182
335
  this.ensureInitialized();
336
+ if (event.type === "app_open")
337
+ this.appOpenTracked = true;
183
338
  const sessionSnapshot = this.session.recordActivity();
184
339
  // Mirror the iOS/Android native plugins: stamp testMode, platform,
185
340
  // visitorId, and timestamp at the TOP LEVEL of every event (not
@@ -199,6 +354,12 @@ class ApexCapacitorWeb extends core_1.WebPlugin {
199
354
  // The native plugins fixed this in MMP-205 / MMP-207. The web
200
355
  // fallback was missed at the time and silently broke browser-
201
356
  // based dogfooding (Vite dev, browser preview).
357
+ // MMP-081 — web fallback always stamps `capacitor-webview` so the
358
+ // server can flag merchants who installed the Capacitor plugin but
359
+ // didn't wire the native plugin. The Mobile Measurement dashboard
360
+ // surfaces a warning when a workspace's mobile events are
361
+ // disproportionately `capacitor-webview` (loses IDFA, store
362
+ // receipts, install referrer, deep links).
202
363
  const stamped = {
203
364
  ...event,
204
365
  id: event.id ?? (0, event_id_1.generateEventId)(),
@@ -206,7 +367,11 @@ class ApexCapacitorWeb extends core_1.WebPlugin {
206
367
  sessionId: event.sessionId ?? sessionSnapshot.sessionId,
207
368
  visitorId: event.visitorId ?? this.visitorId,
208
369
  platform: event.platform ?? "web",
370
+ clientType: event.clientType ?? "capacitor-webview",
209
371
  testMode: event.testMode ?? (this.testMode ? true : undefined),
372
+ // MOBX-006 — mirror the typed purchase/subscription contexts
373
+ // into `data` under the spec's snake_case names (see helper).
374
+ data: projectTypedContextsIntoData(event),
210
375
  };
211
376
  if (stamped.id && !(0, event_id_1.isValidEventId)(stamped.id)) {
212
377
  // Developer mis-set id — overwrite rather than fail the track() call.
package/dist/web.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"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"}