trodo-node 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/README.md +192 -0
- package/dist/cjs/TrodoClient.js +113 -0
- package/dist/cjs/TrodoClient.js.map +1 -0
- package/dist/cjs/UserContext.js +166 -0
- package/dist/cjs/UserContext.js.map +1 -0
- package/dist/cjs/api/ApiClient.js +144 -0
- package/dist/cjs/api/ApiClient.js.map +1 -0
- package/dist/cjs/api/endpoints.js +26 -0
- package/dist/cjs/api/endpoints.js.map +1 -0
- package/dist/cjs/auto/AutoEventManager.js +70 -0
- package/dist/cjs/auto/AutoEventManager.js.map +1 -0
- package/dist/cjs/index.js +141 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/managers/GroupManager.js +84 -0
- package/dist/cjs/managers/GroupManager.js.map +1 -0
- package/dist/cjs/managers/PeopleManager.js +75 -0
- package/dist/cjs/managers/PeopleManager.js.map +1 -0
- package/dist/cjs/queue/BatchFlusher.js +35 -0
- package/dist/cjs/queue/BatchFlusher.js.map +1 -0
- package/dist/cjs/queue/EventQueue.js +27 -0
- package/dist/cjs/queue/EventQueue.js.map +1 -0
- package/dist/cjs/session/ServerSession.js +113 -0
- package/dist/cjs/session/ServerSession.js.map +1 -0
- package/dist/cjs/session/SessionManager.js +54 -0
- package/dist/cjs/session/SessionManager.js.map +1 -0
- package/dist/cjs/types/index.js +6 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/esm/TrodoClient.d.ts +39 -0
- package/dist/esm/TrodoClient.d.ts.map +1 -0
- package/dist/esm/TrodoClient.js +109 -0
- package/dist/esm/TrodoClient.js.map +1 -0
- package/dist/esm/UserContext.d.ts +40 -0
- package/dist/esm/UserContext.d.ts.map +1 -0
- package/dist/esm/UserContext.js +162 -0
- package/dist/esm/UserContext.js.map +1 -0
- package/dist/esm/api/ApiClient.d.ts +40 -0
- package/dist/esm/api/ApiClient.d.ts.map +1 -0
- package/dist/esm/api/ApiClient.js +107 -0
- package/dist/esm/api/ApiClient.js.map +1 -0
- package/dist/esm/api/endpoints.d.ts +24 -0
- package/dist/esm/api/endpoints.d.ts.map +1 -0
- package/dist/esm/api/endpoints.js +23 -0
- package/dist/esm/api/endpoints.js.map +1 -0
- package/dist/esm/auto/AutoEventManager.d.ts +16 -0
- package/dist/esm/auto/AutoEventManager.d.ts.map +1 -0
- package/dist/esm/auto/AutoEventManager.js +66 -0
- package/dist/esm/auto/AutoEventManager.js.map +1 -0
- package/dist/esm/index.d.ts +81 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +108 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/managers/GroupManager.d.ts +14 -0
- package/dist/esm/managers/GroupManager.d.ts.map +1 -0
- package/dist/esm/managers/GroupManager.js +80 -0
- package/dist/esm/managers/GroupManager.js.map +1 -0
- package/dist/esm/managers/PeopleManager.d.ts +20 -0
- package/dist/esm/managers/PeopleManager.d.ts.map +1 -0
- package/dist/esm/managers/PeopleManager.js +71 -0
- package/dist/esm/managers/PeopleManager.js.map +1 -0
- package/dist/esm/queue/BatchFlusher.d.ts +13 -0
- package/dist/esm/queue/BatchFlusher.d.ts.map +1 -0
- package/dist/esm/queue/BatchFlusher.js +31 -0
- package/dist/esm/queue/BatchFlusher.js.map +1 -0
- package/dist/esm/queue/EventQueue.d.ts +14 -0
- package/dist/esm/queue/EventQueue.d.ts.map +1 -0
- package/dist/esm/queue/EventQueue.js +23 -0
- package/dist/esm/queue/EventQueue.js.map +1 -0
- package/dist/esm/session/ServerSession.d.ts +6 -0
- package/dist/esm/session/ServerSession.d.ts.map +1 -0
- package/dist/esm/session/ServerSession.js +74 -0
- package/dist/esm/session/ServerSession.js.map +1 -0
- package/dist/esm/session/SessionManager.d.ts +12 -0
- package/dist/esm/session/SessionManager.d.ts.map +1 -0
- package/dist/esm/session/SessionManager.js +50 -0
- package/dist/esm/session/SessionManager.js.map +1 -0
- package/dist/esm/types/index.d.ts +110 -0
- package/dist/esm/types/index.d.ts.map +1 -0
- package/dist/esm/types/index.js +5 -0
- package/dist/esm/types/index.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { nowIso } from '../session/ServerSession.js';
|
|
2
|
+
export class AutoEventManager {
|
|
3
|
+
constructor(siteId, apiClient, sessionManager) {
|
|
4
|
+
this.enabled = false;
|
|
5
|
+
this._uncaughtHandler = null;
|
|
6
|
+
this._rejectionHandler = null;
|
|
7
|
+
this.siteId = siteId;
|
|
8
|
+
this.apiClient = apiClient;
|
|
9
|
+
this.sessionManager = sessionManager;
|
|
10
|
+
}
|
|
11
|
+
enable() {
|
|
12
|
+
if (this.enabled)
|
|
13
|
+
return;
|
|
14
|
+
this.enabled = true;
|
|
15
|
+
this._uncaughtHandler = (err) => {
|
|
16
|
+
void this.trackError(err, 'UncaughtException', 'critical');
|
|
17
|
+
};
|
|
18
|
+
this._rejectionHandler = (reason) => {
|
|
19
|
+
const err = reason instanceof Error ? reason : new Error(String(reason));
|
|
20
|
+
void this.trackError(err, 'UnhandledRejection', 'critical');
|
|
21
|
+
};
|
|
22
|
+
process.on('uncaughtException', this._uncaughtHandler);
|
|
23
|
+
process.on('unhandledRejection', this._rejectionHandler);
|
|
24
|
+
}
|
|
25
|
+
disable() {
|
|
26
|
+
if (!this.enabled)
|
|
27
|
+
return;
|
|
28
|
+
this.enabled = false;
|
|
29
|
+
if (this._uncaughtHandler) {
|
|
30
|
+
process.removeListener('uncaughtException', this._uncaughtHandler);
|
|
31
|
+
this._uncaughtHandler = null;
|
|
32
|
+
}
|
|
33
|
+
if (this._rejectionHandler) {
|
|
34
|
+
process.removeListener('unhandledRejection', this._rejectionHandler);
|
|
35
|
+
this._rejectionHandler = null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
isEnabled() {
|
|
39
|
+
return this.enabled;
|
|
40
|
+
}
|
|
41
|
+
async trackError(err, errorType, severity, distinctId = 'server_global') {
|
|
42
|
+
const session = await this.sessionManager.getOrCreate(distinctId, this.siteId);
|
|
43
|
+
await this.sessionManager.ensureConfirmed(session, this.apiClient);
|
|
44
|
+
const event = {
|
|
45
|
+
event_type: 'auto',
|
|
46
|
+
event_name: 'server_error',
|
|
47
|
+
event_category: 'error',
|
|
48
|
+
session_id: session.sessionId,
|
|
49
|
+
user_id: session.distinctId,
|
|
50
|
+
custom_properties: {
|
|
51
|
+
error_type: errorType,
|
|
52
|
+
message: err.message,
|
|
53
|
+
stack: err.stack ?? null,
|
|
54
|
+
runtime: 'nodejs',
|
|
55
|
+
severity,
|
|
56
|
+
timestamp: nowIso(),
|
|
57
|
+
},
|
|
58
|
+
page_data: null,
|
|
59
|
+
auto_event_data: null,
|
|
60
|
+
element_data: null,
|
|
61
|
+
override_data: null,
|
|
62
|
+
};
|
|
63
|
+
await this.apiClient.postEvent(event);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=AutoEventManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AutoEventManager.js","sourceRoot":"","sources":["../../../src/auto/AutoEventManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* trodo-node — Trodo Analytics SDK for Node.js
|
|
3
|
+
*
|
|
4
|
+
* Usage (singleton):
|
|
5
|
+
* import trodo from 'trodo-node';
|
|
6
|
+
* trodo.init({ siteId: 'your-site-id' });
|
|
7
|
+
* const user = trodo.forUser('user-123');
|
|
8
|
+
* await user.track('purchase_completed', { amount: 99.99 });
|
|
9
|
+
*
|
|
10
|
+
* Usage (class):
|
|
11
|
+
* import { TrodoClient } from 'trodo-node';
|
|
12
|
+
* const client = new TrodoClient({ siteId: 'your-site-id' });
|
|
13
|
+
*/
|
|
14
|
+
export { TrodoClient } from './TrodoClient.js';
|
|
15
|
+
export { UserContext } from './UserContext.js';
|
|
16
|
+
export * from './types/index.js';
|
|
17
|
+
import { TrodoClient } from './TrodoClient.js';
|
|
18
|
+
import type { TrodoConfig, ForUserOptions, TrackOptions, IdentifyResult, WalletAddressResult, ResetResult, ApiResult, GroupProfile } from './types/index.js';
|
|
19
|
+
import type { UserContext } from './UserContext.js';
|
|
20
|
+
/** Initialise the singleton SDK instance. Returns the client for chaining. */
|
|
21
|
+
export declare function init(config: TrodoConfig): TrodoClient;
|
|
22
|
+
/** Return a UserContext bound to the given distinctId. */
|
|
23
|
+
export declare function forUser(distinctId: string, options?: ForUserOptions): UserContext;
|
|
24
|
+
/** Track an event for a user (direct-call pattern). */
|
|
25
|
+
export declare function track(distinctId: string, eventName: string, properties?: Record<string, unknown>, options?: TrackOptions): Promise<void>;
|
|
26
|
+
/** Alias a user's distinctId to an external identifier. */
|
|
27
|
+
export declare function identify(distinctId: string, identifyId: string): Promise<IdentifyResult>;
|
|
28
|
+
/** Associate a wallet address with a user. */
|
|
29
|
+
export declare function walletAddress(distinctId: string, walletAddr: string): Promise<WalletAddressResult>;
|
|
30
|
+
/** Reset a user's session. */
|
|
31
|
+
export declare function reset(distinctId: string): Promise<ResetResult>;
|
|
32
|
+
export declare const people: {
|
|
33
|
+
set: (d: string, p: Record<string, unknown>) => Promise<ApiResult>;
|
|
34
|
+
setOnce: (d: string, p: Record<string, unknown>) => Promise<ApiResult>;
|
|
35
|
+
unset: (d: string, k: string | string[]) => Promise<ApiResult>;
|
|
36
|
+
increment: (d: string, k: string, a?: number) => Promise<ApiResult>;
|
|
37
|
+
append: (d: string, k: string, v: unknown[]) => Promise<ApiResult>;
|
|
38
|
+
union: (d: string, k: string, v: unknown[]) => Promise<ApiResult>;
|
|
39
|
+
remove: (d: string, k: string, v: unknown[]) => Promise<ApiResult>;
|
|
40
|
+
trackCharge: (d: string, a: number, p?: Record<string, unknown>) => Promise<ApiResult>;
|
|
41
|
+
clearCharges: (d: string) => Promise<ApiResult>;
|
|
42
|
+
deleteUser: (d: string) => Promise<ApiResult>;
|
|
43
|
+
};
|
|
44
|
+
export declare function set_group(distinctId: string, groupKey: string, groupId: string | string[]): Promise<ApiResult>;
|
|
45
|
+
export declare function add_group(distinctId: string, groupKey: string, groupId: string): Promise<ApiResult>;
|
|
46
|
+
export declare function remove_group(distinctId: string, groupKey: string, groupId: string): Promise<ApiResult>;
|
|
47
|
+
export declare function get_group(distinctId: string, groupKey: string, groupId: string): GroupProfile;
|
|
48
|
+
export declare function enableAutoEvents(): void;
|
|
49
|
+
export declare function disableAutoEvents(): void;
|
|
50
|
+
export declare function flush(): Promise<void>;
|
|
51
|
+
export declare function shutdown(): Promise<void>;
|
|
52
|
+
declare const trodo: {
|
|
53
|
+
init: typeof init;
|
|
54
|
+
forUser: typeof forUser;
|
|
55
|
+
track: typeof track;
|
|
56
|
+
identify: typeof identify;
|
|
57
|
+
walletAddress: typeof walletAddress;
|
|
58
|
+
reset: typeof reset;
|
|
59
|
+
people: {
|
|
60
|
+
set: (d: string, p: Record<string, unknown>) => Promise<ApiResult>;
|
|
61
|
+
setOnce: (d: string, p: Record<string, unknown>) => Promise<ApiResult>;
|
|
62
|
+
unset: (d: string, k: string | string[]) => Promise<ApiResult>;
|
|
63
|
+
increment: (d: string, k: string, a?: number) => Promise<ApiResult>;
|
|
64
|
+
append: (d: string, k: string, v: unknown[]) => Promise<ApiResult>;
|
|
65
|
+
union: (d: string, k: string, v: unknown[]) => Promise<ApiResult>;
|
|
66
|
+
remove: (d: string, k: string, v: unknown[]) => Promise<ApiResult>;
|
|
67
|
+
trackCharge: (d: string, a: number, p?: Record<string, unknown>) => Promise<ApiResult>;
|
|
68
|
+
clearCharges: (d: string) => Promise<ApiResult>;
|
|
69
|
+
deleteUser: (d: string) => Promise<ApiResult>;
|
|
70
|
+
};
|
|
71
|
+
set_group: typeof set_group;
|
|
72
|
+
add_group: typeof add_group;
|
|
73
|
+
remove_group: typeof remove_group;
|
|
74
|
+
get_group: typeof get_group;
|
|
75
|
+
enableAutoEvents: typeof enableAutoEvents;
|
|
76
|
+
disableAutoEvents: typeof disableAutoEvents;
|
|
77
|
+
flush: typeof flush;
|
|
78
|
+
shutdown: typeof shutdown;
|
|
79
|
+
};
|
|
80
|
+
export default trodo;
|
|
81
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* trodo-node — Trodo Analytics SDK for Node.js
|
|
3
|
+
*
|
|
4
|
+
* Usage (singleton):
|
|
5
|
+
* import trodo from 'trodo-node';
|
|
6
|
+
* trodo.init({ siteId: 'your-site-id' });
|
|
7
|
+
* const user = trodo.forUser('user-123');
|
|
8
|
+
* await user.track('purchase_completed', { amount: 99.99 });
|
|
9
|
+
*
|
|
10
|
+
* Usage (class):
|
|
11
|
+
* import { TrodoClient } from 'trodo-node';
|
|
12
|
+
* const client = new TrodoClient({ siteId: 'your-site-id' });
|
|
13
|
+
*/
|
|
14
|
+
export { TrodoClient } from './TrodoClient.js';
|
|
15
|
+
export { UserContext } from './UserContext.js';
|
|
16
|
+
export * from './types/index.js';
|
|
17
|
+
import { TrodoClient } from './TrodoClient.js';
|
|
18
|
+
// ============================================================================
|
|
19
|
+
// Singleton convenience API
|
|
20
|
+
// ============================================================================
|
|
21
|
+
let _client = null;
|
|
22
|
+
function getClient() {
|
|
23
|
+
if (!_client) {
|
|
24
|
+
throw new Error('trodo-node: Call trodo.init({ siteId }) before using the SDK.');
|
|
25
|
+
}
|
|
26
|
+
return _client;
|
|
27
|
+
}
|
|
28
|
+
/** Initialise the singleton SDK instance. Returns the client for chaining. */
|
|
29
|
+
export function init(config) {
|
|
30
|
+
_client = new TrodoClient(config);
|
|
31
|
+
return _client;
|
|
32
|
+
}
|
|
33
|
+
/** Return a UserContext bound to the given distinctId. */
|
|
34
|
+
export function forUser(distinctId, options) {
|
|
35
|
+
return getClient().forUser(distinctId, options);
|
|
36
|
+
}
|
|
37
|
+
/** Track an event for a user (direct-call pattern). */
|
|
38
|
+
export async function track(distinctId, eventName, properties, options) {
|
|
39
|
+
return getClient().track(distinctId, eventName, properties, options);
|
|
40
|
+
}
|
|
41
|
+
/** Alias a user's distinctId to an external identifier. */
|
|
42
|
+
export async function identify(distinctId, identifyId) {
|
|
43
|
+
return getClient().identify(distinctId, identifyId);
|
|
44
|
+
}
|
|
45
|
+
/** Associate a wallet address with a user. */
|
|
46
|
+
export async function walletAddress(distinctId, walletAddr) {
|
|
47
|
+
return getClient().walletAddress(distinctId, walletAddr);
|
|
48
|
+
}
|
|
49
|
+
/** Reset a user's session. */
|
|
50
|
+
export async function reset(distinctId) {
|
|
51
|
+
return getClient().reset(distinctId);
|
|
52
|
+
}
|
|
53
|
+
export const people = {
|
|
54
|
+
set: (d, p) => getClient().people.set(d, p),
|
|
55
|
+
setOnce: (d, p) => getClient().people.setOnce(d, p),
|
|
56
|
+
unset: (d, k) => getClient().people.unset(d, k),
|
|
57
|
+
increment: (d, k, a) => getClient().people.increment(d, k, a),
|
|
58
|
+
append: (d, k, v) => getClient().people.append(d, k, v),
|
|
59
|
+
union: (d, k, v) => getClient().people.union(d, k, v),
|
|
60
|
+
remove: (d, k, v) => getClient().people.remove(d, k, v),
|
|
61
|
+
trackCharge: (d, a, p) => getClient().people.trackCharge(d, a, p),
|
|
62
|
+
clearCharges: (d) => getClient().people.clearCharges(d),
|
|
63
|
+
deleteUser: (d) => getClient().people.deleteUser(d),
|
|
64
|
+
};
|
|
65
|
+
export function set_group(distinctId, groupKey, groupId) {
|
|
66
|
+
return getClient().set_group(distinctId, groupKey, groupId);
|
|
67
|
+
}
|
|
68
|
+
export function add_group(distinctId, groupKey, groupId) {
|
|
69
|
+
return getClient().add_group(distinctId, groupKey, groupId);
|
|
70
|
+
}
|
|
71
|
+
export function remove_group(distinctId, groupKey, groupId) {
|
|
72
|
+
return getClient().remove_group(distinctId, groupKey, groupId);
|
|
73
|
+
}
|
|
74
|
+
export function get_group(distinctId, groupKey, groupId) {
|
|
75
|
+
return getClient().get_group(distinctId, groupKey, groupId);
|
|
76
|
+
}
|
|
77
|
+
export function enableAutoEvents() {
|
|
78
|
+
getClient().enableAutoEvents();
|
|
79
|
+
}
|
|
80
|
+
export function disableAutoEvents() {
|
|
81
|
+
getClient().disableAutoEvents();
|
|
82
|
+
}
|
|
83
|
+
export async function flush() {
|
|
84
|
+
return getClient().flush();
|
|
85
|
+
}
|
|
86
|
+
export async function shutdown() {
|
|
87
|
+
return getClient().shutdown();
|
|
88
|
+
}
|
|
89
|
+
// Default export: the singleton namespace (matches frontend SDK pattern)
|
|
90
|
+
const trodo = {
|
|
91
|
+
init,
|
|
92
|
+
forUser,
|
|
93
|
+
track,
|
|
94
|
+
identify,
|
|
95
|
+
walletAddress,
|
|
96
|
+
reset,
|
|
97
|
+
people,
|
|
98
|
+
set_group,
|
|
99
|
+
add_group,
|
|
100
|
+
remove_group,
|
|
101
|
+
get_group,
|
|
102
|
+
enableAutoEvents,
|
|
103
|
+
disableAutoEvents,
|
|
104
|
+
flush,
|
|
105
|
+
shutdown,
|
|
106
|
+
};
|
|
107
|
+
export default trodo;
|
|
108
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ApiClient } from '../api/ApiClient.js';
|
|
2
|
+
import type { ApiResult, GroupProfile } from '../types/index.js';
|
|
3
|
+
export declare class GroupManager {
|
|
4
|
+
private readonly apiClient;
|
|
5
|
+
private readonly siteId;
|
|
6
|
+
private readonly getDistinctId;
|
|
7
|
+
constructor(apiClient: ApiClient, siteId: string, getDistinctId: () => string);
|
|
8
|
+
private base;
|
|
9
|
+
set_group(groupKey: string, groupId: string | string[]): Promise<ApiResult>;
|
|
10
|
+
add_group(groupKey: string, groupId: string): Promise<ApiResult>;
|
|
11
|
+
remove_group(groupKey: string, groupId: string): Promise<ApiResult>;
|
|
12
|
+
get_group(groupKey: string, groupId: string): GroupProfile;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=GroupManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroupManager.d.ts","sourceRoot":"","sources":["../../../src/managers/GroupManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AA4DjE,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAFb,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,MAAM;IAG9C,OAAO,CAAC,IAAI;IAIN,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GACzB,OAAO,CAAC,SAAS,CAAC;IAQf,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAQhE,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAQzE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY;CAS3D"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { ENDPOINTS } from '../api/endpoints.js';
|
|
2
|
+
class GroupProfileImpl {
|
|
3
|
+
constructor(apiClient, siteId, distinctId, groupKey, groupId) {
|
|
4
|
+
this.apiClient = apiClient;
|
|
5
|
+
this.siteId = siteId;
|
|
6
|
+
this.distinctId = distinctId;
|
|
7
|
+
this.groupKey = groupKey;
|
|
8
|
+
this.groupId = groupId;
|
|
9
|
+
}
|
|
10
|
+
base() {
|
|
11
|
+
return {
|
|
12
|
+
siteId: this.siteId,
|
|
13
|
+
userId: this.distinctId,
|
|
14
|
+
groupKey: this.groupKey,
|
|
15
|
+
groupId: this.groupId,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
call(method, extra) {
|
|
19
|
+
return this.apiClient.postGroup(`${ENDPOINTS.GROUPS_PROFILE}/${method}`, { ...this.base(), ...extra });
|
|
20
|
+
}
|
|
21
|
+
set(properties) {
|
|
22
|
+
return this.call('set', { properties });
|
|
23
|
+
}
|
|
24
|
+
set_once(properties) {
|
|
25
|
+
return this.call('set_once', { properties });
|
|
26
|
+
}
|
|
27
|
+
union(listName, values) {
|
|
28
|
+
return this.call('union', { listName, values });
|
|
29
|
+
}
|
|
30
|
+
remove(listName, value) {
|
|
31
|
+
return this.call('remove', { listName, value });
|
|
32
|
+
}
|
|
33
|
+
unset(property) {
|
|
34
|
+
return this.call('unset', { property });
|
|
35
|
+
}
|
|
36
|
+
increment(property, value = 1) {
|
|
37
|
+
return this.call('increment', { property, value });
|
|
38
|
+
}
|
|
39
|
+
append(property, value) {
|
|
40
|
+
return this.call('append', { property, value });
|
|
41
|
+
}
|
|
42
|
+
delete() {
|
|
43
|
+
return this.call('delete');
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export class GroupManager {
|
|
47
|
+
constructor(apiClient, siteId, getDistinctId) {
|
|
48
|
+
this.apiClient = apiClient;
|
|
49
|
+
this.siteId = siteId;
|
|
50
|
+
this.getDistinctId = getDistinctId;
|
|
51
|
+
}
|
|
52
|
+
base() {
|
|
53
|
+
return { siteId: this.siteId, userId: this.getDistinctId() };
|
|
54
|
+
}
|
|
55
|
+
async set_group(groupKey, groupId) {
|
|
56
|
+
return this.apiClient.postGroup(ENDPOINTS.GROUPS_SET, {
|
|
57
|
+
...this.base(),
|
|
58
|
+
groupKey,
|
|
59
|
+
groupId,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
async add_group(groupKey, groupId) {
|
|
63
|
+
return this.apiClient.postGroup(ENDPOINTS.GROUPS_ADD, {
|
|
64
|
+
...this.base(),
|
|
65
|
+
groupKey,
|
|
66
|
+
groupId,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
async remove_group(groupKey, groupId) {
|
|
70
|
+
return this.apiClient.postGroup(ENDPOINTS.GROUPS_REMOVE, {
|
|
71
|
+
...this.base(),
|
|
72
|
+
groupKey,
|
|
73
|
+
groupId,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
get_group(groupKey, groupId) {
|
|
77
|
+
return new GroupProfileImpl(this.apiClient, this.siteId, this.getDistinctId(), groupKey, groupId);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=GroupManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroupManager.js","sourceRoot":"","sources":["../../../src/managers/GroupManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ApiClient } from '../api/ApiClient.js';
|
|
2
|
+
import type { ApiResult, PeopleInterface } from '../types/index.js';
|
|
3
|
+
export declare class PeopleManager implements PeopleInterface {
|
|
4
|
+
private readonly apiClient;
|
|
5
|
+
private readonly siteId;
|
|
6
|
+
private readonly getDistinctId;
|
|
7
|
+
constructor(apiClient: ApiClient, siteId: string, getDistinctId: () => string);
|
|
8
|
+
private base;
|
|
9
|
+
set(properties: Record<string, unknown>): Promise<ApiResult>;
|
|
10
|
+
setOnce(properties: Record<string, unknown>): Promise<ApiResult>;
|
|
11
|
+
unset(keys: string | string[]): Promise<ApiResult>;
|
|
12
|
+
increment(key: string, amount?: number): Promise<ApiResult>;
|
|
13
|
+
append(key: string, values: unknown[]): Promise<ApiResult>;
|
|
14
|
+
union(key: string, values: unknown[]): Promise<ApiResult>;
|
|
15
|
+
remove(key: string, values: unknown[]): Promise<ApiResult>;
|
|
16
|
+
trackCharge(amount: number, properties?: Record<string, unknown>): Promise<ApiResult>;
|
|
17
|
+
clearCharges(): Promise<ApiResult>;
|
|
18
|
+
deleteUser(): Promise<ApiResult>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=PeopleManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PeopleManager.d.ts","sourceRoot":"","sources":["../../../src/managers/PeopleManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpE,qBAAa,aAAc,YAAW,eAAe;IAEjD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAFb,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,MAAM;IAG9C,OAAO,CAAC,IAAI;IAIN,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAO5D,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAOhE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAOlD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,OAAO,CAAC,SAAS,CAAC;IAQtD,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAQ1D,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAQzD,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAQ1D,WAAW,CACf,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,OAAO,CAAC,SAAS,CAAC;IAQf,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAIlC,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;CAGvC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { ENDPOINTS } from '../api/endpoints.js';
|
|
2
|
+
export class PeopleManager {
|
|
3
|
+
constructor(apiClient, siteId, getDistinctId) {
|
|
4
|
+
this.apiClient = apiClient;
|
|
5
|
+
this.siteId = siteId;
|
|
6
|
+
this.getDistinctId = getDistinctId;
|
|
7
|
+
}
|
|
8
|
+
base() {
|
|
9
|
+
return { siteId: this.siteId, userId: this.getDistinctId() };
|
|
10
|
+
}
|
|
11
|
+
async set(properties) {
|
|
12
|
+
return this.apiClient.postPeople(ENDPOINTS.PEOPLE_SET, {
|
|
13
|
+
...this.base(),
|
|
14
|
+
properties,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
async setOnce(properties) {
|
|
18
|
+
return this.apiClient.postPeople(ENDPOINTS.PEOPLE_SET_ONCE, {
|
|
19
|
+
...this.base(),
|
|
20
|
+
properties,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
async unset(keys) {
|
|
24
|
+
return this.apiClient.postPeople(ENDPOINTS.PEOPLE_UNSET, {
|
|
25
|
+
...this.base(),
|
|
26
|
+
keys: Array.isArray(keys) ? keys : [keys],
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
async increment(key, amount = 1) {
|
|
30
|
+
return this.apiClient.postPeople(ENDPOINTS.PEOPLE_INCREMENT, {
|
|
31
|
+
...this.base(),
|
|
32
|
+
key,
|
|
33
|
+
amount,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
async append(key, values) {
|
|
37
|
+
return this.apiClient.postPeople(ENDPOINTS.PEOPLE_APPEND, {
|
|
38
|
+
...this.base(),
|
|
39
|
+
key,
|
|
40
|
+
values,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
async union(key, values) {
|
|
44
|
+
return this.apiClient.postPeople(ENDPOINTS.PEOPLE_UNION, {
|
|
45
|
+
...this.base(),
|
|
46
|
+
key,
|
|
47
|
+
values,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
async remove(key, values) {
|
|
51
|
+
return this.apiClient.postPeople(ENDPOINTS.PEOPLE_REMOVE, {
|
|
52
|
+
...this.base(),
|
|
53
|
+
key,
|
|
54
|
+
values,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
async trackCharge(amount, properties) {
|
|
58
|
+
return this.apiClient.postPeople(ENDPOINTS.PEOPLE_TRACK_CHARGE, {
|
|
59
|
+
...this.base(),
|
|
60
|
+
amount,
|
|
61
|
+
properties: properties ?? {},
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
async clearCharges() {
|
|
65
|
+
return this.apiClient.postPeople(ENDPOINTS.PEOPLE_CLEAR_CHARGES, this.base());
|
|
66
|
+
}
|
|
67
|
+
async deleteUser() {
|
|
68
|
+
return this.apiClient.postPeople(ENDPOINTS.PEOPLE_DELETE_USER, this.base());
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=PeopleManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PeopleManager.js","sourceRoot":"","sources":["../../../src/managers/PeopleManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ApiClient } from '../api/ApiClient.js';
|
|
2
|
+
import type { EventQueue } from './EventQueue.js';
|
|
3
|
+
export declare class BatchFlusher {
|
|
4
|
+
private readonly queue;
|
|
5
|
+
private readonly apiClient;
|
|
6
|
+
private readonly flushIntervalMs;
|
|
7
|
+
private timer;
|
|
8
|
+
constructor(queue: EventQueue, apiClient: ApiClient, flushIntervalMs: number);
|
|
9
|
+
start(): void;
|
|
10
|
+
stop(): void;
|
|
11
|
+
flush(): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=BatchFlusher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BatchFlusher.d.ts","sourceRoot":"","sources":["../../../src/queue/BatchFlusher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,qBAAa,YAAY;IAIrB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,eAAe;IALlC,OAAO,CAAC,KAAK,CAA+C;gBAGzC,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,MAAM;IAG1C,KAAK,IAAI,IAAI;IASb,IAAI,IAAI,IAAI;IAON,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAK7B"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export class BatchFlusher {
|
|
2
|
+
constructor(queue, apiClient, flushIntervalMs) {
|
|
3
|
+
this.queue = queue;
|
|
4
|
+
this.apiClient = apiClient;
|
|
5
|
+
this.flushIntervalMs = flushIntervalMs;
|
|
6
|
+
this.timer = null;
|
|
7
|
+
}
|
|
8
|
+
start() {
|
|
9
|
+
if (this.timer)
|
|
10
|
+
return;
|
|
11
|
+
this.timer = setInterval(() => {
|
|
12
|
+
void this.flush();
|
|
13
|
+
}, this.flushIntervalMs);
|
|
14
|
+
// Allow the Node.js process to exit even if the timer is active
|
|
15
|
+
if (this.timer.unref)
|
|
16
|
+
this.timer.unref();
|
|
17
|
+
}
|
|
18
|
+
stop() {
|
|
19
|
+
if (this.timer) {
|
|
20
|
+
clearInterval(this.timer);
|
|
21
|
+
this.timer = null;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async flush() {
|
|
25
|
+
const events = this.queue.drain();
|
|
26
|
+
if (events.length === 0)
|
|
27
|
+
return;
|
|
28
|
+
await this.apiClient.postBulkEvents(events);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=BatchFlusher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BatchFlusher.js","sourceRoot":"","sources":["../../../src/queue/BatchFlusher.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,YAAY;IAGvB,YACmB,KAAiB,EACjB,SAAoB,EACpB,eAAuB;QAFvB,UAAK,GAAL,KAAK,CAAY;QACjB,cAAS,GAAT,SAAS,CAAW;QACpB,oBAAe,GAAf,eAAe,CAAQ;QALlC,UAAK,GAA0C,IAAI,CAAC;IAMzD,CAAC;IAEJ,KAAK;QACH,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QACvB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5B,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACzB,gEAAgE;QAChE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAChC,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;CACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { EventPayload } from '../types/index.js';
|
|
2
|
+
export declare class EventQueue {
|
|
3
|
+
private queue;
|
|
4
|
+
private readonly maxSize;
|
|
5
|
+
constructor(maxSize: number);
|
|
6
|
+
/**
|
|
7
|
+
* Enqueue an event. Returns true if the flush threshold has been reached.
|
|
8
|
+
*/
|
|
9
|
+
enqueue(event: EventPayload): boolean;
|
|
10
|
+
/** Atomically take all queued events and reset the queue. */
|
|
11
|
+
drain(): EventPayload[];
|
|
12
|
+
size(): number;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=EventQueue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventQueue.d.ts","sourceRoot":"","sources":["../../../src/queue/EventQueue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,EAAE,MAAM;IAI3B;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAKrC,6DAA6D;IAC7D,KAAK,IAAI,YAAY,EAAE;IAMvB,IAAI,IAAI,MAAM;CAGf"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export class EventQueue {
|
|
2
|
+
constructor(maxSize) {
|
|
3
|
+
this.queue = [];
|
|
4
|
+
this.maxSize = maxSize;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Enqueue an event. Returns true if the flush threshold has been reached.
|
|
8
|
+
*/
|
|
9
|
+
enqueue(event) {
|
|
10
|
+
this.queue.push(event);
|
|
11
|
+
return this.queue.length >= this.maxSize;
|
|
12
|
+
}
|
|
13
|
+
/** Atomically take all queued events and reset the queue. */
|
|
14
|
+
drain() {
|
|
15
|
+
const events = this.queue;
|
|
16
|
+
this.queue = [];
|
|
17
|
+
return events;
|
|
18
|
+
}
|
|
19
|
+
size() {
|
|
20
|
+
return this.queue.length;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=EventQueue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventQueue.js","sourceRoot":"","sources":["../../../src/queue/EventQueue.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,UAAU;IAIrB,YAAY,OAAe;QAHnB,UAAK,GAAmB,EAAE,CAAC;QAIjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,KAAmB;QACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC;IAC3C,CAAC;IAED,6DAA6D;IAC7D,KAAK;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ServerSession } from '../types/index.js';
|
|
2
|
+
export declare function generateUUID(): Promise<string>;
|
|
3
|
+
export declare function nowIso(): string;
|
|
4
|
+
export declare function createServerSession(siteId: string, distinctId: string, sessionId?: string): Promise<ServerSession>;
|
|
5
|
+
export declare function buildSessionPayload(session: ServerSession): Record<string, unknown>;
|
|
6
|
+
//# sourceMappingURL=ServerSession.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServerSession.d.ts","sourceRoot":"","sources":["../../../src/session/ServerSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAevD,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAGpD;AAED,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CASxB;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,GACrB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA2CzB"}
|