@ebitex/visitors-sdk 0.1.223 → 0.1.225
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 +2 -0
- package/dist/client.d.ts +13 -8
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +17 -6
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/index.js.map +1 -1
- package/dist/types.d.ts +51 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/visitors.d.ts.map +1 -1
- package/dist/visitors.js +31 -1
- package/dist/visitors.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -9,6 +9,8 @@ beyond Audience.
|
|
|
9
9
|
recognised**, and removed when recognition is denied, withdrawn, or the device is forgotten.
|
|
10
10
|
- "Forget this device" is one operation with several doors: a footer link, a function, a React button, or a
|
|
11
11
|
plain request from your own server.
|
|
12
|
+
- `track('pricing-viewed', { ... })` puts an event on the timeline of the person a recognised device belongs to.
|
|
13
|
+
It is not a page-view tracker: nothing is stored for an anonymous visitor.
|
|
12
14
|
|
|
13
15
|
## Install
|
|
14
16
|
|
package/dist/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { VisitorSession } from './types.js';
|
|
1
|
+
import type { ConsentSignals, TrackResult, VisitorSession } from './types.js';
|
|
2
2
|
/** The default API address. */
|
|
3
3
|
export declare const DEFAULT_ENDPOINT = "https://api.ebitex.io";
|
|
4
4
|
/** An error answer from ebitex, or an answer the SDK could not read. */
|
|
@@ -9,17 +9,22 @@ export declare class VisitorsApiError extends Error {
|
|
|
9
9
|
readonly code: string | undefined;
|
|
10
10
|
/** The `X-Request-Id` of the answer. Quote it when you ask for help. */
|
|
11
11
|
readonly requestId: string | undefined;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
cmp: 'granted' | 'denied' | null;
|
|
16
|
-
gpc: boolean;
|
|
17
|
-
dnt: boolean;
|
|
18
|
-
cmpString: string | null;
|
|
12
|
+
/** When the answer named what was wrong with each member (a bad `name`, an undeclared or mistyped property), a message for each, keyed by member. */
|
|
13
|
+
readonly errors: Record<string, string> | undefined;
|
|
14
|
+
constructor(message: string, status: number, code?: string, requestId?: string, errors?: Record<string, string>);
|
|
19
15
|
}
|
|
16
|
+
export type RawConsent = ConsentSignals;
|
|
20
17
|
export interface VisitorsClient {
|
|
21
18
|
session(visitor: string | null, consent: RawConsent): Promise<VisitorSession>;
|
|
22
19
|
forget(visitor: string): Promise<string>;
|
|
20
|
+
track(body: {
|
|
21
|
+
visitor: string;
|
|
22
|
+
consent: RawConsent;
|
|
23
|
+
name: string;
|
|
24
|
+
properties?: Record<string, unknown>;
|
|
25
|
+
eventId?: string;
|
|
26
|
+
}): Promise<TrackResult>;
|
|
23
27
|
}
|
|
24
28
|
export declare function createClient(key: string, endpoint: string, doFetch: typeof globalThis.fetch): VisitorsClient;
|
|
29
|
+
export declare function isSession(value: unknown): value is VisitorSession;
|
|
25
30
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAgB,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3F,+BAA+B;AAC/B,eAAO,MAAM,gBAAgB,0BAA0B,CAAA;AAEvD,wEAAwE;AACxE,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,wFAAwF;IACxF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IAEvB,8HAA8H;IAC9H,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IAEjC,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAEtC,qJAAqJ;IACrJ,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;gBAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAQhH;AAED,MAAM,MAAM,UAAU,GAAG,cAAc,CAAA;AAEvC,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IAC7E,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACxC,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;CAClJ;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,UAAU,CAAC,KAAK,GAAG,cAAc,CAgD5G;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAajE"}
|
package/dist/client.js
CHANGED
|
@@ -8,12 +8,15 @@ export class VisitorsApiError extends Error {
|
|
|
8
8
|
code;
|
|
9
9
|
/** The `X-Request-Id` of the answer. Quote it when you ask for help. */
|
|
10
10
|
requestId;
|
|
11
|
-
|
|
11
|
+
/** When the answer named what was wrong with each member (a bad `name`, an undeclared or mistyped property), a message for each, keyed by member. */
|
|
12
|
+
errors;
|
|
13
|
+
constructor(message, status, code, requestId, errors) {
|
|
12
14
|
super(message);
|
|
13
15
|
this.name = 'VisitorsApiError';
|
|
14
16
|
this.status = status;
|
|
15
17
|
this.code = code;
|
|
16
18
|
this.requestId = requestId;
|
|
19
|
+
this.errors = errors;
|
|
17
20
|
}
|
|
18
21
|
}
|
|
19
22
|
export function createClient(key, endpoint, doFetch) {
|
|
@@ -21,7 +24,7 @@ export function createClient(key, endpoint, doFetch) {
|
|
|
21
24
|
async function post(path, body) {
|
|
22
25
|
let response;
|
|
23
26
|
try {
|
|
24
|
-
response = await doFetch(`${base}/audience/delivery/v1
|
|
27
|
+
response = await doFetch(`${base}/audience/delivery/v1/${path}`, {
|
|
25
28
|
method: 'POST',
|
|
26
29
|
headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${key}` },
|
|
27
30
|
body: JSON.stringify(body),
|
|
@@ -34,27 +37,35 @@ export function createClient(key, endpoint, doFetch) {
|
|
|
34
37
|
const json = await response.json().catch(() => null);
|
|
35
38
|
if (!response.ok) {
|
|
36
39
|
const code = typeof json?.error === 'string' ? json.error : undefined;
|
|
37
|
-
|
|
40
|
+
const errors = json?.errors;
|
|
41
|
+
throw new VisitorsApiError(code ?? `The request failed with status ${response.status}.`, response.status, code, requestId, errors && typeof errors === 'object' && !Array.isArray(errors) ? errors : undefined);
|
|
38
42
|
}
|
|
39
43
|
return json;
|
|
40
44
|
}
|
|
41
45
|
return {
|
|
42
46
|
async session(visitor, consent) {
|
|
43
|
-
const json = await post('session', { visitor, consent });
|
|
47
|
+
const json = await post('visitors/session', { visitor, consent });
|
|
44
48
|
if (!isSession(json))
|
|
45
49
|
throw new VisitorsApiError('The answer was not a visitor session.', 200, 'invalid_response');
|
|
46
50
|
return json;
|
|
47
51
|
},
|
|
48
52
|
async forget(visitor) {
|
|
49
|
-
const json = await post('forget', { visitor });
|
|
53
|
+
const json = await post('visitors/forget', { visitor });
|
|
50
54
|
const message = json?.message;
|
|
51
55
|
if (typeof message !== 'string')
|
|
52
56
|
throw new VisitorsApiError('The answer was not a forget confirmation.', 200, 'invalid_response');
|
|
53
57
|
return message;
|
|
54
58
|
},
|
|
59
|
+
async track(body) {
|
|
60
|
+
const json = await post('events', body);
|
|
61
|
+
const result = json;
|
|
62
|
+
if (typeof result?.recorded !== 'boolean')
|
|
63
|
+
throw new VisitorsApiError('The answer was not an event result.', 200, 'invalid_response');
|
|
64
|
+
return { recorded: result.recorded, duplicate: result.duplicate === true, reason: typeof result.reason === 'string' ? result.reason : null };
|
|
65
|
+
},
|
|
55
66
|
};
|
|
56
67
|
}
|
|
57
|
-
function isSession(value) {
|
|
68
|
+
export function isSession(value) {
|
|
58
69
|
if (typeof value !== 'object' || value === null)
|
|
59
70
|
return false;
|
|
60
71
|
const { visitor, consent } = value;
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,+BAA+B;AAC/B,MAAM,CAAC,MAAM,gBAAgB,GAAG,uBAAuB,CAAA;AAEvD,wEAAwE;AACxE,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,wFAAwF;IAC/E,MAAM,CAAQ;IAEvB,8HAA8H;IACrH,IAAI,CAAoB;IAEjC,wEAAwE;IAC/D,SAAS,CAAoB;IAEtC,YAAY,OAAe,EAAE,MAAc,EAAE,IAAa,EAAE,SAAkB;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,5 +2,5 @@ export { createVisitors } from './visitors.js';
|
|
|
2
2
|
export { cookieStorage } from './storage.js';
|
|
3
3
|
export type { CookieStorageOptions } from './storage.js';
|
|
4
4
|
export { VisitorsApiError, DEFAULT_ENDPOINT } from './client.js';
|
|
5
|
-
export type { ConsentMessages, ConsentOptions, ConsentState, Visitors, VisitorSession, VisitorsOptions, VisitorsSnapshot, VisitorStorage, } from './types.js';
|
|
5
|
+
export type { ConsentMessages, ConsentOptions, ConsentSignals, ConsentState, TrackOptions, TrackResult, Visitors, VisitorSession, VisitorsOptions, VisitorsSnapshot, VisitorStorage, } from './types.js';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAChE,YAAY,EACV,eAAe,EACf,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAChE,YAAY,EACV,eAAe,EACf,cAAc,EACd,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,YAAY,CAAA"}
|
package/dist/react/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export declare function VisitorsProvider({ visitors, children }: {
|
|
|
6
6
|
children: ReactNode;
|
|
7
7
|
}): import("react").JSX.Element;
|
|
8
8
|
/** The visitor's current token and consent state, which re-render the component when they change, and the calls that change them. */
|
|
9
|
-
export declare function useVisitors(): VisitorsSnapshot & Pick<Visitors, 'refresh' | 'setConsent' | 'forget' | 'ready'>;
|
|
9
|
+
export declare function useVisitors(): VisitorsSnapshot & Pick<Visitors, 'refresh' | 'setConsent' | 'forget' | 'track' | 'ready'>;
|
|
10
10
|
export interface ForgetDeviceButtonProps {
|
|
11
11
|
/** The button's label. Defaults to "Forget this device"; pass your own for another language. */
|
|
12
12
|
children?: ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkF,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACtH,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAI7D,+JAA+J;AAC/J,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAEnG;AAED,qIAAqI;AACrI,wBAAgB,WAAW,IAAI,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkF,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACtH,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAI7D,+JAA+J;AAC/J,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAEnG;AAED,qIAAqI;AACrI,wBAAgB,WAAW,IAAI,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,CAexH;AAED,MAAM,WAAW,uBAAuB;IACtC,gGAAgG;IAChG,QAAQ,CAAC,EAAE,SAAS,CAAA;IAEpB,kFAAkF;IAClF,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB,iFAAiF;IACjF,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAE9C,6GAA6G;IAC7G,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,OAAc,EAAE,WAAW,EAAE,SAAqD,EAAE,SAAS,EAAE,EAAE,uBAAuB,+BA6BtK"}
|
package/dist/react/index.js
CHANGED
|
@@ -19,7 +19,7 @@ export function useVisitors() {
|
|
|
19
19
|
return last.current;
|
|
20
20
|
}, [visitors]);
|
|
21
21
|
const snapshot = useSyncExternalStore(visitors.subscribe, read, read);
|
|
22
|
-
return { ...snapshot, refresh: visitors.refresh, setConsent: visitors.setConsent, forget: visitors.forget, ready: visitors.ready };
|
|
22
|
+
return { ...snapshot, refresh: visitors.refresh, setConsent: visitors.setConsent, forget: visitors.forget, track: visitors.track, ready: visitors.ready };
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
25
|
* A button that forgets the visitor's device, asks the organization's own confirmation question first, and shows the
|
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAkB,MAAM,OAAO,CAAA;AAGtH,MAAM,eAAe,GAAG,aAAa,CAAkB,IAAI,CAAC,CAAA;AAE5D,+JAA+J;AAC/J,MAAM,UAAU,gBAAgB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAA+C;IAClG,OAAO,KAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,QAAQ,YAAG,QAAQ,GAA4B,CAAA;AACzF,CAAC;AAED,qIAAqI;AACrI,MAAM,UAAU,WAAW;IACzB,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,CAAA;IAC5C,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;IAEvF,iGAAiG;IACjG,MAAM,IAAI,GAAG,MAAM,CAAmB,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IAC3F,MAAM,IAAI,GAAG,WAAW,CAAC,GAAqB,EAAE;QAC9C,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;YACvF,IAAI,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAA;QACrE,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IACd,MAAM,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAErE,OAAO,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.tsx"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -16,6 +16,13 @@ export interface ConsentOptions {
|
|
|
16
16
|
/** Your consent tool's own consent string, kept as evidence of what the visitor was shown. */
|
|
17
17
|
cmpString?: string | null;
|
|
18
18
|
}
|
|
19
|
+
/** The consent signals as they are sent with a request: what {@link ConsentOptions} resolves to once the browser's own settings are read. */
|
|
20
|
+
export interface ConsentSignals {
|
|
21
|
+
cmp: 'granted' | 'denied' | null;
|
|
22
|
+
gpc: boolean;
|
|
23
|
+
dnt: boolean;
|
|
24
|
+
cmpString: string | null;
|
|
25
|
+
}
|
|
19
26
|
/** The organization's own wording, in the visitor's language, for the things you may need to say. */
|
|
20
27
|
export interface ConsentMessages {
|
|
21
28
|
/** A notice for a visitor whose device is not being recognised, for example "we are not remembering you between visits". */
|
|
@@ -44,6 +51,24 @@ export interface VisitorSession {
|
|
|
44
51
|
visitor: string;
|
|
45
52
|
consent: ConsentState;
|
|
46
53
|
}
|
|
54
|
+
/** What happened to an event passed to {@link Visitors.track}. */
|
|
55
|
+
export interface TrackResult {
|
|
56
|
+
/** `true` when the event is on the person's timeline in Audience, including a replay of one that already was. */
|
|
57
|
+
recorded: boolean;
|
|
58
|
+
/** `true` when this was a replay of an event with the same `eventId`, so nothing new was written. */
|
|
59
|
+
duplicate: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* When nothing was recorded, why: `'no_visitor'` (the device holds no token, or is not linked to a person), `'session_token'`
|
|
62
|
+
* (the visitor is not being recognised across visits), `'recognition_not_granted'`, `'revoked'` (the device was forgotten) or
|
|
63
|
+
* `'token_invalid'`. Otherwise `null`. None of these is an error: an anonymous visitor's events are simply not stored.
|
|
64
|
+
*/
|
|
65
|
+
reason: string | null;
|
|
66
|
+
}
|
|
67
|
+
/** Options for {@link Visitors.track}. */
|
|
68
|
+
export interface TrackOptions {
|
|
69
|
+
/** Sending the same id again from the same device records nothing new, so a retry is safe. At most 160 characters. */
|
|
70
|
+
eventId?: string;
|
|
71
|
+
}
|
|
47
72
|
/**
|
|
48
73
|
* Where the token is kept between visits. The SDK calls `set` only while ebitex reports that this device may be
|
|
49
74
|
* recognised, and calls `remove` when recognition is denied or withdrawn, and when the device is forgotten. Writing an
|
|
@@ -107,6 +132,32 @@ export interface Visitors extends VisitorsSnapshot {
|
|
|
107
132
|
* If the request fails the token is kept and the promise rejects, so the visitor can try again.
|
|
108
133
|
*/
|
|
109
134
|
forget(): Promise<string | null>;
|
|
135
|
+
/**
|
|
136
|
+
* Records something the visitor did, on their timeline in Audience, for example `track('pricing-viewed', { buyerType: 'agency' })`.
|
|
137
|
+
*
|
|
138
|
+
* It is **not** a page-view tracker. An event is stored only when this device is recognised and already linked to a person; for
|
|
139
|
+
* an anonymous visitor nothing is stored and the result says why (it is not an error). `name` is lower-case words joined by
|
|
140
|
+
* hyphens, and `properties` may hold only visit properties your organization has declared, typed as declared. Each device may record
|
|
141
|
+
* at most 200 events in any 24 hours. Rejects with a {@link VisitorsApiError} for a bad name or an undeclared or mistyped property
|
|
142
|
+
* (its `errors` member says which) and when the daily cap is reached (`event_cap_reached`).
|
|
143
|
+
*/
|
|
144
|
+
track(name: string, properties?: Record<string, unknown>, options?: TrackOptions): Promise<TrackResult>;
|
|
145
|
+
/**
|
|
146
|
+
* The consent signals this object sends with every request right now: your consent tool's answer, and the browser's Global
|
|
147
|
+
* Privacy Control and Do Not Track settings. For code that talks to ebitex on this visitor's behalf (a form, for example) and
|
|
148
|
+
* must send the same signals.
|
|
149
|
+
*/
|
|
150
|
+
consentSignals(): ConsentSignals;
|
|
151
|
+
/**
|
|
152
|
+
* Takes over a token and consent state that another part of ebitex just issued for this visitor, for example the response to a
|
|
153
|
+
* form submission, so the whole page shares one visitor. The same rules apply as for {@link refresh}: the token is kept on the
|
|
154
|
+
* device only while `consent.recognition` is `'granted'` and the token is a recognition token, and removed otherwise. Pass
|
|
155
|
+
* `consent: null` when the response said nothing about consent; that is treated as not granted. Nothing is sent to ebitex.
|
|
156
|
+
*/
|
|
157
|
+
adopt(session: {
|
|
158
|
+
visitor: string;
|
|
159
|
+
consent: ConsentState | null;
|
|
160
|
+
}): Promise<void>;
|
|
110
161
|
/** Calls `listener` whenever the token or consent state changes. Returns a function that stops listening. */
|
|
111
162
|
subscribe(listener: (snapshot: VisitorsSnapshot) => void): () => void;
|
|
112
163
|
}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,qHAAqH;IACrH,GAAG,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAA;IAEjC;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAA;IAEb,+GAA+G;IAC/G,GAAG,CAAC,EAAE,OAAO,CAAA;IAEb,8FAA8F;IAC9F,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,qGAAqG;AACrG,MAAM,WAAW,eAAe;IAC9B,4HAA4H;IAC5H,mBAAmB,EAAE,MAAM,CAAA;IAE3B,yDAAyD;IACzD,aAAa,EAAE,MAAM,CAAA;IAErB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,mEAAmE;AACnE,MAAM,WAAW,YAAY;IAC3B,oGAAoG;IACpG,WAAW,EAAE,SAAS,GAAG,QAAQ,CAAA;IAEjC,oKAAoK;IACpK,MAAM,EAAE,MAAM,CAAA;IAEd,qFAAqF;IACrF,aAAa,EAAE,MAAM,CAAA;IAErB,4KAA4K;IAC5K,SAAS,EAAE,aAAa,GAAG,SAAS,CAAA;IAEpC,+GAA+G;IAC/G,oBAAoB,EAAE,MAAM,CAAA;IAE5B,QAAQ,EAAE,eAAe,CAAA;CAC1B;AAED,8EAA8E;AAC9E,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,YAAY,CAAA;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;IACrE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5E,MAAM,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/B;AAED,0CAA0C;AAC1C,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAA;IAEX,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,mGAAmG;IACnG,OAAO,CAAC,EAAE,cAAc,CAAA;IAExB;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,GAAG,KAAK,CAAA;IAEhC,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAChC;AAED,iGAAiG;AACjG,MAAM,WAAW,gBAAgB;IAC/B,oGAAoG;IACpG,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAE7B,4GAA4G;IAC5G,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAA;CACtC;AAED,sGAAsG;AACtG,MAAM,WAAW,QAAS,SAAQ,gBAAgB;IAChD,uIAAuI;IACvI,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAE7B;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC,CAAA;IAElC;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IAE5D;;;;;;;OAOG;IACH,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAEhC,6GAA6G;IAC7G,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;CACtE"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/visitors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visitors.d.ts","sourceRoot":"","sources":["../src/visitors.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"visitors.d.ts","sourceRoot":"","sources":["../src/visitors.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA6D,QAAQ,EAAE,eAAe,EAAoC,MAAM,YAAY,CAAA;AAExJ;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,QAAQ,CAiJjE"}
|
package/dist/visitors.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createClient, DEFAULT_ENDPOINT } from './client.js';
|
|
1
|
+
import { createClient, DEFAULT_ENDPOINT, isSession } from './client.js';
|
|
2
2
|
import { cookieStorage } from './storage.js';
|
|
3
3
|
/**
|
|
4
4
|
* Creates the object that holds a visitor's identity on your site, under their consent.
|
|
@@ -115,6 +115,36 @@ export function createVisitors(options) {
|
|
|
115
115
|
return message;
|
|
116
116
|
});
|
|
117
117
|
},
|
|
118
|
+
track(name, properties, trackOptions) {
|
|
119
|
+
return run(async () => {
|
|
120
|
+
await ready;
|
|
121
|
+
// Nothing to attribute an event to without a token: say so without a request.
|
|
122
|
+
if (token === null)
|
|
123
|
+
return { recorded: false, duplicate: false, reason: 'no_visitor' };
|
|
124
|
+
return client.track({ visitor: token, consent: rawConsent(), name, properties, eventId: trackOptions?.eventId });
|
|
125
|
+
});
|
|
126
|
+
},
|
|
127
|
+
consentSignals() {
|
|
128
|
+
return rawConsent();
|
|
129
|
+
},
|
|
130
|
+
adopt(next) {
|
|
131
|
+
return run(async () => {
|
|
132
|
+
await ready;
|
|
133
|
+
if (typeof next.visitor !== 'string' || next.visitor === '')
|
|
134
|
+
return;
|
|
135
|
+
const candidate = { visitor: next.visitor, consent: next.consent };
|
|
136
|
+
if (isSession(candidate)) {
|
|
137
|
+
await apply(candidate);
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
// A response that said nothing usable about consent is not a grant: keep the token for this page, keep nothing on the device.
|
|
141
|
+
token = next.visitor;
|
|
142
|
+
consent = null;
|
|
143
|
+
if (storage)
|
|
144
|
+
await persist(() => storage.remove());
|
|
145
|
+
notify();
|
|
146
|
+
});
|
|
147
|
+
},
|
|
118
148
|
subscribe(listener) {
|
|
119
149
|
listeners.add(listener);
|
|
120
150
|
return () => {
|
package/dist/visitors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visitors.js","sourceRoot":"","sources":["../src/visitors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAmB,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"visitors.js","sourceRoot":"","sources":["../src/visitors.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ebitex/visitors-sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.225",
|
|
4
4
|
"description": "Recognise a returning visitor with their consent, honour Global Privacy Control and your own consent tool, and let them forget their device, from any site. No forms needed.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ebitex",
|