@apex-inc/capacitor-plugin 2.2.0 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -0
- package/dist/auto-screen-views.d.ts +53 -0
- package/dist/auto-screen-views.d.ts.map +1 -0
- package/dist/auto-screen-views.js +84 -0
- package/dist/auto-screen-views.js.map +1 -0
- package/dist/batch-sender.d.ts +27 -0
- package/dist/batch-sender.d.ts.map +1 -1
- package/dist/batch-sender.js +40 -2
- package/dist/batch-sender.js.map +1 -1
- package/dist/definitions.d.ts +8 -0
- package/dist/definitions.d.ts.map +1 -1
- package/dist/esm/auto-screen-views.d.ts +53 -0
- package/dist/esm/auto-screen-views.d.ts.map +1 -0
- package/dist/esm/auto-screen-views.js +81 -0
- package/dist/esm/auto-screen-views.js.map +1 -0
- package/dist/esm/batch-sender.d.ts +27 -0
- package/dist/esm/batch-sender.d.ts.map +1 -1
- package/dist/esm/batch-sender.js +40 -2
- package/dist/esm/batch-sender.js.map +1 -1
- package/dist/esm/definitions.d.ts +8 -0
- package/dist/esm/definitions.d.ts.map +1 -1
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +34 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/offline-queue.d.ts +13 -0
- package/dist/esm/offline-queue.d.ts.map +1 -1
- package/dist/esm/offline-queue.js +87 -54
- package/dist/esm/offline-queue.js.map +1 -1
- package/dist/esm/screen-view.d.ts +6 -5
- package/dist/esm/screen-view.d.ts.map +1 -1
- package/dist/esm/screen-view.js +6 -5
- package/dist/esm/screen-view.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -2
- package/dist/index.js.map +1 -1
- package/dist/offline-queue.d.ts +13 -0
- package/dist/offline-queue.d.ts.map +1 -1
- package/dist/offline-queue.js +87 -54
- package/dist/offline-queue.js.map +1 -1
- package/dist/screen-view.d.ts +6 -5
- package/dist/screen-view.d.ts.map +1 -1
- package/dist/screen-view.js +6 -5
- package/dist/screen-view.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -25,7 +25,9 @@ import { Apex } from "@apex-inc/capacitor-plugin";
|
|
|
25
25
|
await Apex.initialize({
|
|
26
26
|
workspaceKey: "prj_your_key",
|
|
27
27
|
// Optional:
|
|
28
|
+
// apiKey: "apex_sk_…", // see "API keys" below — unlocks verified identity stitching
|
|
28
29
|
// apiUrl: "https://app.apex.inc",
|
|
30
|
+
// autoTrackScreenViews: true, // default — screen_view auto-fires from SPA navigation
|
|
29
31
|
// sessionTimeoutMinutes: 30,
|
|
30
32
|
// offlineQueueMaxSize: 1000,
|
|
31
33
|
// testMode: false,
|
|
@@ -33,6 +35,26 @@ await Apex.initialize({
|
|
|
33
35
|
});
|
|
34
36
|
```
|
|
35
37
|
|
|
38
|
+
`app_open` auto-fires on `initialize()`. `screen_view` auto-fires from
|
|
39
|
+
the webview's History API (pushState / replaceState / back-forward /
|
|
40
|
+
hashchange — covers Ionic, React Router, Vue Router, and plain SPA
|
|
41
|
+
routing, on device and in browser preview). Screen names default to the
|
|
42
|
+
URL path (`/product/42`); for richer names, set
|
|
43
|
+
`autoTrackScreenViews: false` and wire `trackScreenView("Product Detail")`
|
|
44
|
+
into your router instead.
|
|
45
|
+
|
|
46
|
+
### API keys
|
|
47
|
+
|
|
48
|
+
`identify()` and server-trusted flows work best with a workspace SDK key
|
|
49
|
+
(`apex_sk_…`). Mint one in the Apex dashboard under **Settings →
|
|
50
|
+
Workspace → AI agents & API keys**, and pass it as `apiKey` in
|
|
51
|
+
`initialize()`. Without a key, identity stitches from untrusted contexts
|
|
52
|
+
may be quarantined (held un-verified) rather than applied — events still
|
|
53
|
+
flow, but traits and journey triggers wait until a verified stitch.
|
|
54
|
+
Treat the value like a publishable key: assume it can be extracted from
|
|
55
|
+
the app bundle; Apex rate-limits per key + per visitor to keep leaked
|
|
56
|
+
keys low-yield.
|
|
57
|
+
|
|
36
58
|
## Track events
|
|
37
59
|
|
|
38
60
|
```ts
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* F7 (2026-06-11 post-mortem) — automatic `screen_view` tracking.
|
|
3
|
+
*
|
|
4
|
+
* The install copy long promised "screen_view fires automatically" while
|
|
5
|
+
* the SDK shipped only a manual `trackScreenView` helper the adopter had
|
|
6
|
+
* to wire into their router. This module makes the promise true for
|
|
7
|
+
* every Capacitor app whose navigation runs through the webview's
|
|
8
|
+
* History API (Ionic, React Router, Vue Router, plain SPA routing —
|
|
9
|
+
* i.e. effectively all Capacitor apps, on device and in browser
|
|
10
|
+
* preview alike, since routing happens in JS either way).
|
|
11
|
+
*
|
|
12
|
+
* Mechanics: patch `history.pushState` / `history.replaceState` and
|
|
13
|
+
* listen for `popstate` + `hashchange`. Each navigation derives a
|
|
14
|
+
* `screen_name` from the path (+hash), dedupes consecutive repeats,
|
|
15
|
+
* and emits the spec-canonical payload (`screen_name` /
|
|
16
|
+
* `previous_screen`) through the provided `track` function — which is
|
|
17
|
+
* the plugin proxy's own `track`, so the offline queue, batch sender,
|
|
18
|
+
* and native bridge paths all stay unchanged.
|
|
19
|
+
*
|
|
20
|
+
* Manual `trackScreenView` remains for apps that want richer names
|
|
21
|
+
* than the URL path (and wins: a manual call for the same screen is
|
|
22
|
+
* just another track; the server's catalog keys by event name).
|
|
23
|
+
*/
|
|
24
|
+
export interface AutoScreenViewEvent {
|
|
25
|
+
type: "screen_view";
|
|
26
|
+
data: {
|
|
27
|
+
screen_name: string;
|
|
28
|
+
previous_screen?: string;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export interface AutoScreenViewOptions {
|
|
32
|
+
/**
|
|
33
|
+
* Sink for derived events — normally the plugin's `track`. Errors are
|
|
34
|
+
* the sink's job to swallow; this module fires and forgets.
|
|
35
|
+
*/
|
|
36
|
+
track: (event: AutoScreenViewEvent) => void;
|
|
37
|
+
/**
|
|
38
|
+
* Derive a screen name from the current location. Default:
|
|
39
|
+
* `pathname` plus `#hash` when present (`/shop`, `/product/42`,
|
|
40
|
+
* `/#/settings` for hash routers), `/` for the root.
|
|
41
|
+
*/
|
|
42
|
+
screenName?: (location: Location) => string;
|
|
43
|
+
/** Fire a `screen_view` for the screen visible at enable time. Default true. */
|
|
44
|
+
trackInitial?: boolean;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Start auto-tracking. Idempotent per page: enabling again disposes the
|
|
48
|
+
* previous instance's listeners first (callers hold the disposer).
|
|
49
|
+
* Returns a disposer that unpatches history and removes listeners.
|
|
50
|
+
* No-ops (returns a no-op disposer) outside a browser-like runtime.
|
|
51
|
+
*/
|
|
52
|
+
export declare function enableAutoScreenViews(options: AutoScreenViewOptions): () => void;
|
|
53
|
+
//# sourceMappingURL=auto-screen-views.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-screen-views.d.ts","sourceRoot":"","sources":["../src/auto-screen-views.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD;AAED,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC5C;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,MAAM,CAAC;IAC5C,gFAAgF;IAChF,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAQD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,qBAAqB,GAC7B,MAAM,IAAI,CAuDZ"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* F7 (2026-06-11 post-mortem) — automatic `screen_view` tracking.
|
|
4
|
+
*
|
|
5
|
+
* The install copy long promised "screen_view fires automatically" while
|
|
6
|
+
* the SDK shipped only a manual `trackScreenView` helper the adopter had
|
|
7
|
+
* to wire into their router. This module makes the promise true for
|
|
8
|
+
* every Capacitor app whose navigation runs through the webview's
|
|
9
|
+
* History API (Ionic, React Router, Vue Router, plain SPA routing —
|
|
10
|
+
* i.e. effectively all Capacitor apps, on device and in browser
|
|
11
|
+
* preview alike, since routing happens in JS either way).
|
|
12
|
+
*
|
|
13
|
+
* Mechanics: patch `history.pushState` / `history.replaceState` and
|
|
14
|
+
* listen for `popstate` + `hashchange`. Each navigation derives a
|
|
15
|
+
* `screen_name` from the path (+hash), dedupes consecutive repeats,
|
|
16
|
+
* and emits the spec-canonical payload (`screen_name` /
|
|
17
|
+
* `previous_screen`) through the provided `track` function — which is
|
|
18
|
+
* the plugin proxy's own `track`, so the offline queue, batch sender,
|
|
19
|
+
* and native bridge paths all stay unchanged.
|
|
20
|
+
*
|
|
21
|
+
* Manual `trackScreenView` remains for apps that want richer names
|
|
22
|
+
* than the URL path (and wins: a manual call for the same screen is
|
|
23
|
+
* just another track; the server's catalog keys by event name).
|
|
24
|
+
*/
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.enableAutoScreenViews = enableAutoScreenViews;
|
|
27
|
+
function defaultScreenName(location) {
|
|
28
|
+
const path = location.pathname || "/";
|
|
29
|
+
const hash = location.hash && location.hash !== "#" ? location.hash : "";
|
|
30
|
+
return `${path}${hash}`;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Start auto-tracking. Idempotent per page: enabling again disposes the
|
|
34
|
+
* previous instance's listeners first (callers hold the disposer).
|
|
35
|
+
* Returns a disposer that unpatches history and removes listeners.
|
|
36
|
+
* No-ops (returns a no-op disposer) outside a browser-like runtime.
|
|
37
|
+
*/
|
|
38
|
+
function enableAutoScreenViews(options) {
|
|
39
|
+
if (typeof window === "undefined" ||
|
|
40
|
+
typeof history === "undefined" ||
|
|
41
|
+
typeof location === "undefined") {
|
|
42
|
+
return () => undefined;
|
|
43
|
+
}
|
|
44
|
+
const nameFor = options.screenName ?? defaultScreenName;
|
|
45
|
+
let currentScreen = null;
|
|
46
|
+
const emit = () => {
|
|
47
|
+
const next = nameFor(window.location);
|
|
48
|
+
if (!next || next === currentScreen)
|
|
49
|
+
return; // dedupe consecutive repeats
|
|
50
|
+
const previous = currentScreen;
|
|
51
|
+
currentScreen = next;
|
|
52
|
+
options.track({
|
|
53
|
+
type: "screen_view",
|
|
54
|
+
data: {
|
|
55
|
+
screen_name: next,
|
|
56
|
+
...(previous ? { previous_screen: previous } : {}),
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
// Patch pushState/replaceState — SPA routers navigate through these
|
|
61
|
+
// and they fire no DOM event of their own.
|
|
62
|
+
const originalPushState = history.pushState.bind(history);
|
|
63
|
+
const originalReplaceState = history.replaceState.bind(history);
|
|
64
|
+
history.pushState = function pushState(...args) {
|
|
65
|
+
originalPushState(...args);
|
|
66
|
+
emit();
|
|
67
|
+
};
|
|
68
|
+
history.replaceState = function replaceState(...args) {
|
|
69
|
+
originalReplaceState(...args);
|
|
70
|
+
emit();
|
|
71
|
+
};
|
|
72
|
+
const onPop = () => emit();
|
|
73
|
+
window.addEventListener("popstate", onPop);
|
|
74
|
+
window.addEventListener("hashchange", onPop);
|
|
75
|
+
if (options.trackInitial !== false)
|
|
76
|
+
emit();
|
|
77
|
+
return () => {
|
|
78
|
+
history.pushState = originalPushState;
|
|
79
|
+
history.replaceState = originalReplaceState;
|
|
80
|
+
window.removeEventListener("popstate", onPop);
|
|
81
|
+
window.removeEventListener("hashchange", onPop);
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=auto-screen-views.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-screen-views.js","sourceRoot":"","sources":["../src/auto-screen-views.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;;AAmCH,sDAyDC;AArED,SAAS,iBAAiB,CAAC,QAAkB;IAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,IAAI,GAAG,CAAC;IACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,OAAO,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CACnC,OAA8B;IAE9B,IACE,OAAO,MAAM,KAAK,WAAW;QAC7B,OAAO,OAAO,KAAK,WAAW;QAC9B,OAAO,QAAQ,KAAK,WAAW,EAC/B,CAAC;QACD,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;IACzB,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,IAAI,iBAAiB,CAAC;IACxD,IAAI,aAAa,GAAkB,IAAI,CAAC;IAExC,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,aAAa;YAAE,OAAO,CAAC,6BAA6B;QAC1E,MAAM,QAAQ,GAAG,aAAa,CAAC;QAC/B,aAAa,GAAG,IAAI,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC;YACZ,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE;gBACJ,WAAW,EAAE,IAAI;gBACjB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnD;SACF,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,oEAAoE;IACpE,2CAA2C;IAC3C,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,oBAAoB,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChE,OAAO,CAAC,SAAS,GAAG,SAAS,SAAS,CACpC,GAAG,IAAsC;QAEzC,iBAAiB,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3B,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;IACF,OAAO,CAAC,YAAY,GAAG,SAAS,YAAY,CAC1C,GAAG,IAAyC;QAE5C,oBAAoB,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9B,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAC3B,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAE7C,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK;QAAE,IAAI,EAAE,CAAC;IAE3C,OAAO,GAAG,EAAE;QACV,OAAO,CAAC,SAAS,GAAG,iBAAiB,CAAC;QACtC,OAAO,CAAC,YAAY,GAAG,oBAAoB,CAAC;QAC5C,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC9C,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/batch-sender.d.ts
CHANGED
|
@@ -36,12 +36,31 @@ export interface BatchSenderOptions {
|
|
|
36
36
|
platformHeader?: "ios" | "android" | "web";
|
|
37
37
|
/** Enable verbose logs. */
|
|
38
38
|
debug?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* F4 (2026-06-11 post-mortem) — called when the server accepted the
|
|
41
|
+
* batch but dropped events (`untracked` in the /api/events response):
|
|
42
|
+
* the sent-vs-tracked gap surfaces at the call site instead of being
|
|
43
|
+
* a dashboard mystery. Also debug-logged when `debug` is on.
|
|
44
|
+
*/
|
|
45
|
+
onUntracked?: (items: UntrackedItem[]) => void;
|
|
46
|
+
}
|
|
47
|
+
/** One server-side drop from the /api/events response. */
|
|
48
|
+
export interface UntrackedItem {
|
|
49
|
+
type: string;
|
|
50
|
+
reason: string;
|
|
39
51
|
}
|
|
40
52
|
export interface FlushResult {
|
|
41
53
|
flushed: number;
|
|
42
54
|
remaining: number;
|
|
43
55
|
attemptedBatches: number;
|
|
44
56
|
lastError?: string;
|
|
57
|
+
/**
|
|
58
|
+
* F4 — events the server received but did not track this flush, with
|
|
59
|
+
* the server's reason for each (capped at 25 by the API). Empty =
|
|
60
|
+
* everything that arrived was tracked; if you sent more than
|
|
61
|
+
* `flushed`, the loss was client-side before the network.
|
|
62
|
+
*/
|
|
63
|
+
untracked: UntrackedItem[];
|
|
45
64
|
}
|
|
46
65
|
export declare class BatchSender {
|
|
47
66
|
private readonly apiUrl;
|
|
@@ -56,6 +75,7 @@ export declare class BatchSender {
|
|
|
56
75
|
private readonly sleepFn;
|
|
57
76
|
private readonly platformHeader?;
|
|
58
77
|
private readonly debug;
|
|
78
|
+
private readonly onUntracked?;
|
|
59
79
|
constructor(options: BatchSenderOptions);
|
|
60
80
|
/**
|
|
61
81
|
* Flushes as many events from the queue as possible, one batch at a time,
|
|
@@ -69,6 +89,13 @@ export declare class BatchSender {
|
|
|
69
89
|
*/
|
|
70
90
|
flush(queue: OfflineQueue): Promise<FlushResult>;
|
|
71
91
|
private sendBatchWithRetry;
|
|
92
|
+
/**
|
|
93
|
+
* F4 — read the server's per-event drop reasons from an accepted
|
|
94
|
+
* batch. The /api/events response always carries `untracked` (empty
|
|
95
|
+
* = nothing dropped server-side). Best-effort: a body that won't
|
|
96
|
+
* parse never fails a successful send.
|
|
97
|
+
*/
|
|
98
|
+
private readUntracked;
|
|
72
99
|
private postBatch;
|
|
73
100
|
}
|
|
74
101
|
//# sourceMappingURL=batch-sender.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-sender.d.ts","sourceRoot":"","sources":["../src/batch-sender.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,iBAAiB,CAAC;AAEjE,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,sDAAsD;IACtD,cAAc,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC;IAC3C,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"batch-sender.d.ts","sourceRoot":"","sources":["../src/batch-sender.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,iBAAiB,CAAC;AAEjE,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,sDAAsD;IACtD,cAAc,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC;IAC3C,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;CAChD;AAED,0DAA0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,SAAS,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IAEjC,kFAAkF;IAClF,SAAS,IAAI,MAAM;IAInB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAA4B;IAC5D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAmC;gBAEpD,OAAO,EAAE,kBAAkB;IAmBvC;;;;;;;;;OASG;IACG,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;YAgDxC,kBAAkB;IA4ChC;;;;;OAKG;YACW,aAAa;YA4Bb,SAAS;CA2BxB"}
|
package/dist/batch-sender.js
CHANGED
|
@@ -30,6 +30,7 @@ class BatchSender {
|
|
|
30
30
|
options.sleepFn ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
|
|
31
31
|
this.platformHeader = options.platformHeader;
|
|
32
32
|
this.debug = options.debug ?? false;
|
|
33
|
+
this.onUntracked = options.onUntracked;
|
|
33
34
|
if (!this.fetchFn) {
|
|
34
35
|
throw new Error("BatchSender: fetch is not available. Provide options.fetchFn.");
|
|
35
36
|
}
|
|
@@ -48,6 +49,7 @@ class BatchSender {
|
|
|
48
49
|
let flushed = 0;
|
|
49
50
|
let attemptedBatches = 0;
|
|
50
51
|
let lastError;
|
|
52
|
+
const untracked = [];
|
|
51
53
|
try {
|
|
52
54
|
const evicted = await queue.evictStale({
|
|
53
55
|
maxAttempts: 20,
|
|
@@ -70,6 +72,8 @@ class BatchSender {
|
|
|
70
72
|
const eventIds = batch.map((q) => q.event.id).filter((id) => !!id);
|
|
71
73
|
await queue.markSent(eventIds);
|
|
72
74
|
flushed += batch.length;
|
|
75
|
+
if (outcome.untracked.length > 0)
|
|
76
|
+
untracked.push(...outcome.untracked);
|
|
73
77
|
}
|
|
74
78
|
else if (outcome.status === "retryable_exhausted") {
|
|
75
79
|
const eventIds = batch.map((q) => q.event.id).filter((id) => !!id);
|
|
@@ -84,7 +88,7 @@ class BatchSender {
|
|
|
84
88
|
}
|
|
85
89
|
}
|
|
86
90
|
const remaining = await queue.size();
|
|
87
|
-
return { flushed, remaining, attemptedBatches, lastError };
|
|
91
|
+
return { flushed, remaining, attemptedBatches, lastError, untracked };
|
|
88
92
|
}
|
|
89
93
|
async sendBatchWithRetry(batch) {
|
|
90
94
|
let lastError = "unknown";
|
|
@@ -92,7 +96,10 @@ class BatchSender {
|
|
|
92
96
|
try {
|
|
93
97
|
const response = await this.postBatch(batch);
|
|
94
98
|
if (response.ok) {
|
|
95
|
-
return {
|
|
99
|
+
return {
|
|
100
|
+
status: "success",
|
|
101
|
+
untracked: await this.readUntracked(response),
|
|
102
|
+
};
|
|
96
103
|
}
|
|
97
104
|
// Non-retryable client errors — leave events, surface to caller.
|
|
98
105
|
if (response.status >= 400 && response.status < 500) {
|
|
@@ -114,6 +121,37 @@ class BatchSender {
|
|
|
114
121
|
}
|
|
115
122
|
return { status: "retryable_exhausted", error: lastError };
|
|
116
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* F4 — read the server's per-event drop reasons from an accepted
|
|
126
|
+
* batch. The /api/events response always carries `untracked` (empty
|
|
127
|
+
* = nothing dropped server-side). Best-effort: a body that won't
|
|
128
|
+
* parse never fails a successful send.
|
|
129
|
+
*/
|
|
130
|
+
async readUntracked(response) {
|
|
131
|
+
try {
|
|
132
|
+
const body = (await response.json());
|
|
133
|
+
const items = (body.untracked ?? [])
|
|
134
|
+
.filter((u) => u && (u.type || u.reason))
|
|
135
|
+
.map((u) => ({ type: String(u.type ?? "unknown"), reason: String(u.reason ?? "unknown") }));
|
|
136
|
+
if (items.length > 0) {
|
|
137
|
+
if (this.debug) {
|
|
138
|
+
for (const u of items) {
|
|
139
|
+
console.warn(`[apex-capacitor] server did not track "${u.type}": ${u.reason}`);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
try {
|
|
143
|
+
this.onUntracked?.(items);
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
/* listener errors never fail a send */
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return items;
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
return [];
|
|
153
|
+
}
|
|
154
|
+
}
|
|
117
155
|
async postBatch(batch) {
|
|
118
156
|
const body = {
|
|
119
157
|
workspaceKey: this.workspaceKey,
|
package/dist/batch-sender.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-sender.js","sourceRoot":"","sources":["../src/batch-sender.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;
|
|
1
|
+
{"version":3,"file":"batch-sender.js","sourceRoot":"","sources":["../src/batch-sender.ts"],"names":[],"mappings":"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"}
|
package/dist/definitions.d.ts
CHANGED
|
@@ -182,6 +182,14 @@ export interface InitializeOptions {
|
|
|
182
182
|
* rate-limits per key + per visitor to make leaked keys low-yield.
|
|
183
183
|
*/
|
|
184
184
|
apiKey?: string;
|
|
185
|
+
/**
|
|
186
|
+
* F7 — auto-fire `screen_view` from the webview's History API
|
|
187
|
+
* (pushState/replaceState/popstate/hashchange). Covers Ionic, React
|
|
188
|
+
* Router, Vue Router, and plain SPA routing on device and in browser
|
|
189
|
+
* preview. Default true. Set false to wire `trackScreenView`
|
|
190
|
+
* manually (e.g. for custom screen names richer than the URL path).
|
|
191
|
+
*/
|
|
192
|
+
autoTrackScreenViews?: boolean;
|
|
185
193
|
/** Tag subsequent events as test mode (excluded from production analytics). */
|
|
186
194
|
testMode?: boolean;
|
|
187
195
|
/** Session timeout in minutes. Default 30. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../src/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,0DAA0D;AAC1D,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,YAAY,GAAG,gBAAgB,CAAC;AAElF,qFAAqF;AACrF,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEpE,0EAA0E;AAC1E,MAAM,WAAW,sBAAsB;IACrC,oDAAoD;IACpD,UAAU,EAAE,oBAAoB,CAAC;IACjC;;;;;OAKG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,oCAAoC;AACpC,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,cAAc,GACtB,aAAa,GACb,YAAY,GACZ,WAAW,GACX,eAAe,GACf,iBAAiB,GACjB,YAAY,GACZ,SAAS,CAAC;AAEd,iDAAiD;AACjD,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;AAEpE,8EAA8E;AAC9E,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;AAEjE,wCAAwC;AACxC,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAExD;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,EAAE,mBAAmB,GAAG,YAAY,GAAG,gBAAgB,GAAG,aAAa,GAAG,eAAe,GAAG,QAAQ,CAAC;IAChH;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,gDAAgD;IAChD,YAAY,CAAC,EAAE;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EACF,SAAS,GACT,SAAS,GACT,WAAW,GACX,SAAS,GACT,cAAc,GACd,QAAQ,GACR,SAAS,GACT,eAAe,GACf,iBAAiB,GACjB,eAAe,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;QACxD,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,0DAA0D;AAC1D,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,yEAAyE;IACzE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qDAAqD;IACrD,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;;;;;;;;;;;;OAeG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,oEAAoE;AACpE,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,kEAAkE;IAClE,QAAQ,EAAE,qBAAqB,CAAC;CACjC;AAED,6EAA6E;AAC7E,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,4DAA4D;IAC5D,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAED,sCAAsC;AACtC,MAAM,WAAW,WAAW;IAC1B,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,yDAAyD;AACzD,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,+BAA+B;AAC/B,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,uBAAuB;IACtC,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,gFAAgF;IAChF,QAAQ,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,MAAM,CAAC,EAAE,gBAAgB,GAAG,SAAS,GAAG,kBAAkB,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,CAAC;IACvG,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAGlC;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAItD;;;OAGG;IACH,4BAA4B,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAI/D;;;;;;;;;;;;;;;OAeG;IACH,4BAA4B,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAEhE;;;OAGG;IACH,iBAAiB,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAIpD;;;;OAIG;IACH,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjD;;;OAGG;IACH,kBAAkB,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAE3D,0CAA0C;IAC1C,YAAY,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE/C,+EAA+E;IAC/E,YAAY,CAAC,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAI5D;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAIlD;;;;OAIG;IACH,qBAAqB,CAAC,OAAO,EAAE;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,eAAe,CAAC;KAC/B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAIlB;;;;OAIG;IACH,kBAAkB,IAAI,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAItD,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAIrC,0DAA0D;IAC1D,YAAY,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE/C,4CAA4C;IAC5C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,sEAAsE;IACtE,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAI1C;;;;;;;;;;;;;;;;OAgBG;IACH,UAAU,CAAC,OAAO,EAAE;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAIrC;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvC,qEAAqE;IACrE,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAErC,iFAAiF;IACjF,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAInC;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAI1D,wEAAwE;IACxE,WAAW,CACT,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,CAAC,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAC7C,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC,kEAAkE;IAClE,WAAW,CACT,SAAS,EAAE,gBAAgB,EAC3B,YAAY,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,GACnD,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC,uCAAuC;IACvC,WAAW,CACT,SAAS,EAAE,cAAc,EACzB,YAAY,EAAE,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GACnD,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC,2CAA2C;IAC3C,WAAW,CACT,SAAS,EAAE,YAAY,EACvB,YAAY,EAAE,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAC5E,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC;;;;;;OAMG;IACH,WAAW,CACT,SAAS,EAAE,mBAAmB,EAC9B,YAAY,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAA;KAAE,KAAK,IAAI,GAC5E,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC;;;;;;OAMG;IACH,WAAW,CACT,SAAS,EAAE,cAAc,EACzB,YAAY,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAC/C,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC;;;;;OAKG;IACH,WAAW,CACT,SAAS,EAAE,aAAa,EACxB,YAAY,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAC/C,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC,gEAAgE;IAChE,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC"}
|
|
1
|
+
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../src/definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* F7 (2026-06-11 post-mortem) — automatic `screen_view` tracking.
|
|
3
|
+
*
|
|
4
|
+
* The install copy long promised "screen_view fires automatically" while
|
|
5
|
+
* the SDK shipped only a manual `trackScreenView` helper the adopter had
|
|
6
|
+
* to wire into their router. This module makes the promise true for
|
|
7
|
+
* every Capacitor app whose navigation runs through the webview's
|
|
8
|
+
* History API (Ionic, React Router, Vue Router, plain SPA routing —
|
|
9
|
+
* i.e. effectively all Capacitor apps, on device and in browser
|
|
10
|
+
* preview alike, since routing happens in JS either way).
|
|
11
|
+
*
|
|
12
|
+
* Mechanics: patch `history.pushState` / `history.replaceState` and
|
|
13
|
+
* listen for `popstate` + `hashchange`. Each navigation derives a
|
|
14
|
+
* `screen_name` from the path (+hash), dedupes consecutive repeats,
|
|
15
|
+
* and emits the spec-canonical payload (`screen_name` /
|
|
16
|
+
* `previous_screen`) through the provided `track` function — which is
|
|
17
|
+
* the plugin proxy's own `track`, so the offline queue, batch sender,
|
|
18
|
+
* and native bridge paths all stay unchanged.
|
|
19
|
+
*
|
|
20
|
+
* Manual `trackScreenView` remains for apps that want richer names
|
|
21
|
+
* than the URL path (and wins: a manual call for the same screen is
|
|
22
|
+
* just another track; the server's catalog keys by event name).
|
|
23
|
+
*/
|
|
24
|
+
export interface AutoScreenViewEvent {
|
|
25
|
+
type: "screen_view";
|
|
26
|
+
data: {
|
|
27
|
+
screen_name: string;
|
|
28
|
+
previous_screen?: string;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export interface AutoScreenViewOptions {
|
|
32
|
+
/**
|
|
33
|
+
* Sink for derived events — normally the plugin's `track`. Errors are
|
|
34
|
+
* the sink's job to swallow; this module fires and forgets.
|
|
35
|
+
*/
|
|
36
|
+
track: (event: AutoScreenViewEvent) => void;
|
|
37
|
+
/**
|
|
38
|
+
* Derive a screen name from the current location. Default:
|
|
39
|
+
* `pathname` plus `#hash` when present (`/shop`, `/product/42`,
|
|
40
|
+
* `/#/settings` for hash routers), `/` for the root.
|
|
41
|
+
*/
|
|
42
|
+
screenName?: (location: Location) => string;
|
|
43
|
+
/** Fire a `screen_view` for the screen visible at enable time. Default true. */
|
|
44
|
+
trackInitial?: boolean;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Start auto-tracking. Idempotent per page: enabling again disposes the
|
|
48
|
+
* previous instance's listeners first (callers hold the disposer).
|
|
49
|
+
* Returns a disposer that unpatches history and removes listeners.
|
|
50
|
+
* No-ops (returns a no-op disposer) outside a browser-like runtime.
|
|
51
|
+
*/
|
|
52
|
+
export declare function enableAutoScreenViews(options: AutoScreenViewOptions): () => void;
|
|
53
|
+
//# sourceMappingURL=auto-screen-views.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-screen-views.d.ts","sourceRoot":"","sources":["../../src/auto-screen-views.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD;AAED,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC5C;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,MAAM,CAAC;IAC5C,gFAAgF;IAChF,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAQD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,qBAAqB,GAC7B,MAAM,IAAI,CAuDZ"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* F7 (2026-06-11 post-mortem) — automatic `screen_view` tracking.
|
|
3
|
+
*
|
|
4
|
+
* The install copy long promised "screen_view fires automatically" while
|
|
5
|
+
* the SDK shipped only a manual `trackScreenView` helper the adopter had
|
|
6
|
+
* to wire into their router. This module makes the promise true for
|
|
7
|
+
* every Capacitor app whose navigation runs through the webview's
|
|
8
|
+
* History API (Ionic, React Router, Vue Router, plain SPA routing —
|
|
9
|
+
* i.e. effectively all Capacitor apps, on device and in browser
|
|
10
|
+
* preview alike, since routing happens in JS either way).
|
|
11
|
+
*
|
|
12
|
+
* Mechanics: patch `history.pushState` / `history.replaceState` and
|
|
13
|
+
* listen for `popstate` + `hashchange`. Each navigation derives a
|
|
14
|
+
* `screen_name` from the path (+hash), dedupes consecutive repeats,
|
|
15
|
+
* and emits the spec-canonical payload (`screen_name` /
|
|
16
|
+
* `previous_screen`) through the provided `track` function — which is
|
|
17
|
+
* the plugin proxy's own `track`, so the offline queue, batch sender,
|
|
18
|
+
* and native bridge paths all stay unchanged.
|
|
19
|
+
*
|
|
20
|
+
* Manual `trackScreenView` remains for apps that want richer names
|
|
21
|
+
* than the URL path (and wins: a manual call for the same screen is
|
|
22
|
+
* just another track; the server's catalog keys by event name).
|
|
23
|
+
*/
|
|
24
|
+
function defaultScreenName(location) {
|
|
25
|
+
const path = location.pathname || "/";
|
|
26
|
+
const hash = location.hash && location.hash !== "#" ? location.hash : "";
|
|
27
|
+
return `${path}${hash}`;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Start auto-tracking. Idempotent per page: enabling again disposes the
|
|
31
|
+
* previous instance's listeners first (callers hold the disposer).
|
|
32
|
+
* Returns a disposer that unpatches history and removes listeners.
|
|
33
|
+
* No-ops (returns a no-op disposer) outside a browser-like runtime.
|
|
34
|
+
*/
|
|
35
|
+
export function enableAutoScreenViews(options) {
|
|
36
|
+
if (typeof window === "undefined" ||
|
|
37
|
+
typeof history === "undefined" ||
|
|
38
|
+
typeof location === "undefined") {
|
|
39
|
+
return () => undefined;
|
|
40
|
+
}
|
|
41
|
+
const nameFor = options.screenName ?? defaultScreenName;
|
|
42
|
+
let currentScreen = null;
|
|
43
|
+
const emit = () => {
|
|
44
|
+
const next = nameFor(window.location);
|
|
45
|
+
if (!next || next === currentScreen)
|
|
46
|
+
return; // dedupe consecutive repeats
|
|
47
|
+
const previous = currentScreen;
|
|
48
|
+
currentScreen = next;
|
|
49
|
+
options.track({
|
|
50
|
+
type: "screen_view",
|
|
51
|
+
data: {
|
|
52
|
+
screen_name: next,
|
|
53
|
+
...(previous ? { previous_screen: previous } : {}),
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
// Patch pushState/replaceState — SPA routers navigate through these
|
|
58
|
+
// and they fire no DOM event of their own.
|
|
59
|
+
const originalPushState = history.pushState.bind(history);
|
|
60
|
+
const originalReplaceState = history.replaceState.bind(history);
|
|
61
|
+
history.pushState = function pushState(...args) {
|
|
62
|
+
originalPushState(...args);
|
|
63
|
+
emit();
|
|
64
|
+
};
|
|
65
|
+
history.replaceState = function replaceState(...args) {
|
|
66
|
+
originalReplaceState(...args);
|
|
67
|
+
emit();
|
|
68
|
+
};
|
|
69
|
+
const onPop = () => emit();
|
|
70
|
+
window.addEventListener("popstate", onPop);
|
|
71
|
+
window.addEventListener("hashchange", onPop);
|
|
72
|
+
if (options.trackInitial !== false)
|
|
73
|
+
emit();
|
|
74
|
+
return () => {
|
|
75
|
+
history.pushState = originalPushState;
|
|
76
|
+
history.replaceState = originalReplaceState;
|
|
77
|
+
window.removeEventListener("popstate", onPop);
|
|
78
|
+
window.removeEventListener("hashchange", onPop);
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=auto-screen-views.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-screen-views.js","sourceRoot":"","sources":["../../src/auto-screen-views.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAuBH,SAAS,iBAAiB,CAAC,QAAkB;IAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,IAAI,GAAG,CAAC;IACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,OAAO,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAA8B;IAE9B,IACE,OAAO,MAAM,KAAK,WAAW;QAC7B,OAAO,OAAO,KAAK,WAAW;QAC9B,OAAO,QAAQ,KAAK,WAAW,EAC/B,CAAC;QACD,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;IACzB,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,IAAI,iBAAiB,CAAC;IACxD,IAAI,aAAa,GAAkB,IAAI,CAAC;IAExC,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,aAAa;YAAE,OAAO,CAAC,6BAA6B;QAC1E,MAAM,QAAQ,GAAG,aAAa,CAAC;QAC/B,aAAa,GAAG,IAAI,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC;YACZ,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE;gBACJ,WAAW,EAAE,IAAI;gBACjB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnD;SACF,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,oEAAoE;IACpE,2CAA2C;IAC3C,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,oBAAoB,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChE,OAAO,CAAC,SAAS,GAAG,SAAS,SAAS,CACpC,GAAG,IAAsC;QAEzC,iBAAiB,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3B,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;IACF,OAAO,CAAC,YAAY,GAAG,SAAS,YAAY,CAC1C,GAAG,IAAyC;QAE5C,oBAAoB,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9B,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAC3B,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAE7C,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK;QAAE,IAAI,EAAE,CAAC;IAE3C,OAAO,GAAG,EAAE;QACV,OAAO,CAAC,SAAS,GAAG,iBAAiB,CAAC;QACtC,OAAO,CAAC,YAAY,GAAG,oBAAoB,CAAC;QAC5C,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC9C,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -36,12 +36,31 @@ export interface BatchSenderOptions {
|
|
|
36
36
|
platformHeader?: "ios" | "android" | "web";
|
|
37
37
|
/** Enable verbose logs. */
|
|
38
38
|
debug?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* F4 (2026-06-11 post-mortem) — called when the server accepted the
|
|
41
|
+
* batch but dropped events (`untracked` in the /api/events response):
|
|
42
|
+
* the sent-vs-tracked gap surfaces at the call site instead of being
|
|
43
|
+
* a dashboard mystery. Also debug-logged when `debug` is on.
|
|
44
|
+
*/
|
|
45
|
+
onUntracked?: (items: UntrackedItem[]) => void;
|
|
46
|
+
}
|
|
47
|
+
/** One server-side drop from the /api/events response. */
|
|
48
|
+
export interface UntrackedItem {
|
|
49
|
+
type: string;
|
|
50
|
+
reason: string;
|
|
39
51
|
}
|
|
40
52
|
export interface FlushResult {
|
|
41
53
|
flushed: number;
|
|
42
54
|
remaining: number;
|
|
43
55
|
attemptedBatches: number;
|
|
44
56
|
lastError?: string;
|
|
57
|
+
/**
|
|
58
|
+
* F4 — events the server received but did not track this flush, with
|
|
59
|
+
* the server's reason for each (capped at 25 by the API). Empty =
|
|
60
|
+
* everything that arrived was tracked; if you sent more than
|
|
61
|
+
* `flushed`, the loss was client-side before the network.
|
|
62
|
+
*/
|
|
63
|
+
untracked: UntrackedItem[];
|
|
45
64
|
}
|
|
46
65
|
export declare class BatchSender {
|
|
47
66
|
private readonly apiUrl;
|
|
@@ -56,6 +75,7 @@ export declare class BatchSender {
|
|
|
56
75
|
private readonly sleepFn;
|
|
57
76
|
private readonly platformHeader?;
|
|
58
77
|
private readonly debug;
|
|
78
|
+
private readonly onUntracked?;
|
|
59
79
|
constructor(options: BatchSenderOptions);
|
|
60
80
|
/**
|
|
61
81
|
* Flushes as many events from the queue as possible, one batch at a time,
|
|
@@ -69,6 +89,13 @@ export declare class BatchSender {
|
|
|
69
89
|
*/
|
|
70
90
|
flush(queue: OfflineQueue): Promise<FlushResult>;
|
|
71
91
|
private sendBatchWithRetry;
|
|
92
|
+
/**
|
|
93
|
+
* F4 — read the server's per-event drop reasons from an accepted
|
|
94
|
+
* batch. The /api/events response always carries `untracked` (empty
|
|
95
|
+
* = nothing dropped server-side). Best-effort: a body that won't
|
|
96
|
+
* parse never fails a successful send.
|
|
97
|
+
*/
|
|
98
|
+
private readUntracked;
|
|
72
99
|
private postBatch;
|
|
73
100
|
}
|
|
74
101
|
//# sourceMappingURL=batch-sender.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-sender.d.ts","sourceRoot":"","sources":["../../src/batch-sender.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,iBAAiB,CAAC;AAEjE,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,sDAAsD;IACtD,cAAc,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC;IAC3C,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"batch-sender.d.ts","sourceRoot":"","sources":["../../src/batch-sender.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,iBAAiB,CAAC;AAEjE,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,sDAAsD;IACtD,cAAc,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC;IAC3C,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;CAChD;AAED,0DAA0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,SAAS,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IAEjC,kFAAkF;IAClF,SAAS,IAAI,MAAM;IAInB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAA4B;IAC5D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAmC;gBAEpD,OAAO,EAAE,kBAAkB;IAmBvC;;;;;;;;;OASG;IACG,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;YAgDxC,kBAAkB;IA4ChC;;;;;OAKG;YACW,aAAa;YA4Bb,SAAS;CA2BxB"}
|