@metamask-previews/analytics-controller 3.0.0-preview-df6c65973 → 3.0.0-preview-3e86f66f7
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 +8 -1
- package/README.md +36 -8
- package/dist/AnalyticsController-method-action-types.d.ts +31 -1
- package/dist/AnalyticsController-method-action-types.d.ts.map +1 -1
- package/dist/AnalyticsController-method-action-types.js.map +1 -1
- package/dist/AnalyticsController.d.ts +77 -4
- package/dist/AnalyticsController.d.ts.map +1 -1
- package/dist/AnalyticsController.js +475 -171
- package/dist/AnalyticsController.js.map +1 -1
- package/dist/AnalyticsPlatformAdapter.types.d.ts +16 -2
- package/dist/AnalyticsPlatformAdapter.types.d.ts.map +1 -1
- package/dist/AnalyticsPlatformAdapter.types.js.map +1 -1
- package/dist/EventFragment.types.d.ts +11 -0
- package/dist/EventFragment.types.d.ts.map +1 -1
- package/dist/EventFragment.types.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/selectors.d.ts +16 -0
- package/dist/selectors.d.ts.map +1 -1
- package/dist/selectors.js +16 -0
- package/dist/selectors.js.map +1 -1
- package/package.json +3 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { AnalyticsController, EVENT_FRAGMENT_MAX_AGE, getDefaultAnalyticsControllerState, } from './AnalyticsController.js';
|
|
1
|
+
export { AnalyticsController, AnalyticsPurpose, EVENT_FRAGMENT_MAX_AGE, getDefaultAnalyticsControllerState, } from './AnalyticsController.js';
|
|
2
2
|
export type { AnalyticsControllerOptions } from './AnalyticsController.js';
|
|
3
3
|
export { AnalyticsPlatformAdapterSetupError } from './AnalyticsPlatformAdapterSetupError.js';
|
|
4
4
|
export type { AnalyticsContext, AnalyticsEventProperties, AnalyticsDeliveryOptions, AnalyticsInvocationCallback, AnalyticsLocationContext, AnalyticsLocationField, AnalyticsUserTraits, AnalyticsPlatformAdapter, AnalyticsTrackingEvent, } from './AnalyticsPlatformAdapter.types.js';
|
|
5
5
|
export type { AnalyticsEventFragment, AnalyticsEventFragmentFinalizeOptions, AnalyticsEventFragmentOptions, AnalyticsEventFragmentPayload, AnalyticsEventFragments, ReadonlyAnalyticsEventFragment, } from './EventFragment.types.js';
|
|
6
|
-
export type { AnalyticsControllerState, AnalyticsEventQueue, AnalyticsQueuedEvent, AnalyticsQueuedEventType, AnalyticsQueuedTrackEvent, AnalyticsQueuedIdentifyEvent, AnalyticsQueuedViewEvent, } from './AnalyticsController.js';
|
|
6
|
+
export type { AnalyticsControllerState, AnalyticsEventQueue, AnalyticsEventsConfig, AnalyticsQueuedEvent, AnalyticsQueuedEventType, AnalyticsQueuedTrackEvent, AnalyticsQueuedIdentifyEvent, AnalyticsQueuedViewEvent, } from './AnalyticsController.js';
|
|
7
7
|
export { analyticsControllerSelectors } from './selectors.js';
|
|
8
8
|
export type { AnalyticsControllerMessenger } from './AnalyticsController.js';
|
|
9
9
|
export type { AnalyticsControllerActions, AnalyticsControllerEvents, AnalyticsControllerGetStateAction, AnalyticsControllerStateChangeEvent, } from './AnalyticsController.js';
|
|
10
|
-
export type { AnalyticsControllerTrackEventAction, AnalyticsControllerIdentifyAction, AnalyticsControllerTrackViewAction, AnalyticsControllerOptInAction, AnalyticsControllerOptOutAction, AnalyticsControllerResetConsentDecisionAction, AnalyticsControllerCreateEventFragmentAction, AnalyticsControllerUpsertEventFragmentAction, AnalyticsControllerUpdateEventFragmentAction, AnalyticsControllerGetEventFragmentByIdAction, AnalyticsControllerDeleteEventFragmentAction, AnalyticsControllerFinalizeEventFragmentAction, AnalyticsControllerMethodActions, } from './AnalyticsController-method-action-types.js';
|
|
10
|
+
export type { AnalyticsControllerTrackEventAction, AnalyticsControllerIdentifyAction, AnalyticsControllerTrackViewAction, AnalyticsControllerOptInAction, AnalyticsControllerOptOutAction, AnalyticsControllerResetConsentDecisionAction, AnalyticsControllerOptInToMarketingAction, AnalyticsControllerOptOutOfMarketingAction, AnalyticsControllerResetMarketingConsentDecisionAction, AnalyticsControllerCreateEventFragmentAction, AnalyticsControllerUpsertEventFragmentAction, AnalyticsControllerUpdateEventFragmentAction, AnalyticsControllerGetEventFragmentByIdAction, AnalyticsControllerDeleteEventFragmentAction, AnalyticsControllerFinalizeEventFragmentAction, AnalyticsControllerMethodActions, } from './AnalyticsController-method-action-types.js';
|
|
11
11
|
//# 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":"AACA,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,kCAAkC,GACnC,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAG3E,OAAO,EAAE,kCAAkC,EAAE,MAAM,yCAAyC,CAAC;AAG7F,YAAY,EACV,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,qCAAqC,CAAC;AAG7C,YAAY,EACV,sBAAsB,EACtB,qCAAqC,EACrC,6BAA6B,EAC7B,6BAA6B,EAC7B,uBAAuB,EACvB,8BAA8B,GAC/B,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EACV,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAG9D,YAAY,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAG7E,YAAY,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,iCAAiC,EACjC,mCAAmC,GACpC,MAAM,0BAA0B,CAAC;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,MAAM,8CAA8C,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,kCAAkC,GACnC,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAG3E,OAAO,EAAE,kCAAkC,EAAE,MAAM,yCAAyC,CAAC;AAG7F,YAAY,EACV,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,qCAAqC,CAAC;AAG7C,YAAY,EACV,sBAAsB,EACtB,qCAAqC,EACrC,6BAA6B,EAC7B,6BAA6B,EAC7B,uBAAuB,EACvB,8BAA8B,GAC/B,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EACV,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAG9D,YAAY,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAG7E,YAAY,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,iCAAiC,EACjC,mCAAmC,GACpC,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,mCAAmC,EACnC,iCAAiC,EACjC,kCAAkC,EAClC,8BAA8B,EAC9B,+BAA+B,EAC/B,6CAA6C,EAC7C,yCAAyC,EACzC,0CAA0C,EAC1C,sDAAsD,EACtD,4CAA4C,EAC5C,4CAA4C,EAC5C,4CAA4C,EAC5C,6CAA6C,EAC7C,4CAA4C,EAC5C,8CAA8C,EAC9C,gCAAgC,GACjC,MAAM,8CAA8C,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Export controller class and state utilities
|
|
2
|
-
export { AnalyticsController, EVENT_FRAGMENT_MAX_AGE, getDefaultAnalyticsControllerState, } from './AnalyticsController.js';
|
|
2
|
+
export { AnalyticsController, AnalyticsPurpose, EVENT_FRAGMENT_MAX_AGE, getDefaultAnalyticsControllerState, } from './AnalyticsController.js';
|
|
3
3
|
// Export errors
|
|
4
4
|
export { AnalyticsPlatformAdapterSetupError } from './AnalyticsPlatformAdapterSetupError.js';
|
|
5
5
|
// Export selectors
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,kCAAkC,GACnC,MAAM,0BAA0B,CAAC;AAGlC,gBAAgB;AAChB,OAAO,EAAE,kCAAkC,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,kCAAkC,GACnC,MAAM,0BAA0B,CAAC;AAGlC,gBAAgB;AAChB,OAAO,EAAE,kCAAkC,EAAE,MAAM,yCAAyC,CAAC;AAqC7F,mBAAmB;AACnB,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC","sourcesContent":["// Export controller class and state utilities\nexport {\n AnalyticsController,\n AnalyticsPurpose,\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.js';\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 AnalyticsEventsConfig,\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 AnalyticsControllerOptInToMarketingAction,\n AnalyticsControllerOptOutOfMarketingAction,\n AnalyticsControllerResetMarketingConsentDecisionAction,\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.d.ts
CHANGED
|
@@ -15,6 +15,13 @@ declare const selectAnalyticsId: (state: AnalyticsControllerState) => string;
|
|
|
15
15
|
* @returns Whether the user has opted in to analytics
|
|
16
16
|
*/
|
|
17
17
|
declare const selectOptedIn: (state: AnalyticsControllerState) => boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Selects the marketing opt-in status from the controller state.
|
|
20
|
+
*
|
|
21
|
+
* @param state - The controller state
|
|
22
|
+
* @returns Whether the user has opted in to marketing analytics
|
|
23
|
+
*/
|
|
24
|
+
declare const selectOptedInToMarketing: (state: AnalyticsControllerState) => boolean;
|
|
18
25
|
/**
|
|
19
26
|
* Selects whether analytics tracking is enabled.
|
|
20
27
|
* Use this selector to determine if tracking should occur (e.g., in controller methods).
|
|
@@ -32,6 +39,13 @@ declare const selectEnabled: (state: AnalyticsControllerState) => boolean;
|
|
|
32
39
|
* @returns Whether the user has made a consent decision
|
|
33
40
|
*/
|
|
34
41
|
declare const selectConsentDecisionMade: (state: AnalyticsControllerState) => boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Selects whether the user has made a marketing consent decision.
|
|
44
|
+
*
|
|
45
|
+
* @param state - The controller state
|
|
46
|
+
* @returns Whether the user has made a marketing consent decision
|
|
47
|
+
*/
|
|
48
|
+
declare const selectMarketingConsentDecisionMade: (state: AnalyticsControllerState) => boolean;
|
|
35
49
|
/**
|
|
36
50
|
* Selects the in-progress event fragments from the controller state.
|
|
37
51
|
*
|
|
@@ -55,8 +69,10 @@ declare const selectEventFragmentById: (state: AnalyticsControllerState, id: str
|
|
|
55
69
|
export declare const analyticsControllerSelectors: {
|
|
56
70
|
selectAnalyticsId: typeof selectAnalyticsId;
|
|
57
71
|
selectOptedIn: typeof selectOptedIn;
|
|
72
|
+
selectOptedInToMarketing: typeof selectOptedInToMarketing;
|
|
58
73
|
selectEnabled: typeof selectEnabled;
|
|
59
74
|
selectConsentDecisionMade: typeof selectConsentDecisionMade;
|
|
75
|
+
selectMarketingConsentDecisionMade: typeof selectMarketingConsentDecisionMade;
|
|
60
76
|
selectEventFragments: typeof selectEventFragments;
|
|
61
77
|
selectEventFragmentById: typeof selectEventFragmentById;
|
|
62
78
|
};
|
package/dist/selectors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAIlC;;;;;GAKG;AACH,QAAA,MAAM,iBAAiB,UAAW,wBAAwB,KAAG,MAC1C,CAAC;AAEpB;;;;;;GAMG;AACH,QAAA,MAAM,aAAa,UAAW,wBAAwB,KAAG,OAC1C,CAAC;AAEhB;;;;;;GAMG;AACH,QAAA,MAAM,aAAa,UAAW,wBAAwB,KAAG,OAC1C,CAAC;AAEhB;;;;;;;GAOG;AACH,QAAA,MAAM,yBAAyB,UAAW,wBAAwB,KAAG,OACjC,CAAC;AAErC;;;;;;GAMG;AACH,QAAA,MAAM,oBAAoB,UACjB,wBAAwB,KAC9B,uBAAwE,CAAC;AAE5E;;;;;;GAMG;AACH,QAAA,MAAM,uBAAuB,UACpB,wBAAwB,MAC3B,MAAM,KACT,sBAAsB,GAAG,SAAuC,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,4BAA4B
|
|
1
|
+
{"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAIlC;;;;;GAKG;AACH,QAAA,MAAM,iBAAiB,UAAW,wBAAwB,KAAG,MAC1C,CAAC;AAEpB;;;;;;GAMG;AACH,QAAA,MAAM,aAAa,UAAW,wBAAwB,KAAG,OAC1C,CAAC;AAEhB;;;;;GAKG;AACH,QAAA,MAAM,wBAAwB,UAAW,wBAAwB,KAAG,OACjC,CAAC;AAEpC;;;;;;GAMG;AACH,QAAA,MAAM,aAAa,UAAW,wBAAwB,KAAG,OAC1C,CAAC;AAEhB;;;;;;;GAOG;AACH,QAAA,MAAM,yBAAyB,UAAW,wBAAwB,KAAG,OACjC,CAAC;AAErC;;;;;GAKG;AACH,QAAA,MAAM,kCAAkC,UAC/B,wBAAwB,KAC9B,OAAsD,CAAC;AAE1D;;;;;;GAMG;AACH,QAAA,MAAM,oBAAoB,UACjB,wBAAwB,KAC9B,uBAAwE,CAAC;AAE5E;;;;;;GAMG;AACH,QAAA,MAAM,uBAAuB,UACpB,wBAAwB,MAC3B,MAAM,KACT,sBAAsB,GAAG,SAAuC,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;CASxC,CAAC"}
|
package/dist/selectors.js
CHANGED
|
@@ -14,6 +14,13 @@ const selectAnalyticsId = (state) => state.analyticsId;
|
|
|
14
14
|
* @returns Whether the user has opted in to analytics
|
|
15
15
|
*/
|
|
16
16
|
const selectOptedIn = (state) => state.optedIn;
|
|
17
|
+
/**
|
|
18
|
+
* Selects the marketing opt-in status from the controller state.
|
|
19
|
+
*
|
|
20
|
+
* @param state - The controller state
|
|
21
|
+
* @returns Whether the user has opted in to marketing analytics
|
|
22
|
+
*/
|
|
23
|
+
const selectOptedInToMarketing = (state) => state.optedInToMarketing === true;
|
|
17
24
|
/**
|
|
18
25
|
* Selects whether analytics tracking is enabled.
|
|
19
26
|
* Use this selector to determine if tracking should occur (e.g., in controller methods).
|
|
@@ -31,6 +38,13 @@ const selectEnabled = (state) => state.optedIn;
|
|
|
31
38
|
* @returns Whether the user has made a consent decision
|
|
32
39
|
*/
|
|
33
40
|
const selectConsentDecisionMade = (state) => state.consentDecisionMade ?? false;
|
|
41
|
+
/**
|
|
42
|
+
* Selects whether the user has made a marketing consent decision.
|
|
43
|
+
*
|
|
44
|
+
* @param state - The controller state
|
|
45
|
+
* @returns Whether the user has made a marketing consent decision
|
|
46
|
+
*/
|
|
47
|
+
const selectMarketingConsentDecisionMade = (state) => state.marketingConsentDecisionMade ?? false;
|
|
34
48
|
/**
|
|
35
49
|
* Selects the in-progress event fragments from the controller state.
|
|
36
50
|
*
|
|
@@ -54,8 +68,10 @@ const selectEventFragmentById = (state, id) => state.eventFragments?.[id];
|
|
|
54
68
|
export const analyticsControllerSelectors = {
|
|
55
69
|
selectAnalyticsId,
|
|
56
70
|
selectOptedIn,
|
|
71
|
+
selectOptedInToMarketing,
|
|
57
72
|
selectEnabled,
|
|
58
73
|
selectConsentDecisionMade,
|
|
74
|
+
selectMarketingConsentDecisionMade,
|
|
59
75
|
selectEventFragments,
|
|
60
76
|
selectEventFragmentById,
|
|
61
77
|
};
|
package/dist/selectors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectors.js","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"]}
|
|
1
|
+
{"version":3,"file":"selectors.js","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;;;;;GAKG;AACH,MAAM,wBAAwB,GAAG,CAAC,KAA+B,EAAW,EAAE,CAC5E,KAAK,CAAC,kBAAkB,KAAK,IAAI,CAAC;AAEpC;;;;;;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;;;;;GAKG;AACH,MAAM,kCAAkC,GAAG,CACzC,KAA+B,EACtB,EAAE,CAAC,KAAK,CAAC,4BAA4B,IAAI,KAAK,CAAC;AAE1D;;;;;;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,wBAAwB;IACxB,aAAa;IACb,yBAAyB;IACzB,kCAAkC;IAClC,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 the marketing opt-in status from the controller state.\n *\n * @param state - The controller state\n * @returns Whether the user has opted in to marketing analytics\n */\nconst selectOptedInToMarketing = (state: AnalyticsControllerState): boolean =>\n state.optedInToMarketing === true;\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 whether the user has made a marketing consent decision.\n *\n * @param state - The controller state\n * @returns Whether the user has made a marketing consent decision\n */\nconst selectMarketingConsentDecisionMade = (\n state: AnalyticsControllerState,\n): boolean => state.marketingConsentDecisionMade ?? 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 selectOptedInToMarketing,\n selectEnabled,\n selectConsentDecisionMade,\n selectMarketingConsentDecisionMade,\n selectEventFragments,\n selectEventFragmentById,\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metamask-previews/analytics-controller",
|
|
3
|
-
"version": "3.0.0-preview-
|
|
3
|
+
"version": "3.0.0-preview-3e86f66f7",
|
|
4
4
|
"description": "Common Analytics controller for event tracking",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ethereum",
|
|
@@ -55,11 +55,12 @@
|
|
|
55
55
|
"@metamask/messenger": "^3.0.0",
|
|
56
56
|
"@metamask/utils": "^12.0.0",
|
|
57
57
|
"lodash-es": "^4.17.21",
|
|
58
|
-
"uuid": "^
|
|
58
|
+
"uuid": "^9.0.1"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
61
|
"@metamask/auto-changelog": "^6.1.0",
|
|
62
62
|
"@types/jest": "^30.0.0",
|
|
63
|
+
"@types/uuid": "^9.0.8",
|
|
63
64
|
"@typescript/native": "npm:typescript@^7.0.2",
|
|
64
65
|
"deepmerge": "^4.2.2",
|
|
65
66
|
"jest": "^30.4.2",
|