@nexly/core 0.17.0 → 1.0.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/dist/collect.d.ts +10 -0
- package/dist/collect.d.ts.map +1 -1
- package/dist/collect.js +3 -0
- package/dist/nexly-base.d.ts +9 -0
- package/dist/nexly-base.d.ts.map +1 -1
- package/dist/nexly-base.js +9 -2
- package/package.json +1 -1
package/dist/collect.d.ts
CHANGED
|
@@ -15,6 +15,8 @@ export type CollectCredentials = {
|
|
|
15
15
|
collectUrl: string;
|
|
16
16
|
/** Which SDK identity to report (see {@link TrackEventInput.client}). Optional. */
|
|
17
17
|
client?: NexlyClient;
|
|
18
|
+
/** Mirror of {@link TrackEventInput.privacyMode}; forwarded on the wire. */
|
|
19
|
+
privacyMode?: boolean;
|
|
18
20
|
} & IngestCredentials;
|
|
19
21
|
/**
|
|
20
22
|
* Top-level scalar payload used by the `cdata` slot. The contract is
|
|
@@ -99,6 +101,14 @@ export type TrackEventInput = {
|
|
|
99
101
|
* rejects any value outside the enum.
|
|
100
102
|
*/
|
|
101
103
|
client?: NexlyClient;
|
|
104
|
+
/**
|
|
105
|
+
* When true the SDK did not read or write any device-storage identifier
|
|
106
|
+
* for this event. Emitted as top-level `privacy_mode: true` on the wire so
|
|
107
|
+
* the collector may derive a short-lived server-side visit fingerprint when
|
|
108
|
+
* `context.visitor_id` / `context.session_id` are absent. Never set for
|
|
109
|
+
* SDKs that simply omit IDs by design (e.g. server runtimes).
|
|
110
|
+
*/
|
|
111
|
+
privacyMode?: boolean;
|
|
102
112
|
context?: Record<string, unknown>;
|
|
103
113
|
data?: Record<string, unknown>;
|
|
104
114
|
cdata?: CData;
|
package/dist/collect.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collect.d.ts","sourceRoot":"","sources":["../src/collect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,iDAAiD;AACjD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,+DAA+D;AAC/D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,mFAAmF;IACnF,MAAM,CAAC,EAAE,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"collect.d.ts","sourceRoot":"","sources":["../src/collect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,iDAAiD;AACjD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,+DAA+D;AAC/D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,mFAAmF;IACnF,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,GAAG,iBAAiB,CAAA;AAErB;;;;;;;;GAQG;AACH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;AAE7D;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,yBAAyB,iMAgB5B,CAAA;AAEV,0DAA0D;AAC1D,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAA;AAI/E;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,sBAAsB,CAEnF;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,iBAAiB,CAAA;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACzC,CAAA;AAMD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA+BnF"}
|
package/dist/collect.js
CHANGED
package/dist/nexly-base.d.ts
CHANGED
|
@@ -7,6 +7,14 @@ export type NexlyInit = {
|
|
|
7
7
|
collectUrl?: string;
|
|
8
8
|
appId: string;
|
|
9
9
|
key: string;
|
|
10
|
+
/**
|
|
11
|
+
* Privacy mode: the SDK never reads or writes device storage
|
|
12
|
+
* (`localStorage` / `AsyncStorage`) for its visitor / session identifiers.
|
|
13
|
+
* Events are sent with `privacy_mode: true` on the wire; when no manual ID
|
|
14
|
+
* was provided the collector derives a short-lived, daily-rotating visit
|
|
15
|
+
* fingerprint server-side instead. Defaults to `false`.
|
|
16
|
+
*/
|
|
17
|
+
privacyMode?: boolean;
|
|
10
18
|
/**
|
|
11
19
|
* @internal
|
|
12
20
|
*
|
|
@@ -60,6 +68,7 @@ export declare abstract class NexlyBase {
|
|
|
60
68
|
readonly appId: string;
|
|
61
69
|
readonly key: string;
|
|
62
70
|
readonly client: NexlyClient | undefined;
|
|
71
|
+
readonly privacyMode: boolean;
|
|
63
72
|
/**
|
|
64
73
|
* Tracks whether `session_context` has already been emitted for the current
|
|
65
74
|
* `session_id`. `session_context` is session-stable (UA, screen, locale) —
|
package/dist/nexly-base.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nexly-base.d.ts","sourceRoot":"","sources":["../src/nexly-base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAEL,KAAK,KAAK,EACV,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC7B,MAAM,cAAc,CAAA;AAIrB,eAAO,MAAM,mBAAmB,qCAAqC,CAAA;AAErE,sGAAsG;AACtG,MAAM,MAAM,SAAS,GAAG;IACtB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,CAAA;AAED,gEAAgE;AAChE,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,YAAY,GAAG,QAAQ,GAAG,YAAY,CAAA;AAEhF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,cAAc,GAAG,MAAM,CAAA;IAC7B;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,8BAAsB,SAAS;IAC7B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAyB;IAEjD,iFAAiF;IACjF,MAAM,CAAC,WAAW,IAAI,SAAS,GAAG,IAAI;IAItC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAI9D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"nexly-base.d.ts","sourceRoot":"","sources":["../src/nexly-base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAEL,KAAK,KAAK,EACV,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC7B,MAAM,cAAc,CAAA;AAIrB,eAAO,MAAM,mBAAmB,qCAAqC,CAAA;AAErE,sGAAsG;AACtG,MAAM,MAAM,SAAS,GAAG;IACtB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,CAAA;AAED,gEAAgE;AAChE,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,YAAY,GAAG,QAAQ,GAAG,YAAY,CAAA;AAEhF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,cAAc,GAAG,MAAM,CAAA;IAC7B;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,8BAAsB,SAAS;IAC7B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAyB;IAEjD,iFAAiF;IACjF,MAAM,CAAC,WAAW,IAAI,SAAS,GAAG,IAAI;IAItC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAI9D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;IAE7B;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB,CAAsB;IAEnD,SAAS,aAAa,IAAI,EAAE,SAAS;IAUrC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAEhC;IAED,SAAS,KAAK,WAAW,IAAI,iBAAiB,CAE7C;IAED,kFAAkF;IAClF,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAEvE,yDAAyD;IACzD,SAAS,CAAC,QAAQ,CAAC,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAEjE,yDAAyD;IACzD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnE,kDAAkD;IAClD,QAAQ,CAAC,cAAc,IAAI,MAAM;IAEjC;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO;IAWhC;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO;IAatC;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO;IAapF,OAAO,CAAC,QAAQ;CAoCjB"}
|
package/dist/nexly-base.js
CHANGED
|
@@ -26,6 +26,7 @@ export class NexlyBase {
|
|
|
26
26
|
appId;
|
|
27
27
|
key;
|
|
28
28
|
client;
|
|
29
|
+
privacyMode;
|
|
29
30
|
/**
|
|
30
31
|
* Tracks whether `session_context` has already been emitted for the current
|
|
31
32
|
* `session_id`. `session_context` is session-stable (UA, screen, locale) —
|
|
@@ -39,6 +40,7 @@ export class NexlyBase {
|
|
|
39
40
|
this.appId = (init.appId ?? '').trim();
|
|
40
41
|
this.key = (init.key ?? '').trim();
|
|
41
42
|
this.client = init.client;
|
|
43
|
+
this.privacyMode = init.privacyMode === true;
|
|
42
44
|
if (!this.appId)
|
|
43
45
|
console.warn('[Nexly] Missing appId — tracking will be disabled.');
|
|
44
46
|
if (!this.key)
|
|
@@ -112,12 +114,16 @@ export class NexlyBase {
|
|
|
112
114
|
}
|
|
113
115
|
dispatch(args) {
|
|
114
116
|
const sessionId = typeof args.context.session_id === 'string' ? args.context.session_id : '';
|
|
117
|
+
// In privacy mode the session id may be derived server-side, so the SDK
|
|
118
|
+
// cannot key "session_context sent once" off it. Fall back to a sentinel:
|
|
119
|
+
// send session_context once per client instance (≈ once per page load).
|
|
120
|
+
const sessionContextKey = sessionId || (this.privacyMode ? '\u0000privacy' : '');
|
|
115
121
|
let sessionContext;
|
|
116
|
-
if (
|
|
122
|
+
if (sessionContextKey && sessionContextKey !== this.sentSessionContextFor) {
|
|
117
123
|
const collected = this.collectSessionContext();
|
|
118
124
|
if (collected && Object.keys(collected).length > 0) {
|
|
119
125
|
sessionContext = collected;
|
|
120
|
-
this.sentSessionContextFor =
|
|
126
|
+
this.sentSessionContextFor = sessionContextKey;
|
|
121
127
|
}
|
|
122
128
|
}
|
|
123
129
|
const payload = buildCollectPayload({
|
|
@@ -125,6 +131,7 @@ export class NexlyBase {
|
|
|
125
131
|
eventName: args.eventName,
|
|
126
132
|
eventType: args.eventType,
|
|
127
133
|
client: this.client,
|
|
134
|
+
privacyMode: this.privacyMode,
|
|
128
135
|
context: args.context,
|
|
129
136
|
data: args.data,
|
|
130
137
|
cdata: args.cdata,
|