@esri/telemetry-amazon 6.0.0-beta.0 → 6.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -9
- package/dist/esm/auth.js +22 -31
- package/dist/esm/auth.js.map +1 -1
- package/dist/esm/create-event-log.js +15 -15
- package/dist/esm/create-event-log.js.map +1 -1
- package/dist/esm/create-event-log.test.js +50 -8
- package/dist/esm/create-event-log.test.js.map +1 -1
- package/dist/esm/create-page-view-log.js +1 -6
- package/dist/esm/create-page-view-log.js.map +1 -1
- package/dist/esm/format-telemetry-attributes.js +8 -4
- package/dist/esm/format-telemetry-attributes.js.map +1 -1
- package/dist/esm/index.js +43 -19
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.test.js +106 -160
- package/dist/esm/index.test.js.map +1 -1
- package/dist/esm/plugins/esri.js +419 -0
- package/dist/esm/plugins/esri.js.map +1 -0
- package/dist/esm/plugins/esri.test.js +556 -0
- package/dist/esm/plugins/esri.test.js.map +1 -0
- package/dist/esm/plugins/utils/browser.js +97 -0
- package/dist/esm/plugins/utils/browser.js.map +1 -0
- package/dist/esm/plugins/utils/browser.test.js +130 -0
- package/dist/esm/plugins/utils/browser.test.js.map +1 -0
- package/dist/esm/plugins/utils/os.js +140 -0
- package/dist/esm/plugins/utils/os.js.map +1 -0
- package/dist/esm/plugins/utils/os.test.js +54 -0
- package/dist/esm/plugins/utils/os.test.js.map +1 -0
- package/dist/esm/plugins/utils/shared.js +74 -0
- package/dist/esm/plugins/utils/shared.js.map +1 -0
- package/dist/esm/types.js +97 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/node/auth.js +22 -31
- package/dist/node/auth.js.map +1 -1
- package/dist/node/create-event-log.js +15 -15
- package/dist/node/create-event-log.js.map +1 -1
- package/dist/node/create-event-log.test.js +50 -8
- package/dist/node/create-event-log.test.js.map +1 -1
- package/dist/node/create-page-view-log.js +1 -6
- package/dist/node/create-page-view-log.js.map +1 -1
- package/dist/node/format-telemetry-attributes.js +8 -4
- package/dist/node/format-telemetry-attributes.js.map +1 -1
- package/dist/node/index.js +43 -19
- package/dist/node/index.js.map +1 -1
- package/dist/node/index.test.js +106 -160
- package/dist/node/index.test.js.map +1 -1
- package/dist/node/plugins/esri.js +423 -0
- package/dist/node/plugins/esri.js.map +1 -0
- package/dist/node/plugins/esri.test.js +559 -0
- package/dist/node/plugins/esri.test.js.map +1 -0
- package/dist/node/plugins/utils/browser.js +101 -0
- package/dist/node/plugins/utils/browser.js.map +1 -0
- package/dist/node/plugins/utils/browser.test.js +132 -0
- package/dist/node/plugins/utils/browser.test.js.map +1 -0
- package/dist/node/plugins/utils/os.js +144 -0
- package/dist/node/plugins/utils/os.js.map +1 -0
- package/dist/node/plugins/utils/os.test.js +56 -0
- package/dist/node/plugins/utils/os.test.js.map +1 -0
- package/dist/node/plugins/utils/shared.js +83 -0
- package/dist/node/plugins/utils/shared.js.map +1 -0
- package/dist/node/types.js +98 -0
- package/dist/node/types.js.map +1 -1
- package/dist/types/create-event-log.d.ts +2 -2
- package/dist/types/create-page-view-log.d.ts +1 -1
- package/dist/types/format-telemetry-attributes.d.ts +3 -3
- package/dist/types/index.d.ts +14 -7
- package/dist/types/plugins/esri.d.ts +6 -0
- package/dist/types/plugins/esri.test.d.ts +1 -0
- package/dist/types/plugins/utils/browser.d.ts +12 -0
- package/dist/types/plugins/utils/browser.test.d.ts +1 -0
- package/dist/types/plugins/utils/os.d.ts +5 -0
- package/dist/types/plugins/utils/os.test.d.ts +1 -0
- package/dist/types/plugins/utils/shared.d.ts +12 -0
- package/dist/types/types.d.ts +114 -19
- package/dist/umd/telemetry-amazon.js +1253 -141
- package/dist/umd/telemetry-amazon.js.map +1 -1
- package/dist/umd/telemetry-amazon.min.js +1253 -141
- package/dist/umd/telemetry-amazon.min.js.map +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# `@esri/telemetry-amazon`
|
|
2
2
|
|
|
3
|
-
> This is a plugin for the `Telemetry.js` package to interact with an AWS Analytics store.
|
|
3
|
+
> This is a plugin for the `Telemetry.js` package to interact with an AWS Analytics store.
|
|
4
4
|
|
|
5
5
|
## Table of Contents
|
|
6
6
|
|
|
@@ -9,10 +9,11 @@
|
|
|
9
9
|
- [How to Use](#how-to-use)
|
|
10
10
|
- [Amazon Configuration](#amazon-configuration)
|
|
11
11
|
- [Example](#example)
|
|
12
|
-
|
|
12
|
+
- [`telemetry.logEvent(event)`](#telemetrylogeventevent)
|
|
13
13
|
- [Telemetry Sharing Permissions](#telemetry-sharing-permissions)
|
|
14
14
|
- [Portal Items](#portal-items)
|
|
15
15
|
- [Usage](#usage)
|
|
16
|
+
- [Amazon Pinpoint Retirement](#amazon-pinpoint-retirement)
|
|
16
17
|
- [Issues](#issues)
|
|
17
18
|
- [Contributing](#contributing)
|
|
18
19
|
- [License](#license)
|
|
@@ -24,7 +25,7 @@ npm install @esri/telemetry-amazon
|
|
|
24
25
|
|
|
25
26
|
## How to Use
|
|
26
27
|
|
|
27
|
-
`@esri/telemetry-amazon`
|
|
28
|
+
`@esri/telemetry-amazon` package works in the client-side browser and server-side Node.js. To use it, install the package, include it in your project, create an instance of the Amazon plugin, and add it to the `plugins` array with [@esri/telemetry](../../README.md).
|
|
28
29
|
|
|
29
30
|
Below is an example of how to use the telemetry-amazon plugin.
|
|
30
31
|
|
|
@@ -34,6 +35,7 @@ import { Amazon } from '@esri/telemetry-amazon';
|
|
|
34
35
|
|
|
35
36
|
const amazonTracker = new Amazon({
|
|
36
37
|
userPoolID: USER_POOL_ID,
|
|
38
|
+
mode: 'pinpoint', // Pinpoint retires on October 30, 2026. Use 'esri' or omit this field for continued support.
|
|
37
39
|
fips: true, // defaults to false
|
|
38
40
|
app: {
|
|
39
41
|
name: APP_NAME,
|
|
@@ -57,18 +59,18 @@ telemetry.logPageView();
|
|
|
57
59
|
telemetry.logEvent();
|
|
58
60
|
```
|
|
59
61
|
|
|
60
|
-
After initializing `Telemetry.js` with the
|
|
62
|
+
After initializing `Telemetry.js` with the Amazon plugin, telemetry data will be sent to the configured destination.
|
|
61
63
|
|
|
62
64
|
## Amazon Configuration
|
|
63
65
|
|
|
64
|
-
- Get your app and user pool ID from AWS
|
|
65
|
-
- Pass in options object to create an instance of the plugin
|
|
66
|
-
- the `fips` option determines if AWS FIPS endpoints are used for cognito
|
|
66
|
+
- Get your app and user pool ID from AWS
|
|
67
|
+
- Pass in an options object to create an instance of the Amazon plugin
|
|
68
|
+
- the `fips` option determines if AWS FIPS endpoints are used for cognito requests
|
|
67
69
|
- Pass in an object containing the mapping for your custom dimensions and metrics
|
|
68
70
|
|
|
69
71
|
```js
|
|
70
72
|
// or if you are using optional custom dimensions and/or custom metrics
|
|
71
|
-
const
|
|
73
|
+
const amazonTracker = new Amazon({
|
|
72
74
|
dimensions: {
|
|
73
75
|
datasetID: 1,
|
|
74
76
|
attribute: 2,
|
|
@@ -167,6 +169,21 @@ const setAccessParams = {
|
|
|
167
169
|
const result = await Amazon.setAccessPermissions(setAccessParams: ISetAccessPermissionsParams)
|
|
168
170
|
```
|
|
169
171
|
|
|
172
|
+
## Amazon Pinpoint Retirement
|
|
173
|
+
|
|
174
|
+
Amazon Pinpoint will be retired on **October 30, 2026**. After this date, Pinpoint can no longer be used for telemetry delivery. See the [official AWS retirement announcement](https://docs.aws.amazon.com/pinpoint/latest/userguide/migrate.html) for details.
|
|
175
|
+
|
|
176
|
+
By default, the Amazon tracker now sends events to Esri's backend instead of Pinpoint while keeping the same tracker identity. No changes to your plugin configuration are necessary. Prior to Pinpoint's retirement you can set `mode: 'pinpoint'` to restore legacy behavior and/or to verify the shape of the events being logged:
|
|
177
|
+
|
|
178
|
+
```js
|
|
179
|
+
const amazonTracker = new Amazon({
|
|
180
|
+
mode: 'pinpoint',
|
|
181
|
+
....
|
|
182
|
+
});
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
NOTE: After **October 30, 2026** the `mode: 'pinpoint'` property will be a no-op, and all traffic will be routed through the Esri backend.
|
|
186
|
+
|
|
170
187
|
## Issues
|
|
171
188
|
|
|
172
189
|
If something isn't working, please take a look at [previously logged issues](https://devtopia.esri.com/WebGIS/arcgis-telemetry.js/issues) first. Have you found a new bug? Create an issue [here](https://devtopia.esri.com/WebGIS/arcgis-telemetry.js/issues/new).
|
|
@@ -177,7 +194,7 @@ Esri welcomes contributions from anyone and everyone. Please see our [guidelines
|
|
|
177
194
|
|
|
178
195
|
## License
|
|
179
196
|
|
|
180
|
-
Copyright ©
|
|
197
|
+
Copyright © 2026 Esri
|
|
181
198
|
|
|
182
199
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
183
200
|
you may not use this file except in compliance with the License.
|
package/dist/esm/auth.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { storage } from '@esri/telemetry';
|
|
2
2
|
const COGNITO_KEY = 'TELEMETRY_COGNITO_CREDENTIALS';
|
|
3
|
-
export function getCredentials(IdentityPoolId, options = {}) {
|
|
3
|
+
export async function getCredentials(IdentityPoolId, options = {}) {
|
|
4
4
|
const fipsSubdomainSuffix = options.fips === true ? '-fips' : '';
|
|
5
5
|
const COGNITO_URL = `https://cognito-identity${fipsSubdomainSuffix}.us-east-1.amazonaws.com/`;
|
|
6
6
|
let cached = storage.get(COGNITO_KEY);
|
|
7
7
|
if (cached && Date.now() / 1000 < cached.Expiration)
|
|
8
|
-
return
|
|
8
|
+
return cached;
|
|
9
9
|
const fetchOptions = {
|
|
10
10
|
method: 'POST',
|
|
11
11
|
headers: {
|
|
@@ -14,34 +14,25 @@ export function getCredentials(IdentityPoolId, options = {}) {
|
|
|
14
14
|
},
|
|
15
15
|
body: JSON.stringify({ IdentityPoolId }),
|
|
16
16
|
};
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
if (!response.ok) {
|
|
38
|
-
throw new Error(response.statusText);
|
|
39
|
-
}
|
|
40
|
-
return response.json();
|
|
41
|
-
})
|
|
42
|
-
.then(({ Credentials }) => {
|
|
43
|
-
storage.set(COGNITO_KEY, Credentials);
|
|
44
|
-
return Credentials;
|
|
45
|
-
});
|
|
17
|
+
const getIdResponse = await fetch(COGNITO_URL, fetchOptions);
|
|
18
|
+
if (!getIdResponse.ok) {
|
|
19
|
+
throw new Error(getIdResponse.statusText);
|
|
20
|
+
}
|
|
21
|
+
const { IdentityId } = await getIdResponse.json();
|
|
22
|
+
const credentialsOptions = {
|
|
23
|
+
method: 'POST',
|
|
24
|
+
headers: {
|
|
25
|
+
'Content-type': 'application/x-amz-json-1.1',
|
|
26
|
+
'X-Amz-Target': 'AWSCognitoIdentityService.GetCredentialsForIdentity',
|
|
27
|
+
},
|
|
28
|
+
body: JSON.stringify({ IdentityId }),
|
|
29
|
+
};
|
|
30
|
+
const getCredentialsResponse = await fetch(COGNITO_URL, credentialsOptions);
|
|
31
|
+
if (!getCredentialsResponse.ok) {
|
|
32
|
+
throw new Error(getCredentialsResponse.statusText);
|
|
33
|
+
}
|
|
34
|
+
const { Credentials } = await getCredentialsResponse.json();
|
|
35
|
+
storage.set(COGNITO_KEY, Credentials);
|
|
36
|
+
return Credentials;
|
|
46
37
|
}
|
|
47
38
|
//# sourceMappingURL=auth.js.map
|
package/dist/esm/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,WAAW,GAAG,+BAA+B,CAAC;AAEpD,MAAM,UAAU,cAAc,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,WAAW,GAAG,+BAA+B,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,cAAsB,EACtB,UAA2C,EAAE;IAE7C,MAAM,mBAAmB,GAAG,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,MAAM,WAAW,GAAG,2BAA2B,mBAAmB,2BAA2B,CAAC;IAC9F,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC,UAAU;QAAE,OAAO,MAAM,CAAC;IAEnE,MAAM,YAAY,GAAG;QACnB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,4BAA4B;YAC5C,cAAc,EAAE,iCAAiC;SAClD;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;KACzC,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC7D,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;KAC3C;IAED,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;IAClD,MAAM,kBAAkB,GAAG;QACzB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,4BAA4B;YAC5C,cAAc,EAAE,qDAAqD;SACtE;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC;KACrC,CAAC;IAEF,MAAM,sBAAsB,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAC5E,IAAI,CAAC,sBAAsB,CAAC,EAAE,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;KACpD;IAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACtC,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
import { formatTelemetryAttributes } from './format-telemetry-attributes';
|
|
2
2
|
import { formatTelemetryMetrics } from './format-telemetry-metrics';
|
|
3
|
+
import { AMAZON_EVENT_ATTRIBUTE_KEYS, } from './types';
|
|
3
4
|
export function createEventLog({ event = {}, dimensionLookup = {}, metricLookup = {}, }) {
|
|
4
|
-
var _a, _b;
|
|
5
|
+
var _a, _b, _c;
|
|
6
|
+
const acceptedAttributeKeys = new Set(AMAZON_EVENT_ATTRIBUTE_KEYS);
|
|
5
7
|
const { pathname: eventPathname, eventType = 'other' } = event;
|
|
6
8
|
const metrics = formatTelemetryMetrics(event, metricLookup);
|
|
7
|
-
const
|
|
8
|
-
telemetryData: Object.assign({
|
|
9
|
+
const formattedEventAttributes = formatTelemetryAttributes({
|
|
10
|
+
telemetryData: Object.assign({}, event),
|
|
9
11
|
dimensionLookup,
|
|
10
|
-
excludeKeys: [
|
|
11
|
-
'workflow',
|
|
12
|
-
'pathname',
|
|
13
|
-
...Object.keys(metrics),
|
|
14
|
-
...Object.keys(metricLookup),
|
|
15
|
-
],
|
|
16
12
|
});
|
|
17
|
-
const
|
|
13
|
+
const eventAttributes = Object.fromEntries(Object.entries(formattedEventAttributes).filter(([key]) => {
|
|
14
|
+
return acceptedAttributeKeys.has(key);
|
|
15
|
+
}));
|
|
16
|
+
const telemetryPayload = Object.assign(Object.assign(Object.assign({}, eventAttributes), metrics), { name: eventType });
|
|
18
17
|
// Set browser properties if available
|
|
19
|
-
if (typeof document !== 'undefined' &&
|
|
18
|
+
if (typeof document !== 'undefined' &&
|
|
19
|
+
document.referrer &&
|
|
20
|
+
!telemetryPayload.referrer) {
|
|
20
21
|
telemetryPayload.referrer = document.referrer;
|
|
21
22
|
}
|
|
22
23
|
if (typeof window !== 'undefined' && !telemetryPayload.hostname) {
|
|
23
24
|
telemetryPayload.hostname = (_a = window.location) === null || _a === void 0 ? void 0 : _a.hostname;
|
|
24
25
|
}
|
|
25
|
-
telemetryPayload.path =
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
: eventPathname;
|
|
26
|
+
(_b = telemetryPayload.path) !== null && _b !== void 0 ? _b : (telemetryPayload.path = typeof window !== 'undefined' && window.location.pathname
|
|
27
|
+
? (_c = window.location) === null || _c === void 0 ? void 0 : _c.pathname
|
|
28
|
+
: eventPathname);
|
|
29
29
|
return telemetryPayload;
|
|
30
30
|
}
|
|
31
31
|
//# sourceMappingURL=create-event-log.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-event-log.js","sourceRoot":"","sources":["../../src/create-event-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"create-event-log.js","sourceRoot":"","sources":["../../src/create-event-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EACL,2BAA2B,GAG5B,MAAM,SAAS,CAAC;AAEjB,MAAM,UAAU,cAAc,CAAC,EAC7B,KAAK,GAAG,EAAqB,EAC7B,eAAe,GAAG,EAAE,EACpB,YAAY,GAAG,EAAE,GAKlB;;IACC,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAS,2BAA2B,CAAC,CAAC;IAC3E,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC;IAC/D,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,wBAAwB,GAAG,yBAAyB,CAAC;QACzD,aAAa,oBAAO,KAAK,CAAE;QAC3B,eAAe;KAChB,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CACxC,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE;QACxD,OAAO,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC,CAAC,CACH,CAAC;IACF,MAAM,gBAAgB,iDACjB,eAAe,GACf,OAAO,KACV,IAAI,EAAE,SAAS,GAChB,CAAC;IAEF,sCAAsC;IACtC,IACE,OAAO,QAAQ,KAAK,WAAW;QAC/B,QAAQ,CAAC,QAAQ;QACjB,CAAC,gBAAgB,CAAC,QAAQ,EAC1B;QACA,gBAAgB,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;KAC/C;IAED,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;QAC/D,gBAAgB,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,0CAAE,QAAQ,CAAC;KACvD;IAED,MAAA,gBAAgB,CAAC,IAAI,oCAArB,gBAAgB,CAAC,IAAI,GACnB,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ;QACvD,CAAC,CAAC,MAAA,MAAM,CAAC,QAAQ,0CAAE,QAAQ;QAC3B,CAAC,CAAC,aAAa,EAAC;IAEpB,OAAO,gBAAgB,CAAC;AAC1B,CAAC"}
|
|
@@ -35,7 +35,6 @@ describe('Window defined - Browser', () => {
|
|
|
35
35
|
action: 'bar',
|
|
36
36
|
category: 'foo',
|
|
37
37
|
dimension6: 'abcdef0123456789',
|
|
38
|
-
eventType: 'download',
|
|
39
38
|
hostname: 'https://hostname.com',
|
|
40
39
|
label: 'buzz',
|
|
41
40
|
path: '/path/name',
|
|
@@ -69,7 +68,6 @@ describe('Window defined - Browser', () => {
|
|
|
69
68
|
action: 'bar',
|
|
70
69
|
category: 'foo',
|
|
71
70
|
dimension6: 'abcdef0123456789',
|
|
72
|
-
eventType: 'download',
|
|
73
71
|
hostname: 'https://hostname.com',
|
|
74
72
|
label: 'buzz',
|
|
75
73
|
path: '/path/name',
|
|
@@ -104,7 +102,6 @@ describe('Window defined - Browser', () => {
|
|
|
104
102
|
action: 'bar',
|
|
105
103
|
category: 'foo',
|
|
106
104
|
dimension6: 'abcdef0123456789',
|
|
107
|
-
eventType: 'other',
|
|
108
105
|
hostname: 'https://hostname.com',
|
|
109
106
|
label: 'buzz',
|
|
110
107
|
path: '/path/name',
|
|
@@ -126,13 +123,62 @@ describe('Window defined - Browser', () => {
|
|
|
126
123
|
};
|
|
127
124
|
const result = createEventLog({ event, dimensionLookup, metricLookup });
|
|
128
125
|
expect(result).toEqual({
|
|
129
|
-
eventType: 'other',
|
|
130
126
|
hostname: 'https://hostname.com',
|
|
131
127
|
path: '/path/name',
|
|
132
128
|
referrer: 'https://foo-bar.com',
|
|
133
129
|
name: 'other',
|
|
134
130
|
});
|
|
135
131
|
});
|
|
132
|
+
test('createEventLog keeps workflow eventType as tracking name', () => {
|
|
133
|
+
const event = {
|
|
134
|
+
name: 'item panel action',
|
|
135
|
+
eventType: 'workflow',
|
|
136
|
+
category: 'item panel action',
|
|
137
|
+
action: 'start',
|
|
138
|
+
details: 'table',
|
|
139
|
+
duration: 0,
|
|
140
|
+
};
|
|
141
|
+
const result = createEventLog({
|
|
142
|
+
event,
|
|
143
|
+
dimensionLookup: {},
|
|
144
|
+
metricLookup: {},
|
|
145
|
+
});
|
|
146
|
+
expect(result).toEqual({
|
|
147
|
+
category: 'item panel action',
|
|
148
|
+
action: 'start',
|
|
149
|
+
details: 'table',
|
|
150
|
+
hostname: 'https://hostname.com',
|
|
151
|
+
path: '/path/name',
|
|
152
|
+
referrer: 'https://foo-bar.com',
|
|
153
|
+
name: 'workflow',
|
|
154
|
+
duration: 0,
|
|
155
|
+
});
|
|
156
|
+
expect(result).not.toHaveProperty('eventType');
|
|
157
|
+
});
|
|
158
|
+
test('createEventLog drops attributes outside the accepted allowlist', () => {
|
|
159
|
+
const event = {
|
|
160
|
+
eventType: 'download',
|
|
161
|
+
category: 'foo',
|
|
162
|
+
action: 'bar',
|
|
163
|
+
unknownField: 'drop-me',
|
|
164
|
+
workflowId: 'abc123',
|
|
165
|
+
};
|
|
166
|
+
const result = createEventLog({
|
|
167
|
+
event,
|
|
168
|
+
dimensionLookup: {},
|
|
169
|
+
metricLookup: {},
|
|
170
|
+
});
|
|
171
|
+
expect(result).toEqual({
|
|
172
|
+
category: 'foo',
|
|
173
|
+
action: 'bar',
|
|
174
|
+
workflowId: 'abc123',
|
|
175
|
+
hostname: 'https://hostname.com',
|
|
176
|
+
path: '/path/name',
|
|
177
|
+
referrer: 'https://foo-bar.com',
|
|
178
|
+
name: 'download',
|
|
179
|
+
});
|
|
180
|
+
expect(result).not.toHaveProperty('unknownField');
|
|
181
|
+
});
|
|
136
182
|
});
|
|
137
183
|
describe('Window undefined - Server', () => {
|
|
138
184
|
beforeEach(() => {
|
|
@@ -164,7 +210,6 @@ describe('Window undefined - Server', () => {
|
|
|
164
210
|
action: 'bar',
|
|
165
211
|
category: 'foo',
|
|
166
212
|
dimension6: 'abcdef0123456789',
|
|
167
|
-
eventType: 'download',
|
|
168
213
|
label: 'buzz',
|
|
169
214
|
name: 'download',
|
|
170
215
|
count: 4,
|
|
@@ -196,7 +241,6 @@ describe('Window undefined - Server', () => {
|
|
|
196
241
|
action: 'bar',
|
|
197
242
|
category: 'foo',
|
|
198
243
|
dimension6: 'abcdef0123456789',
|
|
199
|
-
eventType: 'download',
|
|
200
244
|
label: 'buzz',
|
|
201
245
|
name: 'download',
|
|
202
246
|
count: 4,
|
|
@@ -228,7 +272,6 @@ describe('Window undefined - Server', () => {
|
|
|
228
272
|
action: 'bar',
|
|
229
273
|
category: 'foo',
|
|
230
274
|
dimension6: 'abcdef0123456789',
|
|
231
|
-
eventType: 'download',
|
|
232
275
|
label: 'buzz',
|
|
233
276
|
name: 'download',
|
|
234
277
|
count: 4,
|
|
@@ -262,7 +305,6 @@ describe('Window undefined - Server', () => {
|
|
|
262
305
|
action: 'bar',
|
|
263
306
|
category: 'foo',
|
|
264
307
|
dimension6: 'abcdef0123456789',
|
|
265
|
-
eventType: 'download',
|
|
266
308
|
label: 'buzz',
|
|
267
309
|
name: 'download',
|
|
268
310
|
count: 4,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-event-log.test.js","sourceRoot":"","sources":["../../src/create-event-log.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,MAAM,sBAAsB,qBAAQ,MAAM,CAAC,QAAQ,CAAE,CAAC;IACtD,IAAI,mBAAmB,CAAC;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,iCAC1D,sBAAsB,KACzB,QAAQ,EAAE,sBAAsB,EAChC,QAAQ,EAAE,YAAY,IACtB,CAAC,CAAC;QACJ,mBAAmB,GAAG,IAAI;aACvB,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC;aAClC,kBAAkB,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACxC,MAAM,KAAK,GAAG;YACZ,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,MAAM;YACb,SAAS,EAAE,kBAAkB;YAC7B,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,CAAC;SACT,CAAC;QAEF,MAAM,eAAe,GAAG;YACtB,SAAS,EAAE,CAAC;YACZ,aAAa,EAAE,CAAC;SACjB,CAAC;QAEF,MAAM,YAAY,GAAG;YACnB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,CAAC;SACf,CAAC;QAEF,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,kBAAkB;YAC9B,
|
|
1
|
+
{"version":3,"file":"create-event-log.test.js","sourceRoot":"","sources":["../../src/create-event-log.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,15 +5,10 @@ export function createPageViewLog({ page, previousPage = {}, options = {}, dimen
|
|
|
5
5
|
const attributes = formatTelemetryAttributes({
|
|
6
6
|
telemetryData: options,
|
|
7
7
|
dimensionLookup,
|
|
8
|
-
excludeKeys: [
|
|
9
|
-
'workflow',
|
|
10
|
-
...Object.keys(metrics),
|
|
11
|
-
...Object.keys(metricLookup),
|
|
12
|
-
],
|
|
13
8
|
});
|
|
14
9
|
const { referrer, title } = document || {};
|
|
15
10
|
const { hostname, pathname } = window && window.location ? window.location : {};
|
|
16
11
|
return Object.assign(Object.assign({ name: 'pageView', referrer,
|
|
17
|
-
hostname, path: page || pathname, pageUrl: page || pathname, pageName: title, previousPageUrl: previousPage.pageUrl, previousPageName: previousPage.pageName }, attributes), metrics);
|
|
12
|
+
hostname, path: page || pathname, pageUrl: page || pathname, pageName: title, previousPageUrl: previousPage === null || previousPage === void 0 ? void 0 : previousPage.pageUrl, previousPageName: previousPage === null || previousPage === void 0 ? void 0 : previousPage.pageName }, attributes), metrics);
|
|
18
13
|
}
|
|
19
14
|
//# sourceMappingURL=create-page-view-log.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-page-view-log.js","sourceRoot":"","sources":["../../src/create-page-view-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,MAAM,UAAU,iBAAiB,CAAC,EAChC,IAAI,EACJ,YAAY,GAAG,EAAE,EACjB,OAAO,GAAG,EAAE,EACZ,eAAe,GAAG,EAAE,EACpB,YAAY,GAAG,EAAE,GAOlB;IACC,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,yBAAyB,CAAC;QAC3C,aAAa,EAAE,OAAO;QACtB,eAAe;
|
|
1
|
+
{"version":3,"file":"create-page-view-log.js","sourceRoot":"","sources":["../../src/create-page-view-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,MAAM,UAAU,iBAAiB,CAAC,EAChC,IAAI,EACJ,YAAY,GAAG,EAAE,EACjB,OAAO,GAAG,EAAE,EACZ,eAAe,GAAG,EAAE,EACpB,YAAY,GAAG,EAAE,GAOlB;IACC,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,yBAAyB,CAAC;QAC3C,aAAa,EAAE,OAAO;QACtB,eAAe;KAChB,CAAC,CAAC;IAEH,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,QAAQ,IAAI,EAAE,CAAC;IAC3C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAC1B,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAU,CAAC;IAE5D,qCACE,IAAI,EAAE,UAAU,EAChB,QAAQ;QACR,QAAQ,EACR,IAAI,EAAE,IAAI,IAAI,QAAQ,EACtB,OAAO,EAAE,IAAI,IAAI,QAAQ,EACzB,QAAQ,EAAE,KAAK,EACf,eAAe,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,EACtC,gBAAgB,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,IACrC,UAAU,GACV,OAAO,EACV;AACJ,CAAC"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
import { AMAZON_EVENT_ATTRIBUTE_KEYS } from './types';
|
|
2
|
+
function isAmazonEventAttributeKey(key) {
|
|
3
|
+
return AMAZON_EVENT_ATTRIBUTE_KEYS.includes(key);
|
|
4
|
+
}
|
|
5
|
+
export function formatTelemetryAttributes({ telemetryData, dimensionLookup = {}, }) {
|
|
2
6
|
return Object.keys(telemetryData)
|
|
3
7
|
.filter((key) => {
|
|
4
|
-
return
|
|
8
|
+
return isAmazonEventAttributeKey(key);
|
|
5
9
|
})
|
|
6
10
|
.map((key) => {
|
|
7
11
|
if (dimensionLookup[key]) {
|
|
8
12
|
return {
|
|
9
13
|
key: getCustomDimensionKey(dimensionLookup, key),
|
|
10
|
-
value: telemetryData
|
|
14
|
+
value: getValue(telemetryData, key),
|
|
11
15
|
};
|
|
12
16
|
}
|
|
13
17
|
return {
|
|
@@ -24,7 +28,7 @@ function getValue(data, key) {
|
|
|
24
28
|
if (key === 'json') {
|
|
25
29
|
return data[key] ? JSON.stringify(data[key]) : 'null';
|
|
26
30
|
}
|
|
27
|
-
return data[key] === undefined ? 'null' : data[key]
|
|
31
|
+
return data[key] === undefined ? 'null' : String(data[key]);
|
|
28
32
|
}
|
|
29
33
|
function getCustomDimensionKey(lookup, key) {
|
|
30
34
|
return `dimension${lookup[key]}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-telemetry-attributes.js","sourceRoot":"","sources":["../../src/format-telemetry-attributes.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,yBAAyB,CAAC,EACxC,aAAa,EACb,eAAe,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"format-telemetry-attributes.js","sourceRoot":"","sources":["../../src/format-telemetry-attributes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAwB,MAAM,SAAS,CAAC;AAE5E,SAAS,yBAAyB,CAAC,GAAW;IAC5C,OAAQ,2BAAiD,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,EACxC,aAAa,EACb,eAAe,GAAG,EAAE,GAIrB;IACC,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;SAC9B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QACd,OAAO,yBAAyB,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE;YACxB,OAAO;gBACL,GAAG,EAAE,qBAAqB,CAAC,eAAe,EAAE,GAAG,CAAC;gBAChD,KAAK,EAAE,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC;aACpC,CAAC;SACH;QAED,OAAO;YACL,GAAG;YACH,KAAK,EAAE,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC;SACpC,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAyB,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE;QACtD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACjB,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC;AAED,SAAS,QAAQ,CAAC,IAA6B,EAAE,GAAW;IAC1D,IAAI,GAAG,KAAK,MAAM,EAAE;QAClB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;KACvD;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAA8B,EAC9B,GAAW;IAEX,OAAO,YAAY,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AACnC,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,33 +1,55 @@
|
|
|
1
|
-
import { getCredentials } from './auth';
|
|
2
1
|
import { createEventLog } from './create-event-log';
|
|
3
2
|
import { createPageViewLog } from './create-page-view-log';
|
|
4
3
|
import Analytics from 'analytics';
|
|
5
4
|
import awsPinpointPlugin from '@analytics/aws-pinpoint';
|
|
5
|
+
import { getCredentials } from './auth';
|
|
6
6
|
import { setPortalItemAccessPermissions } from './set-portal-item-access-permissions';
|
|
7
7
|
import { getPortalItemAccessPermissions } from './get-portal-item-access-permissions';
|
|
8
|
+
import { createEsriPlugin } from './plugins/esri';
|
|
9
|
+
// October 31, 2026
|
|
10
|
+
const PINPOINT_RETIREMENT_CUTOFF_UTC_MS = Date.parse('2026-10-31T00:00:00.000Z');
|
|
8
11
|
/**
|
|
9
12
|
* Amazon Telemetry
|
|
10
|
-
* Supports
|
|
13
|
+
* Supports Pinpoint and Esri endpoint modes
|
|
11
14
|
*/
|
|
12
15
|
export class Amazon {
|
|
13
16
|
constructor(options) {
|
|
14
17
|
this.name = 'amazon';
|
|
18
|
+
this.previousPage = {};
|
|
15
19
|
this.isInitialized = false;
|
|
16
|
-
|
|
17
|
-
this.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
plugins: [
|
|
21
|
-
awsPinpointPlugin({
|
|
22
|
-
fips,
|
|
23
|
-
pinpointAppId: app.id,
|
|
24
|
-
getCredentials: () => {
|
|
25
|
-
return getCredentials(userPoolID, { fips });
|
|
26
|
-
},
|
|
27
|
-
}),
|
|
28
|
-
],
|
|
29
|
-
});
|
|
20
|
+
this.appConfig = {};
|
|
21
|
+
this.isPinpointRetired = (nowMs = Date.now()) => nowMs >= PINPOINT_RETIREMENT_CUTOFF_UTC_MS;
|
|
22
|
+
// default to `esri` mode if not specified
|
|
23
|
+
const { app = {}, fips, userPoolID, mode = 'esri' } = options;
|
|
30
24
|
Object.assign(this, options);
|
|
25
|
+
this.appConfig = app;
|
|
26
|
+
this.userPoolIDConfig = userPoolID;
|
|
27
|
+
this.fipsConfig = fips;
|
|
28
|
+
/** @deprecated Pinpoint is retiring on October 31, 2026. After this point all traffic will be routed to the in-house endpoint */
|
|
29
|
+
if (mode === 'pinpoint' && !this.isPinpointRetired()) {
|
|
30
|
+
this.mode = 'pinpoint';
|
|
31
|
+
this.analytics = Analytics({
|
|
32
|
+
app: app.name,
|
|
33
|
+
version: app.version,
|
|
34
|
+
plugins: [
|
|
35
|
+
awsPinpointPlugin({
|
|
36
|
+
fips,
|
|
37
|
+
pinpointAppId: app.id,
|
|
38
|
+
getCredentials: () => getCredentials(userPoolID, { fips }),
|
|
39
|
+
}),
|
|
40
|
+
],
|
|
41
|
+
});
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
this.mode = 'esri';
|
|
45
|
+
this.analytics = createEsriPlugin({
|
|
46
|
+
trackerName: this.name,
|
|
47
|
+
appName: this.appConfig.name,
|
|
48
|
+
appVersion: this.appConfig.version,
|
|
49
|
+
appId: this.appConfig.id,
|
|
50
|
+
userPoolID: this.userPoolIDConfig,
|
|
51
|
+
fips: this.fipsConfig,
|
|
52
|
+
});
|
|
31
53
|
}
|
|
32
54
|
init() {
|
|
33
55
|
// if already initialized, return
|
|
@@ -58,16 +80,18 @@ export class Amazon {
|
|
|
58
80
|
});
|
|
59
81
|
const { pageUrl, pageName } = telemetryPayload;
|
|
60
82
|
this.previousPage = { pageUrl, pageName };
|
|
61
|
-
this.analytics.track('pageView', telemetryPayload);
|
|
83
|
+
const result = this.analytics.track('pageView', telemetryPayload);
|
|
84
|
+
return typeof result === 'boolean' ? result : true;
|
|
62
85
|
}
|
|
63
|
-
logEvent(event = {}) {
|
|
86
|
+
logEvent(event = {}, trackOptions) {
|
|
64
87
|
const telemetryPayload = createEventLog({
|
|
65
88
|
event,
|
|
66
89
|
dimensionLookup: this.dimensions,
|
|
67
90
|
metricLookup: this.metrics,
|
|
68
91
|
});
|
|
69
92
|
const { name } = telemetryPayload;
|
|
70
|
-
this.analytics.track(name, telemetryPayload);
|
|
93
|
+
const result = this.analytics.track(name, telemetryPayload, trackOptions);
|
|
94
|
+
return typeof result === 'boolean' ? result : true;
|
|
71
95
|
}
|
|
72
96
|
}
|
|
73
97
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|