pulse-updates 1.4.1 → 1.5.1
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 +59 -0
- package/lib/commonjs/config.js +25 -0
- package/lib/commonjs/config.js.map +1 -1
- package/lib/commonjs/decisions.js +20 -6
- package/lib/commonjs/decisions.js.map +1 -1
- package/lib/commonjs/experiences.js +72 -0
- package/lib/commonjs/experiences.js.map +1 -0
- package/lib/commonjs/index.js +24 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/init.js +63 -17
- package/lib/commonjs/init.js.map +1 -1
- package/lib/commonjs/subject.js +44 -0
- package/lib/commonjs/subject.js.map +1 -0
- package/lib/module/config.js +24 -0
- package/lib/module/config.js.map +1 -1
- package/lib/module/decisions.js +20 -6
- package/lib/module/decisions.js.map +1 -1
- package/lib/module/experiences.js +66 -0
- package/lib/module/experiences.js.map +1 -0
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/init.js +64 -18
- package/lib/module/init.js.map +1 -1
- package/lib/module/subject.js +37 -0
- package/lib/module/subject.js.map +1 -0
- package/lib/typescript/config.d.ts +2 -0
- package/lib/typescript/config.d.ts.map +1 -1
- package/lib/typescript/decisions.d.ts +12 -0
- package/lib/typescript/decisions.d.ts.map +1 -1
- package/lib/typescript/experiences.d.ts +28 -0
- package/lib/typescript/experiences.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +2 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/init.d.ts +11 -0
- package/lib/typescript/init.d.ts.map +1 -1
- package/lib/typescript/subject.d.ts +12 -0
- package/lib/typescript/subject.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/config.ts +19 -0
- package/src/decisions.ts +36 -3
- package/src/experiences.ts +72 -0
- package/src/index.ts +2 -0
- package/src/init.ts +63 -19
- package/src/subject.ts +47 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { createPulseDecisionClient } from './decisions';
|
|
2
|
+
import { getConfigBoolean, onConfigChange } from './config';
|
|
3
|
+
export function createPulseExperiences(options) {
|
|
4
|
+
const actions = {
|
|
5
|
+
...options.actions
|
|
6
|
+
};
|
|
7
|
+
const capabilities = Object.entries(actions).map(([kind, action]) => {
|
|
8
|
+
if (!action.capability.startsWith(`${kind}:v`) || !/^.+:v[1-9]\d*$/.test(action.capability)) throw new Error(`Pulse: capability must be versioned and match action kind ${kind}`);
|
|
9
|
+
return action.capability;
|
|
10
|
+
});
|
|
11
|
+
if (!options.executionEnabledKey.trim()) throw new Error('Pulse: an execution gate key is required');
|
|
12
|
+
const enabled = () => getConfigBoolean(options.executionEnabledKey);
|
|
13
|
+
let generation = 0;
|
|
14
|
+
let disposed = false;
|
|
15
|
+
const reset = () => {
|
|
16
|
+
generation += 1;
|
|
17
|
+
for (const action of Object.values(actions)) {
|
|
18
|
+
try {
|
|
19
|
+
action.reset?.();
|
|
20
|
+
} catch (error) {
|
|
21
|
+
options.onError?.(error);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
let wasEnabled = enabled();
|
|
26
|
+
const unsubscribe = onConfigChange(() => {
|
|
27
|
+
const next = enabled();
|
|
28
|
+
if (wasEnabled && !next) reset();
|
|
29
|
+
wasEnabled = next;
|
|
30
|
+
});
|
|
31
|
+
const client = createPulseDecisionClient({
|
|
32
|
+
apiUrl: options.apiUrl,
|
|
33
|
+
appSlug: options.appSlug,
|
|
34
|
+
storage: options.storage,
|
|
35
|
+
executionMode: 'allow-live',
|
|
36
|
+
isExecutionAllowed: enabled,
|
|
37
|
+
onError: options.onError,
|
|
38
|
+
getContextRevision: () => generation,
|
|
39
|
+
getContext: () => ({
|
|
40
|
+
...options.getContext(),
|
|
41
|
+
capabilities
|
|
42
|
+
}),
|
|
43
|
+
handlers: Object.fromEntries(Object.entries(actions).map(([kind, handler]) => [kind, async (action, decision) => {
|
|
44
|
+
if (action.requiredCapability !== handler.capability || !handler.validate(action)) return {
|
|
45
|
+
outcome: 'failed',
|
|
46
|
+
metadata: {
|
|
47
|
+
reason: 'invalid_action_contract'
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
return handler.execute(action, decision);
|
|
51
|
+
}]))
|
|
52
|
+
});
|
|
53
|
+
return {
|
|
54
|
+
client,
|
|
55
|
+
capabilities,
|
|
56
|
+
reset,
|
|
57
|
+
dispose: async () => {
|
|
58
|
+
if (disposed) return;
|
|
59
|
+
disposed = true;
|
|
60
|
+
unsubscribe();
|
|
61
|
+
reset();
|
|
62
|
+
await client.dispose();
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=experiences.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createPulseDecisionClient","getConfigBoolean","onConfigChange","createPulseExperiences","options","actions","capabilities","Object","entries","map","kind","action","capability","startsWith","test","Error","executionEnabledKey","trim","enabled","generation","disposed","reset","values","error","onError","wasEnabled","unsubscribe","next","client","apiUrl","appSlug","storage","executionMode","isExecutionAllowed","getContextRevision","getContext","handlers","fromEntries","handler","decision","requiredCapability","validate","outcome","metadata","reason","execute","dispose"],"sourceRoot":"../../src","sources":["experiences.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -6,6 +6,8 @@ export * from './config';
|
|
|
6
6
|
export * from './track';
|
|
7
7
|
export * from './init';
|
|
8
8
|
export * from './decisions';
|
|
9
|
+
export * from './subject';
|
|
10
|
+
export * from './experiences';
|
|
9
11
|
export * from './links';
|
|
10
12
|
export * from './nativeAttribution';
|
|
11
13
|
export { DeferredLinkPasteButton } from './DeferredLinkPasteButton';
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["usePulseUpdates","initializeAssetResolver","updateLocalAssets","DeferredLinkPasteButton"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,cAAc,gBAAgB;AAC9B,cAAc,SAAS;AACvB,SAASA,eAAe,QAAQ,mBAAmB;AACnD,SAASC,uBAAuB,EAAEC,iBAAiB,QAAQ,iBAAiB;AAC5E,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,aAAa;AAC3B,cAAc,SAAS;AACvB,cAAc,qBAAqB;AACnC,SAASC,uBAAuB,QAAQ,2BAA2B","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["usePulseUpdates","initializeAssetResolver","updateLocalAssets","DeferredLinkPasteButton"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,cAAc,gBAAgB;AAC9B,cAAc,SAAS;AACvB,SAASA,eAAe,QAAQ,mBAAmB;AACnD,SAASC,uBAAuB,EAAEC,iBAAiB,QAAQ,iBAAiB;AAC5E,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,aAAa;AAC3B,cAAc,WAAW;AACzB,cAAc,eAAe;AAC7B,cAAc,SAAS;AACvB,cAAc,qBAAqB;AACnC,SAASC,uBAAuB,QAAQ,2BAA2B","ignoreList":[]}
|
package/lib/module/init.js
CHANGED
|
@@ -24,11 +24,14 @@
|
|
|
24
24
|
* installs — a targeting bug that looks like a rollout that "did not work".
|
|
25
25
|
*/
|
|
26
26
|
|
|
27
|
-
import { configureConfig, fetchConfig, startConfigAutoRefresh, getConfigInfo, getConfigBoolean, getConfigNumber, getConfigString, getConfigJson, getExposureDeliveryInfo } from './config';
|
|
27
|
+
import { configureConfig, fetchConfig, startConfigAutoRefresh, getConfigInfo, getConfigBoolean, getConfigNumber, getConfigString, getConfigJson, getExposureDeliveryInfo, invalidateConfigContext } from './config';
|
|
28
|
+
import { normalizePulseAttributes, pulseProfileAttributes } from './subject';
|
|
29
|
+
import { createPulseExperiences } from './experiences';
|
|
28
30
|
import { configureTracking, disposeTracking, flushEvents, getTrackingInfo, track, trackIdempotent } from './track';
|
|
29
31
|
const DEVICE_ID_KEY = 'pulse.device-id';
|
|
30
32
|
let activeClient = null;
|
|
31
33
|
let stopActiveRefresh = null;
|
|
34
|
+
let stopActiveExperiences = null;
|
|
32
35
|
|
|
33
36
|
/** Wires config and events with an explicit event-envelope identity policy. */
|
|
34
37
|
export function initPulse(opts) {
|
|
@@ -37,6 +40,8 @@ export function initPulse(opts) {
|
|
|
37
40
|
// fast app switch or test setup triggers. Persist the old outbox, stop its refresh,
|
|
38
41
|
// then configure the new app in one uninterrupted turn.
|
|
39
42
|
stopActiveRefresh?.();
|
|
43
|
+
void stopActiveExperiences?.();
|
|
44
|
+
stopActiveExperiences = null;
|
|
40
45
|
disposeTracking();
|
|
41
46
|
activeClient = null;
|
|
42
47
|
stopActiveRefresh = null;
|
|
@@ -52,17 +57,21 @@ export function initPulse(opts) {
|
|
|
52
57
|
const language = opts.language ?? detectLanguage();
|
|
53
58
|
let userId;
|
|
54
59
|
let userAttributes;
|
|
60
|
+
let userOverridden = false;
|
|
55
61
|
let consentOverride = typeof opts.analyticsConsent === 'boolean' ? opts.analyticsConsent : undefined;
|
|
56
62
|
const hasConsent = () => consentOverride ?? (typeof opts.analyticsConsent === 'function' ? opts.analyticsConsent() : true);
|
|
57
|
-
const getContext = () =>
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
const getContext = () => {
|
|
64
|
+
const profile = userOverridden ? undefined : opts.getUserProfile?.();
|
|
65
|
+
return {
|
|
66
|
+
platform,
|
|
67
|
+
osVersion,
|
|
68
|
+
appVersion,
|
|
69
|
+
language,
|
|
70
|
+
deviceId,
|
|
71
|
+
userId: userOverridden ? userId : profile?.id ?? opts.getUserId?.(),
|
|
72
|
+
userAttributes: userOverridden ? userAttributes : profile ? pulseProfileAttributes(profile) : normalizePulseAttributes(opts.getUserAttributes?.())
|
|
73
|
+
};
|
|
74
|
+
};
|
|
66
75
|
configureConfig({
|
|
67
76
|
url: configUrl,
|
|
68
77
|
defaults: opts.defaults,
|
|
@@ -110,6 +119,28 @@ export function initPulse(opts) {
|
|
|
110
119
|
// off position of every flag.
|
|
111
120
|
void fetchConfig();
|
|
112
121
|
const stopRefresh = startConfigAutoRefresh(opts.appState);
|
|
122
|
+
const experiences = opts.experiences ? createPulseExperiences({
|
|
123
|
+
...opts.experiences,
|
|
124
|
+
apiUrl: base,
|
|
125
|
+
appSlug: slug,
|
|
126
|
+
storage: opts.storage,
|
|
127
|
+
onError: opts.onError,
|
|
128
|
+
getContext: () => {
|
|
129
|
+
const {
|
|
130
|
+
userAttributes: attributes,
|
|
131
|
+
...context
|
|
132
|
+
} = getContext();
|
|
133
|
+
return {
|
|
134
|
+
...context,
|
|
135
|
+
attributes
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
}) : undefined;
|
|
139
|
+
const refreshContext = () => {
|
|
140
|
+
experiences?.reset();
|
|
141
|
+
invalidateConfigContext();
|
|
142
|
+
return fetchConfig();
|
|
143
|
+
};
|
|
113
144
|
const client = {
|
|
114
145
|
get deviceId() {
|
|
115
146
|
return deviceId;
|
|
@@ -120,21 +151,38 @@ export function initPulse(opts) {
|
|
|
120
151
|
trackIdempotent,
|
|
121
152
|
flush: flushEvents,
|
|
122
153
|
setUser: (nextUserId, attributes) => {
|
|
154
|
+
if (activeClient !== client) return;
|
|
155
|
+
userOverridden = true;
|
|
123
156
|
userId = nextUserId?.trim() || undefined;
|
|
124
|
-
userAttributes =
|
|
157
|
+
userAttributes = normalizePulseAttributes(attributes);
|
|
158
|
+
void refreshContext();
|
|
125
159
|
},
|
|
126
160
|
clearUser: () => {
|
|
161
|
+
if (activeClient !== client) return;
|
|
162
|
+
userOverridden = true;
|
|
127
163
|
userId = undefined;
|
|
128
|
-
userAttributes =
|
|
164
|
+
userAttributes = {};
|
|
165
|
+
void refreshContext();
|
|
129
166
|
},
|
|
167
|
+
identify: profile => {
|
|
168
|
+
if (activeClient !== client) return;
|
|
169
|
+
userOverridden = true;
|
|
170
|
+
userId = profile.id.trim() || undefined;
|
|
171
|
+
userAttributes = userId ? pulseProfileAttributes(profile) : {};
|
|
172
|
+
void refreshContext();
|
|
173
|
+
},
|
|
174
|
+
refreshContext: () => activeClient === client ? refreshContext() : Promise.resolve(false),
|
|
175
|
+
decisions: experiences?.client,
|
|
130
176
|
setAnalyticsConsent: granted => {
|
|
131
177
|
consentOverride = granted;
|
|
132
178
|
},
|
|
133
179
|
resetInstallId: () => {
|
|
180
|
+
if (activeClient !== client) return deviceId;
|
|
134
181
|
deviceId = randomId();
|
|
135
182
|
try {
|
|
136
183
|
opts.storage?.set(deviceStorageKey, deviceId);
|
|
137
184
|
} catch {/* memory-only fallback */}
|
|
185
|
+
void refreshContext();
|
|
138
186
|
return deviceId;
|
|
139
187
|
},
|
|
140
188
|
health: () => ({
|
|
@@ -154,6 +202,7 @@ export function initPulse(opts) {
|
|
|
154
202
|
},
|
|
155
203
|
dispose: async () => {
|
|
156
204
|
stopRefresh();
|
|
205
|
+
await experiences?.dispose();
|
|
157
206
|
if (activeClient !== client) return;
|
|
158
207
|
await flushEvents();
|
|
159
208
|
// Another init may have taken ownership while this network flush was pending.
|
|
@@ -161,11 +210,13 @@ export function initPulse(opts) {
|
|
|
161
210
|
disposeTracking();
|
|
162
211
|
activeClient = null;
|
|
163
212
|
stopActiveRefresh = null;
|
|
213
|
+
stopActiveExperiences = null;
|
|
164
214
|
}
|
|
165
215
|
}
|
|
166
216
|
};
|
|
167
217
|
activeClient = client;
|
|
168
218
|
stopActiveRefresh = stopRefresh;
|
|
219
|
+
stopActiveExperiences = experiences?.dispose ?? null;
|
|
169
220
|
return client;
|
|
170
221
|
}
|
|
171
222
|
|
|
@@ -176,7 +227,7 @@ export function initPulse(opts) {
|
|
|
176
227
|
*/
|
|
177
228
|
export async function initPulseAsync(opts) {
|
|
178
229
|
const slug = opts.appSlug.trim();
|
|
179
|
-
const keys = [`pulse.${slug}.device-id`, `pulse.${slug}.config.v1`, `pulse.${slug}.events.v1`, `pulse.${slug}.events.v1.analytics-installation-id`, `pulse.${slug}.exposures.v1`, DEVICE_ID_KEY];
|
|
230
|
+
const keys = [`pulse.${slug}.device-id`, `pulse.${slug}.config.v1`, `pulse.${slug}.events.v1`, `pulse.${slug}.events.v1.analytics-installation-id`, `pulse.${slug}.exposures.v1`, `pulse.${slug}.outcomes.v1`, DEVICE_ID_KEY];
|
|
180
231
|
const loaded = await Promise.all(keys.map(async key => [key, await opts.storage.getItem(key)]));
|
|
181
232
|
const memory = new Map(loaded.filter(entry => entry[1] !== null));
|
|
182
233
|
const storage = {
|
|
@@ -222,11 +273,6 @@ function resolveDeviceId(storage, key = DEVICE_ID_KEY) {
|
|
|
222
273
|
return randomId();
|
|
223
274
|
}
|
|
224
275
|
}
|
|
225
|
-
function sanitizeAttributes(attributes) {
|
|
226
|
-
if (!attributes) return undefined;
|
|
227
|
-
const clean = Object.fromEntries(Object.entries(attributes).filter(([key, value]) => key.trim() !== '' && typeof value === 'string').slice(0, 50));
|
|
228
|
-
return Object.keys(clean).length > 0 ? clean : undefined;
|
|
229
|
-
}
|
|
230
276
|
function randomId() {
|
|
231
277
|
const bytes = new Uint8Array(16);
|
|
232
278
|
const crypto = globalThis.crypto;
|
package/lib/module/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["configureConfig","fetchConfig","startConfigAutoRefresh","getConfigInfo","getConfigBoolean","getConfigNumber","getConfigString","getConfigJson","getExposureDeliveryInfo","configureTracking","disposeTracking","flushEvents","getTrackingInfo","track","trackIdempotent","DEVICE_ID_KEY","activeClient","stopActiveRefresh","initPulse","opts","base","apiUrl","replace","slug","appSlug","trim","configUrl","trackUrl","deviceStorageKey","deviceId","resolveDeviceId","storage","platform","detectPlatform","osVersion","detectOsVersion","appVersion","detectAppVersion","language","detectLanguage","userId","userAttributes","consentOverride","analyticsConsent","undefined","hasConsent","getContext","getUserId","getUserAttributes","url","defaults","storageKey","exposureStorageKey","reportExposure","pollIntervalMs","onError","signingPublicKey","signingKeyId","requireSignature","requireConfigSignature","verifySignature","verifyConfigSignature","verifyWithNativeKey","identityMode","eventIdentityMode","flushIntervalMs","propertyAllowlist","eventPropertyAllowlist","redactProperties","redactEventProperties","appState","onIgnored","onIgnoredEvents","Error","stopRefresh","client","flush","setUser","nextUserId","attributes","sanitizeAttributes","clearUser","setAnalyticsConsent","granted","resetInstallId","randomId","set","health","config","events","exposures","boolean","number","string","json","refresh","dispose","initPulseAsync","keys","loaded","Promise","all","map","key","getItem","memory","Map","filter","entry","supportsDurableSyncWrites","getString","get","value","resolve","setItem","catch","error","existing","minted","clean","Object","fromEntries","entries","slice","length","bytes","Uint8Array","crypto","globalThis","getRandomValues","i","Math","floor","random","hex","Array","from","b","toString","padStart","join","rn","require","Platform","OS","version","Version","String","default","getVersion","canonicalPayload","signature","updates","verifyConfigSignatureAsync","localize","getLocales","languageTag","Intl","DateTimeFormat","resolvedOptions","locale"],"sourceRoot":"../../src","sources":["init.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SACEA,eAAe,EACfC,WAAW,EACXC,sBAAsB,EAKtBC,aAAa,EACbC,gBAAgB,EAChBC,eAAe,EACfC,eAAe,EACfC,aAAa,EACbC,uBAAuB,QAClB,UAAU;AACjB,SACEC,iBAAiB,EACjBC,eAAe,EACfC,WAAW,EACXC,eAAe,EACfC,KAAK,EACLC,eAAe,QAEV,SAAS;AA8EhB,MAAMC,aAAa,GAAG,iBAAiB;AA2CvC,IAAIC,YAAgC,GAAG,IAAI;AAC3C,IAAIC,iBAAsC,GAAG,IAAI;;AAEjD;AACA,OAAO,SAASC,SAASA,CAACC,IAAsB,EAAe;EAC7D;EACA;EACA;EACA;EACAF,iBAAiB,GAAG,CAAC;EACrBP,eAAe,CAAC,CAAC;EACjBM,YAAY,GAAG,IAAI;EACnBC,iBAAiB,GAAG,IAAI;EACxB,MAAMG,IAAI,GAAGD,IAAI,CAACE,MAAM,CAACC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;EAC5C,MAAMC,IAAI,GAAGJ,IAAI,CAACK,OAAO,CAACC,IAAI,CAAC,CAAC;EAChC,MAAMC,SAAS,GAAG,GAAGN,IAAI,iBAAiBG,IAAI,EAAE;EAChD,MAAMI,QAAQ,GAAG,GAAGP,IAAI,gBAAgBG,IAAI,EAAE;EAE9C,MAAMK,gBAAgB,GAAG,SAASL,IAAI,YAAY;EAClD,IAAIM,QAAQ,GAAGV,IAAI,CAACU,QAAQ,EAAEJ,IAAI,CAAC,CAAC,IAAIK,eAAe,CAACX,IAAI,CAACY,OAAO,EAAEH,gBAAgB,CAAC;EACvF,MAAMI,QAAQ,GAAGC,cAAc,CAAC,CAAC;EACjC,MAAMC,SAAS,GAAGC,eAAe,CAAC,CAAC;EACnC,MAAMC,UAAU,GAAGjB,IAAI,CAACiB,UAAU,IAAIC,gBAAgB,CAAC,CAAC;EACxD,MAAMC,QAAQ,GAAGnB,IAAI,CAACmB,QAAQ,IAAIC,cAAc,CAAC,CAAC;EAClD,IAAIC,MAA0B;EAC9B,IAAIC,cAAkD;EACtD,IAAIC,eAAoC,GAAG,OAAOvB,IAAI,CAACwB,gBAAgB,KAAK,SAAS,GACjFxB,IAAI,CAACwB,gBAAgB,GACrBC,SAAS;EAEb,MAAMC,UAAU,GAAGA,CAAA,KAAeH,eAAe,KAC9C,OAAOvB,IAAI,CAACwB,gBAAgB,KAAK,UAAU,GAAGxB,IAAI,CAACwB,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC;EAEhF,MAAMG,UAAU,GAAGA,CAAA,MAAsB;IACvCd,QAAQ;IACRE,SAAS;IACTE,UAAU;IACVE,QAAQ;IACRT,QAAQ;IACRW,MAAM,EAAEA,MAAM,IAAIrB,IAAI,CAAC4B,SAAS,GAAG,CAAC;IACpCN,cAAc,EAAEA,cAAc,IAAItB,IAAI,CAAC6B,iBAAiB,GAAG;EAC7D,CAAC,CAAC;EAEFhD,eAAe,CAAC;IACdiD,GAAG,EAAEvB,SAAS;IACdwB,QAAQ,EAAE/B,IAAI,CAAC+B,QAAQ;IACvBnB,OAAO,EAAEZ,IAAI,CAACY,OAAO;IACrBoB,UAAU,EAAE,SAAS5B,IAAI,YAAY;IACrC6B,kBAAkB,EAAE,SAAS7B,IAAI,eAAe;IAChD8B,cAAc,EAAElC,IAAI,CAACkC,cAAc,IAAI,IAAI;IAC3CP,UAAU;IACVQ,cAAc,EAAEnC,IAAI,CAACmC,cAAc;IACnCC,OAAO,EAAEpC,IAAI,CAACoC,OAAO;IACrBC,gBAAgB,EAAErC,IAAI,CAACqC,gBAAgB;IACvCC,YAAY,EAAEtC,IAAI,CAACsC,YAAY;IAC/BC,gBAAgB,EAAEvC,IAAI,CAACwC,sBAAsB;IAC7CC,eAAe,EAAEzC,IAAI,CAAC0C,qBAAqB,KACxC1C,IAAI,CAACwC,sBAAsB,IAAI,CAACxC,IAAI,CAACqC,gBAAgB,GAAGM,mBAAmB,GAAGlB,SAAS;EAC5F,CAAC,CAAC;EAEFnC,iBAAiB,CAAC;IAChBwC,GAAG,EAAEtB,QAAQ;IACbmB,UAAU;IACViB,YAAY,EAAE5C,IAAI,CAAC6C,iBAAiB;IACpCC,eAAe,EAAE9C,IAAI,CAAC8C,eAAe;IACrClC,OAAO,EAAEZ,IAAI,CAACY,OAAO;IACrBoB,UAAU,EAAE,SAAS5B,IAAI,YAAY;IACrCsB,UAAU;IACVqB,iBAAiB,EAAE/C,IAAI,CAACgD,sBAAsB;IAC9CC,gBAAgB,EAAEjD,IAAI,CAACkD,qBAAqB;IAC5CC,QAAQ,EAAEnD,IAAI,CAACmD,QAAQ;IACvBC,SAAS,EAAEpD,IAAI,CAACqD,eAAe;IAC/BjB,OAAO,EAAEpC,IAAI,CAACoC;EAChB,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA,IAAI,CAACnB,UAAU,EAAE;IACfjB,IAAI,CAACoC,OAAO,GAAG,IAAIkB,KAAK,CACtB,+FAA+F,CAAC,CAAC;EACrG;EACA,IAAI,CAACtD,IAAI,CAACY,OAAO,IAAI,CAACZ,IAAI,CAACU,QAAQ,EAAE;IACnCV,IAAI,CAACoC,OAAO,GAAG,IAAIkB,KAAK,CACtB,qGAAqG,CAAC,CAAC;EAC3G;;EAEA;EACA;EACA;EACA,KAAKxE,WAAW,CAAC,CAAC;EAClB,MAAMyE,WAAW,GAAGxE,sBAAsB,CAACiB,IAAI,CAACmD,QAAQ,CAAC;EAEzD,MAAMK,MAAmB,GAAG;IAC1B,IAAI9C,QAAQA,CAAA,EAAG;MAAE,OAAOA,QAAQ;IAAE,CAAC;IACnCH,SAAS;IACTC,QAAQ;IACRd,KAAK;IACLC,eAAe;IACf8D,KAAK,EAAEjE,WAAW;IAClBkE,OAAO,EAAEA,CAACC,UAAU,EAAEC,UAAU,KAAK;MACnCvC,MAAM,GAAGsC,UAAU,EAAErD,IAAI,CAAC,CAAC,IAAImB,SAAS;MACxCH,cAAc,GAAGuC,kBAAkB,CAACD,UAAU,CAAC;IACjD,CAAC;IACDE,SAAS,EAAEA,CAAA,KAAM;MACfzC,MAAM,GAAGI,SAAS;MAClBH,cAAc,GAAGG,SAAS;IAC5B,CAAC;IACDsC,mBAAmB,EAAGC,OAAO,IAAK;MAAEzC,eAAe,GAAGyC,OAAO;IAAE,CAAC;IAChEC,cAAc,EAAEA,CAAA,KAAM;MACpBvD,QAAQ,GAAGwD,QAAQ,CAAC,CAAC;MACrB,IAAI;QAAElE,IAAI,CAACY,OAAO,EAAEuD,GAAG,CAAC1D,gBAAgB,EAAEC,QAAQ,CAAC;MAAE,CAAC,CAAC,MAAM,CAAE;MAC/D,OAAOA,QAAQ;IACjB,CAAC;IACD0D,MAAM,EAAEA,CAAA,MAAO;MACb/D,OAAO,EAAED,IAAI;MACbM,QAAQ;MACR2D,MAAM,EAAErF,aAAa,CAAC,CAAC;MACvBsF,MAAM,EAAE7E,eAAe,CAAC,CAAC;MACzB8E,SAAS,EAAElF,uBAAuB,CAAC,CAAC;MACpCmC,gBAAgB,EAAEE,UAAU,CAAC;IAC/B,CAAC,CAAC;IACF2C,MAAM,EAAE;MACNG,OAAO,EAAEvF,gBAAgB;MACzBwF,MAAM,EAAEvF,eAAe;MACvBwF,MAAM,EAAEvF,eAAe;MACvBwF,IAAI,EAAEvF,aAAa;MACnBwF,OAAO,EAAE9F;IACX,CAAC;IACD+F,OAAO,EAAE,MAAAA,CAAA,KAAY;MACnBtB,WAAW,CAAC,CAAC;MACb,IAAI1D,YAAY,KAAK2D,MAAM,EAAE;MAC7B,MAAMhE,WAAW,CAAC,CAAC;MACnB;MACA,IAAIK,YAAY,KAAK2D,MAAM,EAAE;QAC3BjE,eAAe,CAAC,CAAC;QACjBM,YAAY,GAAG,IAAI;QACnBC,iBAAiB,GAAG,IAAI;MAC1B;IACF;EACF,CAAC;EACDD,YAAY,GAAG2D,MAAM;EACrB1D,iBAAiB,GAAGyD,WAAW;EAC/B,OAAOC,MAAM;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAesB,cAAcA,CAClC9E,IAAwE,EAClD;EACtB,MAAMI,IAAI,GAAGJ,IAAI,CAACK,OAAO,CAACC,IAAI,CAAC,CAAC;EAChC,MAAMyE,IAAI,GAAG,CACX,SAAS3E,IAAI,YAAY,EACzB,SAASA,IAAI,YAAY,EACzB,SAASA,IAAI,YAAY,EACzB,SAASA,IAAI,sCAAsC,EACnD,SAASA,IAAI,eAAe,EAC5BR,aAAa,CACd;EACD,MAAMoF,MAAM,GAAG,MAAMC,OAAO,CAACC,GAAG,CAACH,IAAI,CAACI,GAAG,CAAC,MAAOC,GAAG,IAAK,CAACA,GAAG,EAAE,MAAMpF,IAAI,CAACY,OAAO,CAACyE,OAAO,CAACD,GAAG,CAAC,CAAU,CAAC,CAAC;EAC1G,MAAME,MAAM,GAAG,IAAIC,GAAG,CAACP,MAAM,CAACQ,MAAM,CAAEC,KAAK,IAAyCA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;EACvG,MAAM7E,OAAsB,GAAG;IAC7B8E,yBAAyB,EAAE,KAAK;IAChCC,SAAS,EAAGP,GAAG,IAAKE,MAAM,CAACM,GAAG,CAACR,GAAG,CAAC;IACnCjB,GAAG,EAAEA,CAACiB,GAAG,EAAES,KAAK,KAAK;MACnBP,MAAM,CAACnB,GAAG,CAACiB,GAAG,EAAES,KAAK,CAAC;MACtB,IAAI;QACF,KAAKZ,OAAO,CAACa,OAAO,CAAC9F,IAAI,CAACY,OAAO,CAACmF,OAAO,CAACX,GAAG,EAAES,KAAK,CAAC,CAAC,CAACG,KAAK,CAAEC,KAAK,IAAK;UACtE,IAAI;YAAEjG,IAAI,CAACoC,OAAO,GAAG6D,KAAK,CAAC;UAAE,CAAC,CAAC,MAAM,CAAE;QACzC,CAAC,CAAC;MACJ,CAAC,CAAC,OAAOA,KAAK,EAAE;QACd,IAAI;UAAEjG,IAAI,CAACoC,OAAO,GAAG6D,KAAK,CAAC;QAAE,CAAC,CAAC,MAAM,CAAE;MACzC;IACF;EACF,CAAC;EACD,OAAOlG,SAAS,CAAC;IAAE,GAAGC,IAAI;IAAEY;EAAQ,CAAC,CAAC;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASD,eAAeA,CAACC,OAAuB,EAAEwE,GAAG,GAAGxF,aAAa,EAAU;EAC7E,IAAI,CAACgB,OAAO,EAAE,OAAOsD,QAAQ,CAAC,CAAC;EAE/B,IAAI;IACF,MAAMgC,QAAQ,GAAGtF,OAAO,CAAC+E,SAAS,CAACP,GAAG,CAAC,IAAIxE,OAAO,CAAC+E,SAAS,CAAC/F,aAAa,CAAC;IAC3E,IAAIsG,QAAQ,EAAE,OAAOA,QAAQ;IAC7B,MAAMC,MAAM,GAAGjC,QAAQ,CAAC,CAAC;IACzBtD,OAAO,CAACuD,GAAG,CAACiB,GAAG,EAAEe,MAAM,CAAC;IACxB,OAAOA,MAAM;EACf,CAAC,CAAC,MAAM;IACN,OAAOjC,QAAQ,CAAC,CAAC;EACnB;AACF;AAEA,SAASL,kBAAkBA,CAACD,UAAmC,EAAsC;EACnG,IAAI,CAACA,UAAU,EAAE,OAAOnC,SAAS;EACjC,MAAM2E,KAAK,GAAGC,MAAM,CAACC,WAAW,CAACD,MAAM,CAACE,OAAO,CAAC3C,UAAU,CAAC,CACxD4B,MAAM,CAAC,CAAC,CAACJ,GAAG,EAAES,KAAK,CAAC,KAAKT,GAAG,CAAC9E,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,OAAOuF,KAAK,KAAK,QAAQ,CAAC,CACxEW,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;EAChB,OAAOH,MAAM,CAACtB,IAAI,CAACqB,KAAK,CAAC,CAACK,MAAM,GAAG,CAAC,GAAGL,KAAK,GAAG3E,SAAS;AAC1D;AAEA,SAASyC,QAAQA,CAAA,EAAW;EAC1B,MAAMwC,KAAK,GAAG,IAAIC,UAAU,CAAC,EAAE,CAAC;EAChC,MAAMC,MAAM,GAAIC,UAAU,CAAgED,MAAM;EAEhG,IAAIA,MAAM,EAAEE,eAAe,EAAE;IAC3BF,MAAM,CAACE,eAAe,CAACJ,KAAK,CAAC;EAC/B,CAAC,MAAM;IACL;IACA;IACA,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,KAAK,CAACD,MAAM,EAAEM,CAAC,EAAE,EAAEL,KAAK,CAACK,CAAC,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;EACnF;EAEAR,KAAK,CAAC,CAAC,CAAC,GAAI,CAACA,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,GAAI,IAAI;EAC1CA,KAAK,CAAC,CAAC,CAAC,GAAI,CAACA,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,GAAI,IAAI;EAE1C,MAAMS,GAAG,GAAGC,KAAK,CAACC,IAAI,CAACX,KAAK,EAAGY,CAAC,IAAKA,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAACC,IAAI,CAAC,EAAE,CAAC;EAC9E,OAAO,GAAGN,GAAG,CAACX,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAIW,GAAG,CAACX,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAIW,GAAG,CAACX,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAIW,GAAG,CAACX,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAIW,GAAG,CAACX,KAAK,CAAC,EAAE,CAAC,EAAE;AAC5G;;AAEA;AACA,SAAS1F,cAAcA,CAAA,EAAuB;EAC5C,IAAI;IACF;IACA;IACA;IACA,MAAM4G,EAAE,GAAGC,OAAO,CAAC,cAAc,CAAmC;IACpE,OAAOD,EAAE,EAAEE,QAAQ,EAAEC,EAAE;EACzB,CAAC,CAAC,MAAM;IACN,OAAOpG,SAAS;EAClB;AACF;AAEA,SAAST,eAAeA,CAAA,EAAuB;EAC7C,IAAI;IACF;IACA,MAAM0G,EAAE,GAAGC,OAAO,CAAC,cAAc,CAAiD;IAClF,MAAMG,OAAO,GAAGJ,EAAE,EAAEE,QAAQ,EAAEG,OAAO;IACrC,OAAOD,OAAO,KAAKrG,SAAS,IAAIqG,OAAO,KAAK,IAAI,GAAGrG,SAAS,GAAGuG,MAAM,CAACF,OAAO,CAAC;EAChF,CAAC,CAAC,MAAM;IACN,OAAOrG,SAAS;EAClB;AACF;AAEA,SAASP,gBAAgBA,CAAA,EAAuB;EAC9C,IAAI;IACF;IACA;IACA,MAAM8D,MAAM,GAAG2C,OAAO,CAAC,0BAA0B,CAA2E;IAC5H,OAAO3C,MAAM,CAACiD,OAAO,EAAEC,UAAU,GAAG,CAAC,IAAIlD,MAAM,CAACkD,UAAU,GAAG,CAAC;EAChE,CAAC,CAAC,MAAM;IACN,OAAOzG,SAAS;EAClB;AACF;AAEA,eAAekB,mBAAmBA,CAChCwF,gBAAwB,EACxBC,SAA0B,EACR;EAClB,IAAI;IACF;IACA;IACA,MAAMC,OAAO,GAAGV,OAAO,CAAC,gBAAgB,CAEvC;IACD,OAAO,OAAMU,OAAO,CAACC,0BAA0B,GAAGH,gBAAgB,EAAEC,SAAS,CAAC,KAAI,KAAK;EACzF,CAAC,CAAC,MAAM;IACN,OAAO,KAAK;EACd;AACF;AAEA,SAAShH,cAAcA,CAAA,EAAuB;EAC5C,IAAI;IACF;IACA,MAAMmH,QAAQ,GAAGZ,OAAO,CAAC,uBAAuB,CAA2D;IAC3G,OAAOY,QAAQ,CAACC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,EAAEC,WAAW;EAChD,CAAC,CAAC,MAAM;IACN,IAAI;MACF,OAAOC,IAAI,CAACC,cAAc,CAAC,CAAC,CAACC,eAAe,CAAC,CAAC,CAACC,MAAM;IACvD,CAAC,CAAC,MAAM;MACN,OAAOpH,SAAS;IAClB;EACF;AACF","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["configureConfig","fetchConfig","startConfigAutoRefresh","getConfigInfo","getConfigBoolean","getConfigNumber","getConfigString","getConfigJson","getExposureDeliveryInfo","invalidateConfigContext","normalizePulseAttributes","pulseProfileAttributes","createPulseExperiences","configureTracking","disposeTracking","flushEvents","getTrackingInfo","track","trackIdempotent","DEVICE_ID_KEY","activeClient","stopActiveRefresh","stopActiveExperiences","initPulse","opts","base","apiUrl","replace","slug","appSlug","trim","configUrl","trackUrl","deviceStorageKey","deviceId","resolveDeviceId","storage","platform","detectPlatform","osVersion","detectOsVersion","appVersion","detectAppVersion","language","detectLanguage","userId","userAttributes","userOverridden","consentOverride","analyticsConsent","undefined","hasConsent","getContext","profile","getUserProfile","id","getUserId","getUserAttributes","url","defaults","storageKey","exposureStorageKey","reportExposure","pollIntervalMs","onError","signingPublicKey","signingKeyId","requireSignature","requireConfigSignature","verifySignature","verifyConfigSignature","verifyWithNativeKey","identityMode","eventIdentityMode","flushIntervalMs","propertyAllowlist","eventPropertyAllowlist","redactProperties","redactEventProperties","appState","onIgnored","onIgnoredEvents","Error","stopRefresh","experiences","attributes","context","refreshContext","reset","client","flush","setUser","nextUserId","clearUser","identify","Promise","resolve","decisions","setAnalyticsConsent","granted","resetInstallId","randomId","set","health","config","events","exposures","boolean","number","string","json","refresh","dispose","initPulseAsync","keys","loaded","all","map","key","getItem","memory","Map","filter","entry","supportsDurableSyncWrites","getString","get","value","setItem","catch","error","existing","minted","bytes","Uint8Array","crypto","globalThis","getRandomValues","i","length","Math","floor","random","hex","Array","from","b","toString","padStart","join","slice","rn","require","Platform","OS","version","Version","String","default","getVersion","canonicalPayload","signature","updates","verifyConfigSignatureAsync","localize","getLocales","languageTag","Intl","DateTimeFormat","resolvedOptions","locale"],"sourceRoot":"../../src","sources":["init.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/** Scalar signals supplied by the host app. Never send contact details or credentials. */
|
|
2
|
+
|
|
3
|
+
/** Normalize the wire format shared by config and decisions. pulse.* belongs to the server. */
|
|
4
|
+
export function normalizePulseAttributes(attributes) {
|
|
5
|
+
const result = {};
|
|
6
|
+
for (const [rawKey, value] of Object.entries(attributes ?? {})) {
|
|
7
|
+
const key = rawKey.trim();
|
|
8
|
+
if (!key || key.length > 128 || key.toLowerCase().startsWith('pulse.') || value == null) continue;
|
|
9
|
+
let scalar;
|
|
10
|
+
if (value instanceof Date) {
|
|
11
|
+
if (!Number.isFinite(value.getTime())) continue;
|
|
12
|
+
scalar = value.toISOString();
|
|
13
|
+
} else if (typeof value === 'number') {
|
|
14
|
+
if (!Number.isFinite(value)) continue;
|
|
15
|
+
scalar = String(value);
|
|
16
|
+
} else if (typeof value === 'string' || typeof value === 'boolean') scalar = String(value);else continue;
|
|
17
|
+
if (scalar.length > 1024) continue;
|
|
18
|
+
result[key] = scalar;
|
|
19
|
+
if (Object.keys(result).length >= 64) break;
|
|
20
|
+
}
|
|
21
|
+
return result;
|
|
22
|
+
}
|
|
23
|
+
export function pulseProfileAttributes(profile) {
|
|
24
|
+
const attributes = normalizePulseAttributes(profile?.attributes);
|
|
25
|
+
if (profile?.registrationDate != null) {
|
|
26
|
+
// An explicit invalid backend date must not fall back to a conflicting custom value.
|
|
27
|
+
for (const key of Object.keys(attributes)) if (key.toLowerCase() === 'registeredat') delete attributes[key];
|
|
28
|
+
const raw = profile.registrationDate;
|
|
29
|
+
const date = raw instanceof Date ? raw : /^\d{4}-\d{2}-\d{2}(T.*(Z|[+-]\d{2}:\d{2}))?$/i.test(raw) ? new Date(raw) : null;
|
|
30
|
+
if (date && Number.isFinite(date.getTime())) {
|
|
31
|
+
if (Object.keys(attributes).length >= 64) delete attributes[Object.keys(attributes)[63]];
|
|
32
|
+
attributes.registeredAt = date.toISOString();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return attributes;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=subject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["normalizePulseAttributes","attributes","result","rawKey","value","Object","entries","key","trim","length","toLowerCase","startsWith","scalar","Date","Number","isFinite","getTime","toISOString","String","keys","pulseProfileAttributes","profile","registrationDate","raw","date","test","registeredAt"],"sourceRoot":"../../src","sources":["subject.ts"],"mappings":"AAAA;;AASA;AACA,OAAO,SAASA,wBAAwBA,CACtCC,UAAgD,EACxB;EACxB,MAAMC,MAA8B,GAAG,CAAC,CAAC;EACzC,KAAK,MAAM,CAACC,MAAM,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE;IAC9D,MAAMM,GAAG,GAAGJ,MAAM,CAACK,IAAI,CAAC,CAAC;IACzB,IAAI,CAACD,GAAG,IAAIA,GAAG,CAACE,MAAM,GAAG,GAAG,IAAIF,GAAG,CAACG,WAAW,CAAC,CAAC,CAACC,UAAU,CAAC,QAAQ,CAAC,IAAIP,KAAK,IAAI,IAAI,EAAE;IACzF,IAAIQ,MAAc;IAClB,IAAIR,KAAK,YAAYS,IAAI,EAAE;MACzB,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACX,KAAK,CAACY,OAAO,CAAC,CAAC,CAAC,EAAE;MACvCJ,MAAM,GAAGR,KAAK,CAACa,WAAW,CAAC,CAAC;IAC9B,CAAC,MAAM,IAAI,OAAOb,KAAK,KAAK,QAAQ,EAAE;MACpC,IAAI,CAACU,MAAM,CAACC,QAAQ,CAACX,KAAK,CAAC,EAAE;MAC7BQ,MAAM,GAAGM,MAAM,CAACd,KAAK,CAAC;IACxB,CAAC,MAAM,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,SAAS,EAAEQ,MAAM,GAAGM,MAAM,CAACd,KAAK,CAAC,CAAC,KACtF;IACL,IAAIQ,MAAM,CAACH,MAAM,GAAG,IAAI,EAAE;IAC1BP,MAAM,CAACK,GAAG,CAAC,GAAGK,MAAM;IACpB,IAAIP,MAAM,CAACc,IAAI,CAACjB,MAAM,CAAC,CAACO,MAAM,IAAI,EAAE,EAAE;EACxC;EACA,OAAOP,MAAM;AACf;AAEA,OAAO,SAASkB,sBAAsBA,CAACC,OAA0B,EAA0B;EACzF,MAAMpB,UAAU,GAAGD,wBAAwB,CAACqB,OAAO,EAAEpB,UAAU,CAAC;EAChE,IAAIoB,OAAO,EAAEC,gBAAgB,IAAI,IAAI,EAAE;IACrC;IACA,KAAK,MAAMf,GAAG,IAAIF,MAAM,CAACc,IAAI,CAAClB,UAAU,CAAC,EAAE,IAAIM,GAAG,CAACG,WAAW,CAAC,CAAC,KAAK,cAAc,EAAE,OAAOT,UAAU,CAACM,GAAG,CAAC;IAC3G,MAAMgB,GAAG,GAAGF,OAAO,CAACC,gBAAgB;IACpC,MAAME,IAAI,GAAGD,GAAG,YAAYV,IAAI,GAAGU,GAAG,GAAG,+CAA+C,CAACE,IAAI,CAACF,GAAG,CAAC,GAAG,IAAIV,IAAI,CAACU,GAAG,CAAC,GAAG,IAAI;IACzH,IAAIC,IAAI,IAAIV,MAAM,CAACC,QAAQ,CAACS,IAAI,CAACR,OAAO,CAAC,CAAC,CAAC,EAAE;MAC3C,IAAIX,MAAM,CAACc,IAAI,CAAClB,UAAU,CAAC,CAACQ,MAAM,IAAI,EAAE,EAAE,OAAOR,UAAU,CAACI,MAAM,CAACc,IAAI,CAAClB,UAAU,CAAC,CAAC,EAAE,CAAC,CAAE;MACzFA,UAAU,CAACyB,YAAY,GAAGF,IAAI,CAACP,WAAW,CAAC,CAAC;IAC9C;EACF;EACA,OAAOhB,UAAU;AACnB","ignoreList":[]}
|
|
@@ -132,6 +132,8 @@ export interface ConfigOptions {
|
|
|
132
132
|
export declare function configureConfig(opts: ConfigOptions): void;
|
|
133
133
|
/** Merge more defaults after configure (a late-loading module registering its own). */
|
|
134
134
|
export declare function setConfigDefaults(more: Record<string, ConfigValue>): void;
|
|
135
|
+
/** Invalidate account-scoped values and pending responses before an identity change refresh. */
|
|
136
|
+
export declare function invalidateConfigContext(): void;
|
|
135
137
|
/**
|
|
136
138
|
* Fetch, and adopt the payload if it changed. Returns true when new values were
|
|
137
139
|
* applied — false for "nothing changed" (304) and false for a failure, which are
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,8 @@ export interface DecisionContext {
|
|
|
9
9
|
language?: string;
|
|
10
10
|
osVersion?: string;
|
|
11
11
|
attributes?: Record<string, string>;
|
|
12
|
+
/** Versioned action kinds this exact app build has wired an executor for. */
|
|
13
|
+
capabilities?: string[];
|
|
12
14
|
}
|
|
13
15
|
export interface DecisionAction {
|
|
14
16
|
kind: string;
|
|
@@ -23,6 +25,12 @@ export interface PulseDecision {
|
|
|
23
25
|
reasonCode: string;
|
|
24
26
|
policyKey?: string | null;
|
|
25
27
|
policyVersion?: number | null;
|
|
28
|
+
/** Exact measured experiment to tag on downstream product events. */
|
|
29
|
+
experimentKey?: string | null;
|
|
30
|
+
/** ISO timestamp bounding the client's offline assignment cache. */
|
|
31
|
+
experimentAssignmentExpiresAt?: string | null;
|
|
32
|
+
/** Stable control/treatment arm when the policy is linked to a measured experiment. */
|
|
33
|
+
variant?: string | null;
|
|
26
34
|
action?: DecisionAction | null;
|
|
27
35
|
}
|
|
28
36
|
export interface DecisionHandlerResult {
|
|
@@ -38,6 +46,10 @@ export interface PulseDecisionClientOptions {
|
|
|
38
46
|
timeoutMs?: number;
|
|
39
47
|
/** Safe default. User-facing execution needs an explicit per-app opt-in. */
|
|
40
48
|
executionMode?: 'shadow-only' | 'allow-live';
|
|
49
|
+
/** Rechecked after every response; use a remote flag to revoke live execution. */
|
|
50
|
+
isExecutionAllowed?: () => boolean;
|
|
51
|
+
/** Local lifecycle revision. Never sent to the server. */
|
|
52
|
+
getContextRevision?: () => number;
|
|
41
53
|
handlers?: Record<string, DecisionHandler>;
|
|
42
54
|
/** Persists terminal outcomes across process death and offline periods. */
|
|
43
55
|
storage?: ConfigStorage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decisions.d.ts","sourceRoot":"","sources":["../../src/decisions.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;AACjH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE1G,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"decisions.d.ts","sourceRoot":"","sources":["../../src/decisions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type DecisionAction, type DecisionContext, type DecisionHandler, type PulseDecisionClient } from './decisions';
|
|
2
|
+
import { type ConfigStorage } from './config';
|
|
3
|
+
export interface PulseExperienceAction {
|
|
4
|
+
/** Exact capability, e.g. ad_pressure_profile:v1 or game_economy:v2. */
|
|
5
|
+
capability: string;
|
|
6
|
+
validate: (action: DecisionAction) => boolean;
|
|
7
|
+
execute: DecisionHandler;
|
|
8
|
+
/** Revoke persistent effects when the remote gate closes, identity changes, or SDK disposes. */
|
|
9
|
+
reset?: () => void;
|
|
10
|
+
}
|
|
11
|
+
export interface PulseExperienceOptions {
|
|
12
|
+
executionEnabledKey: string;
|
|
13
|
+
actions: Record<string, PulseExperienceAction>;
|
|
14
|
+
}
|
|
15
|
+
export interface PulseExperienceClient {
|
|
16
|
+
client: PulseDecisionClient;
|
|
17
|
+
capabilities: string[];
|
|
18
|
+
reset: () => void;
|
|
19
|
+
dispose: () => Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
export declare function createPulseExperiences(options: PulseExperienceOptions & {
|
|
22
|
+
apiUrl: string;
|
|
23
|
+
appSlug: string;
|
|
24
|
+
getContext: () => DecisionContext;
|
|
25
|
+
storage?: ConfigStorage;
|
|
26
|
+
onError?: (error: unknown) => void;
|
|
27
|
+
}): PulseExperienceClient;
|
|
28
|
+
//# sourceMappingURL=experiences.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"experiences.d.ts","sourceRoot":"","sources":["../../src/experiences.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACnJ,OAAO,EAAoC,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAEhF,MAAM,WAAW,qBAAqB;IACpC,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC;IAC9C,OAAO,EAAE,eAAe,CAAC;IACzB,gGAAgG;IAChG,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,GAAG;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,eAAe,CAAC;IAClC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC,GAAG,qBAAqB,CAyCxB"}
|
|
@@ -6,6 +6,8 @@ export * from './config';
|
|
|
6
6
|
export * from './track';
|
|
7
7
|
export * from './init';
|
|
8
8
|
export * from './decisions';
|
|
9
|
+
export * from './subject';
|
|
10
|
+
export * from './experiences';
|
|
9
11
|
export * from './links';
|
|
10
12
|
export * from './nativeAttribution';
|
|
11
13
|
export { DeferredLinkPasteButton } from './DeferredLinkPasteButton';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,YAAY,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,YAAY,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC"}
|
package/lib/typescript/init.d.ts
CHANGED
|
@@ -24,6 +24,9 @@
|
|
|
24
24
|
* installs — a targeting bug that looks like a rollout that "did not work".
|
|
25
25
|
*/
|
|
26
26
|
import { fetchConfig, type ConfigStorage, type ConfigValue, type ConfigSignature, getConfigInfo, getConfigBoolean, getConfigNumber, getConfigString, getConfigJson, getExposureDeliveryInfo } from './config';
|
|
27
|
+
import { type PulseUserProfile } from './subject';
|
|
28
|
+
import { type PulseExperienceOptions } from './experiences';
|
|
29
|
+
import type { PulseDecisionClient } from './decisions';
|
|
27
30
|
import { getTrackingInfo, type TrackedEventInput } from './track';
|
|
28
31
|
export interface InitPulseOptions {
|
|
29
32
|
/** Where Pulse lives, e.g. https://pulse.example.com — no path. */
|
|
@@ -54,6 +57,10 @@ export interface InitPulseOptions {
|
|
|
54
57
|
getUserId?: () => string | undefined;
|
|
55
58
|
/** Attributes a rule can target — a plan, a storefront. Keep them few and stable. */
|
|
56
59
|
getUserAttributes?: () => Record<string, string> | undefined;
|
|
60
|
+
/** Typed account context. registrationDate maps to the dashboard's registeredAt field. */
|
|
61
|
+
getUserProfile?: () => PulseUserProfile | undefined;
|
|
62
|
+
/** Versioned application actions controlled through a remote execution gate. */
|
|
63
|
+
experiences?: PulseExperienceOptions;
|
|
57
64
|
/** Initial analytics consent or a live consent reader. Defaults to granted for compatibility. */
|
|
58
65
|
analyticsConsent?: boolean | (() => boolean);
|
|
59
66
|
/** Privacy guardrails applied to every track() call. */
|
|
@@ -103,6 +110,10 @@ export interface PulseClient {
|
|
|
103
110
|
flush: () => Promise<number>;
|
|
104
111
|
setUser: (userId?: string, attributes?: Record<string, string>) => void;
|
|
105
112
|
clearUser: () => void;
|
|
113
|
+
identify: (profile: PulseUserProfile) => void;
|
|
114
|
+
/** Call after external profile readers change; clears old config and revokes applied effects. */
|
|
115
|
+
refreshContext: () => Promise<boolean>;
|
|
116
|
+
decisions?: PulseDecisionClient;
|
|
106
117
|
setAnalyticsConsent: (granted: boolean) => void;
|
|
107
118
|
resetInstallId: () => string;
|
|
108
119
|
health: () => PulseHealth;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAEL,WAAW,EAGX,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,aAAa,EACb,uBAAuB,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Scalar signals supplied by the host app. Never send contact details or credentials. */
|
|
2
|
+
export type PulseAttributeValue = string | number | boolean | Date | null | undefined;
|
|
3
|
+
export interface PulseUserProfile {
|
|
4
|
+
id: string;
|
|
5
|
+
/** Backend account creation time, never installation/update time. */
|
|
6
|
+
registrationDate?: string | Date | null;
|
|
7
|
+
attributes?: Record<string, PulseAttributeValue>;
|
|
8
|
+
}
|
|
9
|
+
/** Normalize the wire format shared by config and decisions. pulse.* belongs to the server. */
|
|
10
|
+
export declare function normalizePulseAttributes(attributes?: Record<string, PulseAttributeValue>): Record<string, string>;
|
|
11
|
+
export declare function pulseProfileAttributes(profile?: PulseUserProfile): Record<string, string>;
|
|
12
|
+
//# sourceMappingURL=subject.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subject.d.ts","sourceRoot":"","sources":["../../src/subject.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;AACtF,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAClD;AAED,+FAA+F;AAC/F,wBAAgB,wBAAwB,CACtC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAC/C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBxB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAazF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pulse-updates",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.1",
|
|
4
4
|
"description": "Pulse app-experience SDK for React Native: updates, config, experiments, events, decisions and first-party links",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
package/src/config.ts
CHANGED
|
@@ -245,6 +245,25 @@ export function setConfigDefaults(more: Record<string, ConfigValue>): void {
|
|
|
245
245
|
defaults = { ...defaults, ...more };
|
|
246
246
|
}
|
|
247
247
|
|
|
248
|
+
/** Invalidate account-scoped values and pending responses before an identity change refresh. */
|
|
249
|
+
export function invalidateConfigContext(): void {
|
|
250
|
+
configGeneration += 1;
|
|
251
|
+
inFlight = null;
|
|
252
|
+
values = {};
|
|
253
|
+
experiments = [];
|
|
254
|
+
pending = null;
|
|
255
|
+
etag = null;
|
|
256
|
+
fetchedAt = 0;
|
|
257
|
+
verifiedAt = 0;
|
|
258
|
+
source = 'defaults';
|
|
259
|
+
signatureStatus = 'not-configured';
|
|
260
|
+
signatureKeyId = null;
|
|
261
|
+
reportedExposure = null;
|
|
262
|
+
exposureSending = false;
|
|
263
|
+
if (options) writeCache(options.storage, { values: {}, experiments: [], etag: null, fetchedAt: 0 }, options.storageKey);
|
|
264
|
+
notify();
|
|
265
|
+
}
|
|
266
|
+
|
|
248
267
|
/**
|
|
249
268
|
* Fetch, and adopt the payload if it changed. Returns true when new values were
|
|
250
269
|
* applied — false for "nothing changed" (304) and false for a failure, which are
|