@apex-inc/capacitor-plugin 0.3.9 → 2.1.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.
- package/android/build.gradle +4 -2
- package/android/src/main/AndroidManifest.xml +35 -3
- package/android/src/main/java/inc/apex/capacitor/ApexCapacitorPlugin.kt +403 -6
- package/android/src/main/java/inc/apex/capacitor/ApexEvents.kt +122 -0
- package/android/src/main/java/inc/apex/capacitor/ApexFirebaseMessagingService.kt +99 -0
- package/android/src/main/java/inc/apex/capacitor/NativeBatchSender.kt +260 -0
- package/dist/batch-sender.d.ts +12 -0
- package/dist/batch-sender.d.ts.map +1 -1
- package/dist/batch-sender.js +25 -0
- package/dist/batch-sender.js.map +1 -1
- package/dist/cart-helpers.d.ts +63 -0
- package/dist/cart-helpers.d.ts.map +1 -0
- package/dist/cart-helpers.js +50 -0
- package/dist/cart-helpers.js.map +1 -0
- package/dist/definitions.d.ts +142 -2
- package/dist/definitions.d.ts.map +1 -1
- package/dist/esm/batch-sender.d.ts +12 -0
- package/dist/esm/batch-sender.d.ts.map +1 -1
- package/dist/esm/batch-sender.js +25 -0
- package/dist/esm/batch-sender.js.map +1 -1
- package/dist/esm/cart-helpers.d.ts +63 -0
- package/dist/esm/cart-helpers.d.ts.map +1 -0
- package/dist/esm/cart-helpers.js +44 -0
- package/dist/esm/cart-helpers.js.map +1 -0
- package/dist/esm/definitions.d.ts +142 -2
- package/dist/esm/definitions.d.ts.map +1 -1
- package/dist/esm/events.d.ts +85 -0
- package/dist/esm/events.d.ts.map +1 -0
- package/dist/esm/events.js +96 -0
- package/dist/esm/events.js.map +1 -0
- package/dist/esm/index.d.ts +4 -5
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +19 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/offline-queue.d.ts +15 -0
- package/dist/esm/offline-queue.d.ts.map +1 -1
- package/dist/esm/offline-queue.js +35 -0
- package/dist/esm/offline-queue.js.map +1 -1
- package/dist/esm/screen-view.d.ts +18 -0
- package/dist/esm/screen-view.d.ts.map +1 -0
- package/dist/esm/screen-view.js +28 -0
- package/dist/esm/screen-view.js.map +1 -0
- package/dist/esm/web.d.ts +29 -1
- package/dist/esm/web.d.ts.map +1 -1
- package/dist/esm/web.js +161 -0
- package/dist/esm/web.js.map +1 -1
- package/dist/events.d.ts +85 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +99 -0
- package/dist/events.js.map +1 -0
- package/dist/index.d.ts +4 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -2
- package/dist/index.js.map +1 -1
- package/dist/offline-queue.d.ts +15 -0
- package/dist/offline-queue.d.ts.map +1 -1
- package/dist/offline-queue.js +35 -0
- package/dist/offline-queue.js.map +1 -1
- package/dist/screen-view.d.ts +18 -0
- package/dist/screen-view.d.ts.map +1 -0
- package/dist/screen-view.js +31 -0
- package/dist/screen-view.js.map +1 -0
- package/dist/web.d.ts +29 -1
- package/dist/web.d.ts.map +1 -1
- package/dist/web.js +161 -0
- package/dist/web.js.map +1 -1
- package/ios/Sources/ApexCapacitorPlugin/ApexEvents.swift +124 -0
- package/ios/Sources/ApexCapacitorPlugin/BatchSender.swift +18 -0
- package/ios/Sources/ApexCapacitorPlugin/OfflineQueue.swift +19 -0
- package/ios/Sources/ApexCapacitorPlugin/PushNotificationManager.swift +47 -0
- package/ios/Sources/ApexCapacitorPluginBridge/ApexCapacitorPlugin.swift +280 -20
- package/package.json +1 -1
package/dist/esm/web.js
CHANGED
|
@@ -16,12 +16,81 @@ import { generateEventId, isValidEventId } from "./event-id";
|
|
|
16
16
|
import { IndexedDBStorage, InMemoryStorage, OfflineQueue } from "./offline-queue";
|
|
17
17
|
import { SessionManager } from "./session-manager";
|
|
18
18
|
const VISITOR_ID_KEY = "apex.visitorId";
|
|
19
|
+
/** Copies `fields` onto `target`, skipping `undefined` values. */
|
|
20
|
+
function assignDefined(target, fields) {
|
|
21
|
+
for (const [key, value] of Object.entries(fields)) {
|
|
22
|
+
if (value !== undefined)
|
|
23
|
+
target[key] = value;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* MOBX-006 (plugin/spec parity) — project the typed `purchase` /
|
|
28
|
+
* `subscription` contexts into the event's `data` bag using the Apex
|
|
29
|
+
* Spec's snake_case field names (the `in_app_purchase` /
|
|
30
|
+
* `subscription_event` shapes in `apex-spec/events.ts`).
|
|
31
|
+
*
|
|
32
|
+
* Why: the server's wiring detection, journey triggers, and template
|
|
33
|
+
* variables all read the snake_case spec fields from `data`
|
|
34
|
+
* (`order_id`, `value`, `currency`, `product_id`, …). The typed
|
|
35
|
+
* contexts are persisted verbatim under `event.purchase` /
|
|
36
|
+
* `event.subscription`, but nothing translated their camelCase fields
|
|
37
|
+
* into the data bag — so a developer using the typed contract got an
|
|
38
|
+
* event that LOOKED right but never matched the spec's field shapes.
|
|
39
|
+
*
|
|
40
|
+
* Precedence: anything the developer explicitly set in `data` wins —
|
|
41
|
+
* we only fill fields they did not provide.
|
|
42
|
+
*/
|
|
43
|
+
function projectTypedContextsIntoData(event) {
|
|
44
|
+
const projected = {};
|
|
45
|
+
const p = event.purchase;
|
|
46
|
+
if (p) {
|
|
47
|
+
assignDefined(projected, {
|
|
48
|
+
// The spec's `in_app_purchase` has no dedicated transaction
|
|
49
|
+
// field as the order identity, so the store transaction id is
|
|
50
|
+
// the best stable order id; fall back to the product id.
|
|
51
|
+
order_id: p.transactionId ?? p.productId,
|
|
52
|
+
value: p.amount,
|
|
53
|
+
currency: p.currency,
|
|
54
|
+
product_id: p.productId,
|
|
55
|
+
// Not part of the typed contract, but projected when a caller
|
|
56
|
+
// passes it through anyway (the context is open at runtime).
|
|
57
|
+
product_name: p.productName,
|
|
58
|
+
transaction_id: p.transactionId,
|
|
59
|
+
is_restored: p.isRestored,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
const s = event.subscription;
|
|
63
|
+
if (s) {
|
|
64
|
+
assignDefined(projected, {
|
|
65
|
+
product_id: s.productId,
|
|
66
|
+
action: s.action,
|
|
67
|
+
amount: s.amount,
|
|
68
|
+
currency: s.currency,
|
|
69
|
+
period_type: s.periodType,
|
|
70
|
+
transaction_id: s.transactionId,
|
|
71
|
+
expires_at: s.expiresAt,
|
|
72
|
+
is_trial: s.isTrial,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
if (Object.keys(projected).length === 0)
|
|
76
|
+
return event.data;
|
|
77
|
+
// Explicit developer-set data wins over projected fields.
|
|
78
|
+
return { ...projected, ...(event.data ?? {}) };
|
|
79
|
+
}
|
|
19
80
|
export class ApexCapacitorWeb extends WebPlugin {
|
|
20
81
|
constructor() {
|
|
21
82
|
super(...arguments);
|
|
22
83
|
this.testMode = false;
|
|
23
84
|
this.debug = false;
|
|
24
85
|
this.initialized = false;
|
|
86
|
+
/** Resolved API base URL — also used by identify(). */
|
|
87
|
+
this.apiBaseUrl = "https://api.apex.inc";
|
|
88
|
+
/**
|
|
89
|
+
* MOBX-006 — has an `app_open` (manual or auto) been tracked by
|
|
90
|
+
* this instance? Set synchronously at the top of `track()` so a
|
|
91
|
+
* manual fire in the same tick beats the deferred auto-fire below.
|
|
92
|
+
*/
|
|
93
|
+
this.appOpenTracked = false;
|
|
25
94
|
/**
|
|
26
95
|
* In-memory assignment cache. Keyed by experimentId; entry contains the
|
|
27
96
|
* result and the fetch timestamp. Never exceeds this set within a session.
|
|
@@ -33,6 +102,11 @@ export class ApexCapacitorWeb extends WebPlugin {
|
|
|
33
102
|
return;
|
|
34
103
|
this.testMode = options.testMode ?? false;
|
|
35
104
|
this.debug = options.debug ?? false;
|
|
105
|
+
this.apiKey = options.apiKey;
|
|
106
|
+
this.projectKey = options.projectKey;
|
|
107
|
+
if (options.apiUrl) {
|
|
108
|
+
this.apiBaseUrl = options.apiUrl.replace(/\/+$/, "");
|
|
109
|
+
}
|
|
36
110
|
const storage = typeof indexedDB !== "undefined" ? new IndexedDBStorage() : new InMemoryStorage();
|
|
37
111
|
this.queue = new OfflineQueue({
|
|
38
112
|
storage,
|
|
@@ -51,10 +125,33 @@ export class ApexCapacitorWeb extends WebPlugin {
|
|
|
51
125
|
apiUrl: options.apiUrl,
|
|
52
126
|
projectKey: options.projectKey,
|
|
53
127
|
platformHeader: "web",
|
|
128
|
+
apiKey: this.apiKey,
|
|
54
129
|
debug: this.debug,
|
|
55
130
|
});
|
|
56
131
|
this.visitorId = this.loadOrCreateVisitorId();
|
|
57
132
|
this.initialized = true;
|
|
133
|
+
// MOBX-006 — auto-fire one `app_open` (source: "launch") per page
|
|
134
|
+
// load. The install-step copy promises "app_open and screen_view
|
|
135
|
+
// fire automatically"; before this, only apps that wired the call
|
|
136
|
+
// themselves ever lit up the lifecycle signal. Idempotency:
|
|
137
|
+
// • instance flag (`appOpenTracked`) + the memoized web-impl
|
|
138
|
+
// factory in index.ts → at most one auto fire per page load;
|
|
139
|
+
// • `initialize()` early-returns when already initialized, so
|
|
140
|
+
// repeat init calls can't re-arm the timer;
|
|
141
|
+
// • the fire is deferred one macrotask so an app that fires its
|
|
142
|
+
// own app_open right after `await initialize()` wins — their
|
|
143
|
+
// track() sets the flag synchronously and we skip ours.
|
|
144
|
+
// Skipped outside a window context (SSR / Node): without a
|
|
145
|
+
// foregrounded UI there is no "app open" to report.
|
|
146
|
+
if (typeof window !== "undefined") {
|
|
147
|
+
setTimeout(() => {
|
|
148
|
+
if (this.appOpenTracked)
|
|
149
|
+
return;
|
|
150
|
+
void this.track({ type: "app_open", data: { source: "launch" } }).catch(() => {
|
|
151
|
+
/* best-effort — never throw from a timer */
|
|
152
|
+
});
|
|
153
|
+
}, 0);
|
|
154
|
+
}
|
|
58
155
|
}
|
|
59
156
|
async requestTrackingAuthorization() {
|
|
60
157
|
return { status: "authorized" };
|
|
@@ -86,6 +183,55 @@ export class ApexCapacitorWeb extends WebPlugin {
|
|
|
86
183
|
this.visitorId = options.visitorId;
|
|
87
184
|
this.saveVisitorId(options.visitorId);
|
|
88
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* Phase 2-SDK (council-revised plan). Posts to
|
|
188
|
+
* `${apiBaseUrl}/api/identity/stitch` with the current visitorId,
|
|
189
|
+
* the supplied email, optional userId + traits, and the workspace-
|
|
190
|
+
* bound API key (when set). The server stamps the resulting Contact
|
|
191
|
+
* `verifiedAt = now` and runs the verified-mode downstream pipeline
|
|
192
|
+
* (affiliate stamping, scoring, journey dispatch).
|
|
193
|
+
*
|
|
194
|
+
* Failures are surfaced as thrown errors so the caller can decide
|
|
195
|
+
* whether to retry. Network failures specifically should be
|
|
196
|
+
* recoverable — the SDK does not currently retry identify because
|
|
197
|
+
* promoting on the second attempt is identical to promoting on the
|
|
198
|
+
* first; merchants typically wire identify behind a one-shot
|
|
199
|
+
* boundary (signup-complete hook, auth-state-change listener).
|
|
200
|
+
*/
|
|
201
|
+
async identify(options) {
|
|
202
|
+
this.ensureInitialized();
|
|
203
|
+
const email = options.email?.trim();
|
|
204
|
+
if (!email) {
|
|
205
|
+
throw new Error("Apex.identify: `email` is required.");
|
|
206
|
+
}
|
|
207
|
+
const visitorId = this.visitorId ?? this.loadOrCreateVisitorId();
|
|
208
|
+
const url = `${this.apiBaseUrl}/api/identity/stitch`;
|
|
209
|
+
const headers = {
|
|
210
|
+
"Content-Type": "application/json",
|
|
211
|
+
"x-apex-source": "sdk",
|
|
212
|
+
};
|
|
213
|
+
if (this.apiKey)
|
|
214
|
+
headers["x-apex-api-key"] = this.apiKey;
|
|
215
|
+
if (this.projectKey)
|
|
216
|
+
headers["x-apex-project"] = this.projectKey;
|
|
217
|
+
const body = {
|
|
218
|
+
visitorId,
|
|
219
|
+
email,
|
|
220
|
+
projectKey: this.projectKey,
|
|
221
|
+
...(options.userId ? { userId: options.userId } : {}),
|
|
222
|
+
...(options.traits ? { metadata: options.traits } : {}),
|
|
223
|
+
timestamp: new Date().toISOString(),
|
|
224
|
+
};
|
|
225
|
+
const res = await fetch(url, {
|
|
226
|
+
method: "POST",
|
|
227
|
+
headers,
|
|
228
|
+
body: JSON.stringify(body),
|
|
229
|
+
});
|
|
230
|
+
if (!res.ok) {
|
|
231
|
+
const detail = await res.text().catch(() => "");
|
|
232
|
+
throw new Error(`Apex.identify: server rejected (HTTP ${res.status}) ${detail}`.trim());
|
|
233
|
+
}
|
|
234
|
+
}
|
|
89
235
|
async updateConversionValue(_options) {
|
|
90
236
|
// No-op on web / non-iOS.
|
|
91
237
|
}
|
|
@@ -108,6 +254,9 @@ export class ApexCapacitorWeb extends WebPlugin {
|
|
|
108
254
|
bundleId: typeof location !== "undefined" ? location.host : "web",
|
|
109
255
|
timezone: tz,
|
|
110
256
|
locale,
|
|
257
|
+
// Web events never get a `releaseChannel` — they don't represent a
|
|
258
|
+
// native build at all. The dashboard build filter is mobile-scoped
|
|
259
|
+
// and skips web events entirely (see `audienceOf()` server-side).
|
|
111
260
|
};
|
|
112
261
|
}
|
|
113
262
|
async startSession() {
|
|
@@ -177,6 +326,8 @@ export class ApexCapacitorWeb extends WebPlugin {
|
|
|
177
326
|
}
|
|
178
327
|
async track(event) {
|
|
179
328
|
this.ensureInitialized();
|
|
329
|
+
if (event.type === "app_open")
|
|
330
|
+
this.appOpenTracked = true;
|
|
180
331
|
const sessionSnapshot = this.session.recordActivity();
|
|
181
332
|
// Mirror the iOS/Android native plugins: stamp testMode, platform,
|
|
182
333
|
// visitorId, and timestamp at the TOP LEVEL of every event (not
|
|
@@ -196,6 +347,12 @@ export class ApexCapacitorWeb extends WebPlugin {
|
|
|
196
347
|
// The native plugins fixed this in MMP-205 / MMP-207. The web
|
|
197
348
|
// fallback was missed at the time and silently broke browser-
|
|
198
349
|
// based dogfooding (Vite dev, browser preview).
|
|
350
|
+
// MMP-081 — web fallback always stamps `capacitor-webview` so the
|
|
351
|
+
// server can flag merchants who installed the Capacitor plugin but
|
|
352
|
+
// didn't wire the native plugin. The Mobile Measurement dashboard
|
|
353
|
+
// surfaces a warning when a workspace's mobile events are
|
|
354
|
+
// disproportionately `capacitor-webview` (loses IDFA, store
|
|
355
|
+
// receipts, install referrer, deep links).
|
|
199
356
|
const stamped = {
|
|
200
357
|
...event,
|
|
201
358
|
id: event.id ?? generateEventId(),
|
|
@@ -203,7 +360,11 @@ export class ApexCapacitorWeb extends WebPlugin {
|
|
|
203
360
|
sessionId: event.sessionId ?? sessionSnapshot.sessionId,
|
|
204
361
|
visitorId: event.visitorId ?? this.visitorId,
|
|
205
362
|
platform: event.platform ?? "web",
|
|
363
|
+
clientType: event.clientType ?? "capacitor-webview",
|
|
206
364
|
testMode: event.testMode ?? (this.testMode ? true : undefined),
|
|
365
|
+
// MOBX-006 — mirror the typed purchase/subscription contexts
|
|
366
|
+
// into `data` under the spec's snake_case names (see helper).
|
|
367
|
+
data: projectTypedContextsIntoData(event),
|
|
207
368
|
};
|
|
208
369
|
if (stamped.id && !isValidEventId(stamped.id)) {
|
|
209
370
|
// Developer mis-set id — overwrite rather than fail the track() call.
|
package/dist/esm/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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"}
|
package/dist/events.d.ts
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apex Spec — canonical event name constants for `@apex-inc/capacitor-plugin`.
|
|
3
|
+
*
|
|
4
|
+
* Hand-authored from the registry at `app/src/lib/core/apex-spec/events.ts`.
|
|
5
|
+
* Kept in sync via the parity test at
|
|
6
|
+
* `app/src/lib/core/apex-spec/__tests__/sdk-parity.test.ts` — that test fails
|
|
7
|
+
* CI if a canonical name is added/renamed/removed in the registry without a
|
|
8
|
+
* matching update here.
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
*
|
|
12
|
+
* ```ts
|
|
13
|
+
* import { Apex, ApexEvents } from "@apex-inc/capacitor-plugin";
|
|
14
|
+
*
|
|
15
|
+
* await Apex.track({ type: ApexEvents.AddToCart, data: { product_id: "sku_123", value: 49 } });
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* Each constant is the unversioned canonical name as the developer writes it
|
|
19
|
+
* in `track()` calls. Versions are an internal storage primitive; the SDK
|
|
20
|
+
* never carries a version field.
|
|
21
|
+
*/
|
|
22
|
+
export declare const ApexEvents: {
|
|
23
|
+
readonly AddToCart: "add_to_cart";
|
|
24
|
+
readonly RemoveFromCart: "remove_from_cart";
|
|
25
|
+
readonly ProductView: "product_view";
|
|
26
|
+
readonly AddToWishlist: "add_to_wishlist";
|
|
27
|
+
readonly CheckoutStarted: "checkout_started";
|
|
28
|
+
readonly InAppPurchase: "in_app_purchase";
|
|
29
|
+
readonly PurchaseRefunded: "purchase_refunded";
|
|
30
|
+
readonly SubscriptionEvent: "subscription_event";
|
|
31
|
+
readonly OrderPlaced: "order_placed";
|
|
32
|
+
readonly FirstSaleCompleted: "first_sale_completed";
|
|
33
|
+
readonly PriceDropped: "price_dropped";
|
|
34
|
+
readonly RestockDue: "restock_due";
|
|
35
|
+
readonly ReviewRequestDue: "review_request_due";
|
|
36
|
+
readonly UserSignedUp: "user_signed_up";
|
|
37
|
+
readonly UserSignedIn: "user_signed_in";
|
|
38
|
+
readonly UserSignedOut: "user_signed_out";
|
|
39
|
+
readonly UserIdentified: "user_identified";
|
|
40
|
+
readonly AppInstall: "app_install";
|
|
41
|
+
readonly AppOpen: "app_open";
|
|
42
|
+
readonly AppBackground: "app_background";
|
|
43
|
+
readonly AppUninstall: "app_uninstall";
|
|
44
|
+
readonly AppReinstall: "app_reinstall";
|
|
45
|
+
readonly SessionStart: "session_start";
|
|
46
|
+
readonly SessionEnd: "session_end";
|
|
47
|
+
readonly PageView: "page_view";
|
|
48
|
+
readonly Pageview: "pageview";
|
|
49
|
+
readonly ScreenView: "screen_view";
|
|
50
|
+
readonly Search: "search";
|
|
51
|
+
readonly Share: "share";
|
|
52
|
+
readonly ContentView: "content_view";
|
|
53
|
+
readonly FormSubmit: "form_submit";
|
|
54
|
+
readonly Click: "click";
|
|
55
|
+
readonly Engagement: "engagement";
|
|
56
|
+
readonly Heartbeat: "heartbeat";
|
|
57
|
+
readonly RageClick: "rage_click";
|
|
58
|
+
readonly DeadClick: "dead_click";
|
|
59
|
+
readonly GoalConversion: "goal_conversion";
|
|
60
|
+
readonly OnboardingStepCompleted: "onboarding_step_completed";
|
|
61
|
+
readonly OnboardingCompleted: "onboarding_completed";
|
|
62
|
+
readonly Activated: "activated";
|
|
63
|
+
readonly PushReceived: "push_received";
|
|
64
|
+
readonly PushOpened: "push_opened";
|
|
65
|
+
readonly EmailOpened: "email_opened";
|
|
66
|
+
readonly EmailClicked: "email_clicked";
|
|
67
|
+
readonly InAppMessageSeen: "in_app_message_seen";
|
|
68
|
+
readonly InAppMessageClicked: "in_app_message_clicked";
|
|
69
|
+
readonly DeepLinkOpen: "deep_link_open";
|
|
70
|
+
readonly Reattribution: "reattribution";
|
|
71
|
+
readonly Reengagement: "reengagement";
|
|
72
|
+
readonly SmartBannerImpression: "smart_banner_impression";
|
|
73
|
+
readonly SmartBannerClick: "smart_banner_click";
|
|
74
|
+
readonly SmartBannerDismiss: "smart_banner_dismiss";
|
|
75
|
+
readonly Custom: "custom";
|
|
76
|
+
readonly LifecycleTransition: "lifecycle_transition";
|
|
77
|
+
readonly JsError: "js_error";
|
|
78
|
+
};
|
|
79
|
+
export type ApexEventName = (typeof ApexEvents)[keyof typeof ApexEvents];
|
|
80
|
+
/**
|
|
81
|
+
* Apex Spec semver this SDK implements. Bumped together with
|
|
82
|
+
* `APEX_SPEC_VERSION` in `app/src/lib/core/apex-spec/events.ts`.
|
|
83
|
+
*/
|
|
84
|
+
export declare const APEX_SPEC_VERSION = "1.1.0";
|
|
85
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+Eb,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAEzE;;;GAGG;AACH,eAAO,MAAM,iBAAiB,UAAU,CAAC"}
|
package/dist/events.js
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Apex Spec — canonical event name constants for `@apex-inc/capacitor-plugin`.
|
|
4
|
+
*
|
|
5
|
+
* Hand-authored from the registry at `app/src/lib/core/apex-spec/events.ts`.
|
|
6
|
+
* Kept in sync via the parity test at
|
|
7
|
+
* `app/src/lib/core/apex-spec/__tests__/sdk-parity.test.ts` — that test fails
|
|
8
|
+
* CI if a canonical name is added/renamed/removed in the registry without a
|
|
9
|
+
* matching update here.
|
|
10
|
+
*
|
|
11
|
+
* Usage:
|
|
12
|
+
*
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { Apex, ApexEvents } from "@apex-inc/capacitor-plugin";
|
|
15
|
+
*
|
|
16
|
+
* await Apex.track({ type: ApexEvents.AddToCart, data: { product_id: "sku_123", value: 49 } });
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* Each constant is the unversioned canonical name as the developer writes it
|
|
20
|
+
* in `track()` calls. Versions are an internal storage primitive; the SDK
|
|
21
|
+
* never carries a version field.
|
|
22
|
+
*/
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.APEX_SPEC_VERSION = exports.ApexEvents = void 0;
|
|
25
|
+
exports.ApexEvents = {
|
|
26
|
+
// Commerce
|
|
27
|
+
AddToCart: "add_to_cart",
|
|
28
|
+
RemoveFromCart: "remove_from_cart",
|
|
29
|
+
ProductView: "product_view",
|
|
30
|
+
AddToWishlist: "add_to_wishlist",
|
|
31
|
+
CheckoutStarted: "checkout_started",
|
|
32
|
+
InAppPurchase: "in_app_purchase",
|
|
33
|
+
PurchaseRefunded: "purchase_refunded",
|
|
34
|
+
SubscriptionEvent: "subscription_event",
|
|
35
|
+
OrderPlaced: "order_placed",
|
|
36
|
+
FirstSaleCompleted: "first_sale_completed",
|
|
37
|
+
// Marketing (merchant-fired triggers)
|
|
38
|
+
PriceDropped: "price_dropped",
|
|
39
|
+
RestockDue: "restock_due",
|
|
40
|
+
ReviewRequestDue: "review_request_due",
|
|
41
|
+
// Identity
|
|
42
|
+
UserSignedUp: "user_signed_up",
|
|
43
|
+
UserSignedIn: "user_signed_in",
|
|
44
|
+
UserSignedOut: "user_signed_out",
|
|
45
|
+
UserIdentified: "user_identified",
|
|
46
|
+
// Lifecycle
|
|
47
|
+
AppInstall: "app_install",
|
|
48
|
+
AppOpen: "app_open",
|
|
49
|
+
AppBackground: "app_background",
|
|
50
|
+
AppUninstall: "app_uninstall",
|
|
51
|
+
AppReinstall: "app_reinstall",
|
|
52
|
+
// Session
|
|
53
|
+
SessionStart: "session_start",
|
|
54
|
+
SessionEnd: "session_end",
|
|
55
|
+
// Engagement
|
|
56
|
+
PageView: "page_view",
|
|
57
|
+
Pageview: "pageview",
|
|
58
|
+
ScreenView: "screen_view",
|
|
59
|
+
Search: "search",
|
|
60
|
+
Share: "share",
|
|
61
|
+
ContentView: "content_view",
|
|
62
|
+
FormSubmit: "form_submit",
|
|
63
|
+
Click: "click",
|
|
64
|
+
Engagement: "engagement",
|
|
65
|
+
Heartbeat: "heartbeat",
|
|
66
|
+
RageClick: "rage_click",
|
|
67
|
+
DeadClick: "dead_click",
|
|
68
|
+
GoalConversion: "goal_conversion",
|
|
69
|
+
OnboardingStepCompleted: "onboarding_step_completed",
|
|
70
|
+
// Product (PLG lifecycle outcomes)
|
|
71
|
+
OnboardingCompleted: "onboarding_completed",
|
|
72
|
+
Activated: "activated",
|
|
73
|
+
// Communication
|
|
74
|
+
PushReceived: "push_received",
|
|
75
|
+
PushOpened: "push_opened",
|
|
76
|
+
EmailOpened: "email_opened",
|
|
77
|
+
EmailClicked: "email_clicked",
|
|
78
|
+
InAppMessageSeen: "in_app_message_seen",
|
|
79
|
+
InAppMessageClicked: "in_app_message_clicked",
|
|
80
|
+
// Deep link
|
|
81
|
+
DeepLinkOpen: "deep_link_open",
|
|
82
|
+
// Attribution
|
|
83
|
+
Reattribution: "reattribution",
|
|
84
|
+
Reengagement: "reengagement",
|
|
85
|
+
// Smart banner
|
|
86
|
+
SmartBannerImpression: "smart_banner_impression",
|
|
87
|
+
SmartBannerClick: "smart_banner_click",
|
|
88
|
+
SmartBannerDismiss: "smart_banner_dismiss",
|
|
89
|
+
// System
|
|
90
|
+
Custom: "custom",
|
|
91
|
+
LifecycleTransition: "lifecycle_transition",
|
|
92
|
+
JsError: "js_error",
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Apex Spec semver this SDK implements. Bumped together with
|
|
96
|
+
* `APEX_SPEC_VERSION` in `app/src/lib/core/apex-spec/events.ts`.
|
|
97
|
+
*/
|
|
98
|
+
exports.APEX_SPEC_VERSION = "1.1.0";
|
|
99
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;AAEU,QAAA,UAAU,GAAG;IACxB,WAAW;IACX,SAAS,EAAE,aAAa;IACxB,cAAc,EAAE,kBAAkB;IAClC,WAAW,EAAE,cAAc;IAC3B,aAAa,EAAE,iBAAiB;IAChC,eAAe,EAAE,kBAAkB;IACnC,aAAa,EAAE,iBAAiB;IAChC,gBAAgB,EAAE,mBAAmB;IACrC,iBAAiB,EAAE,oBAAoB;IACvC,WAAW,EAAE,cAAc;IAC3B,kBAAkB,EAAE,sBAAsB;IAE1C,sCAAsC;IACtC,YAAY,EAAE,eAAe;IAC7B,UAAU,EAAE,aAAa;IACzB,gBAAgB,EAAE,oBAAoB;IAEtC,WAAW;IACX,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;IAC9B,aAAa,EAAE,iBAAiB;IAChC,cAAc,EAAE,iBAAiB;IAEjC,YAAY;IACZ,UAAU,EAAE,aAAa;IACzB,OAAO,EAAE,UAAU;IACnB,aAAa,EAAE,gBAAgB;IAC/B,YAAY,EAAE,eAAe;IAC7B,YAAY,EAAE,eAAe;IAE7B,UAAU;IACV,YAAY,EAAE,eAAe;IAC7B,UAAU,EAAE,aAAa;IAEzB,aAAa;IACb,QAAQ,EAAE,WAAW;IACrB,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,aAAa;IACzB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,cAAc;IAC3B,UAAU,EAAE,aAAa;IACzB,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,YAAY;IACxB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;IACvB,cAAc,EAAE,iBAAiB;IACjC,uBAAuB,EAAE,2BAA2B;IAEpD,mCAAmC;IACnC,mBAAmB,EAAE,sBAAsB;IAC3C,SAAS,EAAE,WAAW;IAEtB,gBAAgB;IAChB,YAAY,EAAE,eAAe;IAC7B,UAAU,EAAE,aAAa;IACzB,WAAW,EAAE,cAAc;IAC3B,YAAY,EAAE,eAAe;IAC7B,gBAAgB,EAAE,qBAAqB;IACvC,mBAAmB,EAAE,wBAAwB;IAE7C,YAAY;IACZ,YAAY,EAAE,gBAAgB;IAE9B,cAAc;IACd,aAAa,EAAE,eAAe;IAC9B,YAAY,EAAE,cAAc;IAE5B,eAAe;IACf,qBAAqB,EAAE,yBAAyB;IAChD,gBAAgB,EAAE,oBAAoB;IACtC,kBAAkB,EAAE,sBAAsB;IAE1C,SAAS;IACT,MAAM,EAAE,QAAQ;IAChB,mBAAmB,EAAE,sBAAsB;IAC3C,OAAO,EAAE,UAAU;CACX,CAAC;AAIX;;;GAGG;AACU,QAAA,iBAAiB,GAAG,OAAO,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,11 +12,6 @@
|
|
|
12
12
|
* ```
|
|
13
13
|
*/
|
|
14
14
|
import type { ApexCapacitorPlugin } from "./definitions";
|
|
15
|
-
/**
|
|
16
|
-
* Capacitor plugin proxy. In a native app, calls route through the bridge to
|
|
17
|
-
* the iOS (Swift) or Android (Kotlin) implementation. In a web context
|
|
18
|
-
* (browser or Capacitor PWA), the web fallback in `./web.ts` takes over.
|
|
19
|
-
*/
|
|
20
15
|
export declare const Apex: ApexCapacitorPlugin;
|
|
21
16
|
export * from "./definitions";
|
|
22
17
|
export { OfflineQueue, InMemoryStorage, IndexedDBStorage } from "./offline-queue";
|
|
@@ -26,4 +21,8 @@ export type { SessionManagerOptions, SessionSnapshot } from "./session-manager";
|
|
|
26
21
|
export { BatchSender } from "./batch-sender";
|
|
27
22
|
export type { BatchSenderOptions, FlushResult as BatchFlushResult } from "./batch-sender";
|
|
28
23
|
export { generateEventId, isValidEventId } from "./event-id";
|
|
24
|
+
export { ApexEvents, APEX_SPEC_VERSION } from "./events";
|
|
25
|
+
export type { ApexEventName } from "./events";
|
|
26
|
+
export { trackCartAdd, trackCartRemove, trackCartSnapshot, trackCheckoutCompleted, type CartLine, } from "./cart-helpers";
|
|
27
|
+
export { trackScreenView } from "./screen-view";
|
|
29
28
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAgBzD,eAAO,MAAM,IAAI,EAAE,mBAQlB,CAAC;AAGF,cAAc,eAAe,CAAC;AAG9B,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAClF,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,kBAAkB,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG7D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAK9C,OAAO,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,QAAQ,GACd,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -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
|
|
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"}
|
package/dist/offline-queue.d.ts
CHANGED
|
@@ -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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"}
|
package/dist/offline-queue.js
CHANGED
|
@@ -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();
|