@metamask-previews/analytics-controller 2.1.0-preview-abca9bcea → 3.0.0-preview-0a30e47
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 +19 -1
- package/dist/{AnalyticsController-method-action-types.d.mts → AnalyticsController-method-action-types.d.ts} +2 -2
- package/dist/AnalyticsController-method-action-types.d.ts.map +1 -0
- package/dist/{AnalyticsController-method-action-types.mjs → AnalyticsController-method-action-types.js} +1 -1
- package/dist/AnalyticsController-method-action-types.js.map +1 -0
- package/dist/{AnalyticsController.d.cts → AnalyticsController.d.ts} +9 -9
- package/dist/AnalyticsController.d.ts.map +1 -0
- package/dist/AnalyticsController.js +1193 -0
- package/dist/AnalyticsController.js.map +1 -0
- package/dist/AnalyticsLogger.d.ts +4 -0
- package/dist/AnalyticsLogger.d.ts.map +1 -0
- package/dist/{AnalyticsLogger.mjs → AnalyticsLogger.js} +2 -2
- package/dist/AnalyticsLogger.js.map +1 -0
- package/dist/{AnalyticsPlatformAdapter.types.d.mts → AnalyticsPlatformAdapter.types.d.ts} +2 -2
- package/dist/AnalyticsPlatformAdapter.types.d.ts.map +1 -0
- package/dist/AnalyticsPlatformAdapter.types.js +2 -0
- package/dist/AnalyticsPlatformAdapter.types.js.map +1 -0
- package/dist/{AnalyticsPlatformAdapterSetupError.d.cts → AnalyticsPlatformAdapterSetupError.d.ts} +1 -1
- package/dist/AnalyticsPlatformAdapterSetupError.d.ts.map +1 -0
- package/dist/{AnalyticsPlatformAdapterSetupError.mjs → AnalyticsPlatformAdapterSetupError.js} +2 -1
- package/dist/AnalyticsPlatformAdapterSetupError.js.map +1 -0
- package/dist/{EventFragment.types.d.cts → EventFragment.types.d.ts} +2 -2
- package/dist/EventFragment.types.d.ts.map +1 -0
- package/dist/EventFragment.types.js +2 -0
- package/dist/EventFragment.types.js.map +1 -0
- package/dist/{analyticsControllerStateValidator.d.mts → analyticsControllerStateValidator.d.ts} +2 -2
- package/dist/analyticsControllerStateValidator.d.ts.map +1 -0
- package/dist/{analyticsControllerStateValidator.mjs → analyticsControllerStateValidator.js} +1 -1
- package/dist/analyticsControllerStateValidator.js.map +1 -0
- package/dist/{index.d.cts → index.d.ts} +11 -11
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/{selectors.cjs → selectors.d.ts} +17 -18
- package/dist/selectors.d.ts.map +1 -0
- package/dist/{selectors.mjs → selectors.js} +1 -1
- package/dist/selectors.js.map +1 -0
- package/package.json +18 -22
- package/dist/AnalyticsController-method-action-types.cjs +0 -7
- package/dist/AnalyticsController-method-action-types.cjs.map +0 -1
- package/dist/AnalyticsController-method-action-types.d.cts +0 -185
- package/dist/AnalyticsController-method-action-types.d.cts.map +0 -1
- package/dist/AnalyticsController-method-action-types.d.mts.map +0 -1
- package/dist/AnalyticsController-method-action-types.mjs.map +0 -1
- package/dist/AnalyticsController.cjs +0 -991
- package/dist/AnalyticsController.cjs.map +0 -1
- package/dist/AnalyticsController.d.cts.map +0 -1
- package/dist/AnalyticsController.d.mts +0 -431
- package/dist/AnalyticsController.d.mts.map +0 -1
- package/dist/AnalyticsController.mjs +0 -987
- package/dist/AnalyticsController.mjs.map +0 -1
- package/dist/AnalyticsLogger.cjs +0 -8
- package/dist/AnalyticsLogger.cjs.map +0 -1
- package/dist/AnalyticsLogger.d.cts +0 -5
- package/dist/AnalyticsLogger.d.cts.map +0 -1
- package/dist/AnalyticsLogger.d.mts +0 -5
- package/dist/AnalyticsLogger.d.mts.map +0 -1
- package/dist/AnalyticsLogger.mjs.map +0 -1
- package/dist/AnalyticsPlatformAdapter.types.cjs +0 -3
- package/dist/AnalyticsPlatformAdapter.types.cjs.map +0 -1
- package/dist/AnalyticsPlatformAdapter.types.d.cts +0 -144
- package/dist/AnalyticsPlatformAdapter.types.d.cts.map +0 -1
- package/dist/AnalyticsPlatformAdapter.types.d.mts.map +0 -1
- package/dist/AnalyticsPlatformAdapter.types.mjs +0 -2
- package/dist/AnalyticsPlatformAdapter.types.mjs.map +0 -1
- package/dist/AnalyticsPlatformAdapterSetupError.cjs +0 -17
- package/dist/AnalyticsPlatformAdapterSetupError.cjs.map +0 -1
- package/dist/AnalyticsPlatformAdapterSetupError.d.cts.map +0 -1
- package/dist/AnalyticsPlatformAdapterSetupError.d.mts +0 -8
- package/dist/AnalyticsPlatformAdapterSetupError.d.mts.map +0 -1
- package/dist/AnalyticsPlatformAdapterSetupError.mjs.map +0 -1
- package/dist/EventFragment.types.cjs +0 -3
- package/dist/EventFragment.types.cjs.map +0 -1
- package/dist/EventFragment.types.d.cts.map +0 -1
- package/dist/EventFragment.types.d.mts +0 -111
- package/dist/EventFragment.types.d.mts.map +0 -1
- package/dist/EventFragment.types.mjs +0 -2
- package/dist/EventFragment.types.mjs.map +0 -1
- package/dist/analyticsControllerStateValidator.cjs +0 -36
- package/dist/analyticsControllerStateValidator.cjs.map +0 -1
- package/dist/analyticsControllerStateValidator.d.cts +0 -17
- package/dist/analyticsControllerStateValidator.d.cts.map +0 -1
- package/dist/analyticsControllerStateValidator.d.mts.map +0 -1
- package/dist/analyticsControllerStateValidator.mjs.map +0 -1
- package/dist/index.cjs +0 -15
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts.map +0 -1
- package/dist/index.d.mts +0 -11
- package/dist/index.d.mts.map +0 -1
- package/dist/index.mjs +0 -7
- package/dist/index.mjs.map +0 -1
- package/dist/selectors.cjs.map +0 -1
- package/dist/selectors.d.cts +0 -15
- package/dist/selectors.d.cts.map +0 -1
- package/dist/selectors.d.mts +0 -15
- package/dist/selectors.d.mts.map +0 -1
- package/dist/selectors.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EventFragment.types.d.mts","sourceRoot":"","sources":["../src/EventFragment.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,wBAAwB,EACzB,6CAAyC;AAE1C;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,wBAAwB,CAAC;IAErC;;;;OAIG;IACH,mBAAmB,EAAE,wBAAwB,CAAC;IAE9C;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAE3B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,8BAA8B,GAAG,QAAQ,CAAC;IACpD,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IAC/C,mBAAmB,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;AAE7E;;;GAGG;AACH,MAAM,MAAM,6BAA6B,GAAG,OAAO,CACjD,IAAI,CACF,sBAAsB,EACpB,IAAI,GACJ,cAAc,GACd,cAAc,GACd,cAAc,GACd,YAAY,GACZ,qBAAqB,GACrB,SAAS,GACT,SAAS,CACZ,CACF,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAC9C,6BAA6B,EAC7B,YAAY,GAAG,qBAAqB,GAAG,SAAS,CACjD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qCAAqC,GAAG;IAClD;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EventFragment.types.mjs","sourceRoot":"","sources":["../src/EventFragment.types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n AnalyticsContext,\n AnalyticsEventProperties,\n} from './AnalyticsPlatformAdapter.types';\n\n/**\n * A bag of analytics properties that accumulates across a user journey.\n *\n * A fragment lets several parts of a client contribute properties to the same\n * logical journey (a signature request, a transaction confirmation) without\n * having to re-derive them for every event, and lets the journey be closed as\n * a success or a failure.\n *\n * All three event names are optional. A fragment that declares none of them\n * never emits anything and acts purely as a property bag that the client reads\n * back with {@link AnalyticsController.getEventFragmentById} at the moment it\n * emits its own event.\n */\nexport type AnalyticsEventFragment = {\n /**\n * The fragment identifier, unique per client.\n */\n id: string;\n\n /**\n * Properties tracked with every event this fragment emits.\n */\n properties: AnalyticsEventProperties;\n\n /**\n * Properties that must not be linked to the user's analytics ID. They are\n * delivered on a separate anonymous payload when the anonymous events\n * feature is enabled.\n */\n sensitiveProperties: AnalyticsEventProperties;\n\n /**\n * Name of an event emitted immediately when the fragment is created.\n */\n initialEvent?: string;\n\n /**\n * Name of the event emitted when the fragment is finalized normally.\n */\n successEvent?: string;\n\n /**\n * Name of the event emitted when the fragment is finalized as abandoned.\n */\n failureEvent?: string;\n\n /**\n * Platform-specific context forwarded with every event this fragment emits.\n */\n context?: AnalyticsContext;\n\n /**\n * Whether the fragment survives {@link AnalyticsController.init}. Fragments\n * that do not set this are discarded when the controller re-initializes,\n * since the journey they belonged to cannot be resumed. Even with this set,\n * a fragment whose {@link lastUpdated} is older than the controller's max\n * fragment age is discarded on init.\n */\n persist?: boolean;\n\n /**\n * `Date.now()` when the fragment was created.\n */\n createdAt: number;\n\n /**\n * `Date.now()` when the fragment was last written to. Used on\n * {@link AnalyticsController.init} to expire abandoned persisted fragments.\n */\n lastUpdated: number;\n};\n\n/**\n * Public, read-only view of an {@link AnalyticsEventFragment}.\n *\n * Returned by {@link AnalyticsController.createEventFragment} and\n * {@link AnalyticsController.getEventFragmentById}. Callers must use\n * {@link AnalyticsController.updateEventFragment} (or\n * {@link AnalyticsController.upsertEventFragment}) to modify fragment data.\n */\nexport type ReadonlyAnalyticsEventFragment = Readonly<{\n id: string;\n properties: Readonly<AnalyticsEventProperties>;\n sensitiveProperties: Readonly<AnalyticsEventProperties>;\n initialEvent?: string;\n successEvent?: string;\n failureEvent?: string;\n context?: Readonly<AnalyticsContext>;\n persist?: boolean;\n createdAt: number;\n lastUpdated: number;\n}>;\n\n/**\n * Event fragments keyed by fragment ID.\n */\nexport type AnalyticsEventFragments = Record<string, AnalyticsEventFragment>;\n\n/**\n * Options accepted when creating an event fragment. An `id` is generated when\n * one is not supplied.\n */\nexport type AnalyticsEventFragmentOptions = Partial<\n Pick<\n AnalyticsEventFragment,\n | 'id'\n | 'initialEvent'\n | 'successEvent'\n | 'failureEvent'\n | 'properties'\n | 'sensitiveProperties'\n | 'context'\n | 'persist'\n >\n>;\n\n/**\n * The fields that can be written to an existing event fragment.\n */\nexport type AnalyticsEventFragmentPayload = Pick<\n AnalyticsEventFragmentOptions,\n 'properties' | 'sensitiveProperties' | 'context'\n>;\n\n/**\n * Options accepted when finalizing an event fragment.\n */\nexport type AnalyticsEventFragmentFinalizeOptions = {\n /**\n * Whether the journey was abandoned, which selects `failureEvent` instead of\n * `successEvent`.\n */\n abandoned?: boolean;\n\n /**\n * Context merged over the fragment's own context for the emitted event.\n */\n context?: AnalyticsContext;\n};\n"]}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validateAnalyticsControllerState = exports.isValidUUIDv4 = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* UUIDv4 format regex pattern.
|
|
6
|
-
* Format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
|
|
7
|
-
* - x is any hexadecimal digit [0-9a-f]
|
|
8
|
-
* - 4 indicates UUID version 4
|
|
9
|
-
* - y is the variant indicator [89ab]
|
|
10
|
-
*/
|
|
11
|
-
const UUID_V4_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu;
|
|
12
|
-
/**
|
|
13
|
-
* Validates that a string is a valid UUIDv4 format.
|
|
14
|
-
*
|
|
15
|
-
* @param value - The string to validate
|
|
16
|
-
* @returns True if the string matches UUIDv4 format
|
|
17
|
-
*/
|
|
18
|
-
function isValidUUIDv4(value) {
|
|
19
|
-
return typeof value === 'string' && UUID_V4_REGEX.test(value);
|
|
20
|
-
}
|
|
21
|
-
exports.isValidUUIDv4 = isValidUUIDv4;
|
|
22
|
-
/**
|
|
23
|
-
* Validates that the analytics state has a valid UUIDv4 analyticsId.
|
|
24
|
-
*
|
|
25
|
-
* @param state - The analytics controller state to validate
|
|
26
|
-
* @param skipUUIDv4Check - When `true`, skips UUIDv4 format validation
|
|
27
|
-
* @throws Error if analyticsId is missing or not a valid UUIDv4
|
|
28
|
-
*/
|
|
29
|
-
function validateAnalyticsControllerState(state, skipUUIDv4Check) {
|
|
30
|
-
if (!state.analyticsId ||
|
|
31
|
-
(skipUUIDv4Check !== true && !isValidUUIDv4(state.analyticsId))) {
|
|
32
|
-
throw new Error('Invalid analyticsId');
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
exports.validateAnalyticsControllerState = validateAnalyticsControllerState;
|
|
36
|
-
//# sourceMappingURL=analyticsControllerStateValidator.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"analyticsControllerStateValidator.cjs","sourceRoot":"","sources":["../src/analyticsControllerStateValidator.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACH,MAAM,aAAa,GACjB,yEAAyE,CAAC;AAE5E;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,KAAa;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAFD,sCAEC;AAED;;;;;;GAMG;AACH,SAAgB,gCAAgC,CAC9C,KAA+B,EAC/B,eAAyB;IAEzB,IACE,CAAC,KAAK,CAAC,WAAW;QAClB,CAAC,eAAe,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAC/D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAVD,4EAUC","sourcesContent":["import type { AnalyticsControllerState } from './AnalyticsController.js';\n\n/**\n * UUIDv4 format regex pattern.\n * Format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\n * - x is any hexadecimal digit [0-9a-f]\n * - 4 indicates UUID version 4\n * - y is the variant indicator [89ab]\n */\nconst UUID_V4_REGEX =\n /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu;\n\n/**\n * Validates that a string is a valid UUIDv4 format.\n *\n * @param value - The string to validate\n * @returns True if the string matches UUIDv4 format\n */\nexport function isValidUUIDv4(value: string): boolean {\n return typeof value === 'string' && UUID_V4_REGEX.test(value);\n}\n\n/**\n * Validates that the analytics state has a valid UUIDv4 analyticsId.\n *\n * @param state - The analytics controller state to validate\n * @param skipUUIDv4Check - When `true`, skips UUIDv4 format validation\n * @throws Error if analyticsId is missing or not a valid UUIDv4\n */\nexport function validateAnalyticsControllerState(\n state: AnalyticsControllerState,\n skipUUIDv4Check?: boolean,\n): void {\n if (\n !state.analyticsId ||\n (skipUUIDv4Check !== true && !isValidUUIDv4(state.analyticsId))\n ) {\n throw new Error('Invalid analyticsId');\n }\n}\n"]}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { AnalyticsControllerState } from "./AnalyticsController.cjs";
|
|
2
|
-
/**
|
|
3
|
-
* Validates that a string is a valid UUIDv4 format.
|
|
4
|
-
*
|
|
5
|
-
* @param value - The string to validate
|
|
6
|
-
* @returns True if the string matches UUIDv4 format
|
|
7
|
-
*/
|
|
8
|
-
export declare function isValidUUIDv4(value: string): boolean;
|
|
9
|
-
/**
|
|
10
|
-
* Validates that the analytics state has a valid UUIDv4 analyticsId.
|
|
11
|
-
*
|
|
12
|
-
* @param state - The analytics controller state to validate
|
|
13
|
-
* @param skipUUIDv4Check - When `true`, skips UUIDv4 format validation
|
|
14
|
-
* @throws Error if analyticsId is missing or not a valid UUIDv4
|
|
15
|
-
*/
|
|
16
|
-
export declare function validateAnalyticsControllerState(state: AnalyticsControllerState, skipUUIDv4Check?: boolean): void;
|
|
17
|
-
//# sourceMappingURL=analyticsControllerStateValidator.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"analyticsControllerStateValidator.d.cts","sourceRoot":"","sources":["../src/analyticsControllerStateValidator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kCAAiC;AAYzE;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,wBAAwB,EAC/B,eAAe,CAAC,EAAE,OAAO,GACxB,IAAI,CAON"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"analyticsControllerStateValidator.d.mts","sourceRoot":"","sources":["../src/analyticsControllerStateValidator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kCAAiC;AAYzE;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,wBAAwB,EAC/B,eAAe,CAAC,EAAE,OAAO,GACxB,IAAI,CAON"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"analyticsControllerStateValidator.mjs","sourceRoot":"","sources":["../src/analyticsControllerStateValidator.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,aAAa,GACjB,yEAAyE,CAAC;AAE5E;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gCAAgC,CAC9C,KAA+B,EAC/B,eAAyB;IAEzB,IACE,CAAC,KAAK,CAAC,WAAW;QAClB,CAAC,eAAe,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAC/D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;AACH,CAAC","sourcesContent":["import type { AnalyticsControllerState } from './AnalyticsController.js';\n\n/**\n * UUIDv4 format regex pattern.\n * Format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\n * - x is any hexadecimal digit [0-9a-f]\n * - 4 indicates UUID version 4\n * - y is the variant indicator [89ab]\n */\nconst UUID_V4_REGEX =\n /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu;\n\n/**\n * Validates that a string is a valid UUIDv4 format.\n *\n * @param value - The string to validate\n * @returns True if the string matches UUIDv4 format\n */\nexport function isValidUUIDv4(value: string): boolean {\n return typeof value === 'string' && UUID_V4_REGEX.test(value);\n}\n\n/**\n * Validates that the analytics state has a valid UUIDv4 analyticsId.\n *\n * @param state - The analytics controller state to validate\n * @param skipUUIDv4Check - When `true`, skips UUIDv4 format validation\n * @throws Error if analyticsId is missing or not a valid UUIDv4\n */\nexport function validateAnalyticsControllerState(\n state: AnalyticsControllerState,\n skipUUIDv4Check?: boolean,\n): void {\n if (\n !state.analyticsId ||\n (skipUUIDv4Check !== true && !isValidUUIDv4(state.analyticsId))\n ) {\n throw new Error('Invalid analyticsId');\n }\n}\n"]}
|
package/dist/index.cjs
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.analyticsControllerSelectors = exports.AnalyticsPlatformAdapterSetupError = exports.getDefaultAnalyticsControllerState = exports.EVENT_FRAGMENT_MAX_AGE = exports.AnalyticsController = void 0;
|
|
4
|
-
// Export controller class and state utilities
|
|
5
|
-
var AnalyticsController_js_1 = require("./AnalyticsController.cjs");
|
|
6
|
-
Object.defineProperty(exports, "AnalyticsController", { enumerable: true, get: function () { return AnalyticsController_js_1.AnalyticsController; } });
|
|
7
|
-
Object.defineProperty(exports, "EVENT_FRAGMENT_MAX_AGE", { enumerable: true, get: function () { return AnalyticsController_js_1.EVENT_FRAGMENT_MAX_AGE; } });
|
|
8
|
-
Object.defineProperty(exports, "getDefaultAnalyticsControllerState", { enumerable: true, get: function () { return AnalyticsController_js_1.getDefaultAnalyticsControllerState; } });
|
|
9
|
-
// Export errors
|
|
10
|
-
var AnalyticsPlatformAdapterSetupError_js_1 = require("./AnalyticsPlatformAdapterSetupError.cjs");
|
|
11
|
-
Object.defineProperty(exports, "AnalyticsPlatformAdapterSetupError", { enumerable: true, get: function () { return AnalyticsPlatformAdapterSetupError_js_1.AnalyticsPlatformAdapterSetupError; } });
|
|
12
|
-
// Export selectors
|
|
13
|
-
var selectors_js_1 = require("./selectors.cjs");
|
|
14
|
-
Object.defineProperty(exports, "analyticsControllerSelectors", { enumerable: true, get: function () { return selectors_js_1.analyticsControllerSelectors; } });
|
|
15
|
-
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,8CAA8C;AAC9C,oEAIkC;AAHhC,6HAAA,mBAAmB,OAAA;AACnB,gIAAA,sBAAsB,OAAA;AACtB,4IAAA,kCAAkC,OAAA;AAIpC,gBAAgB;AAChB,kGAA6F;AAApF,2JAAA,kCAAkC,OAAA;AAoC3C,mBAAmB;AACnB,gDAA8D;AAArD,4HAAA,4BAA4B,OAAA","sourcesContent":["// Export controller class and state utilities\nexport {\n AnalyticsController,\n EVENT_FRAGMENT_MAX_AGE,\n getDefaultAnalyticsControllerState,\n} from './AnalyticsController.js';\nexport type { AnalyticsControllerOptions } from './AnalyticsController.js';\n\n// Export errors\nexport { AnalyticsPlatformAdapterSetupError } from './AnalyticsPlatformAdapterSetupError.js';\n\n// Export types\nexport type {\n AnalyticsContext,\n AnalyticsEventProperties,\n AnalyticsDeliveryOptions,\n AnalyticsInvocationCallback,\n AnalyticsLocationContext,\n AnalyticsLocationField,\n AnalyticsUserTraits,\n AnalyticsPlatformAdapter,\n AnalyticsTrackingEvent,\n} from './AnalyticsPlatformAdapter.types';\n\n// Export event fragment types\nexport type {\n AnalyticsEventFragment,\n AnalyticsEventFragmentFinalizeOptions,\n AnalyticsEventFragmentOptions,\n AnalyticsEventFragmentPayload,\n AnalyticsEventFragments,\n ReadonlyAnalyticsEventFragment,\n} from './EventFragment.types.js';\n\n// Export state types\nexport type {\n AnalyticsControllerState,\n AnalyticsEventQueue,\n AnalyticsQueuedEvent,\n AnalyticsQueuedEventType,\n AnalyticsQueuedTrackEvent,\n AnalyticsQueuedIdentifyEvent,\n AnalyticsQueuedViewEvent,\n} from './AnalyticsController.js';\n\n// Export selectors\nexport { analyticsControllerSelectors } from './selectors.js';\n\n// Export messenger types\nexport type { AnalyticsControllerMessenger } from './AnalyticsController.js';\n\n// Export action and event types\nexport type {\n AnalyticsControllerActions,\n AnalyticsControllerEvents,\n AnalyticsControllerGetStateAction,\n AnalyticsControllerStateChangeEvent,\n} from './AnalyticsController.js';\nexport type {\n AnalyticsControllerTrackEventAction,\n AnalyticsControllerIdentifyAction,\n AnalyticsControllerTrackViewAction,\n AnalyticsControllerOptInAction,\n AnalyticsControllerOptOutAction,\n AnalyticsControllerResetConsentDecisionAction,\n AnalyticsControllerCreateEventFragmentAction,\n AnalyticsControllerUpsertEventFragmentAction,\n AnalyticsControllerUpdateEventFragmentAction,\n AnalyticsControllerGetEventFragmentByIdAction,\n AnalyticsControllerDeleteEventFragmentAction,\n AnalyticsControllerFinalizeEventFragmentAction,\n AnalyticsControllerMethodActions,\n} from './AnalyticsController-method-action-types.js';\n"]}
|
package/dist/index.d.cts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,kCAAkC,GACnC,kCAAiC;AAClC,YAAY,EAAE,0BAA0B,EAAE,kCAAiC;AAG3E,OAAO,EAAE,kCAAkC,EAAE,iDAAgD;AAG7F,YAAY,EACV,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,GACvB,6CAAyC;AAG1C,YAAY,EACV,sBAAsB,EACtB,qCAAqC,EACrC,6BAA6B,EAC7B,6BAA6B,EAC7B,uBAAuB,EACvB,8BAA8B,GAC/B,kCAAiC;AAGlC,YAAY,EACV,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,EAC5B,wBAAwB,GACzB,kCAAiC;AAGlC,OAAO,EAAE,4BAA4B,EAAE,wBAAuB;AAG9D,YAAY,EAAE,4BAA4B,EAAE,kCAAiC;AAG7E,YAAY,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,iCAAiC,EACjC,mCAAmC,GACpC,kCAAiC;AAClC,YAAY,EACV,mCAAmC,EACnC,iCAAiC,EACjC,kCAAkC,EAClC,8BAA8B,EAC9B,+BAA+B,EAC/B,6CAA6C,EAC7C,4CAA4C,EAC5C,4CAA4C,EAC5C,4CAA4C,EAC5C,6CAA6C,EAC7C,4CAA4C,EAC5C,8CAA8C,EAC9C,gCAAgC,GACjC,sDAAqD"}
|
package/dist/index.d.mts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export { AnalyticsController, EVENT_FRAGMENT_MAX_AGE, getDefaultAnalyticsControllerState, } from "./AnalyticsController.mjs";
|
|
2
|
-
export type { AnalyticsControllerOptions } from "./AnalyticsController.mjs";
|
|
3
|
-
export { AnalyticsPlatformAdapterSetupError } from "./AnalyticsPlatformAdapterSetupError.mjs";
|
|
4
|
-
export type { AnalyticsContext, AnalyticsEventProperties, AnalyticsDeliveryOptions, AnalyticsInvocationCallback, AnalyticsLocationContext, AnalyticsLocationField, AnalyticsUserTraits, AnalyticsPlatformAdapter, AnalyticsTrackingEvent, } from "./AnalyticsPlatformAdapter.types.mjs";
|
|
5
|
-
export type { AnalyticsEventFragment, AnalyticsEventFragmentFinalizeOptions, AnalyticsEventFragmentOptions, AnalyticsEventFragmentPayload, AnalyticsEventFragments, ReadonlyAnalyticsEventFragment, } from "./EventFragment.types.mjs";
|
|
6
|
-
export type { AnalyticsControllerState, AnalyticsEventQueue, AnalyticsQueuedEvent, AnalyticsQueuedEventType, AnalyticsQueuedTrackEvent, AnalyticsQueuedIdentifyEvent, AnalyticsQueuedViewEvent, } from "./AnalyticsController.mjs";
|
|
7
|
-
export { analyticsControllerSelectors } from "./selectors.mjs";
|
|
8
|
-
export type { AnalyticsControllerMessenger } from "./AnalyticsController.mjs";
|
|
9
|
-
export type { AnalyticsControllerActions, AnalyticsControllerEvents, AnalyticsControllerGetStateAction, AnalyticsControllerStateChangeEvent, } from "./AnalyticsController.mjs";
|
|
10
|
-
export type { AnalyticsControllerTrackEventAction, AnalyticsControllerIdentifyAction, AnalyticsControllerTrackViewAction, AnalyticsControllerOptInAction, AnalyticsControllerOptOutAction, AnalyticsControllerResetConsentDecisionAction, AnalyticsControllerCreateEventFragmentAction, AnalyticsControllerUpsertEventFragmentAction, AnalyticsControllerUpdateEventFragmentAction, AnalyticsControllerGetEventFragmentByIdAction, AnalyticsControllerDeleteEventFragmentAction, AnalyticsControllerFinalizeEventFragmentAction, AnalyticsControllerMethodActions, } from "./AnalyticsController-method-action-types.mjs";
|
|
11
|
-
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,kCAAkC,GACnC,kCAAiC;AAClC,YAAY,EAAE,0BAA0B,EAAE,kCAAiC;AAG3E,OAAO,EAAE,kCAAkC,EAAE,iDAAgD;AAG7F,YAAY,EACV,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,GACvB,6CAAyC;AAG1C,YAAY,EACV,sBAAsB,EACtB,qCAAqC,EACrC,6BAA6B,EAC7B,6BAA6B,EAC7B,uBAAuB,EACvB,8BAA8B,GAC/B,kCAAiC;AAGlC,YAAY,EACV,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,EAC5B,wBAAwB,GACzB,kCAAiC;AAGlC,OAAO,EAAE,4BAA4B,EAAE,wBAAuB;AAG9D,YAAY,EAAE,4BAA4B,EAAE,kCAAiC;AAG7E,YAAY,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,iCAAiC,EACjC,mCAAmC,GACpC,kCAAiC;AAClC,YAAY,EACV,mCAAmC,EACnC,iCAAiC,EACjC,kCAAkC,EAClC,8BAA8B,EAC9B,+BAA+B,EAC/B,6CAA6C,EAC7C,4CAA4C,EAC5C,4CAA4C,EAC5C,4CAA4C,EAC5C,6CAA6C,EAC7C,4CAA4C,EAC5C,8CAA8C,EAC9C,gCAAgC,GACjC,sDAAqD"}
|
package/dist/index.mjs
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
// Export controller class and state utilities
|
|
2
|
-
export { AnalyticsController, EVENT_FRAGMENT_MAX_AGE, getDefaultAnalyticsControllerState } from "./AnalyticsController.mjs";
|
|
3
|
-
// Export errors
|
|
4
|
-
export { AnalyticsPlatformAdapterSetupError } from "./AnalyticsPlatformAdapterSetupError.mjs";
|
|
5
|
-
// Export selectors
|
|
6
|
-
export { analyticsControllerSelectors } from "./selectors.mjs";
|
|
7
|
-
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,kCAAkC,EACnC,kCAAiC;AAGlC,gBAAgB;AAChB,OAAO,EAAE,kCAAkC,EAAE,iDAAgD;AAoC7F,mBAAmB;AACnB,OAAO,EAAE,4BAA4B,EAAE,wBAAuB","sourcesContent":["// Export controller class and state utilities\nexport {\n AnalyticsController,\n EVENT_FRAGMENT_MAX_AGE,\n getDefaultAnalyticsControllerState,\n} from './AnalyticsController.js';\nexport type { AnalyticsControllerOptions } from './AnalyticsController.js';\n\n// Export errors\nexport { AnalyticsPlatformAdapterSetupError } from './AnalyticsPlatformAdapterSetupError.js';\n\n// Export types\nexport type {\n AnalyticsContext,\n AnalyticsEventProperties,\n AnalyticsDeliveryOptions,\n AnalyticsInvocationCallback,\n AnalyticsLocationContext,\n AnalyticsLocationField,\n AnalyticsUserTraits,\n AnalyticsPlatformAdapter,\n AnalyticsTrackingEvent,\n} from './AnalyticsPlatformAdapter.types';\n\n// Export event fragment types\nexport type {\n AnalyticsEventFragment,\n AnalyticsEventFragmentFinalizeOptions,\n AnalyticsEventFragmentOptions,\n AnalyticsEventFragmentPayload,\n AnalyticsEventFragments,\n ReadonlyAnalyticsEventFragment,\n} from './EventFragment.types.js';\n\n// Export state types\nexport type {\n AnalyticsControllerState,\n AnalyticsEventQueue,\n AnalyticsQueuedEvent,\n AnalyticsQueuedEventType,\n AnalyticsQueuedTrackEvent,\n AnalyticsQueuedIdentifyEvent,\n AnalyticsQueuedViewEvent,\n} from './AnalyticsController.js';\n\n// Export selectors\nexport { analyticsControllerSelectors } from './selectors.js';\n\n// Export messenger types\nexport type { AnalyticsControllerMessenger } from './AnalyticsController.js';\n\n// Export action and event types\nexport type {\n AnalyticsControllerActions,\n AnalyticsControllerEvents,\n AnalyticsControllerGetStateAction,\n AnalyticsControllerStateChangeEvent,\n} from './AnalyticsController.js';\nexport type {\n AnalyticsControllerTrackEventAction,\n AnalyticsControllerIdentifyAction,\n AnalyticsControllerTrackViewAction,\n AnalyticsControllerOptInAction,\n AnalyticsControllerOptOutAction,\n AnalyticsControllerResetConsentDecisionAction,\n AnalyticsControllerCreateEventFragmentAction,\n AnalyticsControllerUpsertEventFragmentAction,\n AnalyticsControllerUpdateEventFragmentAction,\n AnalyticsControllerGetEventFragmentByIdAction,\n AnalyticsControllerDeleteEventFragmentAction,\n AnalyticsControllerFinalizeEventFragmentAction,\n AnalyticsControllerMethodActions,\n} from './AnalyticsController-method-action-types.js';\n"]}
|
package/dist/selectors.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selectors.cjs","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":";;;AAMA,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAA4B,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,CAAC,KAA+B,EAAU,EAAE,CACpE,KAAK,CAAC,WAAW,CAAC;AAEpB;;;;;;GAMG;AACH,MAAM,aAAa,GAAG,CAAC,KAA+B,EAAW,EAAE,CACjE,KAAK,CAAC,OAAO,CAAC;AAEhB;;;;;;GAMG;AACH,MAAM,aAAa,GAAG,CAAC,KAA+B,EAAW,EAAE,CACjE,KAAK,CAAC,OAAO,CAAC;AAEhB;;;;;;;GAOG;AACH,MAAM,yBAAyB,GAAG,CAAC,KAA+B,EAAW,EAAE,CAC7E,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,oBAAoB,GAAG,CAC3B,KAA+B,EACN,EAAE,CAAC,KAAK,CAAC,cAAc,IAAI,qBAAqB,CAAC;AAE5E;;;;;;GAMG;AACH,MAAM,uBAAuB,GAAG,CAC9B,KAA+B,EAC/B,EAAU,EAC0B,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;AAEpE;;;GAGG;AACU,QAAA,4BAA4B,GAAG;IAC1C,iBAAiB;IACjB,aAAa;IACb,aAAa;IACb,yBAAyB;IACzB,oBAAoB;IACpB,uBAAuB;CACxB,CAAC","sourcesContent":["import type { AnalyticsControllerState } from './AnalyticsController.js';\nimport type {\n AnalyticsEventFragment,\n AnalyticsEventFragments,\n} from './EventFragment.types.js';\n\nconst EMPTY_EVENT_FRAGMENTS = Object.freeze({}) as AnalyticsEventFragments;\n\n/**\n * Selects the analytics ID from the controller state.\n *\n * @param state - The controller state\n * @returns The analytics ID\n */\nconst selectAnalyticsId = (state: AnalyticsControllerState): string =>\n state.analyticsId;\n\n/**\n * Selects the opted-in user status from the controller state.\n * Use this selector to read the user's opt-in preference (e.g., for UI display).\n *\n * @param state - The controller state\n * @returns Whether the user has opted in to analytics\n */\nconst selectOptedIn = (state: AnalyticsControllerState): boolean =>\n state.optedIn;\n\n/**\n * Selects whether analytics tracking is enabled.\n * Use this selector to determine if tracking should occur (e.g., in controller methods).\n *\n * @param state - The controller state\n * @returns Whether analytics tracking is enabled\n */\nconst selectEnabled = (state: AnalyticsControllerState): boolean =>\n state.optedIn;\n\n/**\n * Selects whether the user has made a consent decision (opted in or opted out).\n * Use this selector to distinguish the \"undecided\" state (e.g. during\n * onboarding) from an explicit opt-out.\n *\n * @param state - The controller state\n * @returns Whether the user has made a consent decision\n */\nconst selectConsentDecisionMade = (state: AnalyticsControllerState): boolean =>\n state.consentDecisionMade ?? false;\n\n/**\n * Selects the in-progress event fragments from the controller state.\n *\n * @param state - The controller state\n * @returns The event fragments keyed by fragment ID, empty when the event\n * fragments feature has never written any\n */\nconst selectEventFragments = (\n state: AnalyticsControllerState,\n): AnalyticsEventFragments => state.eventFragments ?? EMPTY_EVENT_FRAGMENTS;\n\n/**\n * Selects a single event fragment from the controller state.\n *\n * @param state - The controller state\n * @param id - The fragment ID\n * @returns The fragment, or `undefined` when no fragment has that ID\n */\nconst selectEventFragmentById = (\n state: AnalyticsControllerState,\n id: string,\n): AnalyticsEventFragment | undefined => state.eventFragments?.[id];\n\n/**\n * Selectors for the AnalyticsController state.\n * These can be used with Redux or directly with controller state.\n */\nexport const analyticsControllerSelectors = {\n selectAnalyticsId,\n selectOptedIn,\n selectEnabled,\n selectConsentDecisionMade,\n selectEventFragments,\n selectEventFragmentById,\n};\n"]}
|
package/dist/selectors.d.cts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { AnalyticsControllerState } from "./AnalyticsController.cjs";
|
|
2
|
-
import type { AnalyticsEventFragment, AnalyticsEventFragments } from "./EventFragment.types.cjs";
|
|
3
|
-
/**
|
|
4
|
-
* Selectors for the AnalyticsController state.
|
|
5
|
-
* These can be used with Redux or directly with controller state.
|
|
6
|
-
*/
|
|
7
|
-
export declare const analyticsControllerSelectors: {
|
|
8
|
-
selectAnalyticsId: (state: AnalyticsControllerState) => string;
|
|
9
|
-
selectOptedIn: (state: AnalyticsControllerState) => boolean;
|
|
10
|
-
selectEnabled: (state: AnalyticsControllerState) => boolean;
|
|
11
|
-
selectConsentDecisionMade: (state: AnalyticsControllerState) => boolean;
|
|
12
|
-
selectEventFragments: (state: AnalyticsControllerState) => AnalyticsEventFragments;
|
|
13
|
-
selectEventFragmentById: (state: AnalyticsControllerState, id: string) => AnalyticsEventFragment | undefined;
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=selectors.d.cts.map
|
package/dist/selectors.d.cts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selectors.d.cts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kCAAiC;AACzE,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACxB,kCAAiC;AAmElC;;;GAGG;AACH,eAAO,MAAM,4BAA4B;+BA7DP,wBAAwB,KAAG,MAAM;2BAUrC,wBAAwB,KAAG,OAAO;2BAUlC,wBAAwB,KAAG,OAAO;uCAWtB,wBAAwB,KAAG,OAAO;kCAWnE,wBAAwB,KAC9B,uBAAuB;qCAUjB,wBAAwB,MAC3B,MAAM,KACT,sBAAsB,GAAG,SAAS;CAapC,CAAC"}
|
package/dist/selectors.d.mts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { AnalyticsControllerState } from "./AnalyticsController.mjs";
|
|
2
|
-
import type { AnalyticsEventFragment, AnalyticsEventFragments } from "./EventFragment.types.mjs";
|
|
3
|
-
/**
|
|
4
|
-
* Selectors for the AnalyticsController state.
|
|
5
|
-
* These can be used with Redux or directly with controller state.
|
|
6
|
-
*/
|
|
7
|
-
export declare const analyticsControllerSelectors: {
|
|
8
|
-
selectAnalyticsId: (state: AnalyticsControllerState) => string;
|
|
9
|
-
selectOptedIn: (state: AnalyticsControllerState) => boolean;
|
|
10
|
-
selectEnabled: (state: AnalyticsControllerState) => boolean;
|
|
11
|
-
selectConsentDecisionMade: (state: AnalyticsControllerState) => boolean;
|
|
12
|
-
selectEventFragments: (state: AnalyticsControllerState) => AnalyticsEventFragments;
|
|
13
|
-
selectEventFragmentById: (state: AnalyticsControllerState, id: string) => AnalyticsEventFragment | undefined;
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=selectors.d.mts.map
|
package/dist/selectors.d.mts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selectors.d.mts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kCAAiC;AACzE,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACxB,kCAAiC;AAmElC;;;GAGG;AACH,eAAO,MAAM,4BAA4B;+BA7DP,wBAAwB,KAAG,MAAM;2BAUrC,wBAAwB,KAAG,OAAO;2BAUlC,wBAAwB,KAAG,OAAO;uCAWtB,wBAAwB,KAAG,OAAO;kCAWnE,wBAAwB,KAC9B,uBAAuB;qCAUjB,wBAAwB,MAC3B,MAAM,KACT,sBAAsB,GAAG,SAAS;CAapC,CAAC"}
|
package/dist/selectors.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selectors.mjs","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAMA,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAA4B,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,CAAC,KAA+B,EAAU,EAAE,CACpE,KAAK,CAAC,WAAW,CAAC;AAEpB;;;;;;GAMG;AACH,MAAM,aAAa,GAAG,CAAC,KAA+B,EAAW,EAAE,CACjE,KAAK,CAAC,OAAO,CAAC;AAEhB;;;;;;GAMG;AACH,MAAM,aAAa,GAAG,CAAC,KAA+B,EAAW,EAAE,CACjE,KAAK,CAAC,OAAO,CAAC;AAEhB;;;;;;;GAOG;AACH,MAAM,yBAAyB,GAAG,CAAC,KAA+B,EAAW,EAAE,CAC7E,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,oBAAoB,GAAG,CAC3B,KAA+B,EACN,EAAE,CAAC,KAAK,CAAC,cAAc,IAAI,qBAAqB,CAAC;AAE5E;;;;;;GAMG;AACH,MAAM,uBAAuB,GAAG,CAC9B,KAA+B,EAC/B,EAAU,EAC0B,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;AAEpE;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,iBAAiB;IACjB,aAAa;IACb,aAAa;IACb,yBAAyB;IACzB,oBAAoB;IACpB,uBAAuB;CACxB,CAAC","sourcesContent":["import type { AnalyticsControllerState } from './AnalyticsController.js';\nimport type {\n AnalyticsEventFragment,\n AnalyticsEventFragments,\n} from './EventFragment.types.js';\n\nconst EMPTY_EVENT_FRAGMENTS = Object.freeze({}) as AnalyticsEventFragments;\n\n/**\n * Selects the analytics ID from the controller state.\n *\n * @param state - The controller state\n * @returns The analytics ID\n */\nconst selectAnalyticsId = (state: AnalyticsControllerState): string =>\n state.analyticsId;\n\n/**\n * Selects the opted-in user status from the controller state.\n * Use this selector to read the user's opt-in preference (e.g., for UI display).\n *\n * @param state - The controller state\n * @returns Whether the user has opted in to analytics\n */\nconst selectOptedIn = (state: AnalyticsControllerState): boolean =>\n state.optedIn;\n\n/**\n * Selects whether analytics tracking is enabled.\n * Use this selector to determine if tracking should occur (e.g., in controller methods).\n *\n * @param state - The controller state\n * @returns Whether analytics tracking is enabled\n */\nconst selectEnabled = (state: AnalyticsControllerState): boolean =>\n state.optedIn;\n\n/**\n * Selects whether the user has made a consent decision (opted in or opted out).\n * Use this selector to distinguish the \"undecided\" state (e.g. during\n * onboarding) from an explicit opt-out.\n *\n * @param state - The controller state\n * @returns Whether the user has made a consent decision\n */\nconst selectConsentDecisionMade = (state: AnalyticsControllerState): boolean =>\n state.consentDecisionMade ?? false;\n\n/**\n * Selects the in-progress event fragments from the controller state.\n *\n * @param state - The controller state\n * @returns The event fragments keyed by fragment ID, empty when the event\n * fragments feature has never written any\n */\nconst selectEventFragments = (\n state: AnalyticsControllerState,\n): AnalyticsEventFragments => state.eventFragments ?? EMPTY_EVENT_FRAGMENTS;\n\n/**\n * Selects a single event fragment from the controller state.\n *\n * @param state - The controller state\n * @param id - The fragment ID\n * @returns The fragment, or `undefined` when no fragment has that ID\n */\nconst selectEventFragmentById = (\n state: AnalyticsControllerState,\n id: string,\n): AnalyticsEventFragment | undefined => state.eventFragments?.[id];\n\n/**\n * Selectors for the AnalyticsController state.\n * These can be used with Redux or directly with controller state.\n */\nexport const analyticsControllerSelectors = {\n selectAnalyticsId,\n selectOptedIn,\n selectEnabled,\n selectConsentDecisionMade,\n selectEventFragments,\n selectEventFragmentById,\n};\n"]}
|