@esri/telemetry-amazon 6.0.0-beta.4 → 6.0.0-beta.6
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/dist/esm/auth.js +11 -18
- package/dist/esm/auth.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.test.js +17 -0
- package/dist/esm/index.test.js.map +1 -1
- package/dist/esm/plugins/esri.js +172 -83
- package/dist/esm/plugins/esri.js.map +1 -1
- package/dist/esm/plugins/esri.test.js +341 -68
- package/dist/esm/plugins/esri.test.js.map +1 -1
- package/dist/esm/plugins/utils/browser.js +97 -0
- package/dist/esm/plugins/utils/browser.js.map +1 -0
- package/dist/esm/plugins/utils/os.js +42 -0
- package/dist/esm/plugins/utils/os.js.map +1 -0
- package/dist/esm/plugins/{shared.js → utils/shared.js} +1 -1
- package/dist/esm/plugins/utils/shared.js.map +1 -0
- package/dist/node/auth.js +11 -18
- package/dist/node/auth.js.map +1 -1
- package/dist/node/index.js +2 -2
- package/dist/node/index.js.map +1 -1
- package/dist/node/index.test.js +17 -0
- package/dist/node/index.test.js.map +1 -1
- package/dist/node/plugins/esri.js +172 -83
- package/dist/node/plugins/esri.js.map +1 -1
- package/dist/node/plugins/esri.test.js +342 -68
- package/dist/node/plugins/esri.test.js.map +1 -1
- package/dist/node/plugins/utils/browser.js +101 -0
- package/dist/node/plugins/utils/browser.js.map +1 -0
- package/dist/node/plugins/utils/os.js +46 -0
- package/dist/node/plugins/utils/os.js.map +1 -0
- package/dist/node/plugins/{shared.js → utils/shared.js} +3 -2
- package/dist/node/plugins/utils/shared.js.map +1 -0
- package/dist/types/index.d.ts +2 -2
- package/dist/types/plugins/esri.d.ts +5 -10
- package/dist/types/plugins/utils/browser.d.ts +12 -0
- package/dist/types/plugins/utils/os.d.ts +5 -0
- package/dist/types/plugins/{shared.d.ts → utils/shared.d.ts} +1 -0
- package/dist/types/types.d.ts +87 -3
- package/dist/umd/telemetry-amazon.js +321 -103
- package/dist/umd/telemetry-amazon.js.map +1 -1
- package/dist/umd/telemetry-amazon.min.js +321 -103
- package/dist/umd/telemetry-amazon.min.js.map +1 -1
- package/package.json +1 -1
- package/dist/esm/plugins/shared.js.map +0 -1
- package/dist/node/plugins/shared.js.map +0 -1
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getBrowserClientInfo = void 0;
|
|
4
|
+
const os_1 = require("./os");
|
|
5
|
+
function getNavigatorSafe() {
|
|
6
|
+
if (typeof window === 'undefined' || !window.navigator) {
|
|
7
|
+
return undefined;
|
|
8
|
+
}
|
|
9
|
+
return window.navigator;
|
|
10
|
+
}
|
|
11
|
+
function getLanguageInfo(nav) {
|
|
12
|
+
if (!nav) {
|
|
13
|
+
return '';
|
|
14
|
+
}
|
|
15
|
+
const lang = nav.language ||
|
|
16
|
+
nav.browserLanguage ||
|
|
17
|
+
(Array.isArray(nav.languages) && nav.languages.length > 0
|
|
18
|
+
? nav.languages[0]
|
|
19
|
+
: 'en_US') ||
|
|
20
|
+
'';
|
|
21
|
+
return String(lang).toLowerCase().replace('-', '_');
|
|
22
|
+
}
|
|
23
|
+
function getBrowserTimezone() {
|
|
24
|
+
const tzMatch = /\(([A-Za-z\s].*)\)/.exec(new Date().toString());
|
|
25
|
+
return tzMatch ? tzMatch[1] || '' : '';
|
|
26
|
+
}
|
|
27
|
+
function parseBrowserType(userAgent) {
|
|
28
|
+
const operaMatch = /.+(Opera[\s[A-Z]*|OPR[\sA-Z]*)\/([0-9\.]+).*/i.exec(userAgent);
|
|
29
|
+
if (operaMatch) {
|
|
30
|
+
return {
|
|
31
|
+
type: operaMatch[1],
|
|
32
|
+
version: operaMatch[2],
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
const edgeOrTridentMatch = /.+(Trident|Edge)\/([0-9\.]+).*/i.exec(userAgent);
|
|
36
|
+
if (edgeOrTridentMatch) {
|
|
37
|
+
return {
|
|
38
|
+
type: edgeOrTridentMatch[1],
|
|
39
|
+
version: edgeOrTridentMatch[2],
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
const headlessMatch = /(headlesschrome)(?:\/([\w\.]+)| )/i.exec(userAgent);
|
|
43
|
+
if (headlessMatch) {
|
|
44
|
+
return {
|
|
45
|
+
type: headlessMatch[1],
|
|
46
|
+
version: headlessMatch[2],
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
const browserMatch = /.+(Chrome|Firefox|FxiOS)\/([0-9\.]+).*/i.exec(userAgent);
|
|
50
|
+
if (browserMatch) {
|
|
51
|
+
return {
|
|
52
|
+
type: browserMatch[1],
|
|
53
|
+
version: browserMatch[2],
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
const safariMatch = /.+(Safari)\/([0-9\.]+).*/i.exec(userAgent);
|
|
57
|
+
if (safariMatch) {
|
|
58
|
+
return {
|
|
59
|
+
type: safariMatch[1],
|
|
60
|
+
version: safariMatch[2],
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
const webkitMatch = /.+(AppleWebKit)\/([0-9\.]+).*/i.exec(userAgent);
|
|
64
|
+
if (webkitMatch) {
|
|
65
|
+
return {
|
|
66
|
+
type: webkitMatch[1],
|
|
67
|
+
version: webkitMatch[2],
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
const anyMatch = /.*([A-Z]+)\/([0-9\.]+).*/i.exec(userAgent);
|
|
71
|
+
const fallback = anyMatch || ['', 'NA', '0.0.0'];
|
|
72
|
+
return {
|
|
73
|
+
type: fallback[1],
|
|
74
|
+
version: fallback[2],
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
function getBrowserClientInfo() {
|
|
78
|
+
const nav = getNavigatorSafe();
|
|
79
|
+
if (!nav) {
|
|
80
|
+
return {};
|
|
81
|
+
}
|
|
82
|
+
const userAgent = nav.userAgent || '';
|
|
83
|
+
const browser = parseBrowserType(userAgent);
|
|
84
|
+
const isBrave = (nav.brave && nav.brave.isBrave) || false;
|
|
85
|
+
const type = isBrave ? 'Brave' : browser.type;
|
|
86
|
+
const os = (0, os_1.parseOS)(userAgent);
|
|
87
|
+
const vendorToken = (nav.vendor || '').split(' ').filter(Boolean)[0];
|
|
88
|
+
const make = type === 'Brave' ? type : vendorToken || nav.product || '';
|
|
89
|
+
return {
|
|
90
|
+
language: getLanguageInfo(nav),
|
|
91
|
+
make,
|
|
92
|
+
model: type,
|
|
93
|
+
version: browser.version,
|
|
94
|
+
name: [type, browser.version].filter(Boolean).join('/'),
|
|
95
|
+
timezone: getBrowserTimezone(),
|
|
96
|
+
platform: nav.platform,
|
|
97
|
+
os,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
exports.getBrowserClientInfo = getBrowserClientInfo;
|
|
101
|
+
//# sourceMappingURL=browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../../src/plugins/utils/browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseOS = void 0;
|
|
4
|
+
function parseOS(userAgent) {
|
|
5
|
+
var _a;
|
|
6
|
+
const cleanAgent = userAgent.toLowerCase().replace(/ /g, '');
|
|
7
|
+
const osMatchers = [
|
|
8
|
+
{
|
|
9
|
+
name: 'Windows',
|
|
10
|
+
regex: /windowsnt/i,
|
|
11
|
+
versionRegex: /windowsnt([\d\.]+)/i,
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'MacOS',
|
|
15
|
+
regex: /macos|macosx|macintosh|macintel|darwin/i,
|
|
16
|
+
versionRegex: /osx([\d_\.]+)/i,
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
name: 'Android',
|
|
20
|
+
regex: /android/i,
|
|
21
|
+
versionRegex: /android([\d\.]+)/i,
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: 'iOS',
|
|
25
|
+
regex: /iphone|ipad|ipod/i,
|
|
26
|
+
versionRegex: /os([\d_\.]+)/i,
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: 'Linux',
|
|
30
|
+
regex: /linux/i,
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
const matched = osMatchers.find((entry) => entry.regex.test(cleanAgent));
|
|
34
|
+
if (!matched) {
|
|
35
|
+
return {};
|
|
36
|
+
}
|
|
37
|
+
const version = matched.versionRegex
|
|
38
|
+
? (_a = (cleanAgent.match(matched.versionRegex) || [])[1]) === null || _a === void 0 ? void 0 : _a.replace(/_/g, '.')
|
|
39
|
+
: undefined;
|
|
40
|
+
return {
|
|
41
|
+
name: matched.name,
|
|
42
|
+
version,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
exports.parseOS = parseOS;
|
|
46
|
+
//# sourceMappingURL=os.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"os.js","sourceRoot":"","sources":["../../../../src/plugins/utils/os.ts"],"names":[],"mappings":";;;AAKA,SAAgB,OAAO,CAAC,SAAiB;;IACvC,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC7D,MAAM,UAAU,GAIX;QACH;YACE,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,YAAY;YACnB,YAAY,EAAE,qBAAqB;SACpC;QACD;YACE,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,yCAAyC;YAChD,YAAY,EAAE,gBAAgB;SAC/B;QACD;YACE,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,UAAU;YACjB,YAAY,EAAE,mBAAmB;SAClC;QACD;YACE,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,mBAAmB;YAC1B,YAAY,EAAE,eAAe;SAC9B;QACD;YACE,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,QAAQ;SAChB;KACF,CAAC;IAEF,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACzE,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,EAAE,CAAC;KACX;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY;QAClC,CAAC,CAAC,MAAA,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;QACvE,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO;KACR,CAAC;AACJ,CAAC;AA9CD,0BA8CC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildEventData = exports.getEndpointId = exports.warnLog = exports.debugLog = exports.isDebugEnabled = exports.LOG_PREFIX = exports.DEFAULT_PINPOINT_REGION = exports.PINPOINT_ENDPOINT_KEY = void 0;
|
|
4
|
-
// Shared utilities for plugins
|
|
3
|
+
exports.buildEventData = exports.getEndpointId = exports.warnLog = exports.debugLog = exports.isDebugEnabled = exports.LOG_PREFIX = exports.DEFAULT_PINPOINT_REGION = exports.PINPOINT_ENDPOINT_KEY = exports.getBrowserClientInfo = void 0;
|
|
5
4
|
const telemetry_1 = require("@esri/telemetry");
|
|
5
|
+
var browser_1 = require("./browser");
|
|
6
|
+
Object.defineProperty(exports, "getBrowserClientInfo", { enumerable: true, get: function () { return browser_1.getBrowserClientInfo; } });
|
|
6
7
|
exports.PINPOINT_ENDPOINT_KEY = 'TELEMETRY_PINPOINT_ENDPOINT_ID';
|
|
7
8
|
exports.DEFAULT_PINPOINT_REGION = 'us-east-1';
|
|
8
9
|
exports.LOG_PREFIX = '[telemetry-amazon]';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/plugins/utils/shared.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AmazonAnalytics, AmazonTelemetryOptions, AmazonTelemetryEndpointMode, Dimensions, Metrics, IAmazon, PageViewOptions, EventOptions, ISetAccessPermissionsParams, IGetAccessPermissionsParams } from './types';
|
|
1
|
+
import { AmazonAnalytics, AmazonTelemetryOptions, AmazonTelemetryEndpointMode, Dimensions, Metrics, IAmazon, PageViewOptions, EventOptions, EventTrackOptions, ISetAccessPermissionsParams, IGetAccessPermissionsParams } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* Amazon Telemetry
|
|
4
4
|
* Supports Pinpoint and Esri endpoint modes
|
|
@@ -20,5 +20,5 @@ export declare class Amazon implements IAmazon<Dimensions, Metrics> {
|
|
|
20
20
|
static setAccessPermissions({ id, authentication, username, accessChangeset, }: ISetAccessPermissionsParams): Promise<import("@esri/arcgis-rest-portal").IUpdateItemResponse>;
|
|
21
21
|
static getAccessPermissions({ id, authentication, }: IGetAccessPermissionsParams): Promise<Record<string, any>>;
|
|
22
22
|
logPageView(page: string, options?: PageViewOptions): boolean;
|
|
23
|
-
logEvent(event?: EventOptions): boolean;
|
|
23
|
+
logEvent(event?: EventOptions, trackOptions?: EventTrackOptions): boolean;
|
|
24
24
|
}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
import { AmazonTracker } from '../types';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
appName?: string;
|
|
6
|
-
appVersion?: string;
|
|
7
|
-
userPoolID?: string;
|
|
8
|
-
fips?: boolean;
|
|
1
|
+
import { AmazonTracker, EsriPluginOptions } from '../types';
|
|
2
|
+
/** TODO: enforce official event payload type from core telemetry library */
|
|
3
|
+
export declare type Payload = {
|
|
4
|
+
[key: string]: any;
|
|
9
5
|
};
|
|
10
|
-
export declare function createEsriPlugin({ trackerName, appName, appId, appVersion, userPoolID, fips, }: EsriPluginOptions): AmazonTracker;
|
|
11
|
-
export {};
|
|
6
|
+
export declare function createEsriPlugin({ trackerName, appName, appId, appVersion, userPoolID, fips, debounceMs, }: EsriPluginOptions): AmazonTracker;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BrowserOSInfo } from './os';
|
|
2
|
+
export declare type BrowserClientInfo = {
|
|
3
|
+
language?: string;
|
|
4
|
+
make?: string;
|
|
5
|
+
model?: string;
|
|
6
|
+
version?: string;
|
|
7
|
+
name?: string;
|
|
8
|
+
timezone?: string;
|
|
9
|
+
platform?: string;
|
|
10
|
+
os?: BrowserOSInfo;
|
|
11
|
+
};
|
|
12
|
+
export declare function getBrowserClientInfo(): BrowserClientInfo;
|
package/dist/types/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ArcGISIdentityManager } from '@esri/arcgis-rest-request';
|
|
2
2
|
import type { AnalyticsInstance } from 'analytics';
|
|
3
|
+
import { getBrowserClientInfo } from './plugins/utils/shared';
|
|
3
4
|
export declare type GenericObject = {
|
|
4
5
|
[key: string]: any;
|
|
5
6
|
};
|
|
@@ -18,7 +19,9 @@ export interface IAccessChangeset {
|
|
|
18
19
|
ids?: string[];
|
|
19
20
|
}
|
|
20
21
|
export interface AmazonTracker {
|
|
21
|
-
track(eventName: string, payload: Record<string, any
|
|
22
|
+
track(eventName: string, payload: Record<string, any>, options?: {
|
|
23
|
+
immediate?: boolean;
|
|
24
|
+
}): boolean | void | Promise<any>;
|
|
22
25
|
}
|
|
23
26
|
export declare type AmazonAnalytics = AmazonTracker | AnalyticsInstance;
|
|
24
27
|
export interface IAmazon<D, M> {
|
|
@@ -33,12 +36,15 @@ export interface IAmazon<D, M> {
|
|
|
33
36
|
metrics: M;
|
|
34
37
|
init(): Promise<void>;
|
|
35
38
|
logPageView: (page: string, options?: PageViewOptions) => boolean;
|
|
36
|
-
logEvent: (event?: EventOptions) => boolean;
|
|
39
|
+
logEvent: (event?: EventOptions, trackOptions?: EventTrackOptions) => boolean;
|
|
37
40
|
}
|
|
38
41
|
export declare type Dimensions = GenericObject;
|
|
39
42
|
export declare type Metrics = GenericObject;
|
|
40
43
|
export declare type PageViewOptions = GenericObject;
|
|
41
44
|
export declare type EventOptions = GenericObject;
|
|
45
|
+
export declare type EventTrackOptions = {
|
|
46
|
+
immediate?: boolean;
|
|
47
|
+
};
|
|
42
48
|
export declare type EventData = {
|
|
43
49
|
category?: string;
|
|
44
50
|
action?: string;
|
|
@@ -61,7 +67,7 @@ export declare type AmazonTelemetryEsriOptions = {
|
|
|
61
67
|
userPoolID: string;
|
|
62
68
|
app?: AmazonApp;
|
|
63
69
|
fips?: boolean;
|
|
64
|
-
mode
|
|
70
|
+
mode?: 'esri';
|
|
65
71
|
};
|
|
66
72
|
export declare type AmazonTelemetryOptions = AmazonTelemetryPinpointOptions | AmazonTelemetryEsriOptions;
|
|
67
73
|
export declare type AmazonTelemetryEndpointMode = 'pinpoint' | 'esri';
|
|
@@ -83,4 +89,82 @@ export declare type LogEventPayload = {
|
|
|
83
89
|
hostname?: string;
|
|
84
90
|
path?: string;
|
|
85
91
|
};
|
|
92
|
+
export declare type EventMetrics = Record<string, number>;
|
|
93
|
+
export declare type EventAttributes = Record<string, string>;
|
|
94
|
+
export declare type EsriBatchEventPayload = {
|
|
95
|
+
name?: string;
|
|
96
|
+
appTitle?: string;
|
|
97
|
+
appVersion?: string;
|
|
98
|
+
clientSdkVersion?: string;
|
|
99
|
+
deviceMake?: string;
|
|
100
|
+
deviceModel?: string;
|
|
101
|
+
city?: string;
|
|
102
|
+
country?: string;
|
|
103
|
+
lat?: string | number;
|
|
104
|
+
lon?: string | number;
|
|
105
|
+
[key: string]: any;
|
|
106
|
+
};
|
|
107
|
+
export declare type EsriBatchEvent = {
|
|
108
|
+
BatchEvent: {
|
|
109
|
+
Endpoint: {
|
|
110
|
+
Id: string;
|
|
111
|
+
Device: {
|
|
112
|
+
Locale: string;
|
|
113
|
+
Make: string;
|
|
114
|
+
Model: string;
|
|
115
|
+
ModelVersion: string;
|
|
116
|
+
Platform: string;
|
|
117
|
+
PlatformVersion?: string;
|
|
118
|
+
};
|
|
119
|
+
Location: Partial<{
|
|
120
|
+
City: string;
|
|
121
|
+
Country: string;
|
|
122
|
+
Lat: number;
|
|
123
|
+
Lon: number;
|
|
124
|
+
}>;
|
|
125
|
+
Application: {
|
|
126
|
+
AppTitle: string;
|
|
127
|
+
AppVersion: string | undefined;
|
|
128
|
+
ClientSdkVersion: string;
|
|
129
|
+
};
|
|
130
|
+
};
|
|
131
|
+
Events: Array<{
|
|
132
|
+
EventType: string;
|
|
133
|
+
Timestamp: string;
|
|
134
|
+
Session: {
|
|
135
|
+
Id: string;
|
|
136
|
+
StartTimestamp: string;
|
|
137
|
+
EndTimestamp: string;
|
|
138
|
+
Duration: number;
|
|
139
|
+
};
|
|
140
|
+
Attributes: EventAttributes;
|
|
141
|
+
Metrics: EventMetrics;
|
|
142
|
+
}>;
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
export declare type SessionContext = {
|
|
146
|
+
id: string;
|
|
147
|
+
startTimestamp: string;
|
|
148
|
+
startUnixMs: number;
|
|
149
|
+
};
|
|
150
|
+
export declare type TrackOptions = {
|
|
151
|
+
immediate?: boolean;
|
|
152
|
+
};
|
|
153
|
+
export declare type QueuedEvent = {
|
|
154
|
+
eventName: string;
|
|
155
|
+
payload: EsriBatchEventPayload;
|
|
156
|
+
session?: SessionContext;
|
|
157
|
+
browserInfo?: ReturnType<typeof getBrowserClientInfo>;
|
|
158
|
+
timestamp: string;
|
|
159
|
+
unixMs: number;
|
|
160
|
+
};
|
|
161
|
+
export declare type EsriPluginOptions = {
|
|
162
|
+
trackerName: string;
|
|
163
|
+
appId: string;
|
|
164
|
+
appName?: string;
|
|
165
|
+
appVersion?: string;
|
|
166
|
+
userPoolID?: string;
|
|
167
|
+
fips?: boolean;
|
|
168
|
+
debounceMs?: number;
|
|
169
|
+
};
|
|
86
170
|
export {};
|