@joryio/web-sdk 0.0.0-stage → 1.3.0-beta.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/CHANGELOG.md +5 -0
- package/LICENSE +54 -0
- package/README.md +497 -2
- package/dist/core/config.d.ts +101 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/device.d.ts +14 -0
- package/dist/core/device.d.ts.map +1 -0
- package/dist/core/ecommerce.d.ts +67 -0
- package/dist/core/ecommerce.d.ts.map +1 -0
- package/dist/core/identity.d.ts +36 -0
- package/dist/core/identity.d.ts.map +1 -0
- package/dist/core/inapp.d.ts +169 -0
- package/dist/core/inapp.d.ts.map +1 -0
- package/dist/core/network.d.ts +158 -0
- package/dist/core/network.d.ts.map +1 -0
- package/dist/core/outbox.d.ts +79 -0
- package/dist/core/outbox.d.ts.map +1 -0
- package/dist/core/pending-attributes.d.ts +43 -0
- package/dist/core/pending-attributes.d.ts.map +1 -0
- package/dist/core/push.d.ts +59 -0
- package/dist/core/push.d.ts.map +1 -0
- package/dist/core/queue.d.ts +107 -0
- package/dist/core/queue.d.ts.map +1 -0
- package/dist/core/sdk.d.ts +169 -0
- package/dist/core/sdk.d.ts.map +1 -0
- package/dist/core/session.d.ts +36 -0
- package/dist/core/session.d.ts.map +1 -0
- package/dist/core/storage.d.ts +17 -0
- package/dist/core/storage.d.ts.map +1 -0
- package/dist/core/user.d.ts +28 -0
- package/dist/core/user.d.ts.map +1 -0
- package/dist/core/utm.d.ts +39 -0
- package/dist/core/utm.d.ts.map +1 -0
- package/dist/core/values.d.ts +3 -0
- package/dist/core/values.d.ts.map +1 -0
- package/dist/core/write-retry.d.ts +66 -0
- package/dist/core/write-retry.d.ts.map +1 -0
- package/dist/index.d.mts +711 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/joryio-sw.js +6 -0
- package/dist/joryio.cjs.js +7265 -0
- package/dist/joryio.min.js +7 -0
- package/dist/joryio.min.js.map +1 -0
- package/dist/joryio.mjs +7254 -0
- package/dist/joryio.umd.js +7271 -0
- package/dist/utils/bucket-hash.d.ts +2 -0
- package/dist/utils/bucket-hash.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +14 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/uuid.d.ts +3 -0
- package/dist/utils/uuid.d.ts.map +1 -0
- package/package.json +90 -4
- package/src/core/config.ts +362 -0
- package/src/core/device.ts +50 -0
- package/src/core/ecommerce.ts +482 -0
- package/src/core/identity.ts +251 -0
- package/src/core/inapp.ts +2419 -0
- package/src/core/network.ts +1261 -0
- package/src/core/outbox.ts +707 -0
- package/src/core/pending-attributes.ts +350 -0
- package/src/core/push.ts +667 -0
- package/src/core/queue.ts +894 -0
- package/src/core/sdk.ts +3108 -0
- package/src/core/session.ts +311 -0
- package/src/core/storage.ts +157 -0
- package/src/core/user.ts +203 -0
- package/src/core/utm.ts +304 -0
- package/src/core/values.ts +85 -0
- package/src/core/write-retry.ts +136 -0
- package/src/index.ts +305 -0
- package/src/snippet/loader.js +134 -0
- package/src/utils/bucket-hash.ts +44 -0
- package/src/utils/logger.ts +58 -0
- package/src/utils/uuid.ts +29 -0
- package/src/worker/joryio-sw.js +218 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { Logger } from '../utils/logger';
|
|
2
|
+
import type { StorageManager } from './storage';
|
|
3
|
+
import type { NetworkResponse } from './network';
|
|
4
|
+
import { WriteRecord, WriteOwner } from './write-retry';
|
|
5
|
+
export declare const OUTBOX_KEY = "write_outbox";
|
|
6
|
+
export declare const LEGACY_DEFERRED_WRITES_KEY = "deferred_writes";
|
|
7
|
+
export declare const OUTBOX_REMOVED_KEY = "write_outbox_removed";
|
|
8
|
+
export declare const MAX_OUTBOX_ENTRIES = 200;
|
|
9
|
+
export interface OutboxEntry {
|
|
10
|
+
id: string;
|
|
11
|
+
record: WriteRecord;
|
|
12
|
+
withdrawal: boolean;
|
|
13
|
+
attempts: number;
|
|
14
|
+
notFoundAttempts: number;
|
|
15
|
+
failures: number;
|
|
16
|
+
notBefore: number;
|
|
17
|
+
createdAt: number;
|
|
18
|
+
}
|
|
19
|
+
export type OutboxGate = 'send' | 'hold' | 'drop';
|
|
20
|
+
export interface OutboxDeps {
|
|
21
|
+
storage: StorageManager;
|
|
22
|
+
logger: Logger;
|
|
23
|
+
gate(entry: OutboxEntry): OutboxGate;
|
|
24
|
+
resolveOwner(owner: WriteOwner): WriteOwner;
|
|
25
|
+
ownerIsCurrentUser(owner: WriteOwner): boolean;
|
|
26
|
+
currentIdentity(): {
|
|
27
|
+
anonymousId: string;
|
|
28
|
+
userId: string | null;
|
|
29
|
+
};
|
|
30
|
+
send(entry: OutboxEntry, owner: WriteOwner): Promise<NetworkResponse>;
|
|
31
|
+
beforeSend(entry: OutboxEntry): Promise<void>;
|
|
32
|
+
isSdkAuthError(status: number, data: any): boolean;
|
|
33
|
+
onSettled?(entry: OutboxEntry, outcome: 'done' | 'drop'): void;
|
|
34
|
+
keepalive?(entry: OutboxEntry, owner: WriteOwner): number | null;
|
|
35
|
+
}
|
|
36
|
+
export declare function ownerOf(record: WriteRecord): WriteOwner;
|
|
37
|
+
export declare function subjectOf(record: WriteRecord): string | null;
|
|
38
|
+
export declare function labelOf(record: WriteRecord): string;
|
|
39
|
+
export declare class WriteOutbox {
|
|
40
|
+
private readonly deps;
|
|
41
|
+
private entries;
|
|
42
|
+
private inFlight;
|
|
43
|
+
private timer;
|
|
44
|
+
private stopped;
|
|
45
|
+
private handedOffAt;
|
|
46
|
+
private destroyed;
|
|
47
|
+
private knownIds;
|
|
48
|
+
constructor(deps: OutboxDeps);
|
|
49
|
+
enqueue(record: WriteRecord): void;
|
|
50
|
+
discardNonWithdrawals(): void;
|
|
51
|
+
persistNow(): void;
|
|
52
|
+
find(test: (entry: OutboxEntry) => boolean): OutboxEntry | undefined;
|
|
53
|
+
findLast(test: (entry: OutboxEntry) => boolean): OutboxEntry | undefined;
|
|
54
|
+
cancel(test: (entry: OutboxEntry) => boolean): void;
|
|
55
|
+
pinOwner(anonymousId: string, userId: string): void;
|
|
56
|
+
isInFlight(entry: OutboxEntry): boolean;
|
|
57
|
+
size(): number;
|
|
58
|
+
records(): WriteRecord[];
|
|
59
|
+
kick(): void;
|
|
60
|
+
handOffAtUnload(budgetBytes: number): number;
|
|
61
|
+
destroy(): void;
|
|
62
|
+
private run;
|
|
63
|
+
private safeGate;
|
|
64
|
+
private settle;
|
|
65
|
+
private remove;
|
|
66
|
+
private hasNewerOfSameSubject;
|
|
67
|
+
private effectiveUser;
|
|
68
|
+
private sameOwner;
|
|
69
|
+
private blockKey;
|
|
70
|
+
private trim;
|
|
71
|
+
private persist;
|
|
72
|
+
private removedElsewhere;
|
|
73
|
+
private readRemoved;
|
|
74
|
+
private writeRemoved;
|
|
75
|
+
private write;
|
|
76
|
+
private foreignStoredEntries;
|
|
77
|
+
private load;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=outbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outbox.d.ts","sourceRoot":"","sources":["../../src/core/outbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { AttributeOps } from './network';
|
|
2
|
+
import type { WriteOwner } from './write-retry';
|
|
3
|
+
export type AttributeOpKind = 'set' | 'unset' | 'increment' | 'append' | 'remove';
|
|
4
|
+
export interface AttributeEntry {
|
|
5
|
+
key: string;
|
|
6
|
+
kind: AttributeOpKind;
|
|
7
|
+
value?: any;
|
|
8
|
+
values?: any[];
|
|
9
|
+
inFlight?: boolean;
|
|
10
|
+
owner?: WriteOwner;
|
|
11
|
+
attempts?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface AttributeRequest {
|
|
14
|
+
ops: AttributeOps;
|
|
15
|
+
entries: AttributeEntry[];
|
|
16
|
+
owner?: WriteOwner;
|
|
17
|
+
}
|
|
18
|
+
export type OwnerResolver = (owner: WriteOwner | undefined) => WriteOwner | undefined;
|
|
19
|
+
export declare class PendingAttributes {
|
|
20
|
+
private readonly maxEntries;
|
|
21
|
+
private entries;
|
|
22
|
+
constructor(maxEntries?: number);
|
|
23
|
+
add(kind: AttributeOpKind, key: string, value?: any, owner?: WriteOwner): void;
|
|
24
|
+
mark(ops: AttributeOps, owner?: WriteOwner): void;
|
|
25
|
+
isEmpty(): boolean;
|
|
26
|
+
hasUnsent(): boolean;
|
|
27
|
+
nextRequest(resolve?: OwnerResolver): AttributeRequest | null;
|
|
28
|
+
peekRequest(resolve?: OwnerResolver): AttributeRequest | null;
|
|
29
|
+
toOps(): AttributeOps | null;
|
|
30
|
+
acknowledge(sent: AttributeEntry[]): void;
|
|
31
|
+
release(sent: AttributeEntry[], dropIncrements: boolean): number;
|
|
32
|
+
drop(sent: AttributeEntry[]): void;
|
|
33
|
+
dropIncrements(sent: AttributeEntry[]): void;
|
|
34
|
+
pending(anonymousId?: string): Record<string, any>;
|
|
35
|
+
serialize(): AttributeEntry[];
|
|
36
|
+
restore(stored: unknown): void;
|
|
37
|
+
pinOwner(anonymousId: string, userId: string): void;
|
|
38
|
+
clear(): void;
|
|
39
|
+
private build;
|
|
40
|
+
private lastFor;
|
|
41
|
+
private trim;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=pending-attributes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pending-attributes.d.ts","sourceRoot":"","sources":["../../src/core/pending-attributes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAElF,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,eAAe,CAAC;IAEtB,KAAK,CAAC,EAAE,GAAG,CAAC;IAEZ,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IAEf,QAAQ,CAAC,EAAE,OAAO,CAAC;IAQnB,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,YAAY,CAAC;IAClB,OAAO,EAAE,cAAc,EAAE,CAAC;IAE1B,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAOD,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,KAAK,UAAU,GAAG,SAAS,CAAC;AAsCtF,qBAAa,iBAAiB;IAGhB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,OAAO,CAAC,OAAO,CAAwB;gBAEV,UAAU,SAAM;IAG7C,GAAG,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,IAAI;IA6B9E,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,IAAI;IAWjD,OAAO,IAAI,OAAO;IAKlB,SAAS,IAAI,OAAO;IASpB,WAAW,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,gBAAgB,GAAG,IAAI;IAK7D,WAAW,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,gBAAgB,GAAG,IAAI;IAK7D,KAAK,IAAI,YAAY,GAAG,IAAI;IAK5B,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,IAAI;IAUzC,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,OAAO,GAAG,MAAM;IAgBhE,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,IAAI;IAKlC,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,IAAI;IAW5C,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAWlD,SAAS,IAAI,cAAc,EAAE;IAY7B,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IA2B9B,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAOnD,KAAK,IAAI,IAAI;IASb,OAAO,CAAC,KAAK;IA8Cb,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,IAAI;CAOb"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { NetworkClient } from './network';
|
|
2
|
+
import { IdentityManager } from './identity';
|
|
3
|
+
import { Logger } from '../utils/logger';
|
|
4
|
+
import type { StorageManager } from './storage';
|
|
5
|
+
export declare const PENDING_UNREGISTER_KEY = "push_pending_unregister";
|
|
6
|
+
export declare const SW_STATE_CACHE = "joryio-sdk-state";
|
|
7
|
+
export declare const SW_OPT_OUT_URL = "/__joryio/tracking-opted-out";
|
|
8
|
+
export interface PushManagerOptions {
|
|
9
|
+
canSend?: () => boolean;
|
|
10
|
+
canWithdraw?: () => boolean;
|
|
11
|
+
withdrawalUserId?: () => string | null;
|
|
12
|
+
storage?: StorageManager;
|
|
13
|
+
getDeviceId?: () => string | undefined;
|
|
14
|
+
onSubscribeSettled?: () => void;
|
|
15
|
+
}
|
|
16
|
+
export interface PushSubscribeOptions {
|
|
17
|
+
swPath?: string;
|
|
18
|
+
scope?: string;
|
|
19
|
+
}
|
|
20
|
+
export type PushPermissionState = 'granted' | 'denied' | 'notDetermined' | 'unavailable';
|
|
21
|
+
export declare class PushManager {
|
|
22
|
+
private readonly logger;
|
|
23
|
+
private readonly network;
|
|
24
|
+
private readonly identity;
|
|
25
|
+
private readonly apiEndpoint;
|
|
26
|
+
private vapidKeyCache;
|
|
27
|
+
private prepared;
|
|
28
|
+
private lastPrepareError;
|
|
29
|
+
private readonly canSend;
|
|
30
|
+
private readonly canWithdraw;
|
|
31
|
+
private readonly withdrawalUserId;
|
|
32
|
+
private readonly storage;
|
|
33
|
+
private unregisterInFlight;
|
|
34
|
+
private unregisterTimer;
|
|
35
|
+
private readonly getDeviceId;
|
|
36
|
+
private readonly onSubscribeSettled;
|
|
37
|
+
constructor(logger: Logger, network: NetworkClient, identity: IdentityManager, apiEndpoint: string, options?: PushManagerOptions);
|
|
38
|
+
isSupported(): boolean;
|
|
39
|
+
getPermissionState(): PushPermissionState;
|
|
40
|
+
getExistingSubscription(options?: PushSubscribeOptions | null): Promise<PushSubscription | null>;
|
|
41
|
+
syncExistingSubscription(force?: boolean, options?: PushSubscribeOptions | null): Promise<void>;
|
|
42
|
+
setTrackingOptedOut(optedOut: boolean): Promise<void>;
|
|
43
|
+
prepare(options?: PushSubscribeOptions | null): Promise<boolean>;
|
|
44
|
+
subscribe(options?: PushSubscribeOptions | null): Promise<PushSubscription | null>;
|
|
45
|
+
private subscribeOnce;
|
|
46
|
+
unsubscribe(options?: PushSubscribeOptions | null): Promise<boolean>;
|
|
47
|
+
forget(): Promise<void>;
|
|
48
|
+
pendingUnregisterUsers(): string[];
|
|
49
|
+
private pendingUnregisters;
|
|
50
|
+
private storePendingUnregisters;
|
|
51
|
+
retryPendingUnregister(): void;
|
|
52
|
+
private sendPendingUnregister;
|
|
53
|
+
destroy(): void;
|
|
54
|
+
private logRegisterFailure;
|
|
55
|
+
private subscriptionKeyMatches;
|
|
56
|
+
private fetchVapidPublicKey;
|
|
57
|
+
private registerWithBackend;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=push.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/core/push.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { StorageManager } from './storage';
|
|
2
|
+
import { Logger } from '../utils/logger';
|
|
3
|
+
export declare const QUEUE_KEY = "event_queue";
|
|
4
|
+
export declare const INFLIGHT_KEY = "event_queue_inflight";
|
|
5
|
+
export declare const PENDING_IDENTIFY_KEY = "pending_identify";
|
|
6
|
+
export declare const MAX_EVENTS_PER_REQUEST = 500;
|
|
7
|
+
export declare const MAX_REQUEST_BYTES: number;
|
|
8
|
+
export interface QueuedEvent {
|
|
9
|
+
eventId: string;
|
|
10
|
+
type: string;
|
|
11
|
+
properties?: Record<string, any>;
|
|
12
|
+
timestamp: string | number;
|
|
13
|
+
userId?: string | null;
|
|
14
|
+
anonymousId: string;
|
|
15
|
+
sessionId?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface PendingIdentify {
|
|
18
|
+
userId: string;
|
|
19
|
+
anonymousId: string;
|
|
20
|
+
attributes?: Record<string, any>;
|
|
21
|
+
attempts?: number;
|
|
22
|
+
}
|
|
23
|
+
export declare const MAX_IDENTIFY_ATTEMPTS = 10;
|
|
24
|
+
export type FlushOutcome = {
|
|
25
|
+
status: 'ok';
|
|
26
|
+
failedIndices?: number[];
|
|
27
|
+
rejectedIndices?: number[];
|
|
28
|
+
identifyFailed?: boolean;
|
|
29
|
+
identifyAttemptCounts?: boolean;
|
|
30
|
+
identifyDropped?: boolean;
|
|
31
|
+
} | {
|
|
32
|
+
status: 'rejected';
|
|
33
|
+
httpStatus?: number;
|
|
34
|
+
} | {
|
|
35
|
+
status: 'retry';
|
|
36
|
+
retryAfterMs?: number;
|
|
37
|
+
counts?: boolean;
|
|
38
|
+
} | {
|
|
39
|
+
status: 'suspended';
|
|
40
|
+
reason?: string;
|
|
41
|
+
} | {
|
|
42
|
+
status: 'dropped';
|
|
43
|
+
reason?: string;
|
|
44
|
+
};
|
|
45
|
+
export type FlushCallback = (events: QueuedEvent[], identify?: PendingIdentify) => Promise<FlushOutcome | void>;
|
|
46
|
+
export declare class QueueManager {
|
|
47
|
+
private storage;
|
|
48
|
+
private logger;
|
|
49
|
+
private queue;
|
|
50
|
+
private batchSize;
|
|
51
|
+
private flushInterval;
|
|
52
|
+
private flushTimer;
|
|
53
|
+
private flushCallback;
|
|
54
|
+
private persistQueue;
|
|
55
|
+
private maxQueueSize;
|
|
56
|
+
private retryBackoffMs;
|
|
57
|
+
private pendingPersist;
|
|
58
|
+
private persistTimer;
|
|
59
|
+
private isFlushing;
|
|
60
|
+
private flushWaiters;
|
|
61
|
+
private pendingIdentifies;
|
|
62
|
+
private inflightEvents;
|
|
63
|
+
private paused;
|
|
64
|
+
private suspended;
|
|
65
|
+
private consecutiveFailures;
|
|
66
|
+
private nextAttemptAt;
|
|
67
|
+
private retryAfterUntil;
|
|
68
|
+
private generation;
|
|
69
|
+
private clearedInflightCallback;
|
|
70
|
+
constructor(storage: StorageManager, logger: Logger, batchSize: number, flushInterval: number, persistQueue?: boolean, maxQueueSize?: number, retryBackoffMs?: number);
|
|
71
|
+
setFlushCallback(callback: FlushCallback): void;
|
|
72
|
+
setPaused(paused: boolean): void;
|
|
73
|
+
isPaused(): boolean;
|
|
74
|
+
isSuspended(): boolean;
|
|
75
|
+
isBackingOff(): boolean;
|
|
76
|
+
resetBackoff(): void;
|
|
77
|
+
setPendingIdentify(identify: PendingIdentify): void;
|
|
78
|
+
private persistIdentifies;
|
|
79
|
+
getPendingIdentify(): PendingIdentify | null;
|
|
80
|
+
getPendingIdentifies(): PendingIdentify[];
|
|
81
|
+
private removeIdentify;
|
|
82
|
+
private identifyAttemptFailed;
|
|
83
|
+
start(): void;
|
|
84
|
+
isStarted(): boolean;
|
|
85
|
+
stop(): void;
|
|
86
|
+
enqueue(event: QueuedEvent): void;
|
|
87
|
+
private trimToMax;
|
|
88
|
+
private takeBatch;
|
|
89
|
+
private restoreToFront;
|
|
90
|
+
private backOff;
|
|
91
|
+
private sendBatch;
|
|
92
|
+
flush(throwOnError?: boolean, force?: boolean): Promise<void>;
|
|
93
|
+
private persistQueueToStorage;
|
|
94
|
+
private schedulePersist;
|
|
95
|
+
persistNow(): void;
|
|
96
|
+
private persistInflightToStorage;
|
|
97
|
+
getQueueSize(): number;
|
|
98
|
+
getQueuedEvents(): QueuedEvent[];
|
|
99
|
+
getWaitingEvents(): QueuedEvent[];
|
|
100
|
+
getInflightEvents(): QueuedEvent[];
|
|
101
|
+
setClearedInflightCallback(cb: ((delivered: QueuedEvent[]) => void) | null): void;
|
|
102
|
+
markHandedOff(events: QueuedEvent[], identify: PendingIdentify | null): void;
|
|
103
|
+
takeBack(events: QueuedEvent[], identify: PendingIdentify | null): void;
|
|
104
|
+
clear(): void;
|
|
105
|
+
destroy(): Promise<void>;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/core/queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { InitConfig } from './config';
|
|
2
|
+
import { SdkAuthFailureCallback } from './network';
|
|
3
|
+
import { InAppCampaign } from './inapp';
|
|
4
|
+
import { User } from './user';
|
|
5
|
+
import { EcommerceTracker, EcommerceConfig } from './ecommerce';
|
|
6
|
+
import { PushManager } from './push';
|
|
7
|
+
export declare const PRE_INIT_BASELINE: WeakMap<object, {
|
|
8
|
+
optedOut: boolean;
|
|
9
|
+
consent: TrackingConsent;
|
|
10
|
+
}>;
|
|
11
|
+
export type DataGateReason = 'optedOut' | 'denied' | 'purged';
|
|
12
|
+
export declare function runWithDataCallsDropped(sdk: JoryioSDK, reasons: Iterable<DataGateReason>, run: () => void): void;
|
|
13
|
+
export declare const TRACKING_OPTED_OUT_ATTRIBUTE = "tracking_opted_out";
|
|
14
|
+
export declare const EVENT_PROPERTY_LIMITS: {
|
|
15
|
+
readonly maxJsonChars: 51200;
|
|
16
|
+
readonly maxKeys: 200;
|
|
17
|
+
readonly maxDepth: 5;
|
|
18
|
+
};
|
|
19
|
+
export declare function eventPropertiesProblem(properties: Record<string, any>): string | null;
|
|
20
|
+
export type TrackingConsent = 'granted' | 'denied' | 'pending';
|
|
21
|
+
export type PreInitDecision = {
|
|
22
|
+
method: 'optOut';
|
|
23
|
+
} | {
|
|
24
|
+
method: 'optIn';
|
|
25
|
+
} | {
|
|
26
|
+
method: 'updateConsent';
|
|
27
|
+
consent: TrackingConsent;
|
|
28
|
+
} | {
|
|
29
|
+
method: 'wipeData';
|
|
30
|
+
};
|
|
31
|
+
export declare class JoryioSDK {
|
|
32
|
+
private static instance;
|
|
33
|
+
private config;
|
|
34
|
+
private logger;
|
|
35
|
+
private storage;
|
|
36
|
+
private session;
|
|
37
|
+
private static readonly ATTRIBUTE_FLUSH_DEBOUNCE_MS;
|
|
38
|
+
private attributeFlushTimer;
|
|
39
|
+
private attributeFlushInFlight;
|
|
40
|
+
private attributeFlushAgain;
|
|
41
|
+
private attributeGeneration;
|
|
42
|
+
private attributeFailures;
|
|
43
|
+
private identity;
|
|
44
|
+
private queue;
|
|
45
|
+
private network;
|
|
46
|
+
private utm;
|
|
47
|
+
private inapp;
|
|
48
|
+
private _user;
|
|
49
|
+
private _push;
|
|
50
|
+
private _ecommerce;
|
|
51
|
+
private isInitialized;
|
|
52
|
+
private isOptedOut;
|
|
53
|
+
private disabled;
|
|
54
|
+
private consentPending;
|
|
55
|
+
private userOptedOut;
|
|
56
|
+
private dntEnabled;
|
|
57
|
+
private trackingConsent;
|
|
58
|
+
private outbox;
|
|
59
|
+
private lastTrackedUrl;
|
|
60
|
+
private deviceId;
|
|
61
|
+
private boundHandlePageUnload;
|
|
62
|
+
private boundHandleOnline;
|
|
63
|
+
private boundHandleStorage;
|
|
64
|
+
private withdrawalUserId;
|
|
65
|
+
private optedOutAt;
|
|
66
|
+
private consentDeniedAt;
|
|
67
|
+
private lastDecisionStamp;
|
|
68
|
+
private awaitingSessionOf;
|
|
69
|
+
private pruneTimer;
|
|
70
|
+
constructor(config: InitConfig, preInit?: PreInitDecision[]);
|
|
71
|
+
private createOutbox;
|
|
72
|
+
private currentOwner;
|
|
73
|
+
private effectiveUserId;
|
|
74
|
+
private deferIdentify;
|
|
75
|
+
private releaseDeferredIdentify;
|
|
76
|
+
private forgetDeferredIdentify;
|
|
77
|
+
private scheduleRetiredTokenPrune;
|
|
78
|
+
private pruneRetiredTokens;
|
|
79
|
+
private handleStorageEvent;
|
|
80
|
+
private repersistPrivacyDecisions;
|
|
81
|
+
private storedStamp;
|
|
82
|
+
private noteDecisionStamps;
|
|
83
|
+
private nextDecisionStamp;
|
|
84
|
+
private storedOptOut;
|
|
85
|
+
private storedDenial;
|
|
86
|
+
private writeOptOut;
|
|
87
|
+
private writeOptIn;
|
|
88
|
+
private writeDenial;
|
|
89
|
+
private writeGrant;
|
|
90
|
+
private resolveOwner;
|
|
91
|
+
private pinAnonymousWrites;
|
|
92
|
+
private writeRequest;
|
|
93
|
+
private markerOps;
|
|
94
|
+
private sendWrite;
|
|
95
|
+
private onWriteSettled;
|
|
96
|
+
private syncWorkerReporting;
|
|
97
|
+
private initialConsent;
|
|
98
|
+
private storeConsent;
|
|
99
|
+
private applyPreInitDecision;
|
|
100
|
+
getTrackingConsent(): TrackingConsent;
|
|
101
|
+
isUserOptedOut(): boolean;
|
|
102
|
+
private syncOptOutMarker;
|
|
103
|
+
private recomputePrivacy;
|
|
104
|
+
private canSend;
|
|
105
|
+
private applyPrivacyState;
|
|
106
|
+
private releaseHeldWrites;
|
|
107
|
+
private runWrite;
|
|
108
|
+
private restoreAttributeWrites;
|
|
109
|
+
private persistAttributeWrites;
|
|
110
|
+
private flushQueueForWrite;
|
|
111
|
+
private trackSessionStart;
|
|
112
|
+
private trackSessionStartIfMissing;
|
|
113
|
+
private getOrCreateDeviceId;
|
|
114
|
+
private trackPageView;
|
|
115
|
+
track(eventName: string, properties?: Record<string, any>): void;
|
|
116
|
+
identify(userId: string): void;
|
|
117
|
+
addAlias(aliasLabel: string, aliasName: string): void;
|
|
118
|
+
setAttributes(attributes: Record<string, any>): void;
|
|
119
|
+
private sendAttributesAfterPendingIdentify;
|
|
120
|
+
private scheduleAttributeFlush;
|
|
121
|
+
private clearPendingAttributeWrites;
|
|
122
|
+
private flushAttributeOps;
|
|
123
|
+
private attributeRetryDelay;
|
|
124
|
+
private reportPushPermissionIfChanged;
|
|
125
|
+
setAttribute(key: string, value: any): void;
|
|
126
|
+
incrementAttribute(key: string, value?: number): void;
|
|
127
|
+
unsetAttribute(key: string): void;
|
|
128
|
+
addToArray(key: string, value: any): void;
|
|
129
|
+
removeFromArray(key: string, value: any): void;
|
|
130
|
+
reset(): Promise<void>;
|
|
131
|
+
wipeData(): Promise<void>;
|
|
132
|
+
private wipeLocalState;
|
|
133
|
+
private resyncInApp;
|
|
134
|
+
flush(): Promise<void>;
|
|
135
|
+
private flushEvents;
|
|
136
|
+
private classifyFailure;
|
|
137
|
+
private handlePageUnload;
|
|
138
|
+
private sendAttributesAtUnload;
|
|
139
|
+
optOut(): void;
|
|
140
|
+
optIn(): void;
|
|
141
|
+
updateConsent(consent: TrackingConsent): void;
|
|
142
|
+
private isDoNotTrackEnabled;
|
|
143
|
+
private loadPlugins;
|
|
144
|
+
private unloadPlugins;
|
|
145
|
+
get user(): User;
|
|
146
|
+
get push(): PushManager;
|
|
147
|
+
ecommerce(config?: EcommerceConfig): EcommerceTracker;
|
|
148
|
+
setSdkAuthenticationToken(token: string): void;
|
|
149
|
+
setSdkAuthenticationErrorCallback(cb: SdkAuthFailureCallback): void;
|
|
150
|
+
getAnonymousId(): string;
|
|
151
|
+
getUserId(): string | null;
|
|
152
|
+
private dataGate;
|
|
153
|
+
private liftDataGate;
|
|
154
|
+
private inflightSessionStartAtClear;
|
|
155
|
+
private isDroppingDataCalls;
|
|
156
|
+
ready(callback: (sdk: JoryioSDK) => void): void;
|
|
157
|
+
getIdentity(): import("./identity").UserIdentity;
|
|
158
|
+
getSessionInfo(): import("./session").SessionInfo;
|
|
159
|
+
getUTMData(): import("./utm").UTMData;
|
|
160
|
+
updateUTM(): void;
|
|
161
|
+
syncInAppCampaigns(attributeChanges?: Record<string, any>): Promise<void>;
|
|
162
|
+
getInAppCampaigns(): InAppCampaign[];
|
|
163
|
+
displayInAppCampaign(campaignId: string): Promise<void>;
|
|
164
|
+
dismissInAppMessage(campaignId: string): void;
|
|
165
|
+
trackInAppConversion(campaignId: string, eventName: string): Promise<void>;
|
|
166
|
+
destroy(): Promise<void>;
|
|
167
|
+
static getInstance(): JoryioSDK | null;
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=sdk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/core/sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { StorageManager } from './storage';
|
|
2
|
+
import { Logger } from '../utils/logger';
|
|
3
|
+
export declare const SESSION_ID_KEY = "session_id";
|
|
4
|
+
export interface SessionInfo {
|
|
5
|
+
sessionId: string;
|
|
6
|
+
sessionStart: number;
|
|
7
|
+
lastActivity: number;
|
|
8
|
+
isNewSession: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare class SessionManager {
|
|
11
|
+
private storage;
|
|
12
|
+
private logger;
|
|
13
|
+
private sessionTimeoutMs;
|
|
14
|
+
private currentSessionId;
|
|
15
|
+
private lastActivityAt;
|
|
16
|
+
private lastActivityPersistedAt;
|
|
17
|
+
private isNewSession;
|
|
18
|
+
private onNewSessionCallback;
|
|
19
|
+
private boundVisibilityHandler;
|
|
20
|
+
constructor(storage: StorageManager, logger: Logger, sessionTimeoutMs?: number);
|
|
21
|
+
onNewSession(callback: () => void): void;
|
|
22
|
+
private initializeSession;
|
|
23
|
+
private startNewSession;
|
|
24
|
+
private checkAndRefreshSession;
|
|
25
|
+
refreshIfExpired(): boolean;
|
|
26
|
+
updateActivity(): void;
|
|
27
|
+
getSessionInfo(): SessionInfo;
|
|
28
|
+
getSessionId(): string;
|
|
29
|
+
ensureSession(): string;
|
|
30
|
+
followStoredSession(): boolean;
|
|
31
|
+
renewSession(): void;
|
|
32
|
+
resetSession(): void;
|
|
33
|
+
clear(): void;
|
|
34
|
+
destroy(): void;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,eAAO,MAAM,cAAc,eAAe,CAAC;AAY3C,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,gBAAgB,CAAuB;IAE/C,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,uBAAuB,CAAK;IACpC,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,sBAAsB,CAA6B;gBAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM;IAsB9E,YAAY,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAOxC,OAAO,CAAC,iBAAiB;IAiCzB,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,sBAAsB;IA2B9B,gBAAgB,IAAI,OAAO;IAuB3B,cAAc,IAAI,IAAI;IAuBtB,cAAc,IAAI,WAAW;IAsB7B,YAAY,IAAI,MAAM;IAYtB,aAAa,IAAI,MAAM;IA4BvB,mBAAmB,IAAI,OAAO;IAc9B,YAAY,IAAI,IAAI;IAQpB,YAAY,IAAI,IAAI;IAUpB,KAAK,IAAI,IAAI;IAab,OAAO,IAAI,IAAI;CAMhB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Logger } from '../utils/logger';
|
|
2
|
+
export declare class StorageManager {
|
|
3
|
+
private prefix;
|
|
4
|
+
private memoryStore;
|
|
5
|
+
private isLocalStorageAvailable;
|
|
6
|
+
private logger;
|
|
7
|
+
private static hashKey;
|
|
8
|
+
constructor(sdkKey: string, logger: Logger);
|
|
9
|
+
private checkLocalStorageAvailable;
|
|
10
|
+
private getKey;
|
|
11
|
+
storageKeyFor(key: string): string;
|
|
12
|
+
set<T>(key: string, value: T, expiresInDays?: number): void;
|
|
13
|
+
get<T>(key: string): T | null;
|
|
14
|
+
remove(key: string): void;
|
|
15
|
+
clear(): void;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/core/storage.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAQzC,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,uBAAuB,CAAU;IACzC,OAAO,CAAC,MAAM,CAAS;IAoBvB,OAAO,CAAC,MAAM,CAAC,OAAO;gBAIV,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAU1C,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,MAAM;IAKd,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIlC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IA4B3D,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IA6B7B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAWzB,KAAK,IAAI,IAAI;CAkBd"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Logger } from '../utils/logger';
|
|
2
|
+
import { NetworkClient } from './network';
|
|
3
|
+
import { IdentityManager } from './identity';
|
|
4
|
+
import type { WriteRunner } from './write-retry';
|
|
5
|
+
export declare enum SubscriptionStatus {
|
|
6
|
+
OPTED_IN = "optedIn",
|
|
7
|
+
SUBSCRIBED = "subscribed",
|
|
8
|
+
UNSUBSCRIBED = "unsubscribed"
|
|
9
|
+
}
|
|
10
|
+
export type SubscriptionChannel = 'email' | 'sms' | 'whatsapp' | 'push' | 'viber';
|
|
11
|
+
export declare const SUBSCRIPTION_CHANNELS: readonly SubscriptionChannel[];
|
|
12
|
+
export type SubscriptionPreferences = Partial<Record<SubscriptionChannel, SubscriptionStatus>>;
|
|
13
|
+
export declare class User {
|
|
14
|
+
private logger;
|
|
15
|
+
private network;
|
|
16
|
+
private identity;
|
|
17
|
+
private apiEndpoint;
|
|
18
|
+
private runWrite;
|
|
19
|
+
constructor(logger: Logger, network: NetworkClient, identity: IdentityManager, apiEndpoint: string, runWrite?: WriteRunner);
|
|
20
|
+
private sendOnce;
|
|
21
|
+
private ids;
|
|
22
|
+
setSubscription(channel: SubscriptionChannel, status: SubscriptionStatus): void;
|
|
23
|
+
setSubscriptions(preferences: SubscriptionPreferences): void;
|
|
24
|
+
addToSubscriptionGroup(groupId: string, channel?: SubscriptionChannel): void;
|
|
25
|
+
removeFromSubscriptionGroup(groupId: string, channel?: SubscriptionChannel): void;
|
|
26
|
+
private updateGroup;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/core/user.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,eAAe,CAAC;AAQ9D,oBAAY,kBAAkB;IAK5B,QAAQ,YAAY;IACpB,UAAU,eAAe;IACzB,YAAY,iBAAiB;CAC9B;AAaD,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAGlF,eAAO,MAAM,qBAAqB,EAAE,SAAS,mBAAmB,EAM/D,CAAC;AAKF,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAE/F,qBAAa,IAAI;IACf,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAc;gBAG5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,WAAW;IAoBxB,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,GAAG;IAcX,eAAe,CAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAmC/E,gBAAgB,CAAC,WAAW,EAAE,uBAAuB,GAAG,IAAI;IAqB5D,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,mBAA6B,GAAG,IAAI;IAarF,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,mBAA6B,GAAG,IAAI;IAI1F,OAAO,CAAC,WAAW;CAgBpB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { StorageManager } from './storage';
|
|
2
|
+
import { Logger } from '../utils/logger';
|
|
3
|
+
export interface UTMParameters {
|
|
4
|
+
utm_source?: string;
|
|
5
|
+
utm_medium?: string;
|
|
6
|
+
utm_campaign?: string;
|
|
7
|
+
utm_content?: string;
|
|
8
|
+
utm_term?: string;
|
|
9
|
+
referrer?: string;
|
|
10
|
+
landing_page?: string;
|
|
11
|
+
captured_at?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface UTMData {
|
|
14
|
+
current: UTMParameters | null;
|
|
15
|
+
firstTouch: UTMParameters | null;
|
|
16
|
+
lastTouch: UTMParameters | null;
|
|
17
|
+
}
|
|
18
|
+
export declare class UTMManager {
|
|
19
|
+
private storage;
|
|
20
|
+
private logger;
|
|
21
|
+
private resetSessionOnNewCampaign;
|
|
22
|
+
private newCampaignDetected;
|
|
23
|
+
constructor(storage: StorageManager, logger: Logger, resetSessionOnNewCampaign?: boolean);
|
|
24
|
+
private captureUTMParameters;
|
|
25
|
+
getUTMData(): UTMData;
|
|
26
|
+
getCurrentUTM(): UTMParameters | null;
|
|
27
|
+
getFirstTouchUTM(): UTMParameters | null;
|
|
28
|
+
getLastTouchUTM(): UTMParameters | null;
|
|
29
|
+
getSessionReferrer(): string | null;
|
|
30
|
+
getSessionLandingPage(): string | null;
|
|
31
|
+
hasNewCampaign(): boolean;
|
|
32
|
+
private detectNewCampaign;
|
|
33
|
+
updateUTM(): void;
|
|
34
|
+
clearSessionUTM(): void;
|
|
35
|
+
clearAllUTM(): void;
|
|
36
|
+
reset(): void;
|
|
37
|
+
getUTMProperties(): Record<string, any>;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=utm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utm.d.ts","sourceRoot":"","sources":["../../src/core/utm.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAQzC,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,aAAa,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;CACjC;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,yBAAyB,CAAU;IAI3C,OAAO,CAAC,mBAAmB,CAAkB;gBAG3C,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,EACd,yBAAyB,GAAE,OAAe;IAoB5C,OAAO,CAAC,oBAAoB;IAgE5B,UAAU,IAAI,OAAO;IAWrB,aAAa,IAAI,aAAa,GAAG,IAAI;IAOrC,gBAAgB,IAAI,aAAa,GAAG,IAAI;IAOxC,eAAe,IAAI,aAAa,GAAG,IAAI;IAOvC,kBAAkB,IAAI,MAAM,GAAG,IAAI;IAOnC,qBAAqB,IAAI,MAAM,GAAG,IAAI;IAUtC,cAAc,IAAI,OAAO;IASzB,OAAO,CAAC,iBAAiB;IAmCzB,SAAS,IAAI,IAAI;IAUjB,eAAe,IAAI,IAAI;IAUvB,WAAW,IAAI,IAAI;IAYnB,KAAK,IAAI,IAAI;IAOb,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CA4CxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/core/values.ts"],"names":[],"mappings":"AAkBA,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CA8C1D;AAMD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAC3C,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAWrB"}
|