@metamask-previews/analytics-controller 2.0.0-preview-3866c0ff1 → 2.0.0-preview-e3275932a
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 +0 -4
- package/dist/AnalyticsController-method-action-types.cjs +7 -0
- package/dist/AnalyticsController-method-action-types.cjs.map +1 -0
- package/dist/{AnalyticsController-method-action-types.d.ts → AnalyticsController-method-action-types.d.cts} +2 -2
- package/dist/AnalyticsController-method-action-types.d.cts.map +1 -0
- package/dist/AnalyticsController-method-action-types.d.mts +81 -0
- package/dist/AnalyticsController-method-action-types.d.mts.map +1 -0
- package/dist/{AnalyticsController-method-action-types.js → AnalyticsController-method-action-types.mjs} +1 -1
- package/dist/AnalyticsController-method-action-types.mjs.map +1 -0
- package/dist/AnalyticsController.cjs +641 -0
- package/dist/AnalyticsController.cjs.map +1 -0
- package/dist/{AnalyticsController.d.ts → AnalyticsController.d.cts} +8 -8
- package/dist/AnalyticsController.d.cts.map +1 -0
- package/dist/AnalyticsController.d.mts +312 -0
- package/dist/AnalyticsController.d.mts.map +1 -0
- package/dist/AnalyticsController.mjs +637 -0
- package/dist/AnalyticsController.mjs.map +1 -0
- package/dist/AnalyticsLogger.cjs +8 -0
- package/dist/AnalyticsLogger.cjs.map +1 -0
- package/dist/AnalyticsLogger.d.cts +5 -0
- package/dist/AnalyticsLogger.d.cts.map +1 -0
- package/dist/AnalyticsLogger.d.mts +5 -0
- package/dist/AnalyticsLogger.d.mts.map +1 -0
- package/dist/{AnalyticsLogger.js → AnalyticsLogger.mjs} +2 -2
- package/dist/AnalyticsLogger.mjs.map +1 -0
- package/dist/AnalyticsPlatformAdapter.types.cjs +3 -0
- package/dist/AnalyticsPlatformAdapter.types.cjs.map +1 -0
- package/dist/{AnalyticsPlatformAdapter.types.d.ts → AnalyticsPlatformAdapter.types.d.cts} +2 -2
- package/dist/AnalyticsPlatformAdapter.types.d.cts.map +1 -0
- package/dist/AnalyticsPlatformAdapter.types.d.mts +144 -0
- package/dist/AnalyticsPlatformAdapter.types.d.mts.map +1 -0
- package/dist/AnalyticsPlatformAdapter.types.mjs +2 -0
- package/dist/AnalyticsPlatformAdapter.types.mjs.map +1 -0
- package/dist/AnalyticsPlatformAdapterSetupError.cjs +17 -0
- package/dist/AnalyticsPlatformAdapterSetupError.cjs.map +1 -0
- package/dist/{AnalyticsPlatformAdapterSetupError.d.ts → AnalyticsPlatformAdapterSetupError.d.cts} +1 -1
- package/dist/AnalyticsPlatformAdapterSetupError.d.cts.map +1 -0
- package/dist/AnalyticsPlatformAdapterSetupError.d.mts +8 -0
- package/dist/AnalyticsPlatformAdapterSetupError.d.mts.map +1 -0
- package/dist/{AnalyticsPlatformAdapterSetupError.js → AnalyticsPlatformAdapterSetupError.mjs} +1 -2
- package/dist/AnalyticsPlatformAdapterSetupError.mjs.map +1 -0
- package/dist/analyticsControllerStateValidator.cjs +36 -0
- package/dist/analyticsControllerStateValidator.cjs.map +1 -0
- package/dist/{analyticsControllerStateValidator.d.ts → analyticsControllerStateValidator.d.cts} +2 -2
- package/dist/analyticsControllerStateValidator.d.cts.map +1 -0
- package/dist/analyticsControllerStateValidator.d.mts +17 -0
- package/dist/analyticsControllerStateValidator.d.mts.map +1 -0
- package/dist/{analyticsControllerStateValidator.js → analyticsControllerStateValidator.mjs} +1 -1
- package/dist/analyticsControllerStateValidator.mjs.map +1 -0
- package/dist/index.cjs +14 -0
- package/dist/index.cjs.map +1 -0
- package/dist/{index.d.ts → index.d.cts} +10 -10
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +10 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +7 -0
- package/dist/index.mjs.map +1 -0
- package/dist/{selectors.d.ts → selectors.cjs} +13 -12
- package/dist/selectors.cjs.map +1 -0
- package/dist/selectors.d.cts +12 -0
- package/dist/selectors.d.cts.map +1 -0
- package/dist/selectors.d.mts +12 -0
- package/dist/selectors.d.mts.map +1 -0
- package/dist/{selectors.js → selectors.mjs} +1 -1
- package/dist/selectors.mjs.map +1 -0
- package/package.json +17 -13
- package/dist/AnalyticsController-method-action-types.d.ts.map +0 -1
- package/dist/AnalyticsController-method-action-types.js.map +0 -1
- package/dist/AnalyticsController.d.ts.map +0 -1
- package/dist/AnalyticsController.js +0 -746
- package/dist/AnalyticsController.js.map +0 -1
- package/dist/AnalyticsLogger.d.ts +0 -4
- package/dist/AnalyticsLogger.d.ts.map +0 -1
- package/dist/AnalyticsLogger.js.map +0 -1
- package/dist/AnalyticsPlatformAdapter.types.d.ts.map +0 -1
- package/dist/AnalyticsPlatformAdapter.types.js +0 -2
- package/dist/AnalyticsPlatformAdapter.types.js.map +0 -1
- package/dist/AnalyticsPlatformAdapterSetupError.d.ts.map +0 -1
- package/dist/AnalyticsPlatformAdapterSetupError.js.map +0 -1
- package/dist/analyticsControllerStateValidator.d.ts.map +0 -1
- package/dist/analyticsControllerStateValidator.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -7
- package/dist/index.js.map +0 -1
- package/dist/selectors.d.ts.map +0 -1
- package/dist/selectors.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,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,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,gCAAgC,GACjC,sDAAqD"}
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { AnalyticsController, 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 { AnalyticsControllerState, AnalyticsEventQueue, AnalyticsQueuedEvent, AnalyticsQueuedEventType, AnalyticsQueuedTrackEvent, AnalyticsQueuedIdentifyEvent, AnalyticsQueuedViewEvent, } from "./AnalyticsController.mjs";
|
|
6
|
+
export { analyticsControllerSelectors } from "./selectors.mjs";
|
|
7
|
+
export type { AnalyticsControllerMessenger } from "./AnalyticsController.mjs";
|
|
8
|
+
export type { AnalyticsControllerActions, AnalyticsControllerEvents, AnalyticsControllerGetStateAction, AnalyticsControllerStateChangeEvent, } from "./AnalyticsController.mjs";
|
|
9
|
+
export type { AnalyticsControllerTrackEventAction, AnalyticsControllerIdentifyAction, AnalyticsControllerTrackViewAction, AnalyticsControllerOptInAction, AnalyticsControllerOptOutAction, AnalyticsControllerResetConsentDecisionAction, AnalyticsControllerMethodActions, } from "./AnalyticsController-method-action-types.mjs";
|
|
10
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,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,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,gCAAgC,GACjC,sDAAqD"}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Export controller class and state utilities
|
|
2
|
+
export { AnalyticsController, 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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,OAAO,EACL,mBAAmB,EACnB,kCAAkC,EACnC,kCAAiC;AAGlC,gBAAgB;AAChB,OAAO,EAAE,kCAAkC,EAAE,iDAAgD;AA0B7F,mBAAmB;AACnB,OAAO,EAAE,4BAA4B,EAAE,wBAAuB","sourcesContent":["// Export controller class and state utilities\nexport {\n AnalyticsController,\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 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 AnalyticsControllerMethodActions,\n} from './AnalyticsController-method-action-types.js';\n"]}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.analyticsControllerSelectors = void 0;
|
|
2
4
|
/**
|
|
3
5
|
* Selects the analytics ID from the controller state.
|
|
4
6
|
*
|
|
5
7
|
* @param state - The controller state
|
|
6
8
|
* @returns The analytics ID
|
|
7
9
|
*/
|
|
8
|
-
|
|
10
|
+
const selectAnalyticsId = (state) => state.analyticsId;
|
|
9
11
|
/**
|
|
10
12
|
* Selects the opted-in user status from the controller state.
|
|
11
13
|
* Use this selector to read the user's opt-in preference (e.g., for UI display).
|
|
@@ -13,7 +15,7 @@ declare const selectAnalyticsId: (state: AnalyticsControllerState) => string;
|
|
|
13
15
|
* @param state - The controller state
|
|
14
16
|
* @returns Whether the user has opted in to analytics
|
|
15
17
|
*/
|
|
16
|
-
|
|
18
|
+
const selectOptedIn = (state) => state.optedIn;
|
|
17
19
|
/**
|
|
18
20
|
* Selects whether analytics tracking is enabled.
|
|
19
21
|
* Use this selector to determine if tracking should occur (e.g., in controller methods).
|
|
@@ -21,7 +23,7 @@ declare const selectOptedIn: (state: AnalyticsControllerState) => boolean;
|
|
|
21
23
|
* @param state - The controller state
|
|
22
24
|
* @returns Whether analytics tracking is enabled
|
|
23
25
|
*/
|
|
24
|
-
|
|
26
|
+
const selectEnabled = (state) => state.optedIn;
|
|
25
27
|
/**
|
|
26
28
|
* Selects whether the user has made a consent decision (opted in or opted out).
|
|
27
29
|
* Use this selector to distinguish the "undecided" state (e.g. during
|
|
@@ -30,16 +32,15 @@ declare const selectEnabled: (state: AnalyticsControllerState) => boolean;
|
|
|
30
32
|
* @param state - The controller state
|
|
31
33
|
* @returns Whether the user has made a consent decision
|
|
32
34
|
*/
|
|
33
|
-
|
|
35
|
+
const selectConsentDecisionMade = (state) => state.consentDecisionMade ?? false;
|
|
34
36
|
/**
|
|
35
37
|
* Selectors for the AnalyticsController state.
|
|
36
38
|
* These can be used with Redux or directly with controller state.
|
|
37
39
|
*/
|
|
38
|
-
|
|
39
|
-
selectAnalyticsId
|
|
40
|
-
selectOptedIn
|
|
41
|
-
selectEnabled
|
|
42
|
-
selectConsentDecisionMade
|
|
40
|
+
exports.analyticsControllerSelectors = {
|
|
41
|
+
selectAnalyticsId,
|
|
42
|
+
selectOptedIn,
|
|
43
|
+
selectEnabled,
|
|
44
|
+
selectConsentDecisionMade,
|
|
43
45
|
};
|
|
44
|
-
|
|
45
|
-
//# sourceMappingURL=selectors.d.ts.map
|
|
46
|
+
//# sourceMappingURL=selectors.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectors.cjs","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":";;;AAEA;;;;;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;;;GAGG;AACU,QAAA,4BAA4B,GAAG;IAC1C,iBAAiB;IACjB,aAAa;IACb,aAAa;IACb,yBAAyB;CAC1B,CAAC","sourcesContent":["import type { AnalyticsControllerState } from './AnalyticsController.js';\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 * 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};\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AnalyticsControllerState } from "./AnalyticsController.cjs";
|
|
2
|
+
/**
|
|
3
|
+
* Selectors for the AnalyticsController state.
|
|
4
|
+
* These can be used with Redux or directly with controller state.
|
|
5
|
+
*/
|
|
6
|
+
export declare const analyticsControllerSelectors: {
|
|
7
|
+
selectAnalyticsId: (state: AnalyticsControllerState) => string;
|
|
8
|
+
selectOptedIn: (state: AnalyticsControllerState) => boolean;
|
|
9
|
+
selectEnabled: (state: AnalyticsControllerState) => boolean;
|
|
10
|
+
selectConsentDecisionMade: (state: AnalyticsControllerState) => boolean;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=selectors.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectors.d.cts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kCAAiC;AA0CzE;;;GAGG;AACH,eAAO,MAAM,4BAA4B;+BAtCP,wBAAwB,KAAG,MAAM;2BAUrC,wBAAwB,KAAG,OAAO;2BAUlC,wBAAwB,KAAG,OAAO;uCAWtB,wBAAwB,KAAG,OAAO;CAY3E,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AnalyticsControllerState } from "./AnalyticsController.mjs";
|
|
2
|
+
/**
|
|
3
|
+
* Selectors for the AnalyticsController state.
|
|
4
|
+
* These can be used with Redux or directly with controller state.
|
|
5
|
+
*/
|
|
6
|
+
export declare const analyticsControllerSelectors: {
|
|
7
|
+
selectAnalyticsId: (state: AnalyticsControllerState) => string;
|
|
8
|
+
selectOptedIn: (state: AnalyticsControllerState) => boolean;
|
|
9
|
+
selectEnabled: (state: AnalyticsControllerState) => boolean;
|
|
10
|
+
selectConsentDecisionMade: (state: AnalyticsControllerState) => boolean;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=selectors.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectors.d.mts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kCAAiC;AA0CzE;;;GAGG;AACH,eAAO,MAAM,4BAA4B;+BAtCP,wBAAwB,KAAG,MAAM;2BAUrC,wBAAwB,KAAG,OAAO;2BAUlC,wBAAwB,KAAG,OAAO;uCAWtB,wBAAwB,KAAG,OAAO;CAY3E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectors.mjs","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAEA;;;;;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;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,iBAAiB;IACjB,aAAa;IACb,aAAa;IACb,yBAAyB;CAC1B,CAAC","sourcesContent":["import type { AnalyticsControllerState } from './AnalyticsController.js';\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 * 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};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metamask-previews/analytics-controller",
|
|
3
|
-
"version": "2.0.0-preview-
|
|
3
|
+
"version": "2.0.0-preview-e3275932a",
|
|
4
4
|
"description": "Common Analytics controller for event tracking",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ethereum",
|
|
@@ -18,12 +18,19 @@
|
|
|
18
18
|
"files": [
|
|
19
19
|
"dist/"
|
|
20
20
|
],
|
|
21
|
-
"type": "module",
|
|
22
21
|
"sideEffects": false,
|
|
22
|
+
"main": "./dist/index.cjs",
|
|
23
|
+
"types": "./dist/index.d.cts",
|
|
23
24
|
"exports": {
|
|
24
25
|
".": {
|
|
25
|
-
"
|
|
26
|
-
|
|
26
|
+
"import": {
|
|
27
|
+
"types": "./dist/index.d.mts",
|
|
28
|
+
"default": "./dist/index.mjs"
|
|
29
|
+
},
|
|
30
|
+
"require": {
|
|
31
|
+
"types": "./dist/index.d.cts",
|
|
32
|
+
"default": "./dist/index.cjs"
|
|
33
|
+
}
|
|
27
34
|
},
|
|
28
35
|
"./package.json": "./package.json"
|
|
29
36
|
},
|
|
@@ -32,11 +39,9 @@
|
|
|
32
39
|
"registry": "https://registry.npmjs.org/"
|
|
33
40
|
},
|
|
34
41
|
"scripts": {
|
|
35
|
-
"build": "
|
|
36
|
-
"build:all": "
|
|
37
|
-
"build:clean": "yarn build:only-clean && yarn build",
|
|
42
|
+
"build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references",
|
|
43
|
+
"build:all": "ts-bridge --project tsconfig.build.json --verbose --clean",
|
|
38
44
|
"build:docs": "typedoc",
|
|
39
|
-
"build:only-clean": "rimraf './dist' './tsconfig.build.tsbuildinfo'",
|
|
40
45
|
"changelog:update": "../../scripts/update-changelog.sh @metamask/analytics-controller",
|
|
41
46
|
"changelog:validate": "../../scripts/validate-changelog.sh @metamask/analytics-controller",
|
|
42
47
|
"lint:tsconfigs": "tsx ../../scripts/lint-tsconfigs/lint-tsconfigs.mts",
|
|
@@ -54,24 +59,23 @@
|
|
|
54
59
|
"@metamask/geolocation-controller": "^1.0.0",
|
|
55
60
|
"@metamask/messenger": "^2.0.0",
|
|
56
61
|
"@metamask/utils": "^11.11.0",
|
|
57
|
-
"lodash
|
|
62
|
+
"lodash": "^4.17.21",
|
|
58
63
|
"uuid": "^8.3.2"
|
|
59
64
|
},
|
|
60
65
|
"devDependencies": {
|
|
61
66
|
"@metamask/auto-changelog": "^6.1.0",
|
|
67
|
+
"@ts-bridge/cli": "^0.6.4",
|
|
62
68
|
"@types/jest": "^30.0.0",
|
|
63
69
|
"@types/uuid": "^8.3.0",
|
|
64
|
-
"@typescript/native": "npm:typescript@^7.0.2",
|
|
65
70
|
"deepmerge": "^4.2.2",
|
|
66
71
|
"jest": "^30.4.2",
|
|
67
|
-
"rimraf": "^5.0.5",
|
|
68
72
|
"ts-jest": "^29.4.11",
|
|
69
73
|
"tsx": "^4.20.5",
|
|
70
74
|
"typedoc": "^0.25.13",
|
|
71
75
|
"typedoc-plugin-missing-exports": "^2.0.0",
|
|
72
|
-
"typescript": "
|
|
76
|
+
"typescript": "~5.3.3"
|
|
73
77
|
},
|
|
74
78
|
"engines": {
|
|
75
|
-
"node": "^
|
|
79
|
+
"node": "^18.18 || >=20"
|
|
76
80
|
}
|
|
77
81
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AnalyticsController-method-action-types.d.ts","sourceRoot":"","sources":["../src/AnalyticsController-method-action-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE;;;;;;;GAOG;AACH,MAAM,MAAM,mCAAmC,GAAG;IAChD,IAAI,EAAE,gCAAgC,CAAC;IACvC,OAAO,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;CAC5C,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,iCAAiC,GAAG;IAC9C,IAAI,EAAE,8BAA8B,CAAC;IACrC,OAAO,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;CAC1C,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,kCAAkC,GAAG;IAC/C,IAAI,EAAE,+BAA+B,CAAC;IACtC,OAAO,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;CAC3C,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,8BAA8B,GAAG;IAC3C,IAAI,EAAE,2BAA2B,CAAC;IAClC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;CACvC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,+BAA+B,GAAG;IAC5C,IAAI,EAAE,4BAA4B,CAAC;IACnC,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;CACxC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,6CAA6C,GAAG;IAC1D,IAAI,EAAE,0CAA0C,CAAC;IACjD,OAAO,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;CACtD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gCAAgC,GACxC,mCAAmC,GACnC,iCAAiC,GACjC,kCAAkC,GAClC,8BAA8B,GAC9B,+BAA+B,GAC/B,6CAA6C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AnalyticsController-method-action-types.js","sourceRoot":"","sources":["../src/AnalyticsController-method-action-types.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/**\n * This file is auto generated.\n * Do not edit manually.\n */\n\nimport type { AnalyticsController } from './AnalyticsController.js';\n\n/**\n * Track an analytics event.\n *\n * Events are only tracked if analytics is enabled.\n *\n * @param event - Analytics event with properties and sensitive properties\n * @param context - Optional platform-specific context forwarded to the platform adapter.\n */\nexport type AnalyticsControllerTrackEventAction = {\n type: `AnalyticsController:trackEvent`;\n handler: AnalyticsController['trackEvent'];\n};\n\n/**\n * Identify a user for analytics.\n *\n * @param traits - User traits/properties\n * @param context - Optional platform-specific context forwarded to the platform adapter.\n */\nexport type AnalyticsControllerIdentifyAction = {\n type: `AnalyticsController:identify`;\n handler: AnalyticsController['identify'];\n};\n\n/**\n * Track a page or screen view.\n *\n * @param name - The identifier/name of the page or screen being viewed (e.g., \"home\", \"settings\", \"wallet\")\n * @param properties - Optional properties associated with the view\n * @param context - Optional platform-specific context forwarded to the platform adapter.\n */\nexport type AnalyticsControllerTrackViewAction = {\n type: `AnalyticsController:trackView`;\n handler: AnalyticsController['trackView'];\n};\n\n/**\n * Opt in to analytics.\n *\n * Records that a consent decision has been made and replays any events that\n * were queued while the user was undecided.\n *\n * When geolocation enrichment is enabled, geolocation is resolved here (once\n * the user has consented) and awaited before the queued events are replayed,\n * so those events are enriched with the resolved location as they are sent.\n *\n * @returns A promise that resolves once opt-in processing has completed.\n */\nexport type AnalyticsControllerOptInAction = {\n type: `AnalyticsController:optIn`;\n handler: AnalyticsController['optIn'];\n};\n\n/**\n * Opt out of analytics.\n *\n * Records that a consent decision has been made and discards any persisted\n * events so nothing captured before the decision is ever delivered.\n */\nexport type AnalyticsControllerOptOutAction = {\n type: `AnalyticsController:optOut`;\n handler: AnalyticsController['optOut'];\n};\n\n/**\n * Reset the consent decision back to undecided.\n *\n * Intended for client flows that restart onboarding. Clears the opt-in\n * preference and discards the delivery queue, but preserves any pre-consent\n * events so they can still be replayed if the user opts in again. The user is\n * treated as undecided again.\n */\nexport type AnalyticsControllerResetConsentDecisionAction = {\n type: `AnalyticsController:resetConsentDecision`;\n handler: AnalyticsController['resetConsentDecision'];\n};\n\n/**\n * Union of all AnalyticsController action types.\n */\nexport type AnalyticsControllerMethodActions =\n | AnalyticsControllerTrackEventAction\n | AnalyticsControllerIdentifyAction\n | AnalyticsControllerTrackViewAction\n | AnalyticsControllerOptInAction\n | AnalyticsControllerOptOutAction\n | AnalyticsControllerResetConsentDecisionAction;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AnalyticsController.d.ts","sourceRoot":"","sources":["../src/AnalyticsController.ts"],"names":[],"mappings":"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"}
|