@esri/telemetry-amazon 0.1.1 → 0.2.0
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/telemetry-amazon.js.amd.js +21 -8
- package/dist/telemetry-amazon.js.amd.js.map +1 -1
- package/dist/telemetry-amazon.js.amd.min.js +1 -1
- package/dist/telemetry-amazon.js.amd.min.js.map +1 -1
- package/dist/telemetry-amazon.js.dojo.js +21 -8
- package/dist/telemetry-amazon.js.dojo.js.map +1 -1
- package/dist/telemetry-amazon.js.dojo.min.js +1 -1
- package/dist/telemetry-amazon.js.dojo.min.js.map +1 -1
- package/dist/telemetry-amazon.js.js +24 -11
- package/dist/telemetry-amazon.js.js.map +1 -1
- package/dist/telemetry-amazon.js.min.js +1 -1
- package/dist/telemetry-amazon.js.min.js.map +1 -1
- package/package.json +3 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
define('telemetry', ['@esri/telemetry', 'analytics', '@analytics/aws-pinpoint'], function (Telemetry, Analytics, awsPinpointPlugin) { 'use strict';
|
|
1
|
+
define('telemetry', ['@esri/telemetry', '@esri/hub-common', 'analytics', '@analytics/aws-pinpoint'], function (Telemetry, _esri_hubCommon, Analytics, awsPinpointPlugin) { 'use strict';
|
|
2
2
|
|
|
3
3
|
Telemetry = 'default' in Telemetry ? Telemetry['default'] : Telemetry;
|
|
4
4
|
Analytics = 'default' in Analytics ? Analytics['default'] : Analytics;
|
|
@@ -223,22 +223,35 @@ function createEventLog(_ref) {
|
|
|
223
223
|
dimensionLookup = _ref$dimensionLookup === undefined ? {} : _ref$dimensionLookup,
|
|
224
224
|
_ref$metricLookup = _ref.metricLookup,
|
|
225
225
|
metricLookup = _ref$metricLookup === undefined ? {} : _ref$metricLookup;
|
|
226
|
-
var
|
|
226
|
+
var eventPathname = event.pathname,
|
|
227
|
+
_event$eventType = event.eventType,
|
|
227
228
|
eventType = _event$eventType === undefined ? 'other' : _event$eventType;
|
|
228
229
|
|
|
229
230
|
var metrics = formatTelemetryMetrtics(event, metricLookup);
|
|
230
231
|
var eventAttributes = formatTelemetryAttributes({
|
|
231
232
|
telemetryData: _extends({ eventType: eventType }, event),
|
|
232
233
|
dimensionLookup: dimensionLookup,
|
|
233
|
-
excludeKeys: ['workflow'].concat(toConsumableArray(Object.keys(metrics)), toConsumableArray(Object.keys(metricLookup)))
|
|
234
|
+
excludeKeys: ['workflow', 'pathname'].concat(toConsumableArray(Object.keys(metrics)), toConsumableArray(Object.keys(metricLookup)))
|
|
234
235
|
});
|
|
235
236
|
|
|
236
|
-
|
|
237
|
-
name: eventType
|
|
238
|
-
referrer: document.referrer,
|
|
239
|
-
hostname: window.location.hostname,
|
|
240
|
-
path: window.location.pathname
|
|
237
|
+
var telemetryPayload = _extends({
|
|
238
|
+
name: eventType
|
|
241
239
|
}, eventAttributes, metrics);
|
|
240
|
+
|
|
241
|
+
// Browser document check and set referrer if it exists
|
|
242
|
+
if (typeof document !== 'undefined' && document.referrer) {
|
|
243
|
+
telemetryPayload.referrer = _esri_hubCommon.getProp(document, 'referrer');
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
// Browser hostname check and set if it exists
|
|
247
|
+
if (typeof window !== 'undefined' && !telemetryPayload.hostname) {
|
|
248
|
+
telemetryPayload.hostname = _esri_hubCommon.getProp(window, 'location.hostname');
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
// Browser and server pathname check and set
|
|
252
|
+
telemetryPayload.path = typeof window !== 'undefined' && window.location.pathname ? _esri_hubCommon.getProp(window, 'location.pathname') : eventPathname;
|
|
253
|
+
|
|
254
|
+
return telemetryPayload;
|
|
242
255
|
}
|
|
243
256
|
|
|
244
257
|
function createPageViewLog(_ref) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry-amazon.js.amd.js","sources":["../src/auth.js","../src/format-telemetry-attributes.js","../src/format-telemetry-metrics.js","../src/create-event-log.js","../src/create-page-view-log.js","../src/index.js"],"sourcesContent":["import Telemetry from '@esri/telemetry'\nconst { storage } = Telemetry\nconst COGNITO_KEY = 'TELEMETRY_COGNITO_CREDENTIALS'\n\nexport function getCredentials (IdentityPoolId, options = {}) {\n const fipsSubdomainSuffix = options.fips === true ? '-fips' : ''\n const COGNITO_URL = `https://cognito-identity${fipsSubdomainSuffix}.us-east-1.amazonaws.com/`\n let cached = storage.get(COGNITO_KEY)\n if (cached && Date.now() / 1000 < cached.Expiration) return Promise.resolve(cached)\n\n const fetchOptions = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetId'\n },\n body: JSON.stringify({ IdentityPoolId })\n }\n\n return fetch(COGNITO_URL, fetchOptions)\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then((response) => {\n const { IdentityId } = response\n const options = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetCredentialsForIdentity'\n },\n body: JSON.stringify({ IdentityId })\n }\n return fetch(COGNITO_URL, options)\n })\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then(({ Credentials }) => {\n storage.set(COGNITO_KEY, Credentials)\n return Credentials\n })\n}\n","export default function formatTelemetryAttributes ({ telemetryData, dimensionLookup = {}, excludeKeys = [] }) {\n return Object.keys(telemetryData)\n .filter(key => {\n return !excludeKeys.includes(key)\n })\n .map(key => {\n if (dimensionLookup[key]) {\n return {\n key: getCustomDimensionKey(dimensionLookup, key),\n value: telemetryData[key] }\n }\n\n return {\n key,\n value: getValue(telemetryData, key)\n }\n })\n .reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {})\n}\n\nfunction getValue (data, key) {\n if (key === 'json') {\n return data[key] ? JSON.stringify(data[key]) : 'null'\n }\n\n return data[key] === undefined ? 'null' : data[key].toString()\n}\n\nfunction getCustomDimensionKey (lookup, key) {\n return `dimension${lookup[key]}`\n}","const METRICS = ['size', 'duration', 'position', 'number', 'count']\n\nexport default function formatTelemetryMetrtics (telemetryData, metricLookup = {}) {\n return Object.keys(telemetryData).filter(key => {\n return metricLookup[key] || METRICS.includes(key)\n }).map(key => {\n if (metricLookup[key]) {\n return {\n key: getCustomMetricKey(metricLookup, key),\n value: telemetryData[key]\n }\n }\n\n return {\n key,\n value: telemetryData[key]\n }\n }).reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {});\n}\n\nfunction getCustomMetricKey (lookup, key) {\n return `metric${lookup[key]}`\n}\n","import formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\nexport default function createEventLog ({\n event = {},\n dimensionLookup = {},\n metricLookup = {}\n}) {\n const { eventType = 'other' } = event\n const metrics = formatTelemetryMetrics(event, metricLookup)\n const eventAttributes = formatTelemetryAttributes({\n telemetryData: { eventType, ...event },\n dimensionLookup,\n excludeKeys: ['workflow', ...Object.keys(metrics), ...Object.keys(metricLookup)]\n })\n\n return {\n name: eventType,\n referrer: document.referrer,\n hostname: window.location.hostname,\n path: window.location.pathname,\n ...eventAttributes,\n ...metrics\n }\n}\n","import formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\nexport default function createPageViewLog ({\n page,\n previousPage = {},\n options = {},\n dimensionLookup = {},\n metricLookup = {}\n}) {\n const metrics = formatTelemetryMetrics(options, metricLookup)\n const attributes = formatTelemetryAttributes({\n telemetryData: options,\n dimensionLookup,\n excludeKeys: ['workflow', ...Object.keys(metrics), ...Object.keys(metricLookup)]\n })\n\n const { referrer, title } = document || {}\n const { hostname, pathname } = window && window.location ? window.location : {}\n\n return {\n name: 'pageView',\n referrer,\n hostname,\n path: page || pathname,\n pageUrl: page || pathname,\n pageName: title,\n previousPageUrl: previousPage.pageUrl,\n previousPageName: previousPage.pageName,\n ...attributes,\n ...metrics\n }\n}\n","import { getCredentials } from './auth'\nimport createEventLog from './create-event-log'\nimport createPageView from './create-page-view-log'\nimport Analytics from 'analytics'\nimport awsPinpointPlugin from '@analytics/aws-pinpoint'\n\nexport default class Amazon {\n constructor(options) {\n const { app = {}, fips, userPoolID } = options\n this.analytics = Analytics({\n app: app.name,\n plugins: [\n awsPinpointPlugin({\n fips,\n pinpointAppId: app.id,\n getCredentials: () => {\n return getCredentials(userPoolID, { fips })\n },\n }),\n ],\n })\n\n this.name = 'amazon'\n Object.assign(this, options)\n }\n\n logPageView(page, options) {\n const telemetryPayload = createPageView({\n page,\n previousPage: this.previousPage,\n options,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n this.previousPage = telemetryPayload.attributes\n this.analytics.track('pageView', telemetryPayload)\n }\n\n logEvent(event = {}) {\n const telemetryPayload = createEventLog({\n event,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n const { name } = telemetryPayload\n this.analytics.track(name, telemetryPayload)\n }\n}\n"],"names":["storage","Telemetry","COGNITO_KEY","getCredentials","IdentityPoolId","options","fipsSubdomainSuffix","fips","COGNITO_URL","cached","get","Date","now","Expiration","Promise","resolve","fetchOptions","JSON","stringify","fetch","then","response","ok","Error","statusText","json","IdentityId","Credentials","set","formatTelemetryAttributes","telemetryData","dimensionLookup","excludeKeys","Object","keys","filter","includes","key","map","getCustomDimensionKey","getValue","reduce","acc","value","data","undefined","toString","lookup","METRICS","formatTelemetryMetrtics","metricLookup","getCustomMetricKey","createEventLog","event","eventType","metrics","formatTelemetryMetrics","eventAttributes","document","referrer","window","location","hostname","pathname","createPageViewLog","page","previousPage","attributes","title","pageUrl","pageName","Amazon","app","userPoolID","analytics","Analytics","name","awsPinpointPlugin","id","telemetryPayload","createPageView","dimensions","track"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"telemetry-amazon.js.amd.js","sources":["../src/auth.js","../src/format-telemetry-attributes.js","../src/format-telemetry-metrics.js","../src/create-event-log.js","../src/create-page-view-log.js","../src/index.js"],"sourcesContent":["import Telemetry from '@esri/telemetry'\nconst { storage } = Telemetry\nconst COGNITO_KEY = 'TELEMETRY_COGNITO_CREDENTIALS'\n\nexport function getCredentials (IdentityPoolId, options = {}) {\n const fipsSubdomainSuffix = options.fips === true ? '-fips' : ''\n const COGNITO_URL = `https://cognito-identity${fipsSubdomainSuffix}.us-east-1.amazonaws.com/`\n let cached = storage.get(COGNITO_KEY)\n if (cached && Date.now() / 1000 < cached.Expiration) return Promise.resolve(cached)\n\n const fetchOptions = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetId'\n },\n body: JSON.stringify({ IdentityPoolId })\n }\n\n return fetch(COGNITO_URL, fetchOptions)\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then((response) => {\n const { IdentityId } = response\n const options = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetCredentialsForIdentity'\n },\n body: JSON.stringify({ IdentityId })\n }\n return fetch(COGNITO_URL, options)\n })\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then(({ Credentials }) => {\n storage.set(COGNITO_KEY, Credentials)\n return Credentials\n })\n}\n","export default function formatTelemetryAttributes ({ telemetryData, dimensionLookup = {}, excludeKeys = [] }) {\n return Object.keys(telemetryData)\n .filter(key => {\n return !excludeKeys.includes(key)\n })\n .map(key => {\n if (dimensionLookup[key]) {\n return {\n key: getCustomDimensionKey(dimensionLookup, key),\n value: telemetryData[key] }\n }\n\n return {\n key,\n value: getValue(telemetryData, key)\n }\n })\n .reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {})\n}\n\nfunction getValue (data, key) {\n if (key === 'json') {\n return data[key] ? JSON.stringify(data[key]) : 'null'\n }\n\n return data[key] === undefined ? 'null' : data[key].toString()\n}\n\nfunction getCustomDimensionKey (lookup, key) {\n return `dimension${lookup[key]}`\n}","const METRICS = ['size', 'duration', 'position', 'number', 'count']\n\nexport default function formatTelemetryMetrtics (telemetryData, metricLookup = {}) {\n return Object.keys(telemetryData).filter(key => {\n return metricLookup[key] || METRICS.includes(key)\n }).map(key => {\n if (metricLookup[key]) {\n return {\n key: getCustomMetricKey(metricLookup, key),\n value: telemetryData[key]\n }\n }\n\n return {\n key,\n value: telemetryData[key]\n }\n }).reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {});\n}\n\nfunction getCustomMetricKey (lookup, key) {\n return `metric${lookup[key]}`\n}\n","import { getProp } from '@esri/hub-common';\nimport formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\n\nexport default function createEventLog({\n event = {},\n dimensionLookup = {},\n metricLookup = {},\n}) {\n const { pathname: eventPathname, eventType = 'other' } = event\n const metrics = formatTelemetryMetrics(event, metricLookup)\n const eventAttributes = formatTelemetryAttributes({\n telemetryData: { eventType, ...event },\n dimensionLookup,\n excludeKeys: [\n 'workflow',\n 'pathname',\n ...Object.keys(metrics),\n ...Object.keys(metricLookup),\n ],\n })\n\n const telemetryPayload = {\n name: eventType,\n ...eventAttributes,\n ...metrics,\n }\n\n // Browser document check and set referrer if it exists\n if (typeof document !== 'undefined' && document.referrer) {\n telemetryPayload.referrer = getProp(document, 'referrer')\n }\n\n // Browser hostname check and set if it exists\n if (typeof window !== 'undefined' && !telemetryPayload.hostname) {\n telemetryPayload.hostname = getProp(window, 'location.hostname')\n }\n\n // Browser and server pathname check and set\n telemetryPayload.path = typeof window !== 'undefined' && window.location.pathname ? getProp(window, 'location.pathname') : eventPathname\n\n return telemetryPayload\n}\n","import formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\nexport default function createPageViewLog ({\n page,\n previousPage = {},\n options = {},\n dimensionLookup = {},\n metricLookup = {}\n}) {\n const metrics = formatTelemetryMetrics(options, metricLookup)\n const attributes = formatTelemetryAttributes({\n telemetryData: options,\n dimensionLookup,\n excludeKeys: ['workflow', ...Object.keys(metrics), ...Object.keys(metricLookup)]\n })\n\n const { referrer, title } = document || {}\n const { hostname, pathname } = window && window.location ? window.location : {}\n\n return {\n name: 'pageView',\n referrer,\n hostname,\n path: page || pathname,\n pageUrl: page || pathname,\n pageName: title,\n previousPageUrl: previousPage.pageUrl,\n previousPageName: previousPage.pageName,\n ...attributes,\n ...metrics\n }\n}\n","import { getCredentials } from './auth'\nimport createEventLog from './create-event-log'\nimport createPageView from './create-page-view-log'\nimport Analytics from 'analytics'\nimport awsPinpointPlugin from '@analytics/aws-pinpoint'\n\nexport default class Amazon {\n constructor(options) {\n const { app = {}, fips, userPoolID } = options\n this.analytics = Analytics({\n app: app.name,\n plugins: [\n awsPinpointPlugin({\n fips,\n pinpointAppId: app.id,\n getCredentials: () => {\n return getCredentials(userPoolID, { fips })\n },\n }),\n ],\n })\n\n this.name = 'amazon'\n Object.assign(this, options)\n }\n\n logPageView(page, options) {\n const telemetryPayload = createPageView({\n page,\n previousPage: this.previousPage,\n options,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n this.previousPage = telemetryPayload.attributes\n this.analytics.track('pageView', telemetryPayload)\n }\n\n logEvent(event = {}) {\n const telemetryPayload = createEventLog({\n event,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n const { name } = telemetryPayload\n this.analytics.track(name, telemetryPayload)\n }\n}\n"],"names":["storage","Telemetry","COGNITO_KEY","getCredentials","IdentityPoolId","options","fipsSubdomainSuffix","fips","COGNITO_URL","cached","get","Date","now","Expiration","Promise","resolve","fetchOptions","JSON","stringify","fetch","then","response","ok","Error","statusText","json","IdentityId","Credentials","set","formatTelemetryAttributes","telemetryData","dimensionLookup","excludeKeys","Object","keys","filter","includes","key","map","getCustomDimensionKey","getValue","reduce","acc","value","data","undefined","toString","lookup","METRICS","formatTelemetryMetrtics","metricLookup","getCustomMetricKey","createEventLog","event","eventPathname","pathname","eventType","metrics","formatTelemetryMetrics","eventAttributes","telemetryPayload","document","referrer","getProp","window","hostname","path","location","createPageViewLog","page","previousPage","attributes","title","pageUrl","pageName","Amazon","app","userPoolID","analytics","Analytics","name","awsPinpointPlugin","id","createPageView","dimensions","track"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define("telemetry",["@esri/telemetry","analytics","@analytics/aws-pinpoint"],function(e,t,n){"use strict";function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=!0===t.fips?"-fips":"",
|
|
1
|
+
define("telemetry",["@esri/telemetry","@esri/hub-common","analytics","@analytics/aws-pinpoint"],function(e,t,n,o){"use strict";function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=!0===t.fips?"-fips":"",o="https://cognito-identity"+n+".us-east-1.amazonaws.com/",i=p.get(l);if(i&&Date.now()/1e3<i.Expiration)return Promise.resolve(i);var r={method:"POST",headers:{"Content-type":"application/x-amz-json-1.1","X-Amz-Target":"AWSCognitoIdentityService.GetId"},body:JSON.stringify({IdentityPoolId:e})};return fetch(o,r).then(function(e){if(!e.ok)throw new Error(e.statusText);return e.json()}).then(function(e){var t=e.IdentityId,n={method:"POST",headers:{"Content-type":"application/x-amz-json-1.1","X-Amz-Target":"AWSCognitoIdentityService.GetCredentialsForIdentity"},body:JSON.stringify({IdentityId:t})};return fetch(o,n)}).then(function(e){if(!e.ok)throw new Error(e.statusText);return e.json()}).then(function(e){var t=e.Credentials;return p.set(l,t),t})}function r(e){var t=e.telemetryData,n=e.dimensionLookup,o=void 0===n?{}:n,i=e.excludeKeys,r=void 0===i?[]:i;return Object.keys(t).filter(function(e){return!r.includes(e)}).map(function(e){return o[e]?{key:u(o,e),value:t[e]}:{key:e,value:a(t,e)}}).reduce(function(e,t){var n=t.key,o=t.value;return e[n]=o,e},{})}function a(e,t){return"json"===t?e[t]?JSON.stringify(e[t]):"null":void 0===e[t]?"null":e[t].toString()}function u(e,t){return"dimension"+e[t]}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).filter(function(e){return t[e]||m.includes(e)}).map(function(n){return t[n]?{key:c(t,n),value:e[n]}:{key:n,value:e[n]}}).reduce(function(e,t){var n=t.key,o=t.value;return e[n]=o,e},{})}function c(e,t){return"metric"+e[t]}function d(e){var n=e.event,o=void 0===n?{}:n,i=e.dimensionLookup,a=void 0===i?{}:i,u=e.metricLookup,c=void 0===u?{}:u,d=o.pathname,f=o.eventType,p=void 0===f?"other":f,l=s(o,c),m=r({telemetryData:h({eventType:p},o),dimensionLookup:a,excludeKeys:["workflow","pathname"].concat(g(Object.keys(l)),g(Object.keys(c)))}),v=h({name:p},m,l);return"undefined"!=typeof document&&document.referrer&&(v.referrer=t.getProp(document,"referrer")),"undefined"==typeof window||v.hostname||(v.hostname=t.getProp(window,"location.hostname")),v.path="undefined"!=typeof window&&window.location.pathname?t.getProp(window,"location.pathname"):d,v}function f(e){var t=e.page,n=e.previousPage,o=void 0===n?{}:n,i=e.options,a=void 0===i?{}:i,u=e.dimensionLookup,c=void 0===u?{}:u,d=e.metricLookup,f=void 0===d?{}:d,p=s(a,f),l=r({telemetryData:a,dimensionLookup:c,excludeKeys:["workflow"].concat(g(Object.keys(p)),g(Object.keys(f)))}),m=document||{},v=m.referrer,y=m.title,w=window&&window.location?window.location:{},k=w.hostname,b=w.pathname;return h({name:"pageView",referrer:v,hostname:k,path:t||b,pageUrl:t||b,pageName:y,previousPageUrl:o.pageUrl,previousPageName:o.pageName},l,p)}e="default"in e?e.default:e,n="default"in n?n.default:n,o="default"in o?o.default:o;var p=e.storage,l="TELEMETRY_COGNITO_CREDENTIALS",m=["size","duration","position","number","count"],v=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},y=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},g=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)};return function(){function e(t){v(this,e);var r=t.app,a=void 0===r?{}:r,u=t.fips,s=t.userPoolID;this.analytics=n({app:a.name,plugins:[o({fips:u,pinpointAppId:a.id,getCredentials:function(){return i(s,{fips:u})}})]}),this.name="amazon",h(this,t)}return y(e,[{key:"logPageView",value:function(e,t){var n=f({page:e,previousPage:this.previousPage,options:t,dimensionLookup:this.dimensions,metricLookup:this.metrics});this.previousPage=n.attributes,this.analytics.track("pageView",n)}},{key:"logEvent",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=d({event:e,dimensionLookup:this.dimensions,metricLookup:this.metrics}),n=t.name;this.analytics.track(n,t)}}]),e}()});
|
|
2
2
|
//# sourceMappingURL=telemetry-amazon.js.amd.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry-amazon.js.amd.min.js","sources":["../src/auth.js","../src/format-telemetry-attributes.js","../src/format-telemetry-metrics.js","../src/create-event-log.js","../src/create-page-view-log.js","../src/index.js"],"sourcesContent":["import Telemetry from '@esri/telemetry'\nconst { storage } = Telemetry\nconst COGNITO_KEY = 'TELEMETRY_COGNITO_CREDENTIALS'\n\nexport function getCredentials (IdentityPoolId, options = {}) {\n const fipsSubdomainSuffix = options.fips === true ? '-fips' : ''\n const COGNITO_URL = `https://cognito-identity${fipsSubdomainSuffix}.us-east-1.amazonaws.com/`\n let cached = storage.get(COGNITO_KEY)\n if (cached && Date.now() / 1000 < cached.Expiration) return Promise.resolve(cached)\n\n const fetchOptions = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetId'\n },\n body: JSON.stringify({ IdentityPoolId })\n }\n\n return fetch(COGNITO_URL, fetchOptions)\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then((response) => {\n const { IdentityId } = response\n const options = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetCredentialsForIdentity'\n },\n body: JSON.stringify({ IdentityId })\n }\n return fetch(COGNITO_URL, options)\n })\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then(({ Credentials }) => {\n storage.set(COGNITO_KEY, Credentials)\n return Credentials\n })\n}\n","export default function formatTelemetryAttributes ({ telemetryData, dimensionLookup = {}, excludeKeys = [] }) {\n return Object.keys(telemetryData)\n .filter(key => {\n return !excludeKeys.includes(key)\n })\n .map(key => {\n if (dimensionLookup[key]) {\n return {\n key: getCustomDimensionKey(dimensionLookup, key),\n value: telemetryData[key] }\n }\n\n return {\n key,\n value: getValue(telemetryData, key)\n }\n })\n .reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {})\n}\n\nfunction getValue (data, key) {\n if (key === 'json') {\n return data[key] ? JSON.stringify(data[key]) : 'null'\n }\n\n return data[key] === undefined ? 'null' : data[key].toString()\n}\n\nfunction getCustomDimensionKey (lookup, key) {\n return `dimension${lookup[key]}`\n}","const METRICS = ['size', 'duration', 'position', 'number', 'count']\n\nexport default function formatTelemetryMetrtics (telemetryData, metricLookup = {}) {\n return Object.keys(telemetryData).filter(key => {\n return metricLookup[key] || METRICS.includes(key)\n }).map(key => {\n if (metricLookup[key]) {\n return {\n key: getCustomMetricKey(metricLookup, key),\n value: telemetryData[key]\n }\n }\n\n return {\n key,\n value: telemetryData[key]\n }\n }).reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {});\n}\n\nfunction getCustomMetricKey (lookup, key) {\n return `metric${lookup[key]}`\n}\n","import formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\nexport default function createEventLog ({\n event = {},\n dimensionLookup = {},\n metricLookup = {}\n}) {\n const { eventType = 'other' } = event\n const metrics = formatTelemetryMetrics(event, metricLookup)\n const eventAttributes = formatTelemetryAttributes({\n telemetryData: { eventType, ...event },\n dimensionLookup,\n excludeKeys: ['workflow', ...Object.keys(metrics), ...Object.keys(metricLookup)]\n })\n\n return {\n name: eventType,\n referrer: document.referrer,\n hostname: window.location.hostname,\n path: window.location.pathname,\n ...eventAttributes,\n ...metrics\n }\n}\n","import formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\nexport default function createPageViewLog ({\n page,\n previousPage = {},\n options = {},\n dimensionLookup = {},\n metricLookup = {}\n}) {\n const metrics = formatTelemetryMetrics(options, metricLookup)\n const attributes = formatTelemetryAttributes({\n telemetryData: options,\n dimensionLookup,\n excludeKeys: ['workflow', ...Object.keys(metrics), ...Object.keys(metricLookup)]\n })\n\n const { referrer, title } = document || {}\n const { hostname, pathname } = window && window.location ? window.location : {}\n\n return {\n name: 'pageView',\n referrer,\n hostname,\n path: page || pathname,\n pageUrl: page || pathname,\n pageName: title,\n previousPageUrl: previousPage.pageUrl,\n previousPageName: previousPage.pageName,\n ...attributes,\n ...metrics\n }\n}\n","import { getCredentials } from './auth'\nimport createEventLog from './create-event-log'\nimport createPageView from './create-page-view-log'\nimport Analytics from 'analytics'\nimport awsPinpointPlugin from '@analytics/aws-pinpoint'\n\nexport default class Amazon {\n constructor(options) {\n const { app = {}, fips, userPoolID } = options\n this.analytics = Analytics({\n app: app.name,\n plugins: [\n awsPinpointPlugin({\n fips,\n pinpointAppId: app.id,\n getCredentials: () => {\n return getCredentials(userPoolID, { fips })\n },\n }),\n ],\n })\n\n this.name = 'amazon'\n Object.assign(this, options)\n }\n\n logPageView(page, options) {\n const telemetryPayload = createPageView({\n page,\n previousPage: this.previousPage,\n options,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n this.previousPage = telemetryPayload.attributes\n this.analytics.track('pageView', telemetryPayload)\n }\n\n logEvent(event = {}) {\n const telemetryPayload = createEventLog({\n event,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n const { name } = telemetryPayload\n this.analytics.track(name, telemetryPayload)\n }\n}\n"],"names":["getCredentials","IdentityPoolId","options","fipsSubdomainSuffix","fips","COGNITO_URL","cached","storage","get","COGNITO_KEY","Date","now","Expiration","Promise","resolve","fetchOptions","JSON","stringify","fetch","then","response","ok","Error","statusText","json","IdentityId","Credentials","set","formatTelemetryAttributes","telemetryData","dimensionLookup","excludeKeys","Object","keys","filter","includes","key","map","getCustomDimensionKey","getValue","reduce","acc","value","data","undefined","toString","lookup","formatTelemetryMetrtics","metricLookup","METRICS","getCustomMetricKey","createEventLog","event","eventType","metrics","formatTelemetryMetrics","eventAttributes","document","referrer","window","location","hostname","pathname","createPageViewLog","page","previousPage","attributes","title","pageUrl","pageName","Telemetry","app","userPoolID","analytics","Analytics","name","awsPinpointPlugin","id","this","telemetryPayload","createPageView","dimensions","track"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"telemetry-amazon.js.amd.min.js","sources":["../src/auth.js","../src/format-telemetry-attributes.js","../src/format-telemetry-metrics.js","../src/create-event-log.js","../src/create-page-view-log.js","../src/index.js"],"sourcesContent":["import Telemetry from '@esri/telemetry'\nconst { storage } = Telemetry\nconst COGNITO_KEY = 'TELEMETRY_COGNITO_CREDENTIALS'\n\nexport function getCredentials (IdentityPoolId, options = {}) {\n const fipsSubdomainSuffix = options.fips === true ? '-fips' : ''\n const COGNITO_URL = `https://cognito-identity${fipsSubdomainSuffix}.us-east-1.amazonaws.com/`\n let cached = storage.get(COGNITO_KEY)\n if (cached && Date.now() / 1000 < cached.Expiration) return Promise.resolve(cached)\n\n const fetchOptions = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetId'\n },\n body: JSON.stringify({ IdentityPoolId })\n }\n\n return fetch(COGNITO_URL, fetchOptions)\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then((response) => {\n const { IdentityId } = response\n const options = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetCredentialsForIdentity'\n },\n body: JSON.stringify({ IdentityId })\n }\n return fetch(COGNITO_URL, options)\n })\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then(({ Credentials }) => {\n storage.set(COGNITO_KEY, Credentials)\n return Credentials\n })\n}\n","export default function formatTelemetryAttributes ({ telemetryData, dimensionLookup = {}, excludeKeys = [] }) {\n return Object.keys(telemetryData)\n .filter(key => {\n return !excludeKeys.includes(key)\n })\n .map(key => {\n if (dimensionLookup[key]) {\n return {\n key: getCustomDimensionKey(dimensionLookup, key),\n value: telemetryData[key] }\n }\n\n return {\n key,\n value: getValue(telemetryData, key)\n }\n })\n .reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {})\n}\n\nfunction getValue (data, key) {\n if (key === 'json') {\n return data[key] ? JSON.stringify(data[key]) : 'null'\n }\n\n return data[key] === undefined ? 'null' : data[key].toString()\n}\n\nfunction getCustomDimensionKey (lookup, key) {\n return `dimension${lookup[key]}`\n}","const METRICS = ['size', 'duration', 'position', 'number', 'count']\n\nexport default function formatTelemetryMetrtics (telemetryData, metricLookup = {}) {\n return Object.keys(telemetryData).filter(key => {\n return metricLookup[key] || METRICS.includes(key)\n }).map(key => {\n if (metricLookup[key]) {\n return {\n key: getCustomMetricKey(metricLookup, key),\n value: telemetryData[key]\n }\n }\n\n return {\n key,\n value: telemetryData[key]\n }\n }).reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {});\n}\n\nfunction getCustomMetricKey (lookup, key) {\n return `metric${lookup[key]}`\n}\n","import { getProp } from '@esri/hub-common';\nimport formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\n\nexport default function createEventLog({\n event = {},\n dimensionLookup = {},\n metricLookup = {},\n}) {\n const { pathname: eventPathname, eventType = 'other' } = event\n const metrics = formatTelemetryMetrics(event, metricLookup)\n const eventAttributes = formatTelemetryAttributes({\n telemetryData: { eventType, ...event },\n dimensionLookup,\n excludeKeys: [\n 'workflow',\n 'pathname',\n ...Object.keys(metrics),\n ...Object.keys(metricLookup),\n ],\n })\n\n const telemetryPayload = {\n name: eventType,\n ...eventAttributes,\n ...metrics,\n }\n\n // Browser document check and set referrer if it exists\n if (typeof document !== 'undefined' && document.referrer) {\n telemetryPayload.referrer = getProp(document, 'referrer')\n }\n\n // Browser hostname check and set if it exists\n if (typeof window !== 'undefined' && !telemetryPayload.hostname) {\n telemetryPayload.hostname = getProp(window, 'location.hostname')\n }\n\n // Browser and server pathname check and set\n telemetryPayload.path = typeof window !== 'undefined' && window.location.pathname ? getProp(window, 'location.pathname') : eventPathname\n\n return telemetryPayload\n}\n","import formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\nexport default function createPageViewLog ({\n page,\n previousPage = {},\n options = {},\n dimensionLookup = {},\n metricLookup = {}\n}) {\n const metrics = formatTelemetryMetrics(options, metricLookup)\n const attributes = formatTelemetryAttributes({\n telemetryData: options,\n dimensionLookup,\n excludeKeys: ['workflow', ...Object.keys(metrics), ...Object.keys(metricLookup)]\n })\n\n const { referrer, title } = document || {}\n const { hostname, pathname } = window && window.location ? window.location : {}\n\n return {\n name: 'pageView',\n referrer,\n hostname,\n path: page || pathname,\n pageUrl: page || pathname,\n pageName: title,\n previousPageUrl: previousPage.pageUrl,\n previousPageName: previousPage.pageName,\n ...attributes,\n ...metrics\n }\n}\n","import { getCredentials } from './auth'\nimport createEventLog from './create-event-log'\nimport createPageView from './create-page-view-log'\nimport Analytics from 'analytics'\nimport awsPinpointPlugin from '@analytics/aws-pinpoint'\n\nexport default class Amazon {\n constructor(options) {\n const { app = {}, fips, userPoolID } = options\n this.analytics = Analytics({\n app: app.name,\n plugins: [\n awsPinpointPlugin({\n fips,\n pinpointAppId: app.id,\n getCredentials: () => {\n return getCredentials(userPoolID, { fips })\n },\n }),\n ],\n })\n\n this.name = 'amazon'\n Object.assign(this, options)\n }\n\n logPageView(page, options) {\n const telemetryPayload = createPageView({\n page,\n previousPage: this.previousPage,\n options,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n this.previousPage = telemetryPayload.attributes\n this.analytics.track('pageView', telemetryPayload)\n }\n\n logEvent(event = {}) {\n const telemetryPayload = createEventLog({\n event,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n const { name } = telemetryPayload\n this.analytics.track(name, telemetryPayload)\n }\n}\n"],"names":["getCredentials","IdentityPoolId","options","fipsSubdomainSuffix","fips","COGNITO_URL","cached","storage","get","COGNITO_KEY","Date","now","Expiration","Promise","resolve","fetchOptions","JSON","stringify","fetch","then","response","ok","Error","statusText","json","IdentityId","Credentials","set","formatTelemetryAttributes","telemetryData","dimensionLookup","excludeKeys","Object","keys","filter","includes","key","map","getCustomDimensionKey","getValue","reduce","acc","value","data","undefined","toString","lookup","formatTelemetryMetrtics","metricLookup","METRICS","getCustomMetricKey","createEventLog","event","eventPathname","pathname","eventType","metrics","formatTelemetryMetrics","eventAttributes","telemetryPayload","document","referrer","getProp","window","hostname","path","location","createPageViewLog","page","previousPage","attributes","title","pageUrl","pageName","Telemetry","app","userPoolID","analytics","Analytics","name","awsPinpointPlugin","id","this","createPageView","dimensions","track"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
define('telemetry', ['@esri/telemetry', 'analytics', '@analytics/aws-pinpoint'], function (Telemetry, Analytics, awsPinpointPlugin) { 'use strict';
|
|
1
|
+
define('telemetry', ['@esri/telemetry', '@esri/hub-common', 'analytics', '@analytics/aws-pinpoint'], function (Telemetry, _esri_hubCommon, Analytics, awsPinpointPlugin) { 'use strict';
|
|
2
2
|
|
|
3
3
|
Telemetry = 'default' in Telemetry ? Telemetry['default'] : Telemetry;
|
|
4
4
|
Analytics = 'default' in Analytics ? Analytics['default'] : Analytics;
|
|
@@ -223,22 +223,35 @@ function createEventLog(_ref) {
|
|
|
223
223
|
dimensionLookup = _ref$dimensionLookup === undefined ? {} : _ref$dimensionLookup,
|
|
224
224
|
_ref$metricLookup = _ref.metricLookup,
|
|
225
225
|
metricLookup = _ref$metricLookup === undefined ? {} : _ref$metricLookup;
|
|
226
|
-
var
|
|
226
|
+
var eventPathname = event.pathname,
|
|
227
|
+
_event$eventType = event.eventType,
|
|
227
228
|
eventType = _event$eventType === undefined ? 'other' : _event$eventType;
|
|
228
229
|
|
|
229
230
|
var metrics = formatTelemetryMetrtics(event, metricLookup);
|
|
230
231
|
var eventAttributes = formatTelemetryAttributes({
|
|
231
232
|
telemetryData: _extends({ eventType: eventType }, event),
|
|
232
233
|
dimensionLookup: dimensionLookup,
|
|
233
|
-
excludeKeys: ['workflow'].concat(toConsumableArray(Object.keys(metrics)), toConsumableArray(Object.keys(metricLookup)))
|
|
234
|
+
excludeKeys: ['workflow', 'pathname'].concat(toConsumableArray(Object.keys(metrics)), toConsumableArray(Object.keys(metricLookup)))
|
|
234
235
|
});
|
|
235
236
|
|
|
236
|
-
|
|
237
|
-
name: eventType
|
|
238
|
-
referrer: document.referrer,
|
|
239
|
-
hostname: window.location.hostname,
|
|
240
|
-
path: window.location.pathname
|
|
237
|
+
var telemetryPayload = _extends({
|
|
238
|
+
name: eventType
|
|
241
239
|
}, eventAttributes, metrics);
|
|
240
|
+
|
|
241
|
+
// Browser document check and set referrer if it exists
|
|
242
|
+
if (typeof document !== 'undefined' && document.referrer) {
|
|
243
|
+
telemetryPayload.referrer = _esri_hubCommon.getProp(document, 'referrer');
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
// Browser hostname check and set if it exists
|
|
247
|
+
if (typeof window !== 'undefined' && !telemetryPayload.hostname) {
|
|
248
|
+
telemetryPayload.hostname = _esri_hubCommon.getProp(window, 'location.hostname');
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
// Browser and server pathname check and set
|
|
252
|
+
telemetryPayload.path = typeof window !== 'undefined' && window.location.pathname ? _esri_hubCommon.getProp(window, 'location.pathname') : eventPathname;
|
|
253
|
+
|
|
254
|
+
return telemetryPayload;
|
|
242
255
|
}
|
|
243
256
|
|
|
244
257
|
function createPageViewLog(_ref) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry-amazon.js.dojo.js","sources":["../src/auth.js","../src/format-telemetry-attributes.js","../src/format-telemetry-metrics.js","../src/create-event-log.js","../src/create-page-view-log.js","../src/index.js"],"sourcesContent":["import Telemetry from '@esri/telemetry'\nconst { storage } = Telemetry\nconst COGNITO_KEY = 'TELEMETRY_COGNITO_CREDENTIALS'\n\nexport function getCredentials (IdentityPoolId, options = {}) {\n const fipsSubdomainSuffix = options.fips === true ? '-fips' : ''\n const COGNITO_URL = `https://cognito-identity${fipsSubdomainSuffix}.us-east-1.amazonaws.com/`\n let cached = storage.get(COGNITO_KEY)\n if (cached && Date.now() / 1000 < cached.Expiration) return Promise.resolve(cached)\n\n const fetchOptions = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetId'\n },\n body: JSON.stringify({ IdentityPoolId })\n }\n\n return fetch(COGNITO_URL, fetchOptions)\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then((response) => {\n const { IdentityId } = response\n const options = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetCredentialsForIdentity'\n },\n body: JSON.stringify({ IdentityId })\n }\n return fetch(COGNITO_URL, options)\n })\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then(({ Credentials }) => {\n storage.set(COGNITO_KEY, Credentials)\n return Credentials\n })\n}\n","export default function formatTelemetryAttributes ({ telemetryData, dimensionLookup = {}, excludeKeys = [] }) {\n return Object.keys(telemetryData)\n .filter(key => {\n return !excludeKeys.includes(key)\n })\n .map(key => {\n if (dimensionLookup[key]) {\n return {\n key: getCustomDimensionKey(dimensionLookup, key),\n value: telemetryData[key] }\n }\n\n return {\n key,\n value: getValue(telemetryData, key)\n }\n })\n .reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {})\n}\n\nfunction getValue (data, key) {\n if (key === 'json') {\n return data[key] ? JSON.stringify(data[key]) : 'null'\n }\n\n return data[key] === undefined ? 'null' : data[key].toString()\n}\n\nfunction getCustomDimensionKey (lookup, key) {\n return `dimension${lookup[key]}`\n}","const METRICS = ['size', 'duration', 'position', 'number', 'count']\n\nexport default function formatTelemetryMetrtics (telemetryData, metricLookup = {}) {\n return Object.keys(telemetryData).filter(key => {\n return metricLookup[key] || METRICS.includes(key)\n }).map(key => {\n if (metricLookup[key]) {\n return {\n key: getCustomMetricKey(metricLookup, key),\n value: telemetryData[key]\n }\n }\n\n return {\n key,\n value: telemetryData[key]\n }\n }).reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {});\n}\n\nfunction getCustomMetricKey (lookup, key) {\n return `metric${lookup[key]}`\n}\n","import formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\nexport default function createEventLog ({\n event = {},\n dimensionLookup = {},\n metricLookup = {}\n}) {\n const { eventType = 'other' } = event\n const metrics = formatTelemetryMetrics(event, metricLookup)\n const eventAttributes = formatTelemetryAttributes({\n telemetryData: { eventType, ...event },\n dimensionLookup,\n excludeKeys: ['workflow', ...Object.keys(metrics), ...Object.keys(metricLookup)]\n })\n\n return {\n name: eventType,\n referrer: document.referrer,\n hostname: window.location.hostname,\n path: window.location.pathname,\n ...eventAttributes,\n ...metrics\n }\n}\n","import formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\nexport default function createPageViewLog ({\n page,\n previousPage = {},\n options = {},\n dimensionLookup = {},\n metricLookup = {}\n}) {\n const metrics = formatTelemetryMetrics(options, metricLookup)\n const attributes = formatTelemetryAttributes({\n telemetryData: options,\n dimensionLookup,\n excludeKeys: ['workflow', ...Object.keys(metrics), ...Object.keys(metricLookup)]\n })\n\n const { referrer, title } = document || {}\n const { hostname, pathname } = window && window.location ? window.location : {}\n\n return {\n name: 'pageView',\n referrer,\n hostname,\n path: page || pathname,\n pageUrl: page || pathname,\n pageName: title,\n previousPageUrl: previousPage.pageUrl,\n previousPageName: previousPage.pageName,\n ...attributes,\n ...metrics\n }\n}\n","import { getCredentials } from './auth'\nimport createEventLog from './create-event-log'\nimport createPageView from './create-page-view-log'\nimport Analytics from 'analytics'\nimport awsPinpointPlugin from '@analytics/aws-pinpoint'\n\nexport default class Amazon {\n constructor(options) {\n const { app = {}, fips, userPoolID } = options\n this.analytics = Analytics({\n app: app.name,\n plugins: [\n awsPinpointPlugin({\n fips,\n pinpointAppId: app.id,\n getCredentials: () => {\n return getCredentials(userPoolID, { fips })\n },\n }),\n ],\n })\n\n this.name = 'amazon'\n Object.assign(this, options)\n }\n\n logPageView(page, options) {\n const telemetryPayload = createPageView({\n page,\n previousPage: this.previousPage,\n options,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n this.previousPage = telemetryPayload.attributes\n this.analytics.track('pageView', telemetryPayload)\n }\n\n logEvent(event = {}) {\n const telemetryPayload = createEventLog({\n event,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n const { name } = telemetryPayload\n this.analytics.track(name, telemetryPayload)\n }\n}\n"],"names":["storage","Telemetry","COGNITO_KEY","getCredentials","IdentityPoolId","options","fipsSubdomainSuffix","fips","COGNITO_URL","cached","get","Date","now","Expiration","Promise","resolve","fetchOptions","JSON","stringify","fetch","then","response","ok","Error","statusText","json","IdentityId","Credentials","set","formatTelemetryAttributes","telemetryData","dimensionLookup","excludeKeys","Object","keys","filter","includes","key","map","getCustomDimensionKey","getValue","reduce","acc","value","data","undefined","toString","lookup","METRICS","formatTelemetryMetrtics","metricLookup","getCustomMetricKey","createEventLog","event","eventType","metrics","formatTelemetryMetrics","eventAttributes","document","referrer","window","location","hostname","pathname","createPageViewLog","page","previousPage","attributes","title","pageUrl","pageName","Amazon","app","userPoolID","analytics","Analytics","name","awsPinpointPlugin","id","telemetryPayload","createPageView","dimensions","track"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"telemetry-amazon.js.dojo.js","sources":["../src/auth.js","../src/format-telemetry-attributes.js","../src/format-telemetry-metrics.js","../src/create-event-log.js","../src/create-page-view-log.js","../src/index.js"],"sourcesContent":["import Telemetry from '@esri/telemetry'\nconst { storage } = Telemetry\nconst COGNITO_KEY = 'TELEMETRY_COGNITO_CREDENTIALS'\n\nexport function getCredentials (IdentityPoolId, options = {}) {\n const fipsSubdomainSuffix = options.fips === true ? '-fips' : ''\n const COGNITO_URL = `https://cognito-identity${fipsSubdomainSuffix}.us-east-1.amazonaws.com/`\n let cached = storage.get(COGNITO_KEY)\n if (cached && Date.now() / 1000 < cached.Expiration) return Promise.resolve(cached)\n\n const fetchOptions = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetId'\n },\n body: JSON.stringify({ IdentityPoolId })\n }\n\n return fetch(COGNITO_URL, fetchOptions)\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then((response) => {\n const { IdentityId } = response\n const options = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetCredentialsForIdentity'\n },\n body: JSON.stringify({ IdentityId })\n }\n return fetch(COGNITO_URL, options)\n })\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then(({ Credentials }) => {\n storage.set(COGNITO_KEY, Credentials)\n return Credentials\n })\n}\n","export default function formatTelemetryAttributes ({ telemetryData, dimensionLookup = {}, excludeKeys = [] }) {\n return Object.keys(telemetryData)\n .filter(key => {\n return !excludeKeys.includes(key)\n })\n .map(key => {\n if (dimensionLookup[key]) {\n return {\n key: getCustomDimensionKey(dimensionLookup, key),\n value: telemetryData[key] }\n }\n\n return {\n key,\n value: getValue(telemetryData, key)\n }\n })\n .reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {})\n}\n\nfunction getValue (data, key) {\n if (key === 'json') {\n return data[key] ? JSON.stringify(data[key]) : 'null'\n }\n\n return data[key] === undefined ? 'null' : data[key].toString()\n}\n\nfunction getCustomDimensionKey (lookup, key) {\n return `dimension${lookup[key]}`\n}","const METRICS = ['size', 'duration', 'position', 'number', 'count']\n\nexport default function formatTelemetryMetrtics (telemetryData, metricLookup = {}) {\n return Object.keys(telemetryData).filter(key => {\n return metricLookup[key] || METRICS.includes(key)\n }).map(key => {\n if (metricLookup[key]) {\n return {\n key: getCustomMetricKey(metricLookup, key),\n value: telemetryData[key]\n }\n }\n\n return {\n key,\n value: telemetryData[key]\n }\n }).reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {});\n}\n\nfunction getCustomMetricKey (lookup, key) {\n return `metric${lookup[key]}`\n}\n","import { getProp } from '@esri/hub-common';\nimport formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\n\nexport default function createEventLog({\n event = {},\n dimensionLookup = {},\n metricLookup = {},\n}) {\n const { pathname: eventPathname, eventType = 'other' } = event\n const metrics = formatTelemetryMetrics(event, metricLookup)\n const eventAttributes = formatTelemetryAttributes({\n telemetryData: { eventType, ...event },\n dimensionLookup,\n excludeKeys: [\n 'workflow',\n 'pathname',\n ...Object.keys(metrics),\n ...Object.keys(metricLookup),\n ],\n })\n\n const telemetryPayload = {\n name: eventType,\n ...eventAttributes,\n ...metrics,\n }\n\n // Browser document check and set referrer if it exists\n if (typeof document !== 'undefined' && document.referrer) {\n telemetryPayload.referrer = getProp(document, 'referrer')\n }\n\n // Browser hostname check and set if it exists\n if (typeof window !== 'undefined' && !telemetryPayload.hostname) {\n telemetryPayload.hostname = getProp(window, 'location.hostname')\n }\n\n // Browser and server pathname check and set\n telemetryPayload.path = typeof window !== 'undefined' && window.location.pathname ? getProp(window, 'location.pathname') : eventPathname\n\n return telemetryPayload\n}\n","import formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\nexport default function createPageViewLog ({\n page,\n previousPage = {},\n options = {},\n dimensionLookup = {},\n metricLookup = {}\n}) {\n const metrics = formatTelemetryMetrics(options, metricLookup)\n const attributes = formatTelemetryAttributes({\n telemetryData: options,\n dimensionLookup,\n excludeKeys: ['workflow', ...Object.keys(metrics), ...Object.keys(metricLookup)]\n })\n\n const { referrer, title } = document || {}\n const { hostname, pathname } = window && window.location ? window.location : {}\n\n return {\n name: 'pageView',\n referrer,\n hostname,\n path: page || pathname,\n pageUrl: page || pathname,\n pageName: title,\n previousPageUrl: previousPage.pageUrl,\n previousPageName: previousPage.pageName,\n ...attributes,\n ...metrics\n }\n}\n","import { getCredentials } from './auth'\nimport createEventLog from './create-event-log'\nimport createPageView from './create-page-view-log'\nimport Analytics from 'analytics'\nimport awsPinpointPlugin from '@analytics/aws-pinpoint'\n\nexport default class Amazon {\n constructor(options) {\n const { app = {}, fips, userPoolID } = options\n this.analytics = Analytics({\n app: app.name,\n plugins: [\n awsPinpointPlugin({\n fips,\n pinpointAppId: app.id,\n getCredentials: () => {\n return getCredentials(userPoolID, { fips })\n },\n }),\n ],\n })\n\n this.name = 'amazon'\n Object.assign(this, options)\n }\n\n logPageView(page, options) {\n const telemetryPayload = createPageView({\n page,\n previousPage: this.previousPage,\n options,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n this.previousPage = telemetryPayload.attributes\n this.analytics.track('pageView', telemetryPayload)\n }\n\n logEvent(event = {}) {\n const telemetryPayload = createEventLog({\n event,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n const { name } = telemetryPayload\n this.analytics.track(name, telemetryPayload)\n }\n}\n"],"names":["storage","Telemetry","COGNITO_KEY","getCredentials","IdentityPoolId","options","fipsSubdomainSuffix","fips","COGNITO_URL","cached","get","Date","now","Expiration","Promise","resolve","fetchOptions","JSON","stringify","fetch","then","response","ok","Error","statusText","json","IdentityId","Credentials","set","formatTelemetryAttributes","telemetryData","dimensionLookup","excludeKeys","Object","keys","filter","includes","key","map","getCustomDimensionKey","getValue","reduce","acc","value","data","undefined","toString","lookup","METRICS","formatTelemetryMetrtics","metricLookup","getCustomMetricKey","createEventLog","event","eventPathname","pathname","eventType","metrics","formatTelemetryMetrics","eventAttributes","telemetryPayload","document","referrer","getProp","window","hostname","path","location","createPageViewLog","page","previousPage","attributes","title","pageUrl","pageName","Amazon","app","userPoolID","analytics","Analytics","name","awsPinpointPlugin","id","createPageView","dimensions","track"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define("telemetry",["@esri/telemetry","analytics","@analytics/aws-pinpoint"],function(e,t,n){"use strict";function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=!0===t.fips?"-fips":"",
|
|
1
|
+
define("telemetry",["@esri/telemetry","@esri/hub-common","analytics","@analytics/aws-pinpoint"],function(e,t,n,o){"use strict";function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=!0===t.fips?"-fips":"",o="https://cognito-identity"+n+".us-east-1.amazonaws.com/",i=p.get(l);if(i&&Date.now()/1e3<i.Expiration)return Promise.resolve(i);var r={method:"POST",headers:{"Content-type":"application/x-amz-json-1.1","X-Amz-Target":"AWSCognitoIdentityService.GetId"},body:JSON.stringify({IdentityPoolId:e})};return fetch(o,r).then(function(e){if(!e.ok)throw new Error(e.statusText);return e.json()}).then(function(e){var t=e.IdentityId,n={method:"POST",headers:{"Content-type":"application/x-amz-json-1.1","X-Amz-Target":"AWSCognitoIdentityService.GetCredentialsForIdentity"},body:JSON.stringify({IdentityId:t})};return fetch(o,n)}).then(function(e){if(!e.ok)throw new Error(e.statusText);return e.json()}).then(function(e){var t=e.Credentials;return p.set(l,t),t})}function r(e){var t=e.telemetryData,n=e.dimensionLookup,o=void 0===n?{}:n,i=e.excludeKeys,r=void 0===i?[]:i;return Object.keys(t).filter(function(e){return!r.includes(e)}).map(function(e){return o[e]?{key:u(o,e),value:t[e]}:{key:e,value:a(t,e)}}).reduce(function(e,t){var n=t.key,o=t.value;return e[n]=o,e},{})}function a(e,t){return"json"===t?e[t]?JSON.stringify(e[t]):"null":void 0===e[t]?"null":e[t].toString()}function u(e,t){return"dimension"+e[t]}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).filter(function(e){return t[e]||m.includes(e)}).map(function(n){return t[n]?{key:c(t,n),value:e[n]}:{key:n,value:e[n]}}).reduce(function(e,t){var n=t.key,o=t.value;return e[n]=o,e},{})}function c(e,t){return"metric"+e[t]}function d(e){var n=e.event,o=void 0===n?{}:n,i=e.dimensionLookup,a=void 0===i?{}:i,u=e.metricLookup,c=void 0===u?{}:u,d=o.pathname,f=o.eventType,p=void 0===f?"other":f,l=s(o,c),m=r({telemetryData:h({eventType:p},o),dimensionLookup:a,excludeKeys:["workflow","pathname"].concat(g(Object.keys(l)),g(Object.keys(c)))}),v=h({name:p},m,l);return"undefined"!=typeof document&&document.referrer&&(v.referrer=t.getProp(document,"referrer")),"undefined"==typeof window||v.hostname||(v.hostname=t.getProp(window,"location.hostname")),v.path="undefined"!=typeof window&&window.location.pathname?t.getProp(window,"location.pathname"):d,v}function f(e){var t=e.page,n=e.previousPage,o=void 0===n?{}:n,i=e.options,a=void 0===i?{}:i,u=e.dimensionLookup,c=void 0===u?{}:u,d=e.metricLookup,f=void 0===d?{}:d,p=s(a,f),l=r({telemetryData:a,dimensionLookup:c,excludeKeys:["workflow"].concat(g(Object.keys(p)),g(Object.keys(f)))}),m=document||{},v=m.referrer,y=m.title,w=window&&window.location?window.location:{},k=w.hostname,b=w.pathname;return h({name:"pageView",referrer:v,hostname:k,path:t||b,pageUrl:t||b,pageName:y,previousPageUrl:o.pageUrl,previousPageName:o.pageName},l,p)}e="default"in e?e.default:e,n="default"in n?n.default:n,o="default"in o?o.default:o;var p=e.storage,l="TELEMETRY_COGNITO_CREDENTIALS",m=["size","duration","position","number","count"],v=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},y=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},g=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)};return function(){function e(t){v(this,e);var r=t.app,a=void 0===r?{}:r,u=t.fips,s=t.userPoolID;this.analytics=n({app:a.name,plugins:[o({fips:u,pinpointAppId:a.id,getCredentials:function(){return i(s,{fips:u})}})]}),this.name="amazon",h(this,t)}return y(e,[{key:"logPageView",value:function(e,t){var n=f({page:e,previousPage:this.previousPage,options:t,dimensionLookup:this.dimensions,metricLookup:this.metrics});this.previousPage=n.attributes,this.analytics.track("pageView",n)}},{key:"logEvent",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=d({event:e,dimensionLookup:this.dimensions,metricLookup:this.metrics}),n=t.name;this.analytics.track(n,t)}}]),e}()});
|
|
2
2
|
//# sourceMappingURL=telemetry-amazon.js.dojo.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry-amazon.js.dojo.min.js","sources":["../src/auth.js","../src/format-telemetry-attributes.js","../src/format-telemetry-metrics.js","../src/create-event-log.js","../src/create-page-view-log.js","../src/index.js"],"sourcesContent":["import Telemetry from '@esri/telemetry'\nconst { storage } = Telemetry\nconst COGNITO_KEY = 'TELEMETRY_COGNITO_CREDENTIALS'\n\nexport function getCredentials (IdentityPoolId, options = {}) {\n const fipsSubdomainSuffix = options.fips === true ? '-fips' : ''\n const COGNITO_URL = `https://cognito-identity${fipsSubdomainSuffix}.us-east-1.amazonaws.com/`\n let cached = storage.get(COGNITO_KEY)\n if (cached && Date.now() / 1000 < cached.Expiration) return Promise.resolve(cached)\n\n const fetchOptions = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetId'\n },\n body: JSON.stringify({ IdentityPoolId })\n }\n\n return fetch(COGNITO_URL, fetchOptions)\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then((response) => {\n const { IdentityId } = response\n const options = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetCredentialsForIdentity'\n },\n body: JSON.stringify({ IdentityId })\n }\n return fetch(COGNITO_URL, options)\n })\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then(({ Credentials }) => {\n storage.set(COGNITO_KEY, Credentials)\n return Credentials\n })\n}\n","export default function formatTelemetryAttributes ({ telemetryData, dimensionLookup = {}, excludeKeys = [] }) {\n return Object.keys(telemetryData)\n .filter(key => {\n return !excludeKeys.includes(key)\n })\n .map(key => {\n if (dimensionLookup[key]) {\n return {\n key: getCustomDimensionKey(dimensionLookup, key),\n value: telemetryData[key] }\n }\n\n return {\n key,\n value: getValue(telemetryData, key)\n }\n })\n .reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {})\n}\n\nfunction getValue (data, key) {\n if (key === 'json') {\n return data[key] ? JSON.stringify(data[key]) : 'null'\n }\n\n return data[key] === undefined ? 'null' : data[key].toString()\n}\n\nfunction getCustomDimensionKey (lookup, key) {\n return `dimension${lookup[key]}`\n}","const METRICS = ['size', 'duration', 'position', 'number', 'count']\n\nexport default function formatTelemetryMetrtics (telemetryData, metricLookup = {}) {\n return Object.keys(telemetryData).filter(key => {\n return metricLookup[key] || METRICS.includes(key)\n }).map(key => {\n if (metricLookup[key]) {\n return {\n key: getCustomMetricKey(metricLookup, key),\n value: telemetryData[key]\n }\n }\n\n return {\n key,\n value: telemetryData[key]\n }\n }).reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {});\n}\n\nfunction getCustomMetricKey (lookup, key) {\n return `metric${lookup[key]}`\n}\n","import formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\nexport default function createEventLog ({\n event = {},\n dimensionLookup = {},\n metricLookup = {}\n}) {\n const { eventType = 'other' } = event\n const metrics = formatTelemetryMetrics(event, metricLookup)\n const eventAttributes = formatTelemetryAttributes({\n telemetryData: { eventType, ...event },\n dimensionLookup,\n excludeKeys: ['workflow', ...Object.keys(metrics), ...Object.keys(metricLookup)]\n })\n\n return {\n name: eventType,\n referrer: document.referrer,\n hostname: window.location.hostname,\n path: window.location.pathname,\n ...eventAttributes,\n ...metrics\n }\n}\n","import formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\nexport default function createPageViewLog ({\n page,\n previousPage = {},\n options = {},\n dimensionLookup = {},\n metricLookup = {}\n}) {\n const metrics = formatTelemetryMetrics(options, metricLookup)\n const attributes = formatTelemetryAttributes({\n telemetryData: options,\n dimensionLookup,\n excludeKeys: ['workflow', ...Object.keys(metrics), ...Object.keys(metricLookup)]\n })\n\n const { referrer, title } = document || {}\n const { hostname, pathname } = window && window.location ? window.location : {}\n\n return {\n name: 'pageView',\n referrer,\n hostname,\n path: page || pathname,\n pageUrl: page || pathname,\n pageName: title,\n previousPageUrl: previousPage.pageUrl,\n previousPageName: previousPage.pageName,\n ...attributes,\n ...metrics\n }\n}\n","import { getCredentials } from './auth'\nimport createEventLog from './create-event-log'\nimport createPageView from './create-page-view-log'\nimport Analytics from 'analytics'\nimport awsPinpointPlugin from '@analytics/aws-pinpoint'\n\nexport default class Amazon {\n constructor(options) {\n const { app = {}, fips, userPoolID } = options\n this.analytics = Analytics({\n app: app.name,\n plugins: [\n awsPinpointPlugin({\n fips,\n pinpointAppId: app.id,\n getCredentials: () => {\n return getCredentials(userPoolID, { fips })\n },\n }),\n ],\n })\n\n this.name = 'amazon'\n Object.assign(this, options)\n }\n\n logPageView(page, options) {\n const telemetryPayload = createPageView({\n page,\n previousPage: this.previousPage,\n options,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n this.previousPage = telemetryPayload.attributes\n this.analytics.track('pageView', telemetryPayload)\n }\n\n logEvent(event = {}) {\n const telemetryPayload = createEventLog({\n event,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n const { name } = telemetryPayload\n this.analytics.track(name, telemetryPayload)\n }\n}\n"],"names":["getCredentials","IdentityPoolId","options","fipsSubdomainSuffix","fips","COGNITO_URL","cached","storage","get","COGNITO_KEY","Date","now","Expiration","Promise","resolve","fetchOptions","JSON","stringify","fetch","then","response","ok","Error","statusText","json","IdentityId","Credentials","set","formatTelemetryAttributes","telemetryData","dimensionLookup","excludeKeys","Object","keys","filter","includes","key","map","getCustomDimensionKey","getValue","reduce","acc","value","data","undefined","toString","lookup","formatTelemetryMetrtics","metricLookup","METRICS","getCustomMetricKey","createEventLog","event","eventType","metrics","formatTelemetryMetrics","eventAttributes","document","referrer","window","location","hostname","pathname","createPageViewLog","page","previousPage","attributes","title","pageUrl","pageName","Telemetry","app","userPoolID","analytics","Analytics","name","awsPinpointPlugin","id","this","telemetryPayload","createPageView","dimensions","track"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"telemetry-amazon.js.dojo.min.js","sources":["../src/auth.js","../src/format-telemetry-attributes.js","../src/format-telemetry-metrics.js","../src/create-event-log.js","../src/create-page-view-log.js","../src/index.js"],"sourcesContent":["import Telemetry from '@esri/telemetry'\nconst { storage } = Telemetry\nconst COGNITO_KEY = 'TELEMETRY_COGNITO_CREDENTIALS'\n\nexport function getCredentials (IdentityPoolId, options = {}) {\n const fipsSubdomainSuffix = options.fips === true ? '-fips' : ''\n const COGNITO_URL = `https://cognito-identity${fipsSubdomainSuffix}.us-east-1.amazonaws.com/`\n let cached = storage.get(COGNITO_KEY)\n if (cached && Date.now() / 1000 < cached.Expiration) return Promise.resolve(cached)\n\n const fetchOptions = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetId'\n },\n body: JSON.stringify({ IdentityPoolId })\n }\n\n return fetch(COGNITO_URL, fetchOptions)\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then((response) => {\n const { IdentityId } = response\n const options = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetCredentialsForIdentity'\n },\n body: JSON.stringify({ IdentityId })\n }\n return fetch(COGNITO_URL, options)\n })\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then(({ Credentials }) => {\n storage.set(COGNITO_KEY, Credentials)\n return Credentials\n })\n}\n","export default function formatTelemetryAttributes ({ telemetryData, dimensionLookup = {}, excludeKeys = [] }) {\n return Object.keys(telemetryData)\n .filter(key => {\n return !excludeKeys.includes(key)\n })\n .map(key => {\n if (dimensionLookup[key]) {\n return {\n key: getCustomDimensionKey(dimensionLookup, key),\n value: telemetryData[key] }\n }\n\n return {\n key,\n value: getValue(telemetryData, key)\n }\n })\n .reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {})\n}\n\nfunction getValue (data, key) {\n if (key === 'json') {\n return data[key] ? JSON.stringify(data[key]) : 'null'\n }\n\n return data[key] === undefined ? 'null' : data[key].toString()\n}\n\nfunction getCustomDimensionKey (lookup, key) {\n return `dimension${lookup[key]}`\n}","const METRICS = ['size', 'duration', 'position', 'number', 'count']\n\nexport default function formatTelemetryMetrtics (telemetryData, metricLookup = {}) {\n return Object.keys(telemetryData).filter(key => {\n return metricLookup[key] || METRICS.includes(key)\n }).map(key => {\n if (metricLookup[key]) {\n return {\n key: getCustomMetricKey(metricLookup, key),\n value: telemetryData[key]\n }\n }\n\n return {\n key,\n value: telemetryData[key]\n }\n }).reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {});\n}\n\nfunction getCustomMetricKey (lookup, key) {\n return `metric${lookup[key]}`\n}\n","import { getProp } from '@esri/hub-common';\nimport formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\n\nexport default function createEventLog({\n event = {},\n dimensionLookup = {},\n metricLookup = {},\n}) {\n const { pathname: eventPathname, eventType = 'other' } = event\n const metrics = formatTelemetryMetrics(event, metricLookup)\n const eventAttributes = formatTelemetryAttributes({\n telemetryData: { eventType, ...event },\n dimensionLookup,\n excludeKeys: [\n 'workflow',\n 'pathname',\n ...Object.keys(metrics),\n ...Object.keys(metricLookup),\n ],\n })\n\n const telemetryPayload = {\n name: eventType,\n ...eventAttributes,\n ...metrics,\n }\n\n // Browser document check and set referrer if it exists\n if (typeof document !== 'undefined' && document.referrer) {\n telemetryPayload.referrer = getProp(document, 'referrer')\n }\n\n // Browser hostname check and set if it exists\n if (typeof window !== 'undefined' && !telemetryPayload.hostname) {\n telemetryPayload.hostname = getProp(window, 'location.hostname')\n }\n\n // Browser and server pathname check and set\n telemetryPayload.path = typeof window !== 'undefined' && window.location.pathname ? getProp(window, 'location.pathname') : eventPathname\n\n return telemetryPayload\n}\n","import formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\nexport default function createPageViewLog ({\n page,\n previousPage = {},\n options = {},\n dimensionLookup = {},\n metricLookup = {}\n}) {\n const metrics = formatTelemetryMetrics(options, metricLookup)\n const attributes = formatTelemetryAttributes({\n telemetryData: options,\n dimensionLookup,\n excludeKeys: ['workflow', ...Object.keys(metrics), ...Object.keys(metricLookup)]\n })\n\n const { referrer, title } = document || {}\n const { hostname, pathname } = window && window.location ? window.location : {}\n\n return {\n name: 'pageView',\n referrer,\n hostname,\n path: page || pathname,\n pageUrl: page || pathname,\n pageName: title,\n previousPageUrl: previousPage.pageUrl,\n previousPageName: previousPage.pageName,\n ...attributes,\n ...metrics\n }\n}\n","import { getCredentials } from './auth'\nimport createEventLog from './create-event-log'\nimport createPageView from './create-page-view-log'\nimport Analytics from 'analytics'\nimport awsPinpointPlugin from '@analytics/aws-pinpoint'\n\nexport default class Amazon {\n constructor(options) {\n const { app = {}, fips, userPoolID } = options\n this.analytics = Analytics({\n app: app.name,\n plugins: [\n awsPinpointPlugin({\n fips,\n pinpointAppId: app.id,\n getCredentials: () => {\n return getCredentials(userPoolID, { fips })\n },\n }),\n ],\n })\n\n this.name = 'amazon'\n Object.assign(this, options)\n }\n\n logPageView(page, options) {\n const telemetryPayload = createPageView({\n page,\n previousPage: this.previousPage,\n options,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n this.previousPage = telemetryPayload.attributes\n this.analytics.track('pageView', telemetryPayload)\n }\n\n logEvent(event = {}) {\n const telemetryPayload = createEventLog({\n event,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n const { name } = telemetryPayload\n this.analytics.track(name, telemetryPayload)\n }\n}\n"],"names":["getCredentials","IdentityPoolId","options","fipsSubdomainSuffix","fips","COGNITO_URL","cached","storage","get","COGNITO_KEY","Date","now","Expiration","Promise","resolve","fetchOptions","JSON","stringify","fetch","then","response","ok","Error","statusText","json","IdentityId","Credentials","set","formatTelemetryAttributes","telemetryData","dimensionLookup","excludeKeys","Object","keys","filter","includes","key","map","getCustomDimensionKey","getValue","reduce","acc","value","data","undefined","toString","lookup","formatTelemetryMetrtics","metricLookup","METRICS","getCustomMetricKey","createEventLog","event","eventPathname","pathname","eventType","metrics","formatTelemetryMetrics","eventAttributes","telemetryPayload","document","referrer","getProp","window","hostname","path","location","createPageViewLog","page","previousPage","attributes","title","pageUrl","pageName","Telemetry","app","userPoolID","analytics","Analytics","name","awsPinpointPlugin","id","this","createPageView","dimensions","track"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@esri/telemetry'), require('analytics'), require('@analytics/aws-pinpoint')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define('telemetry', ['@esri/telemetry', 'analytics', '@analytics/aws-pinpoint'], factory) :
|
|
4
|
-
(global.telemetry = factory(global.Telemetry,global.Analytics,global.awsPinpointPlugin));
|
|
5
|
-
}(this, (function (Telemetry,Analytics,awsPinpointPlugin) { 'use strict';
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@esri/telemetry'), require('@esri/hub-common'), require('analytics'), require('@analytics/aws-pinpoint')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define('telemetry', ['@esri/telemetry', '@esri/hub-common', 'analytics', '@analytics/aws-pinpoint'], factory) :
|
|
4
|
+
(global.telemetry = factory(global.Telemetry,global._esri_hubCommon,global.Analytics,global.awsPinpointPlugin));
|
|
5
|
+
}(this, (function (Telemetry,_esri_hubCommon,Analytics,awsPinpointPlugin) { 'use strict';
|
|
6
6
|
|
|
7
7
|
Telemetry = 'default' in Telemetry ? Telemetry['default'] : Telemetry;
|
|
8
8
|
Analytics = 'default' in Analytics ? Analytics['default'] : Analytics;
|
|
@@ -227,22 +227,35 @@ function createEventLog(_ref) {
|
|
|
227
227
|
dimensionLookup = _ref$dimensionLookup === undefined ? {} : _ref$dimensionLookup,
|
|
228
228
|
_ref$metricLookup = _ref.metricLookup,
|
|
229
229
|
metricLookup = _ref$metricLookup === undefined ? {} : _ref$metricLookup;
|
|
230
|
-
var
|
|
230
|
+
var eventPathname = event.pathname,
|
|
231
|
+
_event$eventType = event.eventType,
|
|
231
232
|
eventType = _event$eventType === undefined ? 'other' : _event$eventType;
|
|
232
233
|
|
|
233
234
|
var metrics = formatTelemetryMetrtics(event, metricLookup);
|
|
234
235
|
var eventAttributes = formatTelemetryAttributes({
|
|
235
236
|
telemetryData: _extends({ eventType: eventType }, event),
|
|
236
237
|
dimensionLookup: dimensionLookup,
|
|
237
|
-
excludeKeys: ['workflow'].concat(toConsumableArray(Object.keys(metrics)), toConsumableArray(Object.keys(metricLookup)))
|
|
238
|
+
excludeKeys: ['workflow', 'pathname'].concat(toConsumableArray(Object.keys(metrics)), toConsumableArray(Object.keys(metricLookup)))
|
|
238
239
|
});
|
|
239
240
|
|
|
240
|
-
|
|
241
|
-
name: eventType
|
|
242
|
-
referrer: document.referrer,
|
|
243
|
-
hostname: window.location.hostname,
|
|
244
|
-
path: window.location.pathname
|
|
241
|
+
var telemetryPayload = _extends({
|
|
242
|
+
name: eventType
|
|
245
243
|
}, eventAttributes, metrics);
|
|
244
|
+
|
|
245
|
+
// Browser document check and set referrer if it exists
|
|
246
|
+
if (typeof document !== 'undefined' && document.referrer) {
|
|
247
|
+
telemetryPayload.referrer = _esri_hubCommon.getProp(document, 'referrer');
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
// Browser hostname check and set if it exists
|
|
251
|
+
if (typeof window !== 'undefined' && !telemetryPayload.hostname) {
|
|
252
|
+
telemetryPayload.hostname = _esri_hubCommon.getProp(window, 'location.hostname');
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
// Browser and server pathname check and set
|
|
256
|
+
telemetryPayload.path = typeof window !== 'undefined' && window.location.pathname ? _esri_hubCommon.getProp(window, 'location.pathname') : eventPathname;
|
|
257
|
+
|
|
258
|
+
return telemetryPayload;
|
|
246
259
|
}
|
|
247
260
|
|
|
248
261
|
function createPageViewLog(_ref) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry-amazon.js.js","sources":["../src/auth.js","../src/format-telemetry-attributes.js","../src/format-telemetry-metrics.js","../src/create-event-log.js","../src/create-page-view-log.js","../src/index.js"],"sourcesContent":["import Telemetry from '@esri/telemetry'\nconst { storage } = Telemetry\nconst COGNITO_KEY = 'TELEMETRY_COGNITO_CREDENTIALS'\n\nexport function getCredentials (IdentityPoolId, options = {}) {\n const fipsSubdomainSuffix = options.fips === true ? '-fips' : ''\n const COGNITO_URL = `https://cognito-identity${fipsSubdomainSuffix}.us-east-1.amazonaws.com/`\n let cached = storage.get(COGNITO_KEY)\n if (cached && Date.now() / 1000 < cached.Expiration) return Promise.resolve(cached)\n\n const fetchOptions = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetId'\n },\n body: JSON.stringify({ IdentityPoolId })\n }\n\n return fetch(COGNITO_URL, fetchOptions)\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then((response) => {\n const { IdentityId } = response\n const options = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetCredentialsForIdentity'\n },\n body: JSON.stringify({ IdentityId })\n }\n return fetch(COGNITO_URL, options)\n })\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then(({ Credentials }) => {\n storage.set(COGNITO_KEY, Credentials)\n return Credentials\n })\n}\n","export default function formatTelemetryAttributes ({ telemetryData, dimensionLookup = {}, excludeKeys = [] }) {\n return Object.keys(telemetryData)\n .filter(key => {\n return !excludeKeys.includes(key)\n })\n .map(key => {\n if (dimensionLookup[key]) {\n return {\n key: getCustomDimensionKey(dimensionLookup, key),\n value: telemetryData[key] }\n }\n\n return {\n key,\n value: getValue(telemetryData, key)\n }\n })\n .reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {})\n}\n\nfunction getValue (data, key) {\n if (key === 'json') {\n return data[key] ? JSON.stringify(data[key]) : 'null'\n }\n\n return data[key] === undefined ? 'null' : data[key].toString()\n}\n\nfunction getCustomDimensionKey (lookup, key) {\n return `dimension${lookup[key]}`\n}","const METRICS = ['size', 'duration', 'position', 'number', 'count']\n\nexport default function formatTelemetryMetrtics (telemetryData, metricLookup = {}) {\n return Object.keys(telemetryData).filter(key => {\n return metricLookup[key] || METRICS.includes(key)\n }).map(key => {\n if (metricLookup[key]) {\n return {\n key: getCustomMetricKey(metricLookup, key),\n value: telemetryData[key]\n }\n }\n\n return {\n key,\n value: telemetryData[key]\n }\n }).reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {});\n}\n\nfunction getCustomMetricKey (lookup, key) {\n return `metric${lookup[key]}`\n}\n","import formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\nexport default function createEventLog ({\n event = {},\n dimensionLookup = {},\n metricLookup = {}\n}) {\n const { eventType = 'other' } = event\n const metrics = formatTelemetryMetrics(event, metricLookup)\n const eventAttributes = formatTelemetryAttributes({\n telemetryData: { eventType, ...event },\n dimensionLookup,\n excludeKeys: ['workflow', ...Object.keys(metrics), ...Object.keys(metricLookup)]\n })\n\n return {\n name: eventType,\n referrer: document.referrer,\n hostname: window.location.hostname,\n path: window.location.pathname,\n ...eventAttributes,\n ...metrics\n }\n}\n","import formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\nexport default function createPageViewLog ({\n page,\n previousPage = {},\n options = {},\n dimensionLookup = {},\n metricLookup = {}\n}) {\n const metrics = formatTelemetryMetrics(options, metricLookup)\n const attributes = formatTelemetryAttributes({\n telemetryData: options,\n dimensionLookup,\n excludeKeys: ['workflow', ...Object.keys(metrics), ...Object.keys(metricLookup)]\n })\n\n const { referrer, title } = document || {}\n const { hostname, pathname } = window && window.location ? window.location : {}\n\n return {\n name: 'pageView',\n referrer,\n hostname,\n path: page || pathname,\n pageUrl: page || pathname,\n pageName: title,\n previousPageUrl: previousPage.pageUrl,\n previousPageName: previousPage.pageName,\n ...attributes,\n ...metrics\n }\n}\n","import { getCredentials } from './auth'\nimport createEventLog from './create-event-log'\nimport createPageView from './create-page-view-log'\nimport Analytics from 'analytics'\nimport awsPinpointPlugin from '@analytics/aws-pinpoint'\n\nexport default class Amazon {\n constructor(options) {\n const { app = {}, fips, userPoolID } = options\n this.analytics = Analytics({\n app: app.name,\n plugins: [\n awsPinpointPlugin({\n fips,\n pinpointAppId: app.id,\n getCredentials: () => {\n return getCredentials(userPoolID, { fips })\n },\n }),\n ],\n })\n\n this.name = 'amazon'\n Object.assign(this, options)\n }\n\n logPageView(page, options) {\n const telemetryPayload = createPageView({\n page,\n previousPage: this.previousPage,\n options,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n this.previousPage = telemetryPayload.attributes\n this.analytics.track('pageView', telemetryPayload)\n }\n\n logEvent(event = {}) {\n const telemetryPayload = createEventLog({\n event,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n const { name } = telemetryPayload\n this.analytics.track(name, telemetryPayload)\n }\n}\n"],"names":["storage","Telemetry","COGNITO_KEY","getCredentials","IdentityPoolId","options","fipsSubdomainSuffix","fips","COGNITO_URL","cached","get","Date","now","Expiration","Promise","resolve","fetchOptions","JSON","stringify","fetch","then","response","ok","Error","statusText","json","IdentityId","Credentials","set","formatTelemetryAttributes","telemetryData","dimensionLookup","excludeKeys","Object","keys","filter","includes","key","map","getCustomDimensionKey","getValue","reduce","acc","value","data","undefined","toString","lookup","METRICS","formatTelemetryMetrtics","metricLookup","getCustomMetricKey","createEventLog","event","eventType","metrics","formatTelemetryMetrics","eventAttributes","document","referrer","window","location","hostname","pathname","createPageViewLog","page","previousPage","attributes","title","pageUrl","pageName","Amazon","app","userPoolID","analytics","Analytics","name","awsPinpointPlugin","id","telemetryPayload","createPageView","dimensions","track"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"telemetry-amazon.js.js","sources":["../src/auth.js","../src/format-telemetry-attributes.js","../src/format-telemetry-metrics.js","../src/create-event-log.js","../src/create-page-view-log.js","../src/index.js"],"sourcesContent":["import Telemetry from '@esri/telemetry'\nconst { storage } = Telemetry\nconst COGNITO_KEY = 'TELEMETRY_COGNITO_CREDENTIALS'\n\nexport function getCredentials (IdentityPoolId, options = {}) {\n const fipsSubdomainSuffix = options.fips === true ? '-fips' : ''\n const COGNITO_URL = `https://cognito-identity${fipsSubdomainSuffix}.us-east-1.amazonaws.com/`\n let cached = storage.get(COGNITO_KEY)\n if (cached && Date.now() / 1000 < cached.Expiration) return Promise.resolve(cached)\n\n const fetchOptions = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetId'\n },\n body: JSON.stringify({ IdentityPoolId })\n }\n\n return fetch(COGNITO_URL, fetchOptions)\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then((response) => {\n const { IdentityId } = response\n const options = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetCredentialsForIdentity'\n },\n body: JSON.stringify({ IdentityId })\n }\n return fetch(COGNITO_URL, options)\n })\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then(({ Credentials }) => {\n storage.set(COGNITO_KEY, Credentials)\n return Credentials\n })\n}\n","export default function formatTelemetryAttributes ({ telemetryData, dimensionLookup = {}, excludeKeys = [] }) {\n return Object.keys(telemetryData)\n .filter(key => {\n return !excludeKeys.includes(key)\n })\n .map(key => {\n if (dimensionLookup[key]) {\n return {\n key: getCustomDimensionKey(dimensionLookup, key),\n value: telemetryData[key] }\n }\n\n return {\n key,\n value: getValue(telemetryData, key)\n }\n })\n .reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {})\n}\n\nfunction getValue (data, key) {\n if (key === 'json') {\n return data[key] ? JSON.stringify(data[key]) : 'null'\n }\n\n return data[key] === undefined ? 'null' : data[key].toString()\n}\n\nfunction getCustomDimensionKey (lookup, key) {\n return `dimension${lookup[key]}`\n}","const METRICS = ['size', 'duration', 'position', 'number', 'count']\n\nexport default function formatTelemetryMetrtics (telemetryData, metricLookup = {}) {\n return Object.keys(telemetryData).filter(key => {\n return metricLookup[key] || METRICS.includes(key)\n }).map(key => {\n if (metricLookup[key]) {\n return {\n key: getCustomMetricKey(metricLookup, key),\n value: telemetryData[key]\n }\n }\n\n return {\n key,\n value: telemetryData[key]\n }\n }).reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {});\n}\n\nfunction getCustomMetricKey (lookup, key) {\n return `metric${lookup[key]}`\n}\n","import { getProp } from '@esri/hub-common';\nimport formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\n\nexport default function createEventLog({\n event = {},\n dimensionLookup = {},\n metricLookup = {},\n}) {\n const { pathname: eventPathname, eventType = 'other' } = event\n const metrics = formatTelemetryMetrics(event, metricLookup)\n const eventAttributes = formatTelemetryAttributes({\n telemetryData: { eventType, ...event },\n dimensionLookup,\n excludeKeys: [\n 'workflow',\n 'pathname',\n ...Object.keys(metrics),\n ...Object.keys(metricLookup),\n ],\n })\n\n const telemetryPayload = {\n name: eventType,\n ...eventAttributes,\n ...metrics,\n }\n\n // Browser document check and set referrer if it exists\n if (typeof document !== 'undefined' && document.referrer) {\n telemetryPayload.referrer = getProp(document, 'referrer')\n }\n\n // Browser hostname check and set if it exists\n if (typeof window !== 'undefined' && !telemetryPayload.hostname) {\n telemetryPayload.hostname = getProp(window, 'location.hostname')\n }\n\n // Browser and server pathname check and set\n telemetryPayload.path = typeof window !== 'undefined' && window.location.pathname ? getProp(window, 'location.pathname') : eventPathname\n\n return telemetryPayload\n}\n","import formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\nexport default function createPageViewLog ({\n page,\n previousPage = {},\n options = {},\n dimensionLookup = {},\n metricLookup = {}\n}) {\n const metrics = formatTelemetryMetrics(options, metricLookup)\n const attributes = formatTelemetryAttributes({\n telemetryData: options,\n dimensionLookup,\n excludeKeys: ['workflow', ...Object.keys(metrics), ...Object.keys(metricLookup)]\n })\n\n const { referrer, title } = document || {}\n const { hostname, pathname } = window && window.location ? window.location : {}\n\n return {\n name: 'pageView',\n referrer,\n hostname,\n path: page || pathname,\n pageUrl: page || pathname,\n pageName: title,\n previousPageUrl: previousPage.pageUrl,\n previousPageName: previousPage.pageName,\n ...attributes,\n ...metrics\n }\n}\n","import { getCredentials } from './auth'\nimport createEventLog from './create-event-log'\nimport createPageView from './create-page-view-log'\nimport Analytics from 'analytics'\nimport awsPinpointPlugin from '@analytics/aws-pinpoint'\n\nexport default class Amazon {\n constructor(options) {\n const { app = {}, fips, userPoolID } = options\n this.analytics = Analytics({\n app: app.name,\n plugins: [\n awsPinpointPlugin({\n fips,\n pinpointAppId: app.id,\n getCredentials: () => {\n return getCredentials(userPoolID, { fips })\n },\n }),\n ],\n })\n\n this.name = 'amazon'\n Object.assign(this, options)\n }\n\n logPageView(page, options) {\n const telemetryPayload = createPageView({\n page,\n previousPage: this.previousPage,\n options,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n this.previousPage = telemetryPayload.attributes\n this.analytics.track('pageView', telemetryPayload)\n }\n\n logEvent(event = {}) {\n const telemetryPayload = createEventLog({\n event,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n const { name } = telemetryPayload\n this.analytics.track(name, telemetryPayload)\n }\n}\n"],"names":["storage","Telemetry","COGNITO_KEY","getCredentials","IdentityPoolId","options","fipsSubdomainSuffix","fips","COGNITO_URL","cached","get","Date","now","Expiration","Promise","resolve","fetchOptions","JSON","stringify","fetch","then","response","ok","Error","statusText","json","IdentityId","Credentials","set","formatTelemetryAttributes","telemetryData","dimensionLookup","excludeKeys","Object","keys","filter","includes","key","map","getCustomDimensionKey","getValue","reduce","acc","value","data","undefined","toString","lookup","METRICS","formatTelemetryMetrtics","metricLookup","getCustomMetricKey","createEventLog","event","eventPathname","pathname","eventType","metrics","formatTelemetryMetrics","eventAttributes","telemetryPayload","document","referrer","getProp","window","hostname","path","location","createPageViewLog","page","previousPage","attributes","title","pageUrl","pageName","Amazon","app","userPoolID","analytics","Analytics","name","awsPinpointPlugin","id","createPageView","dimensions","track"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("@esri/telemetry"),require("analytics"),require("@analytics/aws-pinpoint")):"function"==typeof define&&define.amd?define("telemetry",["@esri/telemetry","analytics","@analytics/aws-pinpoint"],t):e.telemetry=t(e.Telemetry,e.Analytics,e.awsPinpointPlugin)}(this,function(e,t,n){"use strict";function
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("@esri/telemetry"),require("@esri/hub-common"),require("analytics"),require("@analytics/aws-pinpoint")):"function"==typeof define&&define.amd?define("telemetry",["@esri/telemetry","@esri/hub-common","analytics","@analytics/aws-pinpoint"],t):e.telemetry=t(e.Telemetry,e._esri_hubCommon,e.Analytics,e.awsPinpointPlugin)}(this,function(e,t,n,i){"use strict";function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=!0===t.fips?"-fips":"",i="https://cognito-identity"+n+".us-east-1.amazonaws.com/",o=p.get(l);if(o&&Date.now()/1e3<o.Expiration)return Promise.resolve(o);var r={method:"POST",headers:{"Content-type":"application/x-amz-json-1.1","X-Amz-Target":"AWSCognitoIdentityService.GetId"},body:JSON.stringify({IdentityPoolId:e})};return fetch(i,r).then(function(e){if(!e.ok)throw new Error(e.statusText);return e.json()}).then(function(e){var t=e.IdentityId,n={method:"POST",headers:{"Content-type":"application/x-amz-json-1.1","X-Amz-Target":"AWSCognitoIdentityService.GetCredentialsForIdentity"},body:JSON.stringify({IdentityId:t})};return fetch(i,n)}).then(function(e){if(!e.ok)throw new Error(e.statusText);return e.json()}).then(function(e){var t=e.Credentials;return p.set(l,t),t})}function r(e){var t=e.telemetryData,n=e.dimensionLookup,i=void 0===n?{}:n,o=e.excludeKeys,r=void 0===o?[]:o;return Object.keys(t).filter(function(e){return!r.includes(e)}).map(function(e){return i[e]?{key:u(i,e),value:t[e]}:{key:e,value:a(t,e)}}).reduce(function(e,t){var n=t.key,i=t.value;return e[n]=i,e},{})}function a(e,t){return"json"===t?e[t]?JSON.stringify(e[t]):"null":void 0===e[t]?"null":e[t].toString()}function u(e,t){return"dimension"+e[t]}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).filter(function(e){return t[e]||m.includes(e)}).map(function(n){return t[n]?{key:c(t,n),value:e[n]}:{key:n,value:e[n]}}).reduce(function(e,t){var n=t.key,i=t.value;return e[n]=i,e},{})}function c(e,t){return"metric"+e[t]}function d(e){var n=e.event,i=void 0===n?{}:n,o=e.dimensionLookup,a=void 0===o?{}:o,u=e.metricLookup,c=void 0===u?{}:u,d=i.pathname,f=i.eventType,p=void 0===f?"other":f,l=s(i,c),m=r({telemetryData:h({eventType:p},i),dimensionLookup:a,excludeKeys:["workflow","pathname"].concat(g(Object.keys(l)),g(Object.keys(c)))}),y=h({name:p},m,l);return"undefined"!=typeof document&&document.referrer&&(y.referrer=t.getProp(document,"referrer")),"undefined"==typeof window||y.hostname||(y.hostname=t.getProp(window,"location.hostname")),y.path="undefined"!=typeof window&&window.location.pathname?t.getProp(window,"location.pathname"):d,y}function f(e){var t=e.page,n=e.previousPage,i=void 0===n?{}:n,o=e.options,a=void 0===o?{}:o,u=e.dimensionLookup,c=void 0===u?{}:u,d=e.metricLookup,f=void 0===d?{}:d,p=s(a,f),l=r({telemetryData:a,dimensionLookup:c,excludeKeys:["workflow"].concat(g(Object.keys(p)),g(Object.keys(f)))}),m=document||{},y=m.referrer,v=m.title,w=window&&window.location?window.location:{},k=w.hostname,b=w.pathname;return h({name:"pageView",referrer:y,hostname:k,path:t||b,pageUrl:t||b,pageName:v,previousPageUrl:i.pageUrl,previousPageName:i.pageName},l,p)}e="default"in e?e.default:e,n="default"in n?n.default:n,i="default"in i?i.default:i;var p=e.storage,l="TELEMETRY_COGNITO_CREDENTIALS",m=["size","duration","position","number","count"],y=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},v=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},g=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)};return function(){function e(t){y(this,e);var r=t.app,a=void 0===r?{}:r,u=t.fips,s=t.userPoolID;this.analytics=n({app:a.name,plugins:[i({fips:u,pinpointAppId:a.id,getCredentials:function(){return o(s,{fips:u})}})]}),this.name="amazon",h(this,t)}return v(e,[{key:"logPageView",value:function(e,t){var n=f({page:e,previousPage:this.previousPage,options:t,dimensionLookup:this.dimensions,metricLookup:this.metrics});this.previousPage=n.attributes,this.analytics.track("pageView",n)}},{key:"logEvent",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=d({event:e,dimensionLookup:this.dimensions,metricLookup:this.metrics}),n=t.name;this.analytics.track(n,t)}}]),e}()});
|
|
2
2
|
//# sourceMappingURL=telemetry-amazon.js.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry-amazon.js.min.js","sources":["../src/auth.js","../src/format-telemetry-attributes.js","../src/format-telemetry-metrics.js","../src/create-event-log.js","../src/create-page-view-log.js","../src/index.js"],"sourcesContent":["import Telemetry from '@esri/telemetry'\nconst { storage } = Telemetry\nconst COGNITO_KEY = 'TELEMETRY_COGNITO_CREDENTIALS'\n\nexport function getCredentials (IdentityPoolId, options = {}) {\n const fipsSubdomainSuffix = options.fips === true ? '-fips' : ''\n const COGNITO_URL = `https://cognito-identity${fipsSubdomainSuffix}.us-east-1.amazonaws.com/`\n let cached = storage.get(COGNITO_KEY)\n if (cached && Date.now() / 1000 < cached.Expiration) return Promise.resolve(cached)\n\n const fetchOptions = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetId'\n },\n body: JSON.stringify({ IdentityPoolId })\n }\n\n return fetch(COGNITO_URL, fetchOptions)\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then((response) => {\n const { IdentityId } = response\n const options = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetCredentialsForIdentity'\n },\n body: JSON.stringify({ IdentityId })\n }\n return fetch(COGNITO_URL, options)\n })\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then(({ Credentials }) => {\n storage.set(COGNITO_KEY, Credentials)\n return Credentials\n })\n}\n","export default function formatTelemetryAttributes ({ telemetryData, dimensionLookup = {}, excludeKeys = [] }) {\n return Object.keys(telemetryData)\n .filter(key => {\n return !excludeKeys.includes(key)\n })\n .map(key => {\n if (dimensionLookup[key]) {\n return {\n key: getCustomDimensionKey(dimensionLookup, key),\n value: telemetryData[key] }\n }\n\n return {\n key,\n value: getValue(telemetryData, key)\n }\n })\n .reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {})\n}\n\nfunction getValue (data, key) {\n if (key === 'json') {\n return data[key] ? JSON.stringify(data[key]) : 'null'\n }\n\n return data[key] === undefined ? 'null' : data[key].toString()\n}\n\nfunction getCustomDimensionKey (lookup, key) {\n return `dimension${lookup[key]}`\n}","const METRICS = ['size', 'duration', 'position', 'number', 'count']\n\nexport default function formatTelemetryMetrtics (telemetryData, metricLookup = {}) {\n return Object.keys(telemetryData).filter(key => {\n return metricLookup[key] || METRICS.includes(key)\n }).map(key => {\n if (metricLookup[key]) {\n return {\n key: getCustomMetricKey(metricLookup, key),\n value: telemetryData[key]\n }\n }\n\n return {\n key,\n value: telemetryData[key]\n }\n }).reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {});\n}\n\nfunction getCustomMetricKey (lookup, key) {\n return `metric${lookup[key]}`\n}\n","import formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\nexport default function createEventLog ({\n event = {},\n dimensionLookup = {},\n metricLookup = {}\n}) {\n const { eventType = 'other' } = event\n const metrics = formatTelemetryMetrics(event, metricLookup)\n const eventAttributes = formatTelemetryAttributes({\n telemetryData: { eventType, ...event },\n dimensionLookup,\n excludeKeys: ['workflow', ...Object.keys(metrics), ...Object.keys(metricLookup)]\n })\n\n return {\n name: eventType,\n referrer: document.referrer,\n hostname: window.location.hostname,\n path: window.location.pathname,\n ...eventAttributes,\n ...metrics\n }\n}\n","import formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\nexport default function createPageViewLog ({\n page,\n previousPage = {},\n options = {},\n dimensionLookup = {},\n metricLookup = {}\n}) {\n const metrics = formatTelemetryMetrics(options, metricLookup)\n const attributes = formatTelemetryAttributes({\n telemetryData: options,\n dimensionLookup,\n excludeKeys: ['workflow', ...Object.keys(metrics), ...Object.keys(metricLookup)]\n })\n\n const { referrer, title } = document || {}\n const { hostname, pathname } = window && window.location ? window.location : {}\n\n return {\n name: 'pageView',\n referrer,\n hostname,\n path: page || pathname,\n pageUrl: page || pathname,\n pageName: title,\n previousPageUrl: previousPage.pageUrl,\n previousPageName: previousPage.pageName,\n ...attributes,\n ...metrics\n }\n}\n","import { getCredentials } from './auth'\nimport createEventLog from './create-event-log'\nimport createPageView from './create-page-view-log'\nimport Analytics from 'analytics'\nimport awsPinpointPlugin from '@analytics/aws-pinpoint'\n\nexport default class Amazon {\n constructor(options) {\n const { app = {}, fips, userPoolID } = options\n this.analytics = Analytics({\n app: app.name,\n plugins: [\n awsPinpointPlugin({\n fips,\n pinpointAppId: app.id,\n getCredentials: () => {\n return getCredentials(userPoolID, { fips })\n },\n }),\n ],\n })\n\n this.name = 'amazon'\n Object.assign(this, options)\n }\n\n logPageView(page, options) {\n const telemetryPayload = createPageView({\n page,\n previousPage: this.previousPage,\n options,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n this.previousPage = telemetryPayload.attributes\n this.analytics.track('pageView', telemetryPayload)\n }\n\n logEvent(event = {}) {\n const telemetryPayload = createEventLog({\n event,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n const { name } = telemetryPayload\n this.analytics.track(name, telemetryPayload)\n }\n}\n"],"names":["getCredentials","IdentityPoolId","options","fipsSubdomainSuffix","fips","COGNITO_URL","cached","storage","get","COGNITO_KEY","Date","now","Expiration","Promise","resolve","fetchOptions","JSON","stringify","fetch","then","response","ok","Error","statusText","json","IdentityId","Credentials","set","formatTelemetryAttributes","telemetryData","dimensionLookup","excludeKeys","Object","keys","filter","includes","key","map","getCustomDimensionKey","getValue","reduce","acc","value","data","undefined","toString","lookup","formatTelemetryMetrtics","metricLookup","METRICS","getCustomMetricKey","createEventLog","event","eventType","metrics","formatTelemetryMetrics","eventAttributes","document","referrer","window","location","hostname","pathname","createPageViewLog","page","previousPage","attributes","title","pageUrl","pageName","Telemetry","app","userPoolID","analytics","Analytics","name","awsPinpointPlugin","id","this","telemetryPayload","createPageView","dimensions","track"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"telemetry-amazon.js.min.js","sources":["../src/auth.js","../src/format-telemetry-attributes.js","../src/format-telemetry-metrics.js","../src/create-event-log.js","../src/create-page-view-log.js","../src/index.js"],"sourcesContent":["import Telemetry from '@esri/telemetry'\nconst { storage } = Telemetry\nconst COGNITO_KEY = 'TELEMETRY_COGNITO_CREDENTIALS'\n\nexport function getCredentials (IdentityPoolId, options = {}) {\n const fipsSubdomainSuffix = options.fips === true ? '-fips' : ''\n const COGNITO_URL = `https://cognito-identity${fipsSubdomainSuffix}.us-east-1.amazonaws.com/`\n let cached = storage.get(COGNITO_KEY)\n if (cached && Date.now() / 1000 < cached.Expiration) return Promise.resolve(cached)\n\n const fetchOptions = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetId'\n },\n body: JSON.stringify({ IdentityPoolId })\n }\n\n return fetch(COGNITO_URL, fetchOptions)\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then((response) => {\n const { IdentityId } = response\n const options = {\n method: 'POST',\n headers: {\n 'Content-type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': 'AWSCognitoIdentityService.GetCredentialsForIdentity'\n },\n body: JSON.stringify({ IdentityId })\n }\n return fetch(COGNITO_URL, options)\n })\n .then(response => {\n if (!response.ok) {\n throw new Error(response.statusText)\n }\n return response.json()\n })\n .then(({ Credentials }) => {\n storage.set(COGNITO_KEY, Credentials)\n return Credentials\n })\n}\n","export default function formatTelemetryAttributes ({ telemetryData, dimensionLookup = {}, excludeKeys = [] }) {\n return Object.keys(telemetryData)\n .filter(key => {\n return !excludeKeys.includes(key)\n })\n .map(key => {\n if (dimensionLookup[key]) {\n return {\n key: getCustomDimensionKey(dimensionLookup, key),\n value: telemetryData[key] }\n }\n\n return {\n key,\n value: getValue(telemetryData, key)\n }\n })\n .reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {})\n}\n\nfunction getValue (data, key) {\n if (key === 'json') {\n return data[key] ? JSON.stringify(data[key]) : 'null'\n }\n\n return data[key] === undefined ? 'null' : data[key].toString()\n}\n\nfunction getCustomDimensionKey (lookup, key) {\n return `dimension${lookup[key]}`\n}","const METRICS = ['size', 'duration', 'position', 'number', 'count']\n\nexport default function formatTelemetryMetrtics (telemetryData, metricLookup = {}) {\n return Object.keys(telemetryData).filter(key => {\n return metricLookup[key] || METRICS.includes(key)\n }).map(key => {\n if (metricLookup[key]) {\n return {\n key: getCustomMetricKey(metricLookup, key),\n value: telemetryData[key]\n }\n }\n\n return {\n key,\n value: telemetryData[key]\n }\n }).reduce((acc, { key, value }) => {\n acc[key] = value\n return acc\n }, {});\n}\n\nfunction getCustomMetricKey (lookup, key) {\n return `metric${lookup[key]}`\n}\n","import { getProp } from '@esri/hub-common';\nimport formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\n\nexport default function createEventLog({\n event = {},\n dimensionLookup = {},\n metricLookup = {},\n}) {\n const { pathname: eventPathname, eventType = 'other' } = event\n const metrics = formatTelemetryMetrics(event, metricLookup)\n const eventAttributes = formatTelemetryAttributes({\n telemetryData: { eventType, ...event },\n dimensionLookup,\n excludeKeys: [\n 'workflow',\n 'pathname',\n ...Object.keys(metrics),\n ...Object.keys(metricLookup),\n ],\n })\n\n const telemetryPayload = {\n name: eventType,\n ...eventAttributes,\n ...metrics,\n }\n\n // Browser document check and set referrer if it exists\n if (typeof document !== 'undefined' && document.referrer) {\n telemetryPayload.referrer = getProp(document, 'referrer')\n }\n\n // Browser hostname check and set if it exists\n if (typeof window !== 'undefined' && !telemetryPayload.hostname) {\n telemetryPayload.hostname = getProp(window, 'location.hostname')\n }\n\n // Browser and server pathname check and set\n telemetryPayload.path = typeof window !== 'undefined' && window.location.pathname ? getProp(window, 'location.pathname') : eventPathname\n\n return telemetryPayload\n}\n","import formatTelemetryAttributes from './format-telemetry-attributes'\nimport formatTelemetryMetrics from './format-telemetry-metrics'\n\nexport default function createPageViewLog ({\n page,\n previousPage = {},\n options = {},\n dimensionLookup = {},\n metricLookup = {}\n}) {\n const metrics = formatTelemetryMetrics(options, metricLookup)\n const attributes = formatTelemetryAttributes({\n telemetryData: options,\n dimensionLookup,\n excludeKeys: ['workflow', ...Object.keys(metrics), ...Object.keys(metricLookup)]\n })\n\n const { referrer, title } = document || {}\n const { hostname, pathname } = window && window.location ? window.location : {}\n\n return {\n name: 'pageView',\n referrer,\n hostname,\n path: page || pathname,\n pageUrl: page || pathname,\n pageName: title,\n previousPageUrl: previousPage.pageUrl,\n previousPageName: previousPage.pageName,\n ...attributes,\n ...metrics\n }\n}\n","import { getCredentials } from './auth'\nimport createEventLog from './create-event-log'\nimport createPageView from './create-page-view-log'\nimport Analytics from 'analytics'\nimport awsPinpointPlugin from '@analytics/aws-pinpoint'\n\nexport default class Amazon {\n constructor(options) {\n const { app = {}, fips, userPoolID } = options\n this.analytics = Analytics({\n app: app.name,\n plugins: [\n awsPinpointPlugin({\n fips,\n pinpointAppId: app.id,\n getCredentials: () => {\n return getCredentials(userPoolID, { fips })\n },\n }),\n ],\n })\n\n this.name = 'amazon'\n Object.assign(this, options)\n }\n\n logPageView(page, options) {\n const telemetryPayload = createPageView({\n page,\n previousPage: this.previousPage,\n options,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n this.previousPage = telemetryPayload.attributes\n this.analytics.track('pageView', telemetryPayload)\n }\n\n logEvent(event = {}) {\n const telemetryPayload = createEventLog({\n event,\n dimensionLookup: this.dimensions,\n metricLookup: this.metrics,\n })\n const { name } = telemetryPayload\n this.analytics.track(name, telemetryPayload)\n }\n}\n"],"names":["getCredentials","IdentityPoolId","options","fipsSubdomainSuffix","fips","COGNITO_URL","cached","storage","get","COGNITO_KEY","Date","now","Expiration","Promise","resolve","fetchOptions","JSON","stringify","fetch","then","response","ok","Error","statusText","json","IdentityId","Credentials","set","formatTelemetryAttributes","telemetryData","dimensionLookup","excludeKeys","Object","keys","filter","includes","key","map","getCustomDimensionKey","getValue","reduce","acc","value","data","undefined","toString","lookup","formatTelemetryMetrtics","metricLookup","METRICS","getCustomMetricKey","createEventLog","event","eventPathname","pathname","eventType","metrics","formatTelemetryMetrics","eventAttributes","telemetryPayload","document","referrer","getProp","window","hostname","path","location","createPageViewLog","page","previousPage","attributes","title","pageUrl","pageName","Telemetry","app","userPoolID","analytics","Analytics","name","awsPinpointPlugin","id","this","createPageView","dimensions","track"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@esri/telemetry-amazon",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Amazon plugin for 'Telemetry.js' library",
|
|
5
5
|
"homepage": "https://devtopia.esri.com/WebGIS/arcgis-telemetry.js/packages/telemetry-amazon#readme",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@analytics/aws-pinpoint": "^0.7.1",
|
|
32
|
+
"@esri/hub-common": "^9.7.3",
|
|
32
33
|
"analytics": "^0.7.18"
|
|
33
34
|
},
|
|
34
35
|
"devDependencies": {
|
|
@@ -37,5 +38,5 @@
|
|
|
37
38
|
"peerDependencies": {
|
|
38
39
|
"@esri/telemetry": "^4.0.0"
|
|
39
40
|
},
|
|
40
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "434b9761b988f77d191f11a234d27c7ae3a4576b"
|
|
41
42
|
}
|