@metamask-previews/analytics-data-regulation-controller 0.0.0-preview-b3db565c8 → 0.0.0-preview-8bfa290fb
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 +3 -8
- package/dist/AnalyticsDataRegulationController-method-action-types.cjs +7 -0
- package/dist/AnalyticsDataRegulationController-method-action-types.cjs.map +1 -0
- package/dist/{AnalyticsDataRegulationController-method-action-types.d.ts → AnalyticsDataRegulationController-method-action-types.d.cts} +2 -2
- package/dist/AnalyticsDataRegulationController-method-action-types.d.cts.map +1 -0
- package/dist/AnalyticsDataRegulationController-method-action-types.d.mts +44 -0
- package/dist/AnalyticsDataRegulationController-method-action-types.d.mts.map +1 -0
- package/dist/{AnalyticsDataRegulationController-method-action-types.js → AnalyticsDataRegulationController-method-action-types.mjs} +1 -1
- package/dist/AnalyticsDataRegulationController-method-action-types.mjs.map +1 -0
- package/dist/AnalyticsDataRegulationController.cjs +176 -0
- package/dist/AnalyticsDataRegulationController.cjs.map +1 -0
- package/dist/{AnalyticsDataRegulationController.d.ts → AnalyticsDataRegulationController.d.cts} +8 -8
- package/dist/AnalyticsDataRegulationController.d.cts.map +1 -0
- package/dist/AnalyticsDataRegulationController.d.mts +147 -0
- package/dist/AnalyticsDataRegulationController.d.mts.map +1 -0
- package/dist/{AnalyticsDataRegulationController.js → AnalyticsDataRegulationController.mjs} +24 -11
- package/dist/AnalyticsDataRegulationController.mjs.map +1 -0
- package/dist/AnalyticsDataRegulationService-method-action-types.cjs +7 -0
- package/dist/AnalyticsDataRegulationService-method-action-types.cjs.map +1 -0
- package/dist/{AnalyticsDataRegulationService-method-action-types.d.ts → AnalyticsDataRegulationService-method-action-types.d.cts} +2 -2
- package/dist/AnalyticsDataRegulationService-method-action-types.d.cts.map +1 -0
- package/dist/AnalyticsDataRegulationService-method-action-types.d.mts +32 -0
- package/dist/AnalyticsDataRegulationService-method-action-types.d.mts.map +1 -0
- package/dist/{AnalyticsDataRegulationService-method-action-types.js → AnalyticsDataRegulationService-method-action-types.mjs} +1 -1
- package/dist/AnalyticsDataRegulationService-method-action-types.mjs.map +1 -0
- package/dist/AnalyticsDataRegulationService.cjs +247 -0
- package/dist/AnalyticsDataRegulationService.cjs.map +1 -0
- package/dist/{AnalyticsDataRegulationService.d.ts → AnalyticsDataRegulationService.d.cts} +7 -7
- package/dist/AnalyticsDataRegulationService.d.cts.map +1 -0
- package/dist/AnalyticsDataRegulationService.d.mts +172 -0
- package/dist/AnalyticsDataRegulationService.d.mts.map +1 -0
- package/dist/{AnalyticsDataRegulationService.js → AnalyticsDataRegulationService.mjs} +56 -47
- package/dist/AnalyticsDataRegulationService.mjs.map +1 -0
- package/dist/index.cjs +14 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +11 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +11 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +5 -0
- package/dist/index.mjs.map +1 -0
- package/dist/logger.cjs +7 -0
- package/dist/logger.cjs.map +1 -0
- package/dist/logger.d.cts +3 -0
- package/dist/logger.d.cts.map +1 -0
- package/dist/logger.d.mts +3 -0
- package/dist/logger.d.mts.map +1 -0
- package/dist/{logger.js → logger.mjs} +2 -2
- package/dist/logger.mjs.map +1 -0
- package/dist/selectors.cjs +34 -0
- package/dist/selectors.cjs.map +1 -0
- package/dist/selectors.d.cts +11 -0
- package/dist/selectors.d.cts.map +1 -0
- package/dist/selectors.d.mts +11 -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/dist/types.cjs +25 -0
- package/dist/types.cjs.map +1 -0
- package/dist/{types.d.ts → types.d.cts} +11 -11
- package/dist/types.d.cts.map +1 -0
- package/dist/types.d.mts +46 -0
- package/dist/types.d.mts.map +1 -0
- package/dist/{types.js → types.mjs} +1 -1
- package/dist/types.mjs.map +1 -0
- package/package.json +19 -15
- package/dist/AnalyticsDataRegulationController-method-action-types.d.ts.map +0 -1
- package/dist/AnalyticsDataRegulationController-method-action-types.js.map +0 -1
- package/dist/AnalyticsDataRegulationController.d.ts.map +0 -1
- package/dist/AnalyticsDataRegulationController.js.map +0 -1
- package/dist/AnalyticsDataRegulationService-method-action-types.d.ts.map +0 -1
- package/dist/AnalyticsDataRegulationService-method-action-types.js.map +0 -1
- package/dist/AnalyticsDataRegulationService.d.ts.map +0 -1
- package/dist/AnalyticsDataRegulationService.js.map +0 -1
- package/dist/index.d.ts +0 -11
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -5
- package/dist/index.js.map +0 -1
- package/dist/logger.d.ts +0 -2
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js.map +0 -1
- package/dist/selectors.d.ts +0 -33
- package/dist/selectors.d.ts.map +0 -1
- package/dist/selectors.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
|
@@ -1,5 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var _AnalyticsDataRegulationService_messenger, _AnalyticsDataRegulationService_fetch, _AnalyticsDataRegulationService_segmentSourceId, _AnalyticsDataRegulationService_segmentRegulationsEndpoint, _AnalyticsDataRegulationService_policy;
|
|
13
|
+
import { createServicePolicy, HttpError } from "@metamask/controller-utils";
|
|
14
|
+
import { DATA_DELETE_RESPONSE_STATUSES, DATA_DELETE_STATUSES } from "./types.mjs";
|
|
3
15
|
/**
|
|
4
16
|
* Segment API regulation type for DELETE_ONLY operations.
|
|
5
17
|
*/
|
|
@@ -77,46 +89,42 @@ function isDataDeleteStatus(status) {
|
|
|
77
89
|
* ```
|
|
78
90
|
*/
|
|
79
91
|
export class AnalyticsDataRegulationService {
|
|
80
|
-
/**
|
|
81
|
-
* The name of the service.
|
|
82
|
-
*/
|
|
83
|
-
name;
|
|
84
|
-
/**
|
|
85
|
-
* The messenger suited for this service.
|
|
86
|
-
*/
|
|
87
|
-
#messenger;
|
|
88
|
-
/**
|
|
89
|
-
* A function that can be used to make an HTTP request.
|
|
90
|
-
*/
|
|
91
|
-
#fetch;
|
|
92
|
-
/**
|
|
93
|
-
* Segment API source ID.
|
|
94
|
-
*/
|
|
95
|
-
#segmentSourceId;
|
|
96
|
-
/**
|
|
97
|
-
* Base URL for the proxy endpoint that communicates with Segment's Regulations API.
|
|
98
|
-
* This endpoint varies by environment and forwards requests to Segment API with authentication.
|
|
99
|
-
*/
|
|
100
|
-
#segmentRegulationsEndpoint;
|
|
101
|
-
/**
|
|
102
|
-
* The policy that wraps the request.
|
|
103
|
-
*
|
|
104
|
-
* @see {@link createServicePolicy}
|
|
105
|
-
*/
|
|
106
|
-
#policy;
|
|
107
92
|
/**
|
|
108
93
|
* Constructs a new AnalyticsDataRegulationService object.
|
|
109
94
|
*
|
|
110
95
|
* @param options - The constructor options.
|
|
111
96
|
*/
|
|
112
97
|
constructor(options) {
|
|
98
|
+
/**
|
|
99
|
+
* The messenger suited for this service.
|
|
100
|
+
*/
|
|
101
|
+
_AnalyticsDataRegulationService_messenger.set(this, void 0);
|
|
102
|
+
/**
|
|
103
|
+
* A function that can be used to make an HTTP request.
|
|
104
|
+
*/
|
|
105
|
+
_AnalyticsDataRegulationService_fetch.set(this, void 0);
|
|
106
|
+
/**
|
|
107
|
+
* Segment API source ID.
|
|
108
|
+
*/
|
|
109
|
+
_AnalyticsDataRegulationService_segmentSourceId.set(this, void 0);
|
|
110
|
+
/**
|
|
111
|
+
* Base URL for the proxy endpoint that communicates with Segment's Regulations API.
|
|
112
|
+
* This endpoint varies by environment and forwards requests to Segment API with authentication.
|
|
113
|
+
*/
|
|
114
|
+
_AnalyticsDataRegulationService_segmentRegulationsEndpoint.set(this, void 0);
|
|
115
|
+
/**
|
|
116
|
+
* The policy that wraps the request.
|
|
117
|
+
*
|
|
118
|
+
* @see {@link createServicePolicy}
|
|
119
|
+
*/
|
|
120
|
+
_AnalyticsDataRegulationService_policy.set(this, void 0);
|
|
113
121
|
this.name = serviceName;
|
|
114
|
-
this
|
|
115
|
-
this
|
|
116
|
-
this
|
|
117
|
-
this
|
|
118
|
-
this
|
|
119
|
-
this
|
|
122
|
+
__classPrivateFieldSet(this, _AnalyticsDataRegulationService_messenger, options.messenger, "f");
|
|
123
|
+
__classPrivateFieldSet(this, _AnalyticsDataRegulationService_fetch, options.fetch, "f");
|
|
124
|
+
__classPrivateFieldSet(this, _AnalyticsDataRegulationService_segmentSourceId, options.segmentSourceId, "f");
|
|
125
|
+
__classPrivateFieldSet(this, _AnalyticsDataRegulationService_segmentRegulationsEndpoint, options.segmentRegulationsEndpoint, "f");
|
|
126
|
+
__classPrivateFieldSet(this, _AnalyticsDataRegulationService_policy, createServicePolicy(options.policyOptions ?? {}), "f");
|
|
127
|
+
__classPrivateFieldGet(this, _AnalyticsDataRegulationService_messenger, "f").registerMethodActionHandlers(this, MESSENGER_EXPOSED_METHODS);
|
|
120
128
|
}
|
|
121
129
|
/**
|
|
122
130
|
* Registers a handler that will be called after a request returns a non-500
|
|
@@ -128,7 +136,7 @@ export class AnalyticsDataRegulationService {
|
|
|
128
136
|
* @see {@link createServicePolicy}
|
|
129
137
|
*/
|
|
130
138
|
onRetry(listener) {
|
|
131
|
-
return this
|
|
139
|
+
return __classPrivateFieldGet(this, _AnalyticsDataRegulationService_policy, "f").onRetry(listener);
|
|
132
140
|
}
|
|
133
141
|
/**
|
|
134
142
|
* Registers a handler that will be called after a set number of retry rounds
|
|
@@ -139,7 +147,7 @@ export class AnalyticsDataRegulationService {
|
|
|
139
147
|
* @see {@link createServicePolicy}
|
|
140
148
|
*/
|
|
141
149
|
onBreak(listener) {
|
|
142
|
-
return this
|
|
150
|
+
return __classPrivateFieldGet(this, _AnalyticsDataRegulationService_policy, "f").onBreak(listener);
|
|
143
151
|
}
|
|
144
152
|
/**
|
|
145
153
|
* Registers a handler that will be called under one of two circumstances:
|
|
@@ -153,7 +161,7 @@ export class AnalyticsDataRegulationService {
|
|
|
153
161
|
* @returns An object that can be used to unregister the handler.
|
|
154
162
|
*/
|
|
155
163
|
onDegraded(listener) {
|
|
156
|
-
return this
|
|
164
|
+
return __classPrivateFieldGet(this, _AnalyticsDataRegulationService_policy, "f").onDegraded(listener);
|
|
157
165
|
}
|
|
158
166
|
/**
|
|
159
167
|
* Creates a DELETE_ONLY regulation for the given analyticsId.
|
|
@@ -163,17 +171,17 @@ export class AnalyticsDataRegulationService {
|
|
|
163
171
|
* @throws Error if the request fails or the response is invalid.
|
|
164
172
|
*/
|
|
165
173
|
async createDataDeletionTask(analyticsId) {
|
|
166
|
-
if (!this
|
|
174
|
+
if (!__classPrivateFieldGet(this, _AnalyticsDataRegulationService_segmentSourceId, "f") || !__classPrivateFieldGet(this, _AnalyticsDataRegulationService_segmentRegulationsEndpoint, "f")) {
|
|
167
175
|
throw new Error('Segment API source ID or endpoint not found');
|
|
168
176
|
}
|
|
169
|
-
const url = `${this
|
|
177
|
+
const url = `${__classPrivateFieldGet(this, _AnalyticsDataRegulationService_segmentRegulationsEndpoint, "f")}/regulations/sources/${__classPrivateFieldGet(this, _AnalyticsDataRegulationService_segmentSourceId, "f")}`;
|
|
170
178
|
const body = JSON.stringify({
|
|
171
179
|
regulationType: SEGMENT_REGULATION_TYPE_DELETE_ONLY,
|
|
172
180
|
subjectType: SEGMENT_SUBJECT_TYPE_USER_ID,
|
|
173
181
|
subjectIds: [analyticsId],
|
|
174
182
|
});
|
|
175
|
-
const response = await this
|
|
176
|
-
const localResponse = await this
|
|
183
|
+
const response = await __classPrivateFieldGet(this, _AnalyticsDataRegulationService_policy, "f").execute(async () => {
|
|
184
|
+
const localResponse = await __classPrivateFieldGet(this, _AnalyticsDataRegulationService_fetch, "f").call(this, url, {
|
|
177
185
|
method: 'POST',
|
|
178
186
|
headers: {
|
|
179
187
|
'Content-Type': SEGMENT_CONTENT_TYPE,
|
|
@@ -204,12 +212,12 @@ export class AnalyticsDataRegulationService {
|
|
|
204
212
|
* @throws Error if the request fails or the response is invalid.
|
|
205
213
|
*/
|
|
206
214
|
async checkDataDeleteStatus(regulationId) {
|
|
207
|
-
if (!regulationId || !this
|
|
215
|
+
if (!regulationId || !__classPrivateFieldGet(this, _AnalyticsDataRegulationService_segmentRegulationsEndpoint, "f")) {
|
|
208
216
|
throw new Error('Regulation ID or endpoint not configured');
|
|
209
217
|
}
|
|
210
|
-
const url = `${this
|
|
211
|
-
const response = await this
|
|
212
|
-
const localResponse = await this
|
|
218
|
+
const url = `${__classPrivateFieldGet(this, _AnalyticsDataRegulationService_segmentRegulationsEndpoint, "f")}/regulations/${regulationId}`;
|
|
219
|
+
const response = await __classPrivateFieldGet(this, _AnalyticsDataRegulationService_policy, "f").execute(async () => {
|
|
220
|
+
const localResponse = await __classPrivateFieldGet(this, _AnalyticsDataRegulationService_fetch, "f").call(this, url, {
|
|
213
221
|
method: 'GET',
|
|
214
222
|
headers: {
|
|
215
223
|
'Content-Type': SEGMENT_CONTENT_TYPE,
|
|
@@ -231,4 +239,5 @@ export class AnalyticsDataRegulationService {
|
|
|
231
239
|
};
|
|
232
240
|
}
|
|
233
241
|
}
|
|
234
|
-
|
|
242
|
+
_AnalyticsDataRegulationService_messenger = new WeakMap(), _AnalyticsDataRegulationService_fetch = new WeakMap(), _AnalyticsDataRegulationService_segmentSourceId = new WeakMap(), _AnalyticsDataRegulationService_segmentRegulationsEndpoint = new WeakMap(), _AnalyticsDataRegulationService_policy = new WeakMap();
|
|
243
|
+
//# sourceMappingURL=AnalyticsDataRegulationService.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsDataRegulationService.mjs","sourceRoot":"","sources":["../src/AnalyticsDataRegulationService.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n CreateServicePolicyOptions,\n ServicePolicy,\n} from '@metamask/controller-utils';\nimport { createServicePolicy, HttpError } from '@metamask/controller-utils';\nimport type { Messenger } from '@metamask/messenger';\nimport type { IDisposable } from 'cockatiel';\n\nimport type { AnalyticsDataRegulationServiceMethodActions } from './AnalyticsDataRegulationService-method-action-types.js';\nimport {\n DATA_DELETE_RESPONSE_STATUSES,\n DATA_DELETE_STATUSES,\n} from './types.js';\nimport type { DataDeleteStatus } from './types.js';\n\n/**\n * Segment API regulation type for DELETE_ONLY operations.\n */\nconst SEGMENT_REGULATION_TYPE_DELETE_ONLY = 'DELETE_ONLY';\n\n/**\n * Segment API subject type for user ID operations.\n */\nconst SEGMENT_SUBJECT_TYPE_USER_ID = 'USER_ID';\n\n/**\n * Segment API Content-Type header value.\n */\nconst SEGMENT_CONTENT_TYPE = 'application/vnd.segment.v1+json';\n\n// === GENERAL ===\n\n/**\n * The name of the {@link AnalyticsDataRegulationService}, used to namespace the\n * service's actions and events.\n */\nexport const serviceName = 'AnalyticsDataRegulationService';\n\n// === MESSENGER ===\n\nconst MESSENGER_EXPOSED_METHODS = [\n 'createDataDeletionTask',\n 'checkDataDeleteStatus',\n] as const;\n\n/**\n * Actions that {@link AnalyticsDataRegulationService} exposes to other consumers.\n */\nexport type AnalyticsDataRegulationServiceActions =\n AnalyticsDataRegulationServiceMethodActions;\n\n/**\n * Actions from other messengers that {@link AnalyticsDataRegulationServiceMessenger} calls.\n */\ntype AllowedActions = never;\n\n/**\n * Events that {@link AnalyticsDataRegulationService} exposes to other consumers.\n */\nexport type AnalyticsDataRegulationServiceEvents = never;\n\n/**\n * Events from other messengers that {@link AnalyticsDataRegulationService} subscribes to.\n */\ntype AllowedEvents = never;\n\n/**\n * The messenger which is restricted to actions and events accessed by\n * {@link AnalyticsDataRegulationService}.\n */\nexport type AnalyticsDataRegulationServiceMessenger = Messenger<\n typeof serviceName,\n AnalyticsDataRegulationServiceActions | AllowedActions,\n AnalyticsDataRegulationServiceEvents | AllowedEvents\n>;\n\n// === SERVICE DEFINITION ===\n\n/**\n * Response structure from Segment API for creating a regulation.\n */\ntype CreateRegulationResponse = {\n data: {\n data: {\n regulateId: string;\n };\n };\n};\n\n/**\n * Response structure from Segment API for getting regulation status.\n */\ntype GetRegulationStatusResponse = {\n data: {\n data: {\n regulation: {\n overallStatus: string;\n };\n };\n };\n};\n\n/**\n * Options for constructing {@link AnalyticsDataRegulationService}.\n */\nexport type AnalyticsDataRegulationServiceOptions = {\n /**\n * The messenger suited for this service.\n */\n messenger: AnalyticsDataRegulationServiceMessenger;\n\n /**\n * A function that can be used to make an HTTP request.\n */\n fetch: typeof fetch;\n\n /**\n * Segment API source ID (required for creating regulations).\n */\n segmentSourceId: string;\n\n /**\n * Base URL for the proxy endpoint that communicates with Segment's Regulations API.\n * This is a proxy endpoint (not Segment API directly) that forwards requests to Segment's\n * Regulations API and adds authentication tokens. The endpoint URL varies by environment\n * (e.g., development, staging, production) and should be configured accordingly.\n * Example: 'https://proxy.example.com/v1beta'\n */\n segmentRegulationsEndpoint: string;\n\n /**\n * Options to pass to `createServicePolicy`, which is used to wrap each request.\n */\n policyOptions?: CreateServicePolicyOptions;\n};\n\n/**\n * Type guard to check if a value is a valid DataDeleteStatus.\n *\n * @param status - The value to check.\n * @returns True if the value is a valid DataDeleteStatus.\n */\nfunction isDataDeleteStatus(status: unknown): status is DataDeleteStatus {\n const dataDeleteStatuses: string[] = Object.values(DATA_DELETE_STATUSES);\n return dataDeleteStatuses.includes(status as string);\n}\n\n/**\n * This service object is responsible for making requests to the Segment Regulations API\n * via a proxy endpoint for GDPR/CCPA data deletion functionality.\n *\n * @example\n *\n * ```ts\n * import { Messenger } from '@metamask/messenger';\n * import type {\n * AnalyticsDataRegulationServiceActions,\n * AnalyticsDataRegulationServiceEvents,\n * } from '@metamask/analytics-data-regulation-controller';\n *\n * const rootMessenger = new Messenger<\n * 'Root',\n * AnalyticsDataRegulationServiceActions,\n * AnalyticsDataRegulationServiceEvents\n * >({ namespace: 'Root' });\n * const serviceMessenger = new Messenger<\n * 'AnalyticsDataRegulationService',\n * AnalyticsDataRegulationServiceActions,\n * AnalyticsDataRegulationServiceEvents,\n * typeof rootMessenger,\n * >({\n * namespace: 'AnalyticsDataRegulationService',\n * parent: rootMessenger,\n * });\n * // Instantiate the service to register its actions on the messenger\n * new AnalyticsDataRegulationService({\n * messenger: serviceMessenger,\n * fetch,\n * segmentSourceId: 'abc123',\n * segmentRegulationsEndpoint: 'https://proxy.example.com/v1beta',\n * });\n *\n * // Later...\n * // Create a data deletion task\n * const response = await rootMessenger.call(\n * 'AnalyticsDataRegulationService:createDataDeletionTask',\n * 'user-analytics-id',\n * );\n * ```\n */\nexport class AnalyticsDataRegulationService {\n /**\n * The name of the service.\n */\n readonly name: typeof serviceName;\n\n /**\n * The messenger suited for this service.\n */\n readonly #messenger: AnalyticsDataRegulationServiceMessenger;\n\n /**\n * A function that can be used to make an HTTP request.\n */\n readonly #fetch: typeof fetch;\n\n /**\n * Segment API source ID.\n */\n readonly #segmentSourceId: string;\n\n /**\n * Base URL for the proxy endpoint that communicates with Segment's Regulations API.\n * This endpoint varies by environment and forwards requests to Segment API with authentication.\n */\n readonly #segmentRegulationsEndpoint: string;\n\n /**\n * The policy that wraps the request.\n *\n * @see {@link createServicePolicy}\n */\n readonly #policy: ServicePolicy;\n\n /**\n * Constructs a new AnalyticsDataRegulationService object.\n *\n * @param options - The constructor options.\n */\n constructor(options: AnalyticsDataRegulationServiceOptions) {\n this.name = serviceName;\n this.#messenger = options.messenger;\n this.#fetch = options.fetch;\n this.#segmentSourceId = options.segmentSourceId;\n this.#segmentRegulationsEndpoint = options.segmentRegulationsEndpoint;\n this.#policy = createServicePolicy(options.policyOptions ?? {});\n\n this.#messenger.registerMethodActionHandlers(\n this,\n MESSENGER_EXPOSED_METHODS,\n );\n }\n\n /**\n * Registers a handler that will be called after a request returns a non-500\n * response, causing a retry. Primarily useful in tests where timers are being\n * mocked.\n *\n * @param listener - The handler to be called.\n * @returns An object that can be used to unregister the handler.\n * @see {@link createServicePolicy}\n */\n onRetry(listener: Parameters<ServicePolicy['onRetry']>[0]): IDisposable {\n return this.#policy.onRetry(listener);\n }\n\n /**\n * Registers a handler that will be called after a set number of retry rounds\n * prove that requests to the API endpoint consistently return a 5xx response.\n *\n * @param listener - The handler to be called.\n * @returns An object that can be used to unregister the handler.\n * @see {@link createServicePolicy}\n */\n onBreak(listener: Parameters<ServicePolicy['onBreak']>[0]): IDisposable {\n return this.#policy.onBreak(listener);\n }\n\n /**\n * Registers a handler that will be called under one of two circumstances:\n *\n * 1. After a set number of retries prove that requests to the API\n * consistently result in failures.\n * 2. After a successful request is made to the API, but the response takes\n * longer than a set duration to return.\n *\n * @param listener - The handler to be called.\n * @returns An object that can be used to unregister the handler.\n */\n onDegraded(\n listener: Parameters<ServicePolicy['onDegraded']>[0],\n ): IDisposable {\n return this.#policy.onDegraded(listener);\n }\n\n /**\n * Creates a DELETE_ONLY regulation for the given analyticsId.\n *\n * @param analyticsId - The analytics ID of the user for whom to create the deletion task.\n * @returns Promise resolving to a successful deletion regulation response.\n * @throws Error if the request fails or the response is invalid.\n */\n async createDataDeletionTask(analyticsId: string): Promise<{\n status: typeof DATA_DELETE_RESPONSE_STATUSES.Success;\n regulateId: string;\n }> {\n if (!this.#segmentSourceId || !this.#segmentRegulationsEndpoint) {\n throw new Error('Segment API source ID or endpoint not found');\n }\n\n const url = `${this.#segmentRegulationsEndpoint}/regulations/sources/${this.#segmentSourceId}`;\n const body = JSON.stringify({\n regulationType: SEGMENT_REGULATION_TYPE_DELETE_ONLY,\n subjectType: SEGMENT_SUBJECT_TYPE_USER_ID,\n subjectIds: [analyticsId],\n });\n\n const response = await this.#policy.execute(async () => {\n const localResponse = await this.#fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': SEGMENT_CONTENT_TYPE,\n },\n body,\n });\n\n if (!localResponse.ok) {\n throw new HttpError(\n localResponse.status,\n `Creating data deletion task failed with status '${localResponse.status}'`,\n );\n }\n\n return localResponse;\n });\n\n const jsonResponse = (await response.json()) as CreateRegulationResponse;\n\n if (\n !jsonResponse?.data?.data?.regulateId ||\n typeof jsonResponse.data.data.regulateId !== 'string' ||\n jsonResponse.data.data.regulateId.trim() === ''\n ) {\n throw new Error(\n 'Malformed response from Segment API: missing or invalid regulateId',\n );\n }\n\n return {\n status: DATA_DELETE_RESPONSE_STATUSES.Success,\n regulateId: jsonResponse.data.data.regulateId,\n };\n }\n\n /**\n * Checks the status of a regulation by ID.\n *\n * @param regulationId - The regulation ID to check.\n * @returns Promise resolving to a successful regulation status response.\n * @throws Error if the request fails or the response is invalid.\n */\n async checkDataDeleteStatus(regulationId: string): Promise<{\n status: typeof DATA_DELETE_RESPONSE_STATUSES.Success;\n dataDeleteStatus: DataDeleteStatus;\n }> {\n if (!regulationId || !this.#segmentRegulationsEndpoint) {\n throw new Error('Regulation ID or endpoint not configured');\n }\n\n const url = `${this.#segmentRegulationsEndpoint}/regulations/${regulationId}`;\n\n const response = await this.#policy.execute(async () => {\n const localResponse = await this.#fetch(url, {\n method: 'GET',\n headers: {\n 'Content-Type': SEGMENT_CONTENT_TYPE,\n },\n });\n\n if (!localResponse.ok) {\n throw new HttpError(\n localResponse.status,\n `Checking data deletion status failed with status '${localResponse.status}'`,\n );\n }\n\n return localResponse;\n });\n\n const jsonResponse = (await response.json()) as GetRegulationStatusResponse;\n\n const rawStatus = jsonResponse?.data?.data?.regulation?.overallStatus;\n const dataDeleteStatus = isDataDeleteStatus(rawStatus)\n ? rawStatus\n : DATA_DELETE_STATUSES.Unknown;\n\n return {\n status: DATA_DELETE_RESPONSE_STATUSES.Success,\n dataDeleteStatus,\n };\n }\n}\n"]}
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.analyticsDataRegulationControllerSelectors = exports.DATA_DELETE_RESPONSE_STATUSES = exports.DATA_DELETE_STATUSES = exports.AnalyticsDataRegulationService = exports.getDefaultAnalyticsDataRegulationControllerState = exports.AnalyticsDataRegulationController = void 0;
|
|
4
|
+
var AnalyticsDataRegulationController_js_1 = require("./AnalyticsDataRegulationController.cjs");
|
|
5
|
+
Object.defineProperty(exports, "AnalyticsDataRegulationController", { enumerable: true, get: function () { return AnalyticsDataRegulationController_js_1.AnalyticsDataRegulationController; } });
|
|
6
|
+
Object.defineProperty(exports, "getDefaultAnalyticsDataRegulationControllerState", { enumerable: true, get: function () { return AnalyticsDataRegulationController_js_1.getDefaultAnalyticsDataRegulationControllerState; } });
|
|
7
|
+
var AnalyticsDataRegulationService_js_1 = require("./AnalyticsDataRegulationService.cjs");
|
|
8
|
+
Object.defineProperty(exports, "AnalyticsDataRegulationService", { enumerable: true, get: function () { return AnalyticsDataRegulationService_js_1.AnalyticsDataRegulationService; } });
|
|
9
|
+
var types_js_1 = require("./types.cjs");
|
|
10
|
+
Object.defineProperty(exports, "DATA_DELETE_STATUSES", { enumerable: true, get: function () { return types_js_1.DATA_DELETE_STATUSES; } });
|
|
11
|
+
Object.defineProperty(exports, "DATA_DELETE_RESPONSE_STATUSES", { enumerable: true, get: function () { return types_js_1.DATA_DELETE_RESPONSE_STATUSES; } });
|
|
12
|
+
var selectors_js_1 = require("./selectors.cjs");
|
|
13
|
+
Object.defineProperty(exports, "analyticsDataRegulationControllerSelectors", { enumerable: true, get: function () { return selectors_js_1.analyticsDataRegulationControllerSelectors; } });
|
|
14
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,gGAGgD;AAF9C,yJAAA,iCAAiC,OAAA;AACjC,wKAAA,gDAAgD,OAAA;AAIlD,0FAAqF;AAA5E,mJAAA,8BAA8B,OAAA;AAQvC,wCAKoB;AAJlB,gHAAA,oBAAoB,OAAA;AACpB,yHAAA,6BAA6B,OAAA;AAW/B,gDAA4E;AAAnE,0IAAA,0CAA0C,OAAA","sourcesContent":["export {\n AnalyticsDataRegulationController,\n getDefaultAnalyticsDataRegulationControllerState,\n} from './AnalyticsDataRegulationController.js';\nexport type { AnalyticsDataRegulationControllerOptions } from './AnalyticsDataRegulationController.js';\n\nexport { AnalyticsDataRegulationService } from './AnalyticsDataRegulationService.js';\nexport type {\n AnalyticsDataRegulationServiceActions,\n AnalyticsDataRegulationServiceEvents,\n AnalyticsDataRegulationServiceMessenger,\n AnalyticsDataRegulationServiceOptions,\n} from './AnalyticsDataRegulationService.js';\n\nexport {\n DATA_DELETE_STATUSES,\n DATA_DELETE_RESPONSE_STATUSES,\n type DataDeleteStatus,\n type DataDeleteResponseStatus,\n} from './types.js';\nexport type {\n DeleteRegulationResponse,\n DeleteRegulationStatus,\n} from './types.js';\n\nexport type { AnalyticsDataRegulationControllerState } from './AnalyticsDataRegulationController.js';\n\nexport { analyticsDataRegulationControllerSelectors } from './selectors.js';\n\nexport type { AnalyticsDataRegulationControllerMessenger } from './AnalyticsDataRegulationController.js';\n\nexport type {\n AnalyticsDataRegulationControllerActions,\n AnalyticsDataRegulationControllerEvents,\n AnalyticsDataRegulationControllerGetStateAction,\n AnalyticsDataRegulationControllerStateChangeEvent,\n DataDeletionTaskCreatedEvent,\n DataRecordingFlagUpdatedEvent,\n} from './AnalyticsDataRegulationController.js';\n"]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { AnalyticsDataRegulationController, getDefaultAnalyticsDataRegulationControllerState, } from "./AnalyticsDataRegulationController.cjs";
|
|
2
|
+
export type { AnalyticsDataRegulationControllerOptions } from "./AnalyticsDataRegulationController.cjs";
|
|
3
|
+
export { AnalyticsDataRegulationService } from "./AnalyticsDataRegulationService.cjs";
|
|
4
|
+
export type { AnalyticsDataRegulationServiceActions, AnalyticsDataRegulationServiceEvents, AnalyticsDataRegulationServiceMessenger, AnalyticsDataRegulationServiceOptions, } from "./AnalyticsDataRegulationService.cjs";
|
|
5
|
+
export { DATA_DELETE_STATUSES, DATA_DELETE_RESPONSE_STATUSES, type DataDeleteStatus, type DataDeleteResponseStatus, } from "./types.cjs";
|
|
6
|
+
export type { DeleteRegulationResponse, DeleteRegulationStatus, } from "./types.cjs";
|
|
7
|
+
export type { AnalyticsDataRegulationControllerState } from "./AnalyticsDataRegulationController.cjs";
|
|
8
|
+
export { analyticsDataRegulationControllerSelectors } from "./selectors.cjs";
|
|
9
|
+
export type { AnalyticsDataRegulationControllerMessenger } from "./AnalyticsDataRegulationController.cjs";
|
|
10
|
+
export type { AnalyticsDataRegulationControllerActions, AnalyticsDataRegulationControllerEvents, AnalyticsDataRegulationControllerGetStateAction, AnalyticsDataRegulationControllerStateChangeEvent, DataDeletionTaskCreatedEvent, DataRecordingFlagUpdatedEvent, } from "./AnalyticsDataRegulationController.cjs";
|
|
11
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,gDAAgD,GACjD,gDAA+C;AAChD,YAAY,EAAE,wCAAwC,EAAE,gDAA+C;AAEvG,OAAO,EAAE,8BAA8B,EAAE,6CAA4C;AACrF,YAAY,EACV,qCAAqC,EACrC,oCAAoC,EACpC,uCAAuC,EACvC,qCAAqC,GACtC,6CAA4C;AAE7C,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,GAC9B,oBAAmB;AACpB,YAAY,EACV,wBAAwB,EACxB,sBAAsB,GACvB,oBAAmB;AAEpB,YAAY,EAAE,sCAAsC,EAAE,gDAA+C;AAErG,OAAO,EAAE,0CAA0C,EAAE,wBAAuB;AAE5E,YAAY,EAAE,0CAA0C,EAAE,gDAA+C;AAEzG,YAAY,EACV,wCAAwC,EACxC,uCAAuC,EACvC,+CAA+C,EAC/C,iDAAiD,EACjD,4BAA4B,EAC5B,6BAA6B,GAC9B,gDAA+C"}
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { AnalyticsDataRegulationController, getDefaultAnalyticsDataRegulationControllerState, } from "./AnalyticsDataRegulationController.mjs";
|
|
2
|
+
export type { AnalyticsDataRegulationControllerOptions } from "./AnalyticsDataRegulationController.mjs";
|
|
3
|
+
export { AnalyticsDataRegulationService } from "./AnalyticsDataRegulationService.mjs";
|
|
4
|
+
export type { AnalyticsDataRegulationServiceActions, AnalyticsDataRegulationServiceEvents, AnalyticsDataRegulationServiceMessenger, AnalyticsDataRegulationServiceOptions, } from "./AnalyticsDataRegulationService.mjs";
|
|
5
|
+
export { DATA_DELETE_STATUSES, DATA_DELETE_RESPONSE_STATUSES, type DataDeleteStatus, type DataDeleteResponseStatus, } from "./types.mjs";
|
|
6
|
+
export type { DeleteRegulationResponse, DeleteRegulationStatus, } from "./types.mjs";
|
|
7
|
+
export type { AnalyticsDataRegulationControllerState } from "./AnalyticsDataRegulationController.mjs";
|
|
8
|
+
export { analyticsDataRegulationControllerSelectors } from "./selectors.mjs";
|
|
9
|
+
export type { AnalyticsDataRegulationControllerMessenger } from "./AnalyticsDataRegulationController.mjs";
|
|
10
|
+
export type { AnalyticsDataRegulationControllerActions, AnalyticsDataRegulationControllerEvents, AnalyticsDataRegulationControllerGetStateAction, AnalyticsDataRegulationControllerStateChangeEvent, DataDeletionTaskCreatedEvent, DataRecordingFlagUpdatedEvent, } from "./AnalyticsDataRegulationController.mjs";
|
|
11
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,gDAAgD,GACjD,gDAA+C;AAChD,YAAY,EAAE,wCAAwC,EAAE,gDAA+C;AAEvG,OAAO,EAAE,8BAA8B,EAAE,6CAA4C;AACrF,YAAY,EACV,qCAAqC,EACrC,oCAAoC,EACpC,uCAAuC,EACvC,qCAAqC,GACtC,6CAA4C;AAE7C,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,GAC9B,oBAAmB;AACpB,YAAY,EACV,wBAAwB,EACxB,sBAAsB,GACvB,oBAAmB;AAEpB,YAAY,EAAE,sCAAsC,EAAE,gDAA+C;AAErG,OAAO,EAAE,0CAA0C,EAAE,wBAAuB;AAE5E,YAAY,EAAE,0CAA0C,EAAE,gDAA+C;AAEzG,YAAY,EACV,wCAAwC,EACxC,uCAAuC,EACvC,+CAA+C,EAC/C,iDAAiD,EACjD,4BAA4B,EAC5B,6BAA6B,GAC9B,gDAA+C"}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { AnalyticsDataRegulationController, getDefaultAnalyticsDataRegulationControllerState } from "./AnalyticsDataRegulationController.mjs";
|
|
2
|
+
export { AnalyticsDataRegulationService } from "./AnalyticsDataRegulationService.mjs";
|
|
3
|
+
export { DATA_DELETE_STATUSES, DATA_DELETE_RESPONSE_STATUSES } from "./types.mjs";
|
|
4
|
+
export { analyticsDataRegulationControllerSelectors } from "./selectors.mjs";
|
|
5
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,gDAAgD,EACjD,gDAA+C;AAGhD,OAAO,EAAE,8BAA8B,EAAE,6CAA4C;AAQrF,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAG9B,oBAAmB;AAQpB,OAAO,EAAE,0CAA0C,EAAE,wBAAuB","sourcesContent":["export {\n AnalyticsDataRegulationController,\n getDefaultAnalyticsDataRegulationControllerState,\n} from './AnalyticsDataRegulationController.js';\nexport type { AnalyticsDataRegulationControllerOptions } from './AnalyticsDataRegulationController.js';\n\nexport { AnalyticsDataRegulationService } from './AnalyticsDataRegulationService.js';\nexport type {\n AnalyticsDataRegulationServiceActions,\n AnalyticsDataRegulationServiceEvents,\n AnalyticsDataRegulationServiceMessenger,\n AnalyticsDataRegulationServiceOptions,\n} from './AnalyticsDataRegulationService.js';\n\nexport {\n DATA_DELETE_STATUSES,\n DATA_DELETE_RESPONSE_STATUSES,\n type DataDeleteStatus,\n type DataDeleteResponseStatus,\n} from './types.js';\nexport type {\n DeleteRegulationResponse,\n DeleteRegulationStatus,\n} from './types.js';\n\nexport type { AnalyticsDataRegulationControllerState } from './AnalyticsDataRegulationController.js';\n\nexport { analyticsDataRegulationControllerSelectors } from './selectors.js';\n\nexport type { AnalyticsDataRegulationControllerMessenger } from './AnalyticsDataRegulationController.js';\n\nexport type {\n AnalyticsDataRegulationControllerActions,\n AnalyticsDataRegulationControllerEvents,\n AnalyticsDataRegulationControllerGetStateAction,\n AnalyticsDataRegulationControllerStateChangeEvent,\n DataDeletionTaskCreatedEvent,\n DataRecordingFlagUpdatedEvent,\n} from './AnalyticsDataRegulationController.js';\n"]}
|
package/dist/logger.cjs
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* istanbul ignore file */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.projectLogger = void 0;
|
|
5
|
+
const utils_1 = require("@metamask/utils");
|
|
6
|
+
exports.projectLogger = (0, utils_1.createProjectLogger)('analytics-data-regulation-controller');
|
|
7
|
+
//# sourceMappingURL=logger.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.cjs","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";AAAA,0BAA0B;;;AAE1B,2CAAsD;AAEzC,QAAA,aAAa,GAAG,IAAA,2BAAmB,EAC9C,sCAAsC,CACvC,CAAC","sourcesContent":["/* istanbul ignore file */\n\nimport { createProjectLogger } from '@metamask/utils';\n\nexport const projectLogger = createProjectLogger(\n 'analytics-data-regulation-controller',\n);\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.cts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";AAIA,eAAO,MAAM,aAAa,0BAEzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.mts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";AAIA,eAAO,MAAM,aAAa,0BAEzB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/* istanbul ignore file */
|
|
2
|
-
import { createProjectLogger } from
|
|
2
|
+
import { createProjectLogger } from "@metamask/utils";
|
|
3
3
|
export const projectLogger = createProjectLogger('analytics-data-regulation-controller');
|
|
4
|
-
//# sourceMappingURL=logger.
|
|
4
|
+
//# sourceMappingURL=logger.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.mjs","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,EAAE,mBAAmB,EAAE,wBAAwB;AAEtD,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAC9C,sCAAsC,CACvC,CAAC","sourcesContent":["/* istanbul ignore file */\n\nimport { createProjectLogger } from '@metamask/utils';\n\nexport const projectLogger = createProjectLogger(\n 'analytics-data-regulation-controller',\n);\n"]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.analyticsDataRegulationControllerSelectors = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Selects the data recorded flag from the controller state.
|
|
6
|
+
*
|
|
7
|
+
* @param state - The controller state
|
|
8
|
+
* @returns Whether data has been recorded since the last deletion request
|
|
9
|
+
*/
|
|
10
|
+
const selectHasCollectedDataSinceDeletionRequest = (state) => state.hasCollectedDataSinceDeletionRequest;
|
|
11
|
+
/**
|
|
12
|
+
* Selects the delete regulation ID from the controller state.
|
|
13
|
+
*
|
|
14
|
+
* @param state - The controller state
|
|
15
|
+
* @returns The regulation ID, or undefined if not set
|
|
16
|
+
*/
|
|
17
|
+
const selectDeleteRegulationId = (state) => state.deleteRegulationId;
|
|
18
|
+
/**
|
|
19
|
+
* Selects the delete regulation creation timestamp from the controller state.
|
|
20
|
+
*
|
|
21
|
+
* @param state - The controller state
|
|
22
|
+
* @returns The deletion timestamp (in milliseconds since epoch), or undefined if not set
|
|
23
|
+
*/
|
|
24
|
+
const selectDeleteRegulationTimestamp = (state) => state.deleteRegulationTimestamp;
|
|
25
|
+
/**
|
|
26
|
+
* Selectors for the AnalyticsDataRegulationController state.
|
|
27
|
+
* These can be used with Redux or directly with controller state.
|
|
28
|
+
*/
|
|
29
|
+
exports.analyticsDataRegulationControllerSelectors = {
|
|
30
|
+
selectHasCollectedDataSinceDeletionRequest,
|
|
31
|
+
selectDeleteRegulationId,
|
|
32
|
+
selectDeleteRegulationTimestamp,
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=selectors.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectors.cjs","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":";;;AAEA;;;;;GAKG;AACH,MAAM,0CAA0C,GAAG,CACjD,KAA6C,EACpC,EAAE,CAAC,KAAK,CAAC,oCAAoC,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,wBAAwB,GAAG,CAC/B,KAA6C,EACzB,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC;AAElD;;;;;GAKG;AACH,MAAM,+BAA+B,GAAG,CACtC,KAA6C,EACzB,EAAE,CAAC,KAAK,CAAC,yBAAyB,CAAC;AAEzD;;;GAGG;AACU,QAAA,0CAA0C,GAAG;IACxD,0CAA0C;IAC1C,wBAAwB;IACxB,+BAA+B;CAChC,CAAC","sourcesContent":["import type { AnalyticsDataRegulationControllerState } from './AnalyticsDataRegulationController.js';\n\n/**\n * Selects the data recorded flag from the controller state.\n *\n * @param state - The controller state\n * @returns Whether data has been recorded since the last deletion request\n */\nconst selectHasCollectedDataSinceDeletionRequest = (\n state: AnalyticsDataRegulationControllerState,\n): boolean => state.hasCollectedDataSinceDeletionRequest;\n\n/**\n * Selects the delete regulation ID from the controller state.\n *\n * @param state - The controller state\n * @returns The regulation ID, or undefined if not set\n */\nconst selectDeleteRegulationId = (\n state: AnalyticsDataRegulationControllerState,\n): string | undefined => state.deleteRegulationId;\n\n/**\n * Selects the delete regulation creation timestamp from the controller state.\n *\n * @param state - The controller state\n * @returns The deletion timestamp (in milliseconds since epoch), or undefined if not set\n */\nconst selectDeleteRegulationTimestamp = (\n state: AnalyticsDataRegulationControllerState,\n): number | undefined => state.deleteRegulationTimestamp;\n\n/**\n * Selectors for the AnalyticsDataRegulationController state.\n * These can be used with Redux or directly with controller state.\n */\nexport const analyticsDataRegulationControllerSelectors = {\n selectHasCollectedDataSinceDeletionRequest,\n selectDeleteRegulationId,\n selectDeleteRegulationTimestamp,\n};\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AnalyticsDataRegulationControllerState } from "./AnalyticsDataRegulationController.cjs";
|
|
2
|
+
/**
|
|
3
|
+
* Selectors for the AnalyticsDataRegulationController state.
|
|
4
|
+
* These can be used with Redux or directly with controller state.
|
|
5
|
+
*/
|
|
6
|
+
export declare const analyticsDataRegulationControllerSelectors: {
|
|
7
|
+
selectHasCollectedDataSinceDeletionRequest: (state: AnalyticsDataRegulationControllerState) => boolean;
|
|
8
|
+
selectDeleteRegulationId: (state: AnalyticsDataRegulationControllerState) => string | undefined;
|
|
9
|
+
selectDeleteRegulationTimestamp: (state: AnalyticsDataRegulationControllerState) => number | undefined;
|
|
10
|
+
};
|
|
11
|
+
//# 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,sCAAsC,EAAE,gDAA+C;AAgCrG;;;GAGG;AACH,eAAO,MAAM,0CAA0C;wDA3B9C,sCAAsC,KAC5C,OAAO;sCASD,sCAAsC,KAC5C,MAAM,GAAG,SAAS;6CASZ,sCAAsC,KAC5C,MAAM,GAAG,SAAS;CAUpB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AnalyticsDataRegulationControllerState } from "./AnalyticsDataRegulationController.mjs";
|
|
2
|
+
/**
|
|
3
|
+
* Selectors for the AnalyticsDataRegulationController state.
|
|
4
|
+
* These can be used with Redux or directly with controller state.
|
|
5
|
+
*/
|
|
6
|
+
export declare const analyticsDataRegulationControllerSelectors: {
|
|
7
|
+
selectHasCollectedDataSinceDeletionRequest: (state: AnalyticsDataRegulationControllerState) => boolean;
|
|
8
|
+
selectDeleteRegulationId: (state: AnalyticsDataRegulationControllerState) => string | undefined;
|
|
9
|
+
selectDeleteRegulationTimestamp: (state: AnalyticsDataRegulationControllerState) => number | undefined;
|
|
10
|
+
};
|
|
11
|
+
//# 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,sCAAsC,EAAE,gDAA+C;AAgCrG;;;GAGG;AACH,eAAO,MAAM,0CAA0C;wDA3B9C,sCAAsC,KAC5C,OAAO;sCASD,sCAAsC,KAC5C,MAAM,GAAG,SAAS;6CASZ,sCAAsC,KAC5C,MAAM,GAAG,SAAS;CAUpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectors.mjs","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,0CAA0C,GAAG,CACjD,KAA6C,EACpC,EAAE,CAAC,KAAK,CAAC,oCAAoC,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,wBAAwB,GAAG,CAC/B,KAA6C,EACzB,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC;AAElD;;;;;GAKG;AACH,MAAM,+BAA+B,GAAG,CACtC,KAA6C,EACzB,EAAE,CAAC,KAAK,CAAC,yBAAyB,CAAC;AAEzD;;;GAGG;AACH,MAAM,CAAC,MAAM,0CAA0C,GAAG;IACxD,0CAA0C;IAC1C,wBAAwB;IACxB,+BAA+B;CAChC,CAAC","sourcesContent":["import type { AnalyticsDataRegulationControllerState } from './AnalyticsDataRegulationController.js';\n\n/**\n * Selects the data recorded flag from the controller state.\n *\n * @param state - The controller state\n * @returns Whether data has been recorded since the last deletion request\n */\nconst selectHasCollectedDataSinceDeletionRequest = (\n state: AnalyticsDataRegulationControllerState,\n): boolean => state.hasCollectedDataSinceDeletionRequest;\n\n/**\n * Selects the delete regulation ID from the controller state.\n *\n * @param state - The controller state\n * @returns The regulation ID, or undefined if not set\n */\nconst selectDeleteRegulationId = (\n state: AnalyticsDataRegulationControllerState,\n): string | undefined => state.deleteRegulationId;\n\n/**\n * Selects the delete regulation creation timestamp from the controller state.\n *\n * @param state - The controller state\n * @returns The deletion timestamp (in milliseconds since epoch), or undefined if not set\n */\nconst selectDeleteRegulationTimestamp = (\n state: AnalyticsDataRegulationControllerState,\n): number | undefined => state.deleteRegulationTimestamp;\n\n/**\n * Selectors for the AnalyticsDataRegulationController state.\n * These can be used with Redux or directly with controller state.\n */\nexport const analyticsDataRegulationControllerSelectors = {\n selectHasCollectedDataSinceDeletionRequest,\n selectDeleteRegulationId,\n selectDeleteRegulationTimestamp,\n};\n"]}
|
package/dist/types.cjs
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DATA_DELETE_RESPONSE_STATUSES = exports.DATA_DELETE_STATUSES = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Status values for data deletion requests from Segment API.
|
|
6
|
+
* Values match Segment API response values exactly.
|
|
7
|
+
*/
|
|
8
|
+
exports.DATA_DELETE_STATUSES = {
|
|
9
|
+
Failed: 'FAILED',
|
|
10
|
+
Finished: 'FINISHED',
|
|
11
|
+
Initialized: 'INITIALIZED',
|
|
12
|
+
Invalid: 'INVALID',
|
|
13
|
+
NotSupported: 'NOT_SUPPORTED',
|
|
14
|
+
PartialSuccess: 'PARTIAL_SUCCESS',
|
|
15
|
+
Running: 'RUNNING',
|
|
16
|
+
Unknown: 'UNKNOWN',
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Response status for deletion regulation operations.
|
|
20
|
+
*/
|
|
21
|
+
exports.DATA_DELETE_RESPONSE_STATUSES = {
|
|
22
|
+
Success: 'ok',
|
|
23
|
+
Failure: 'error',
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=types.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,oBAAoB,GAAG;IAClC,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,eAAe;IAC7B,cAAc,EAAE,iBAAiB;IACjC,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACV,CAAC;AAQX;;GAEG;AACU,QAAA,6BAA6B,GAAG;IAC3C,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,OAAO;CACR,CAAC","sourcesContent":["/**\n * Status values for data deletion requests from Segment API.\n * Values match Segment API response values exactly.\n */\nexport const DATA_DELETE_STATUSES = {\n Failed: 'FAILED',\n Finished: 'FINISHED',\n Initialized: 'INITIALIZED',\n Invalid: 'INVALID',\n NotSupported: 'NOT_SUPPORTED',\n PartialSuccess: 'PARTIAL_SUCCESS',\n Running: 'RUNNING',\n Unknown: 'UNKNOWN',\n} as const;\n\n/**\n * Type union for data deletion status values.\n */\nexport type DataDeleteStatus =\n (typeof DATA_DELETE_STATUSES)[keyof typeof DATA_DELETE_STATUSES];\n\n/**\n * Response status for deletion regulation operations.\n */\nexport const DATA_DELETE_RESPONSE_STATUSES = {\n Success: 'ok',\n Failure: 'error',\n} as const;\n\n/**\n * Type union for data deletion response status values.\n */\nexport type DataDeleteResponseStatus =\n (typeof DATA_DELETE_RESPONSE_STATUSES)[keyof typeof DATA_DELETE_RESPONSE_STATUSES];\n\n/**\n * Response from creating a data deletion task.\n * The service throws errors on failure, so this type only represents the Success case.\n */\nexport type DeleteRegulationResponse = {\n status: typeof DATA_DELETE_RESPONSE_STATUSES.Success;\n regulateId: string; // Using exact API field name from Segment API response\n};\n\n/**\n * Status information for a data deletion request.\n */\nexport type DeleteRegulationStatus = {\n deletionRequestTimestamp?: number;\n hasCollectedDataSinceDeletionRequest: boolean;\n dataDeletionRequestStatus: DataDeleteStatus;\n};\n"]}
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
* Values match Segment API response values exactly.
|
|
4
4
|
*/
|
|
5
5
|
export declare const DATA_DELETE_STATUSES: {
|
|
6
|
-
readonly Failed:
|
|
7
|
-
readonly Finished:
|
|
8
|
-
readonly Initialized:
|
|
9
|
-
readonly Invalid:
|
|
10
|
-
readonly NotSupported:
|
|
11
|
-
readonly PartialSuccess:
|
|
12
|
-
readonly Running:
|
|
13
|
-
readonly Unknown:
|
|
6
|
+
readonly Failed: "FAILED";
|
|
7
|
+
readonly Finished: "FINISHED";
|
|
8
|
+
readonly Initialized: "INITIALIZED";
|
|
9
|
+
readonly Invalid: "INVALID";
|
|
10
|
+
readonly NotSupported: "NOT_SUPPORTED";
|
|
11
|
+
readonly PartialSuccess: "PARTIAL_SUCCESS";
|
|
12
|
+
readonly Running: "RUNNING";
|
|
13
|
+
readonly Unknown: "UNKNOWN";
|
|
14
14
|
};
|
|
15
15
|
/**
|
|
16
16
|
* Type union for data deletion status values.
|
|
@@ -20,8 +20,8 @@ export type DataDeleteStatus = (typeof DATA_DELETE_STATUSES)[keyof typeof DATA_D
|
|
|
20
20
|
* Response status for deletion regulation operations.
|
|
21
21
|
*/
|
|
22
22
|
export declare const DATA_DELETE_RESPONSE_STATUSES: {
|
|
23
|
-
readonly Success:
|
|
24
|
-
readonly Failure:
|
|
23
|
+
readonly Success: "ok";
|
|
24
|
+
readonly Failure: "error";
|
|
25
25
|
};
|
|
26
26
|
/**
|
|
27
27
|
* Type union for data deletion response status values.
|
|
@@ -43,4 +43,4 @@ export type DeleteRegulationStatus = {
|
|
|
43
43
|
hasCollectedDataSinceDeletionRequest: boolean;
|
|
44
44
|
dataDeletionRequestStatus: DataDeleteStatus;
|
|
45
45
|
};
|
|
46
|
-
//# sourceMappingURL=types.d.
|
|
46
|
+
//# sourceMappingURL=types.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;CASvB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAC1B,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEnE;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;CAGhC,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAClC,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,OAAO,6BAA6B,CAAC,CAAC;AAErF;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,OAAO,6BAA6B,CAAC,OAAO,CAAC;IACrD,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,oCAAoC,EAAE,OAAO,CAAC;IAC9C,yBAAyB,EAAE,gBAAgB,CAAC;CAC7C,CAAC"}
|
package/dist/types.d.mts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Status values for data deletion requests from Segment API.
|
|
3
|
+
* Values match Segment API response values exactly.
|
|
4
|
+
*/
|
|
5
|
+
export declare const DATA_DELETE_STATUSES: {
|
|
6
|
+
readonly Failed: "FAILED";
|
|
7
|
+
readonly Finished: "FINISHED";
|
|
8
|
+
readonly Initialized: "INITIALIZED";
|
|
9
|
+
readonly Invalid: "INVALID";
|
|
10
|
+
readonly NotSupported: "NOT_SUPPORTED";
|
|
11
|
+
readonly PartialSuccess: "PARTIAL_SUCCESS";
|
|
12
|
+
readonly Running: "RUNNING";
|
|
13
|
+
readonly Unknown: "UNKNOWN";
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Type union for data deletion status values.
|
|
17
|
+
*/
|
|
18
|
+
export type DataDeleteStatus = (typeof DATA_DELETE_STATUSES)[keyof typeof DATA_DELETE_STATUSES];
|
|
19
|
+
/**
|
|
20
|
+
* Response status for deletion regulation operations.
|
|
21
|
+
*/
|
|
22
|
+
export declare const DATA_DELETE_RESPONSE_STATUSES: {
|
|
23
|
+
readonly Success: "ok";
|
|
24
|
+
readonly Failure: "error";
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Type union for data deletion response status values.
|
|
28
|
+
*/
|
|
29
|
+
export type DataDeleteResponseStatus = (typeof DATA_DELETE_RESPONSE_STATUSES)[keyof typeof DATA_DELETE_RESPONSE_STATUSES];
|
|
30
|
+
/**
|
|
31
|
+
* Response from creating a data deletion task.
|
|
32
|
+
* The service throws errors on failure, so this type only represents the Success case.
|
|
33
|
+
*/
|
|
34
|
+
export type DeleteRegulationResponse = {
|
|
35
|
+
status: typeof DATA_DELETE_RESPONSE_STATUSES.Success;
|
|
36
|
+
regulateId: string;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Status information for a data deletion request.
|
|
40
|
+
*/
|
|
41
|
+
export type DeleteRegulationStatus = {
|
|
42
|
+
deletionRequestTimestamp?: number;
|
|
43
|
+
hasCollectedDataSinceDeletionRequest: boolean;
|
|
44
|
+
dataDeletionRequestStatus: DataDeleteStatus;
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=types.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;CASvB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAC1B,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEnE;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;CAGhC,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAClC,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,OAAO,6BAA6B,CAAC,CAAC;AAErF;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,OAAO,6BAA6B,CAAC,OAAO,CAAC;IACrD,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,oCAAoC,EAAE,OAAO,CAAC;IAC9C,yBAAyB,EAAE,gBAAgB,CAAC;CAC7C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,eAAe;IAC7B,cAAc,EAAE,iBAAiB;IACjC,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACV,CAAC;AAQX;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,OAAO;CACR,CAAC","sourcesContent":["/**\n * Status values for data deletion requests from Segment API.\n * Values match Segment API response values exactly.\n */\nexport const DATA_DELETE_STATUSES = {\n Failed: 'FAILED',\n Finished: 'FINISHED',\n Initialized: 'INITIALIZED',\n Invalid: 'INVALID',\n NotSupported: 'NOT_SUPPORTED',\n PartialSuccess: 'PARTIAL_SUCCESS',\n Running: 'RUNNING',\n Unknown: 'UNKNOWN',\n} as const;\n\n/**\n * Type union for data deletion status values.\n */\nexport type DataDeleteStatus =\n (typeof DATA_DELETE_STATUSES)[keyof typeof DATA_DELETE_STATUSES];\n\n/**\n * Response status for deletion regulation operations.\n */\nexport const DATA_DELETE_RESPONSE_STATUSES = {\n Success: 'ok',\n Failure: 'error',\n} as const;\n\n/**\n * Type union for data deletion response status values.\n */\nexport type DataDeleteResponseStatus =\n (typeof DATA_DELETE_RESPONSE_STATUSES)[keyof typeof DATA_DELETE_RESPONSE_STATUSES];\n\n/**\n * Response from creating a data deletion task.\n * The service throws errors on failure, so this type only represents the Success case.\n */\nexport type DeleteRegulationResponse = {\n status: typeof DATA_DELETE_RESPONSE_STATUSES.Success;\n regulateId: string; // Using exact API field name from Segment API response\n};\n\n/**\n * Status information for a data deletion request.\n */\nexport type DeleteRegulationStatus = {\n deletionRequestTimestamp?: number;\n hasCollectedDataSinceDeletionRequest: boolean;\n dataDeletionRequestStatus: DataDeleteStatus;\n};\n"]}
|