@cloudcare/browser-core 3.2.19 → 3.2.22
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/cjs/browser/pageExitObservable.js +1 -2
- package/cjs/browser/pageExitObservable.js.map +1 -1
- package/cjs/configuration/configuration.js +1 -2
- package/cjs/configuration/configuration.js.map +1 -1
- package/cjs/configuration/remoteConfiguration.js +214 -0
- package/cjs/configuration/remoteConfiguration.js.map +1 -0
- package/cjs/configuration/transportConfiguration.js +1 -0
- package/cjs/configuration/transportConfiguration.js.map +1 -1
- package/cjs/dataMap.js +3 -7
- package/cjs/dataMap.js.map +1 -1
- package/cjs/helper/byteUtils.js +2 -4
- package/cjs/helper/byteUtils.js.map +1 -1
- package/cjs/helper/createEventRateLimiter.js.map +1 -1
- package/cjs/helper/deviceInfo.js +5 -6
- package/cjs/helper/deviceInfo.js.map +1 -1
- package/cjs/helper/display.js +4 -8
- package/cjs/helper/display.js.map +1 -1
- package/cjs/helper/encoder.js.map +1 -1
- package/cjs/helper/enums.js +11 -22
- package/cjs/helper/enums.js.map +1 -1
- package/cjs/helper/errorTools.js +2 -4
- package/cjs/helper/errorTools.js.map +1 -1
- package/cjs/helper/eventEmitter.js +1 -2
- package/cjs/helper/eventEmitter.js.map +1 -1
- package/cjs/helper/instrumentMethod.js.map +1 -1
- package/cjs/helper/lifeCycle.js +1 -2
- package/cjs/helper/lifeCycle.js.map +1 -1
- package/cjs/helper/limitModification.js +7 -7
- package/cjs/helper/limitModification.js.map +1 -1
- package/cjs/helper/mobileUtil.js +5 -10
- package/cjs/helper/mobileUtil.js.map +1 -1
- package/cjs/helper/observable.js +1 -2
- package/cjs/helper/observable.js.map +1 -1
- package/cjs/helper/requestIdleCallback.js +1 -2
- package/cjs/helper/requestIdleCallback.js.map +1 -1
- package/cjs/helper/sanitize.js +1 -1
- package/cjs/helper/sanitize.js.map +1 -1
- package/cjs/helper/serialisation/const.js +1 -2
- package/cjs/helper/serialisation/const.js.map +1 -1
- package/cjs/helper/serialisation/contextManager.js +15 -15
- package/cjs/helper/serialisation/contextManager.js.map +1 -1
- package/cjs/helper/serialisation/customerDataTracker.js +4 -8
- package/cjs/helper/serialisation/customerDataTracker.js.map +1 -1
- package/cjs/helper/serialisation/jsonStringify.js +1 -1
- package/cjs/helper/serialisation/jsonStringify.js.map +1 -1
- package/cjs/helper/serialisation/rowData.js +1 -1
- package/cjs/helper/serialisation/rowData.js.map +1 -1
- package/cjs/helper/taskQueue.js +1 -2
- package/cjs/helper/taskQueue.js.map +1 -1
- package/cjs/helper/tools.js +74 -145
- package/cjs/helper/tools.js.map +1 -1
- package/cjs/helper/valueHistory.js +1 -2
- package/cjs/helper/valueHistory.js.map +1 -1
- package/cjs/index.js +12 -0
- package/cjs/index.js.map +1 -1
- package/cjs/init.js +1 -1
- package/cjs/init.js.map +1 -1
- package/cjs/report/reportObservable.js +1 -2
- package/cjs/report/reportObservable.js.map +1 -1
- package/cjs/session/sessionConstants.js +3 -6
- package/cjs/session/sessionConstants.js.map +1 -1
- package/cjs/session/sessionInCookie.js.map +1 -1
- package/cjs/session/sessionManagement.js +1 -2
- package/cjs/session/sessionManagement.js.map +1 -1
- package/cjs/session/sessionState.js +6 -7
- package/cjs/session/sessionState.js.map +1 -1
- package/cjs/session/sessionStore.js +1 -2
- package/cjs/session/sessionStore.js.map +1 -1
- package/cjs/session/sessionStoreOperations.js +2 -4
- package/cjs/session/sessionStoreOperations.js.map +1 -1
- package/cjs/synthetics/syntheticsWorkerValues.js +3 -6
- package/cjs/synthetics/syntheticsWorkerValues.js.map +1 -1
- package/cjs/telemetry/telemetry.js +1 -2
- package/cjs/telemetry/telemetry.js.map +1 -1
- package/cjs/telemetry/types.js +2 -4
- package/cjs/telemetry/types.js.map +1 -1
- package/cjs/tracekit/computeStackTrace.js +1 -3
- package/cjs/tracekit/computeStackTrace.js.map +1 -1
- package/cjs/tracekit/tracekit.js.map +1 -1
- package/cjs/transport/batch.js +1 -3
- package/cjs/transport/batch.js.map +1 -1
- package/cjs/transport/eventBridge.js +29 -3
- package/cjs/transport/eventBridge.js.map +1 -1
- package/cjs/transport/flushController.js.map +1 -1
- package/cjs/transport/httpRequest.js.map +1 -1
- package/cjs/transport/index.js +12 -0
- package/cjs/transport/index.js.map +1 -1
- package/cjs/transport/sendWithRetryStrategy.js +5 -10
- package/cjs/transport/sendWithRetryStrategy.js.map +1 -1
- package/cjs/transport/startBatchWithReplica.js.map +1 -1
- package/esm/configuration/remoteConfiguration.js +205 -0
- package/esm/configuration/remoteConfiguration.js.map +1 -0
- package/esm/configuration/transportConfiguration.js +1 -1
- package/esm/configuration/transportConfiguration.js.map +1 -1
- package/esm/dataMap.js +0 -1
- package/esm/dataMap.js.map +1 -1
- package/esm/helper/createEventRateLimiter.js.map +1 -1
- package/esm/helper/deviceInfo.js +4 -4
- package/esm/helper/deviceInfo.js.map +1 -1
- package/esm/helper/encoder.js.map +1 -1
- package/esm/helper/eventEmitter.js.map +1 -1
- package/esm/helper/instrumentMethod.js.map +1 -1
- package/esm/helper/lifeCycle.js.map +1 -1
- package/esm/helper/limitModification.js +7 -7
- package/esm/helper/mobileUtil.js.map +1 -1
- package/esm/helper/observable.js.map +1 -1
- package/esm/helper/requestIdleCallback.js.map +1 -1
- package/esm/helper/sanitize.js +1 -1
- package/esm/helper/serialisation/contextManager.js +15 -15
- package/esm/helper/serialisation/contextManager.js.map +1 -1
- package/esm/helper/serialisation/customerDataTracker.js.map +1 -1
- package/esm/helper/serialisation/jsonStringify.js +1 -1
- package/esm/helper/serialisation/rowData.js +1 -1
- package/esm/helper/taskQueue.js.map +1 -1
- package/esm/helper/tools.js +10 -8
- package/esm/helper/tools.js.map +1 -1
- package/esm/helper/valueHistory.js.map +1 -1
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/init.js +1 -1
- package/esm/init.js.map +1 -1
- package/esm/session/sessionInCookie.js.map +1 -1
- package/esm/session/sessionManagement.js.map +1 -1
- package/esm/session/sessionState.js +5 -5
- package/esm/session/sessionStore.js.map +1 -1
- package/esm/telemetry/telemetry.js.map +1 -1
- package/esm/tracekit/computeStackTrace.js +1 -3
- package/esm/tracekit/computeStackTrace.js.map +1 -1
- package/esm/tracekit/tracekit.js.map +1 -1
- package/esm/transport/batch.js +0 -1
- package/esm/transport/batch.js.map +1 -1
- package/esm/transport/eventBridge.js +27 -3
- package/esm/transport/eventBridge.js.map +1 -1
- package/esm/transport/flushController.js.map +1 -1
- package/esm/transport/httpRequest.js.map +1 -1
- package/esm/transport/index.js +1 -1
- package/esm/transport/index.js.map +1 -1
- package/esm/transport/sendWithRetryStrategy.js.map +1 -1
- package/esm/transport/startBatchWithReplica.js.map +1 -1
- package/package.json +24 -24
- package/src/configuration/remoteConfiguration.js +213 -0
- package/src/configuration/transportConfiguration.js +1 -1
- package/src/index.js +1 -0
- package/src/transport/eventBridge.js +39 -4
- package/src/transport/index.js +6 -1
- package/types/index.d.ts +8 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifeCycle.js","names":["_tools","require","LifeCycleEventType","AUTO_ACTION_COMPLETED","BEFORE_VIEW_CREATED","VIEW_CREATED","VIEW_UPDATED","BEFORE_VIEW_UPDATED","VIEW_ENDED","AFTER_VIEW_ENDED","SESSION_RENEWED","SESSION_EXPIRED","PAGE_EXITED","REQUEST_STARTED","REQUEST_COMPLETED","RAW_RUM_EVENT_COLLECTED","RUM_EVENT_COLLECTED","RAW_ERROR_COLLECTED","RAW_LOG_COLLECTED","LOG_COLLECTED","
|
|
1
|
+
{"version":3,"file":"lifeCycle.js","names":["_tools","require","LifeCycleEventType","exports","AUTO_ACTION_COMPLETED","BEFORE_VIEW_CREATED","VIEW_CREATED","VIEW_UPDATED","BEFORE_VIEW_UPDATED","VIEW_ENDED","AFTER_VIEW_ENDED","SESSION_RENEWED","SESSION_EXPIRED","PAGE_EXITED","REQUEST_STARTED","REQUEST_COMPLETED","RAW_RUM_EVENT_COLLECTED","RUM_EVENT_COLLECTED","RAW_ERROR_COLLECTED","RAW_LOG_COLLECTED","LOG_COLLECTED","LifeCycle","callbacks","prototype","notify","eventType","data","eventCallbacks","each","callback","subscribe","push","_this","unsubscribe","filter","other"],"sources":["../../src/helper/lifeCycle.js"],"sourcesContent":["import { each, filter } from './tools'\nexport var LifeCycleEventType = {\n AUTO_ACTION_COMPLETED: 'AUTO_ACTION_COMPLETED',\n BEFORE_VIEW_CREATED: 'BEFORE_VIEW_CREATED',\n VIEW_CREATED: 'VIEW_CREATED',\n VIEW_UPDATED: 'VIEW_UPDATED',\n BEFORE_VIEW_UPDATED: 'BEFORE_VIEW_UPDATED',\n VIEW_ENDED: 'VIEW_ENDED',\n AFTER_VIEW_ENDED: 'AFTER_VIEW_ENDED',\n SESSION_RENEWED: 'SESSION_RENEWED',\n SESSION_EXPIRED: 'SESSION_EXPIRED',\n PAGE_EXITED: 'PAGE_EXITED',\n REQUEST_STARTED: 'REQUEST_STARTED',\n REQUEST_COMPLETED: 'REQUEST_COMPLETED',\n RAW_RUM_EVENT_COLLECTED: 'RAW_RUM_EVENT_COLLECTED',\n RUM_EVENT_COLLECTED: 'RUM_EVENT_COLLECTED',\n RAW_ERROR_COLLECTED: 'RAW_ERROR_COLLECTED',\n RAW_LOG_COLLECTED: 'RAW_LOG_COLLECTED',\n LOG_COLLECTED: 'LOG_COLLECTED'\n}\nexport function LifeCycle() {\n this.callbacks = {}\n}\nLifeCycle.prototype = {\n notify: function (eventType, data) {\n var eventCallbacks = this.callbacks[eventType]\n if (eventCallbacks) {\n each(eventCallbacks, function (callback) {\n callback(data)\n })\n }\n },\n subscribe: function (eventType, callback) {\n if (!this.callbacks[eventType]) {\n this.callbacks[eventType] = []\n }\n this.callbacks[eventType].push(callback)\n var _this = this\n return {\n unsubscribe: function () {\n _this.callbacks[eventType] = filter(\n _this.callbacks[eventType],\n function (other) {\n return other !== callback\n }\n )\n }\n }\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACO,IAAIC,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG;EAC9BE,qBAAqB,EAAE,uBAAuB;EAC9CC,mBAAmB,EAAE,qBAAqB;EAC1CC,YAAY,EAAE,cAAc;EAC5BC,YAAY,EAAE,cAAc;EAC5BC,mBAAmB,EAAE,qBAAqB;EAC1CC,UAAU,EAAE,YAAY;EACxBC,gBAAgB,EAAE,kBAAkB;EACpCC,eAAe,EAAE,iBAAiB;EAClCC,eAAe,EAAE,iBAAiB;EAClCC,WAAW,EAAE,aAAa;EAC1BC,eAAe,EAAE,iBAAiB;EAClCC,iBAAiB,EAAE,mBAAmB;EACtCC,uBAAuB,EAAE,yBAAyB;EAClDC,mBAAmB,EAAE,qBAAqB;EAC1CC,mBAAmB,EAAE,qBAAqB;EAC1CC,iBAAiB,EAAE,mBAAmB;EACtCC,aAAa,EAAE;AACjB,CAAC;AACM,SAASC,SAASA,CAAA,EAAG;EAC1B,IAAI,CAACC,SAAS,GAAG,CAAC,CAAC;AACrB;AACAD,SAAS,CAACE,SAAS,GAAG;EACpBC,MAAM,EAAE,SAARA,MAAMA,CAAYC,SAAS,EAAEC,IAAI,EAAE;IACjC,IAAIC,cAAc,GAAG,IAAI,CAACL,SAAS,CAACG,SAAS,CAAC;IAC9C,IAAIE,cAAc,EAAE;MAClB,IAAAC,WAAI,EAACD,cAAc,EAAE,UAAUE,QAAQ,EAAE;QACvCA,QAAQ,CAACH,IAAI,CAAC;MAChB,CAAC,CAAC;IACJ;EACF,CAAC;EACDI,SAAS,EAAE,SAAXA,SAASA,CAAYL,SAAS,EAAEI,QAAQ,EAAE;IACxC,IAAI,CAAC,IAAI,CAACP,SAAS,CAACG,SAAS,CAAC,EAAE;MAC9B,IAAI,CAACH,SAAS,CAACG,SAAS,CAAC,GAAG,EAAE;IAChC;IACA,IAAI,CAACH,SAAS,CAACG,SAAS,CAAC,CAACM,IAAI,CAACF,QAAQ,CAAC;IACxC,IAAIG,KAAK,GAAG,IAAI;IAChB,OAAO;MACLC,WAAW,EAAE,SAAbA,WAAWA,CAAA,EAAc;QACvBD,KAAK,CAACV,SAAS,CAACG,SAAS,CAAC,GAAG,IAAAS,aAAM,EACjCF,KAAK,CAACV,SAAS,CAACG,SAAS,CAAC,EAC1B,UAAUU,KAAK,EAAE;UACf,OAAOA,KAAK,KAAKN,QAAQ;QAC3B,CACF,CAAC;MACH;IACF,CAAC;EACH;AACF,CAAC","ignoreList":[]}
|
|
@@ -6,14 +6,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.limitModification = limitModification;
|
|
7
7
|
var _tools = require("./tools");
|
|
8
8
|
var _sanitize = require("./sanitize");
|
|
9
|
-
function _toArray(
|
|
10
|
-
function _iterableToArray(
|
|
11
|
-
function _slicedToArray(
|
|
9
|
+
function _toArray(r) { return _arrayWithHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableRest(); }
|
|
10
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
11
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
12
12
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
13
|
-
function _unsupportedIterableToArray(
|
|
14
|
-
function _arrayLikeToArray(
|
|
15
|
-
function _iterableToArrayLimit(
|
|
16
|
-
function _arrayWithHoles(
|
|
13
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
14
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
15
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
16
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
17
17
|
function limitModification(object, modifiableFieldPaths, modifier) {
|
|
18
18
|
var clone = (0, _tools.deepClone)(object);
|
|
19
19
|
var result = modifier(clone);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limitModification.js","names":["_tools","require","_sanitize","_toArray","
|
|
1
|
+
{"version":3,"file":"limitModification.js","names":["_tools","require","_sanitize","_toArray","r","_arrayWithHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableRest","Symbol","iterator","Array","from","_slicedToArray","e","_iterableToArrayLimit","TypeError","a","_arrayLikeToArray","t","toString","call","slice","constructor","name","test","length","n","l","i","u","f","o","next","Object","done","push","value","isArray","limitModification","object","modifiableFieldPaths","modifier","clone","deepClone","result","objectEntries","forEach","_ref","_ref2","fieldPath","fieldType","setValueAtPath","split","pathSegments","_pathSegments","field","restPathSegments","item","isValidObject","setNestedValue","newType","getType","sanitize"],"sources":["../../src/helper/limitModification.js"],"sourcesContent":["import { objectEntries, getType, deepClone } from './tools'\nimport { sanitize } from './sanitize'\n\nexport function limitModification(object, modifiableFieldPaths, modifier) {\n const clone = deepClone(object)\n const result = modifier(clone)\n\n objectEntries(modifiableFieldPaths).forEach(([fieldPath, fieldType]) =>\n // Traverse both object and clone simultaneously up to the path and apply the modification from the clone to the original object when the type is valid\n setValueAtPath(object, clone, fieldPath.split(/\\.|(?=\\[\\])/), fieldType)\n )\n\n return result\n}\n\nfunction setValueAtPath(object, clone, pathSegments, fieldType) {\n const [field, ...restPathSegments] = pathSegments\n\n if (field === '[]') {\n if (Array.isArray(object) && Array.isArray(clone)) {\n object.forEach((item, i) =>\n setValueAtPath(item, clone[i], restPathSegments, fieldType)\n )\n }\n\n return\n }\n\n if (!isValidObject(object) || !isValidObject(clone)) {\n return\n }\n\n if (restPathSegments.length > 0) {\n return setValueAtPath(\n object[field],\n clone[field],\n restPathSegments,\n fieldType\n )\n }\n\n setNestedValue(object, field, clone[field], fieldType)\n}\n\nfunction setNestedValue(object, field, value, fieldType) {\n const newType = getType(value)\n\n if (newType === fieldType) {\n object[field] = sanitize(value)\n } else if (\n fieldType === 'object' &&\n (newType === 'undefined' || newType === 'null')\n ) {\n object[field] = {}\n }\n}\n\nfunction isValidObject(object) {\n return getType(object) === 'object'\n}\n"],"mappings":"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","ignoreList":[]}
|
package/cjs/helper/mobileUtil.js
CHANGED
|
@@ -4,17 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.userAgent = exports.isIos = exports.isAndroid = exports.JsBirdge = void 0;
|
|
7
|
-
var userAgent = navigator.userAgent.toLowerCase();
|
|
8
|
-
exports.
|
|
9
|
-
var isAndroid = function isAndroid() {
|
|
7
|
+
var userAgent = exports.userAgent = navigator.userAgent.toLowerCase();
|
|
8
|
+
var isAndroid = exports.isAndroid = function isAndroid() {
|
|
10
9
|
return /android/.test(userAgent);
|
|
11
10
|
};
|
|
12
|
-
exports.
|
|
13
|
-
var isIos = function isIos() {
|
|
11
|
+
var isIos = exports.isIos = function isIos() {
|
|
14
12
|
return /iphone os/.test(userAgent);
|
|
15
13
|
};
|
|
16
|
-
exports.
|
|
17
|
-
var JsBirdge = function JsBirdge() {
|
|
14
|
+
var JsBirdge = exports.JsBirdge = function JsBirdge() {
|
|
18
15
|
this.bridge = window['FTWebViewJavascriptBridge'];
|
|
19
16
|
this.tagMaps = {};
|
|
20
17
|
window.mapWebViewCallBack = {};
|
|
@@ -22,7 +19,6 @@ var JsBirdge = function JsBirdge() {
|
|
|
22
19
|
this.initBridge();
|
|
23
20
|
} catch (err) {}
|
|
24
21
|
};
|
|
25
|
-
exports.JsBirdge = JsBirdge;
|
|
26
22
|
JsBirdge.prototype = {
|
|
27
23
|
initBridge: function initBridge() {
|
|
28
24
|
var _this = this;
|
|
@@ -98,6 +94,5 @@ JsBirdge.prototype = {
|
|
|
98
94
|
}
|
|
99
95
|
}
|
|
100
96
|
};
|
|
101
|
-
var JsBirdge = JsBirdge;
|
|
102
|
-
exports.JsBirdge = JsBirdge;
|
|
97
|
+
var JsBirdge = exports.JsBirdge = JsBirdge;
|
|
103
98
|
//# sourceMappingURL=mobileUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mobileUtil.js","names":["userAgent","
|
|
1
|
+
{"version":3,"file":"mobileUtil.js","names":["userAgent","exports","navigator","toLowerCase","isAndroid","test","isIos","JsBirdge","bridge","window","tagMaps","mapWebViewCallBack","initBridge","err","prototype","_this","WVJBCallbacks","push","WVJBIframe","document","createElement","style","display","src","documentElement","appendChild","setTimeout","removeChild","sendEvent","params","callback","tag","Date","getTime","name","ret","Promise","resolve","callHandler","JSON","stringify","error","addEventListener"],"sources":["../../src/helper/mobileUtil.js"],"sourcesContent":["export var userAgent = navigator.userAgent.toLowerCase()\nexport var isAndroid = function () {\n return /android/.test(userAgent)\n}\nexport var isIos = function () {\n return /iphone os/.test(userAgent)\n}\n\nvar JsBirdge = function () {\n this.bridge = window['FTWebViewJavascriptBridge']\n this.tagMaps = {}\n window.mapWebViewCallBack = {}\n try {\n this.initBridge()\n } catch (err) {}\n}\nJsBirdge.prototype = {\n initBridge: function () {\n var _this = this\n if (isIos()) {\n if (!_this.bridge) {\n if (window.WVJBCallbacks) {\n window.WVJBCallbacks.push(function (bridge) {\n _this.bridge = bridge\n })\n return\n } else {\n window.WVJBCallbacks = [\n function (bridge) {\n _this.bridge = bridge\n return\n }\n ]\n var WVJBIframe = document.createElement('iframe')\n WVJBIframe.style.display = 'none'\n WVJBIframe.src = 'wvjbscheme://__BRIDGE_LOADED__'\n document.documentElement.appendChild(WVJBIframe)\n setTimeout(function () {\n document.documentElement.removeChild(WVJBIframe)\n }, 0)\n }\n }\n }\n },\n sendEvent: function (params, callback) {\n if (typeof params === 'undefined') {\n params = {}\n }\n var _this = this\n var tag = 'Unique id:' + new Date().getTime()\n if (params.name) {\n _this.tagMaps[params.name] = tag\n window.mapWebViewCallBack[tag] = function (ret, err) {\n return Promise.resolve(ret, err)\n }\n params['_tag'] = tag\n try {\n if (isIos()) {\n _this.bridge.callHandler(\n 'sendEvent',\n JSON.stringify(params),\n 'mapWebViewCallBack'\n )\n } else {\n _this.bridge.sendEvent(JSON.stringify(params), 'mapWebViewCallBack')\n }\n } catch (err) {}\n } else {\n callback({ error: '请传入发送事件的名称!!' })\n }\n },\n addEventListener: function (params, callback) {\n var tag = 'Unique id:' + new Date().getTime()\n var _this = this\n if (params.name) {\n _this.tagMaps[params.name] = tag\n window.mapWebViewCallBack[tag] = function (ret, err) {\n callback(ret, err)\n return\n }\n params['_tag'] = tag\n try {\n if (isIos()) {\n _this.bridge.callHandler(\n 'addEventListener',\n JSON.stringify(params),\n 'mapWebViewCallBack'\n )\n } else {\n _this.bridge.addEventListener(\n JSON.stringify(params),\n 'mapWebViewCallBack'\n )\n }\n } catch (err) {}\n } else {\n callback({ error: '请传入监听事件的名称!!' })\n }\n }\n}\n\nexport var JsBirdge = JsBirdge\n"],"mappings":";;;;;;AAAO,IAAIA,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,SAAS,CAACF,SAAS,CAACG,WAAW,CAAC,CAAC;AACjD,IAAIC,SAAS,GAAAH,OAAA,CAAAG,SAAA,GAAG,SAAZA,SAASA,CAAA,EAAe;EACjC,OAAO,SAAS,CAACC,IAAI,CAACL,SAAS,CAAC;AAClC,CAAC;AACM,IAAIM,KAAK,GAAAL,OAAA,CAAAK,KAAA,GAAG,SAARA,KAAKA,CAAA,EAAe;EAC7B,OAAO,WAAW,CAACD,IAAI,CAACL,SAAS,CAAC;AACpC,CAAC;AAED,IAAIO,QAAQ,GAAAN,OAAA,CAAAM,QAAA,GAAG,SAAXA,QAAQA,CAAA,EAAe;EACzB,IAAI,CAACC,MAAM,GAAGC,MAAM,CAAC,2BAA2B,CAAC;EACjD,IAAI,CAACC,OAAO,GAAG,CAAC,CAAC;EACjBD,MAAM,CAACE,kBAAkB,GAAG,CAAC,CAAC;EAC9B,IAAI;IACF,IAAI,CAACC,UAAU,CAAC,CAAC;EACnB,CAAC,CAAC,OAAOC,GAAG,EAAE,CAAC;AACjB,CAAC;AACDN,QAAQ,CAACO,SAAS,GAAG;EACnBF,UAAU,EAAE,SAAZA,UAAUA,CAAA,EAAc;IACtB,IAAIG,KAAK,GAAG,IAAI;IAChB,IAAIT,KAAK,CAAC,CAAC,EAAE;MACX,IAAI,CAACS,KAAK,CAACP,MAAM,EAAE;QACjB,IAAIC,MAAM,CAACO,aAAa,EAAE;UACxBP,MAAM,CAACO,aAAa,CAACC,IAAI,CAAC,UAAUT,MAAM,EAAE;YAC1CO,KAAK,CAACP,MAAM,GAAGA,MAAM;UACvB,CAAC,CAAC;UACF;QACF,CAAC,MAAM;UACLC,MAAM,CAACO,aAAa,GAAG,CACrB,UAAUR,MAAM,EAAE;YAChBO,KAAK,CAACP,MAAM,GAAGA,MAAM;YACrB;UACF,CAAC,CACF;UACD,IAAIU,UAAU,GAAGC,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;UACjDF,UAAU,CAACG,KAAK,CAACC,OAAO,GAAG,MAAM;UACjCJ,UAAU,CAACK,GAAG,GAAG,gCAAgC;UACjDJ,QAAQ,CAACK,eAAe,CAACC,WAAW,CAACP,UAAU,CAAC;UAChDQ,UAAU,CAAC,YAAY;YACrBP,QAAQ,CAACK,eAAe,CAACG,WAAW,CAACT,UAAU,CAAC;UAClD,CAAC,EAAE,CAAC,CAAC;QACP;MACF;IACF;EACF,CAAC;EACDU,SAAS,EAAE,SAAXA,SAASA,CAAYC,MAAM,EAAEC,QAAQ,EAAE;IACrC,IAAI,OAAOD,MAAM,KAAK,WAAW,EAAE;MACjCA,MAAM,GAAG,CAAC,CAAC;IACb;IACA,IAAId,KAAK,GAAG,IAAI;IAChB,IAAIgB,GAAG,GAAG,YAAY,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;IAC7C,IAAIJ,MAAM,CAACK,IAAI,EAAE;MACfnB,KAAK,CAACL,OAAO,CAACmB,MAAM,CAACK,IAAI,CAAC,GAAGH,GAAG;MAChCtB,MAAM,CAACE,kBAAkB,CAACoB,GAAG,CAAC,GAAG,UAAUI,GAAG,EAAEtB,GAAG,EAAE;QACnD,OAAOuB,OAAO,CAACC,OAAO,CAACF,GAAG,EAAEtB,GAAG,CAAC;MAClC,CAAC;MACDgB,MAAM,CAAC,MAAM,CAAC,GAAGE,GAAG;MACpB,IAAI;QACF,IAAIzB,KAAK,CAAC,CAAC,EAAE;UACXS,KAAK,CAACP,MAAM,CAAC8B,WAAW,CACtB,WAAW,EACXC,IAAI,CAACC,SAAS,CAACX,MAAM,CAAC,EACtB,oBACF,CAAC;QACH,CAAC,MAAM;UACLd,KAAK,CAACP,MAAM,CAACoB,SAAS,CAACW,IAAI,CAACC,SAAS,CAACX,MAAM,CAAC,EAAE,oBAAoB,CAAC;QACtE;MACF,CAAC,CAAC,OAAOhB,GAAG,EAAE,CAAC;IACjB,CAAC,MAAM;MACLiB,QAAQ,CAAC;QAAEW,KAAK,EAAE;MAAe,CAAC,CAAC;IACrC;EACF,CAAC;EACDC,gBAAgB,EAAE,SAAlBA,gBAAgBA,CAAYb,MAAM,EAAEC,QAAQ,EAAE;IAC5C,IAAIC,GAAG,GAAG,YAAY,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;IAC7C,IAAIlB,KAAK,GAAG,IAAI;IAChB,IAAIc,MAAM,CAACK,IAAI,EAAE;MACfnB,KAAK,CAACL,OAAO,CAACmB,MAAM,CAACK,IAAI,CAAC,GAAGH,GAAG;MAChCtB,MAAM,CAACE,kBAAkB,CAACoB,GAAG,CAAC,GAAG,UAAUI,GAAG,EAAEtB,GAAG,EAAE;QACnDiB,QAAQ,CAACK,GAAG,EAAEtB,GAAG,CAAC;QAClB;MACF,CAAC;MACDgB,MAAM,CAAC,MAAM,CAAC,GAAGE,GAAG;MACpB,IAAI;QACF,IAAIzB,KAAK,CAAC,CAAC,EAAE;UACXS,KAAK,CAACP,MAAM,CAAC8B,WAAW,CACtB,kBAAkB,EAClBC,IAAI,CAACC,SAAS,CAACX,MAAM,CAAC,EACtB,oBACF,CAAC;QACH,CAAC,MAAM;UACLd,KAAK,CAACP,MAAM,CAACkC,gBAAgB,CAC3BH,IAAI,CAACC,SAAS,CAACX,MAAM,CAAC,EACtB,oBACF,CAAC;QACH;MACF,CAAC,CAAC,OAAOhB,GAAG,EAAE,CAAC;IACjB,CAAC,MAAM;MACLiB,QAAQ,CAAC;QAAEW,KAAK,EAAE;MAAe,CAAC,CAAC;IACrC;EACF;AACF,CAAC;AAEM,IAAIlC,QAAQ,GAAAN,OAAA,CAAAM,QAAA,GAAGA,QAAQ","ignoreList":[]}
|
package/cjs/helper/observable.js
CHANGED
|
@@ -35,8 +35,7 @@ _Observable.prototype = {
|
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
|
-
var Observable = _Observable;
|
|
39
|
-
exports.Observable = Observable;
|
|
38
|
+
var Observable = exports.Observable = _Observable;
|
|
40
39
|
function mergeObservables() {
|
|
41
40
|
var observables = [].slice.call(arguments);
|
|
42
41
|
return new Observable(function (globalObservable) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observable.js","names":["_tools","require","_Observable","onFirstSubscribe","observers","onLastUnsubscribe","undefined","prototype","subscribe","f","push","length","_this","unsubscribe","filter","other","notify","data","each","observer","Observable","exports","mergeObservables","observables","slice","call","arguments","globalObservable","subscriptions","map","observable","subscription"],"sources":["../../src/helper/observable.js"],"sourcesContent":["import { each, filter, map } from './tools'\nvar _Observable = function (onFirstSubscribe) {\n this.observers = []\n this.onLastUnsubscribe = undefined\n this.onFirstSubscribe = onFirstSubscribe\n}\n_Observable.prototype = {\n subscribe: function (f) {\n this.observers.push(f)\n if (this.observers.length === 1 && this.onFirstSubscribe) {\n this.onLastUnsubscribe = this.onFirstSubscribe(this) || undefined\n }\n var _this = this\n return {\n unsubscribe: function () {\n _this.observers = filter(_this.observers, function (other) {\n return f !== other\n })\n if (!_this.observers.length && _this.onLastUnsubscribe) {\n _this.onLastUnsubscribe()\n }\n }\n }\n },\n notify: function (data) {\n each(this.observers, function (observer) {\n observer(data)\n })\n }\n}\nexport var Observable = _Observable\n\nexport function mergeObservables() {\n var observables = [].slice.call(arguments)\n return new Observable(function (globalObservable) {\n var subscriptions = map(observables, function (observable) {\n return observable.subscribe(function (data) {\n return globalObservable.notify(data)\n })\n })\n return function () {\n return each(subscriptions, function (subscription) {\n return subscription.unsubscribe()\n })\n }\n })\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAIC,WAAW,GAAG,SAAdA,WAAWA,CAAaC,gBAAgB,EAAE;EAC5C,IAAI,CAACC,SAAS,GAAG,EAAE;EACnB,IAAI,CAACC,iBAAiB,GAAGC,SAAS;EAClC,IAAI,CAACH,gBAAgB,GAAGA,gBAAgB;AAC1C,CAAC;AACDD,WAAW,CAACK,SAAS,GAAG;EACtBC,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"observable.js","names":["_tools","require","_Observable","onFirstSubscribe","observers","onLastUnsubscribe","undefined","prototype","subscribe","f","push","length","_this","unsubscribe","filter","other","notify","data","each","observer","Observable","exports","mergeObservables","observables","slice","call","arguments","globalObservable","subscriptions","map","observable","subscription"],"sources":["../../src/helper/observable.js"],"sourcesContent":["import { each, filter, map } from './tools'\nvar _Observable = function (onFirstSubscribe) {\n this.observers = []\n this.onLastUnsubscribe = undefined\n this.onFirstSubscribe = onFirstSubscribe\n}\n_Observable.prototype = {\n subscribe: function (f) {\n this.observers.push(f)\n if (this.observers.length === 1 && this.onFirstSubscribe) {\n this.onLastUnsubscribe = this.onFirstSubscribe(this) || undefined\n }\n var _this = this\n return {\n unsubscribe: function () {\n _this.observers = filter(_this.observers, function (other) {\n return f !== other\n })\n if (!_this.observers.length && _this.onLastUnsubscribe) {\n _this.onLastUnsubscribe()\n }\n }\n }\n },\n notify: function (data) {\n each(this.observers, function (observer) {\n observer(data)\n })\n }\n}\nexport var Observable = _Observable\n\nexport function mergeObservables() {\n var observables = [].slice.call(arguments)\n return new Observable(function (globalObservable) {\n var subscriptions = map(observables, function (observable) {\n return observable.subscribe(function (data) {\n return globalObservable.notify(data)\n })\n })\n return function () {\n return each(subscriptions, function (subscription) {\n return subscription.unsubscribe()\n })\n }\n })\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAIC,WAAW,GAAG,SAAdA,WAAWA,CAAaC,gBAAgB,EAAE;EAC5C,IAAI,CAACC,SAAS,GAAG,EAAE;EACnB,IAAI,CAACC,iBAAiB,GAAGC,SAAS;EAClC,IAAI,CAACH,gBAAgB,GAAGA,gBAAgB;AAC1C,CAAC;AACDD,WAAW,CAACK,SAAS,GAAG;EACtBC,SAAS,EAAE,SAAXA,SAASA,CAAYC,CAAC,EAAE;IACtB,IAAI,CAACL,SAAS,CAACM,IAAI,CAACD,CAAC,CAAC;IACtB,IAAI,IAAI,CAACL,SAAS,CAACO,MAAM,KAAK,CAAC,IAAI,IAAI,CAACR,gBAAgB,EAAE;MACxD,IAAI,CAACE,iBAAiB,GAAG,IAAI,CAACF,gBAAgB,CAAC,IAAI,CAAC,IAAIG,SAAS;IACnE;IACA,IAAIM,KAAK,GAAG,IAAI;IAChB,OAAO;MACLC,WAAW,EAAE,SAAbA,WAAWA,CAAA,EAAc;QACvBD,KAAK,CAACR,SAAS,GAAG,IAAAU,aAAM,EAACF,KAAK,CAACR,SAAS,EAAE,UAAUW,KAAK,EAAE;UACzD,OAAON,CAAC,KAAKM,KAAK;QACpB,CAAC,CAAC;QACF,IAAI,CAACH,KAAK,CAACR,SAAS,CAACO,MAAM,IAAIC,KAAK,CAACP,iBAAiB,EAAE;UACtDO,KAAK,CAACP,iBAAiB,CAAC,CAAC;QAC3B;MACF;IACF,CAAC;EACH,CAAC;EACDW,MAAM,EAAE,SAARA,MAAMA,CAAYC,IAAI,EAAE;IACtB,IAAAC,WAAI,EAAC,IAAI,CAACd,SAAS,EAAE,UAAUe,QAAQ,EAAE;MACvCA,QAAQ,CAACF,IAAI,CAAC;IAChB,CAAC,CAAC;EACJ;AACF,CAAC;AACM,IAAIG,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAGlB,WAAW;AAE5B,SAASoB,gBAAgBA,CAAA,EAAG;EACjC,IAAIC,WAAW,GAAG,EAAE,CAACC,KAAK,CAACC,IAAI,CAACC,SAAS,CAAC;EAC1C,OAAO,IAAIN,UAAU,CAAC,UAAUO,gBAAgB,EAAE;IAChD,IAAIC,aAAa,GAAG,IAAAC,UAAG,EAACN,WAAW,EAAE,UAAUO,UAAU,EAAE;MACzD,OAAOA,UAAU,CAACtB,SAAS,CAAC,UAAUS,IAAI,EAAE;QAC1C,OAAOU,gBAAgB,CAACX,MAAM,CAACC,IAAI,CAAC;MACtC,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,YAAY;MACjB,OAAO,IAAAC,WAAI,EAACU,aAAa,EAAE,UAAUG,YAAY,EAAE;QACjD,OAAOA,YAAY,CAAClB,WAAW,CAAC,CAAC;MACnC,CAAC,CAAC;IACJ,CAAC;EACH,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -22,13 +22,12 @@ function requestIdleCallback(callback, opts) {
|
|
|
22
22
|
}
|
|
23
23
|
return requestIdleCallbackShim(callback);
|
|
24
24
|
}
|
|
25
|
-
var MAX_TASK_TIME = 50;
|
|
25
|
+
var MAX_TASK_TIME = exports.MAX_TASK_TIME = 50;
|
|
26
26
|
|
|
27
27
|
/*
|
|
28
28
|
* Shim from https://developer.chrome.com/blog/using-requestidlecallback#checking_for_requestidlecallback
|
|
29
29
|
* Note: there is no simple way to support the "timeout" option, so we ignore it.
|
|
30
30
|
*/
|
|
31
|
-
exports.MAX_TASK_TIME = MAX_TASK_TIME;
|
|
32
31
|
function requestIdleCallbackShim(callback) {
|
|
33
32
|
var start = (0, _tools.dateNow)();
|
|
34
33
|
var timeoutId = (0, _timer.setTimeout)(function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestIdleCallback.js","names":["_timer","require","_monitor","_tools","requestIdleCallback","callback","opts","window","cancelIdleCallback","id","monitor","requestIdleCallbackShim","MAX_TASK_TIME","exports","start","dateNow","timeoutId","setTimeout","didTimeout","timeRemaining","Math","max","clearTimeout"],"sources":["../../src/helper/requestIdleCallback.js"],"sourcesContent":["import { setTimeout, clearTimeout } from './timer'\nimport { monitor } from './monitor'\nimport { dateNow } from './tools'\n\n/**\n * 'requestIdleCallback' with a shim.\n */\nexport function requestIdleCallback(callback, opts) {\n // Note: check both 'requestIdleCallback' and 'cancelIdleCallback' existence because some polyfills only implement 'requestIdleCallback'.\n if (window.requestIdleCallback && window.cancelIdleCallback) {\n const id = window.requestIdleCallback(monitor(callback), opts)\n return function () {\n return window.cancelIdleCallback(id)\n }\n }\n return requestIdleCallbackShim(callback)\n}\n\nexport const MAX_TASK_TIME = 50\n\n/*\n * Shim from https://developer.chrome.com/blog/using-requestidlecallback#checking_for_requestidlecallback\n * Note: there is no simple way to support the \"timeout\" option, so we ignore it.\n */\nexport function requestIdleCallbackShim(callback) {\n const start = dateNow()\n const timeoutId = setTimeout(function () {\n callback({\n didTimeout: false,\n timeRemaining: function () {\n return Math.max(0, MAX_TASK_TIME - (dateNow() - start))\n }\n })\n }, 0)\n return function () {\n return clearTimeout(timeoutId)\n }\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACO,SAASG,mBAAmBA,CAACC,QAAQ,EAAEC,IAAI,EAAE;EAClD;EACA,IAAIC,MAAM,CAACH,mBAAmB,IAAIG,MAAM,CAACC,kBAAkB,EAAE;IAC3D,IAAMC,EAAE,GAAGF,MAAM,CAACH,mBAAmB,CAAC,IAAAM,gBAAO,EAACL,QAAQ,CAAC,EAAEC,IAAI,CAAC;IAC9D,OAAO,YAAY;MACjB,OAAOC,MAAM,CAACC,kBAAkB,CAACC,EAAE,CAAC;IACtC,CAAC;EACH;EACA,OAAOE,uBAAuB,CAACN,QAAQ,CAAC;AAC1C;AAEO,IAAMO,aAAa,GAAG,EAAE;;AAE/B;AACA;AACA;AACA;
|
|
1
|
+
{"version":3,"file":"requestIdleCallback.js","names":["_timer","require","_monitor","_tools","requestIdleCallback","callback","opts","window","cancelIdleCallback","id","monitor","requestIdleCallbackShim","MAX_TASK_TIME","exports","start","dateNow","timeoutId","setTimeout","didTimeout","timeRemaining","Math","max","clearTimeout"],"sources":["../../src/helper/requestIdleCallback.js"],"sourcesContent":["import { setTimeout, clearTimeout } from './timer'\nimport { monitor } from './monitor'\nimport { dateNow } from './tools'\n\n/**\n * 'requestIdleCallback' with a shim.\n */\nexport function requestIdleCallback(callback, opts) {\n // Note: check both 'requestIdleCallback' and 'cancelIdleCallback' existence because some polyfills only implement 'requestIdleCallback'.\n if (window.requestIdleCallback && window.cancelIdleCallback) {\n const id = window.requestIdleCallback(monitor(callback), opts)\n return function () {\n return window.cancelIdleCallback(id)\n }\n }\n return requestIdleCallbackShim(callback)\n}\n\nexport const MAX_TASK_TIME = 50\n\n/*\n * Shim from https://developer.chrome.com/blog/using-requestidlecallback#checking_for_requestidlecallback\n * Note: there is no simple way to support the \"timeout\" option, so we ignore it.\n */\nexport function requestIdleCallbackShim(callback) {\n const start = dateNow()\n const timeoutId = setTimeout(function () {\n callback({\n didTimeout: false,\n timeRemaining: function () {\n return Math.max(0, MAX_TASK_TIME - (dateNow() - start))\n }\n })\n }, 0)\n return function () {\n return clearTimeout(timeoutId)\n }\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACO,SAASG,mBAAmBA,CAACC,QAAQ,EAAEC,IAAI,EAAE;EAClD;EACA,IAAIC,MAAM,CAACH,mBAAmB,IAAIG,MAAM,CAACC,kBAAkB,EAAE;IAC3D,IAAMC,EAAE,GAAGF,MAAM,CAACH,mBAAmB,CAAC,IAAAM,gBAAO,EAACL,QAAQ,CAAC,EAAEC,IAAI,CAAC;IAC9D,OAAO,YAAY;MACjB,OAAOC,MAAM,CAACC,kBAAkB,CAACC,EAAE,CAAC;IACtC,CAAC;EACH;EACA,OAAOE,uBAAuB,CAACN,QAAQ,CAAC;AAC1C;AAEO,IAAMO,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,EAAE;;AAE/B;AACA;AACA;AACA;AACO,SAASD,uBAAuBA,CAACN,QAAQ,EAAE;EAChD,IAAMS,KAAK,GAAG,IAAAC,cAAO,EAAC,CAAC;EACvB,IAAMC,SAAS,GAAG,IAAAC,iBAAU,EAAC,YAAY;IACvCZ,QAAQ,CAAC;MACPa,UAAU,EAAE,KAAK;MACjBC,aAAa,EAAE,SAAfA,aAAaA,CAAA,EAAc;QACzB,OAAOC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAET,aAAa,IAAI,IAAAG,cAAO,EAAC,CAAC,GAAGD,KAAK,CAAC,CAAC;MACzD;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CAAC,CAAC;EACL,OAAO,YAAY;IACjB,OAAO,IAAAQ,mBAAY,EAACN,SAAS,CAAC;EAChC,CAAC;AACH","ignoreList":[]}
|
package/cjs/helper/sanitize.js
CHANGED
|
@@ -7,7 +7,7 @@ exports.sanitize = sanitize;
|
|
|
7
7
|
var _display = require("./display");
|
|
8
8
|
var _byteUtils = require("./byteUtils");
|
|
9
9
|
var _jsonStringify = require("./serialisation/jsonStringify");
|
|
10
|
-
function _typeof(
|
|
10
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
11
11
|
// The maximum size of a single event is 256KiB. By default, we ensure that user-provided data
|
|
12
12
|
// going through sanitize fits inside our events, while leaving room for other contexts, metadata, ...
|
|
13
13
|
var SANITIZE_DEFAULT_MAX_CHARACTER_COUNT = 220 * _byteUtils.ONE_KIBI_BYTE;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize.js","names":["_display","require","_byteUtils","_jsonStringify","_typeof","obj","Symbol","iterator","constructor","prototype","SANITIZE_DEFAULT_MAX_CHARACTER_COUNT","ONE_KIBI_BYTE","JSON_PATH_ROOT_ELEMENT","KEY_DECORATION_LENGTH","sanitize","source","maxCharacterCount","undefined","restoreObjectPrototypeToJson","detachToJsonMethod","Object","restoreArrayPrototypeToJson","Array","containerQueue","visitedObjectsWithPath","WeakMap","sanitizedData","sanitizeProcessor","accumulatedCharacterCount","JSON","stringify","length","warnOverCharacterLimit","containerToProcess","shift","separatorLength","isArray","key","targetData","path","target","hasOwnProperty","call","parentPath","queue","sourceToSanitize","tryToApplyToJSON","sanitizePrimitivesAndFunctions","sanitizedSource","sanitizeObjects","sourceAsObject","has","get","currentPath","set","push","value","toString","name","description","Event","sanitizeEvent","RegExp","concat","result","match","_unused","event","type","isTrusted","currentTarget","object","toJSON","_unused2","changeType","display","warn"],"sources":["../../src/helper/sanitize.js"],"sourcesContent":["import { display } from './display'\nimport { ONE_KIBI_BYTE } from './byteUtils'\nimport { detachToJsonMethod } from './serialisation/jsonStringify'\n\n// The maximum size of a single event is 256KiB. By default, we ensure that user-provided data\n// going through sanitize fits inside our events, while leaving room for other contexts, metadata, ...\nvar SANITIZE_DEFAULT_MAX_CHARACTER_COUNT = 220 * ONE_KIBI_BYTE\n\n// Symbol for the root element of the JSONPath used for visited objects\nvar JSON_PATH_ROOT_ELEMENT = '$'\n\n// When serializing (using JSON.stringify) a key of an object, { key: 42 } gets wrapped in quotes as \"key\".\n// With the separator (:), we need to add 3 characters to the count.\nvar KEY_DECORATION_LENGTH = 3\n\n/**\n * Ensures user-provided data is 'safe' for the SDK\n * - Deep clones data\n * - Removes cyclic references\n * - Transforms unserializable types to a string representation\n *\n * LIMITATIONS:\n * - Size is in characters, not byte count (may differ according to character encoding)\n * - Size does not take into account indentation that can be applied to JSON.stringify\n * - Non-numerical properties of Arrays are ignored. Same behavior as JSON.stringify\n *\n * @param source User-provided data meant to be serialized using JSON.stringify\n * @param maxCharacterCount Maximum number of characters allowed in serialized form\n */\n\nexport function sanitize(source, maxCharacterCount) {\n if (maxCharacterCount === undefined) {\n maxCharacterCount = SANITIZE_DEFAULT_MAX_CHARACTER_COUNT\n }\n // Unbind any toJSON function we may have on [] or {} prototypes\n var restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype)\n var restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype)\n\n // Initial call to sanitizeProcessor - will populate containerQueue if source is an Array or a plain Object\n var containerQueue = []\n var visitedObjectsWithPath = new WeakMap()\n var sanitizedData = sanitizeProcessor(\n source,\n JSON_PATH_ROOT_ELEMENT,\n undefined,\n containerQueue,\n visitedObjectsWithPath\n )\n var accumulatedCharacterCount =\n (JSON.stringify(sanitizedData) && JSON.stringify(sanitizedData).length) || 0\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'discarded', source)\n return undefined\n }\n\n while (\n containerQueue.length > 0 &&\n accumulatedCharacterCount < maxCharacterCount\n ) {\n var containerToProcess = containerQueue.shift()\n var separatorLength = 0 // 0 for the first element, 1 for subsequent elements\n\n // Arrays and Objects have to be handled distinctly to ensure\n // we do not pick up non-numerical properties from Arrays\n if (Array.isArray(containerToProcess.source)) {\n for (var key = 0; key < containerToProcess.source.length; key++) {\n var targetData = sanitizeProcessor(\n containerToProcess.source[key],\n containerToProcess.path,\n key,\n containerQueue,\n visitedObjectsWithPath\n )\n\n if (targetData !== undefined) {\n accumulatedCharacterCount += JSON.stringify(targetData).length\n } else {\n // When an element of an Array (targetData) is undefined, it is serialized as null:\n // JSON.stringify([undefined]) => '[null]' - This accounts for 4 characters\n accumulatedCharacterCount += 4\n }\n accumulatedCharacterCount += separatorLength\n separatorLength = 1\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source)\n break\n }\n containerToProcess.target[key] = targetData\n }\n } else {\n for (var key in containerToProcess.source) {\n if (\n Object.prototype.hasOwnProperty.call(containerToProcess.source, key)\n ) {\n var targetData = sanitizeProcessor(\n containerToProcess.source[key],\n containerToProcess.path,\n key,\n containerQueue,\n visitedObjectsWithPath\n )\n // When a property of an object has an undefined value, it will be dropped during serialization:\n // JSON.stringify({a:undefined}) => '{}'\n if (targetData !== undefined) {\n accumulatedCharacterCount +=\n JSON.stringify(targetData).length +\n separatorLength +\n key.length +\n KEY_DECORATION_LENGTH\n separatorLength = 1\n }\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source)\n break\n }\n containerToProcess.target[key] = targetData\n }\n }\n }\n }\n\n // Rebind detached toJSON functions\n restoreObjectPrototypeToJson()\n restoreArrayPrototypeToJson()\n\n return sanitizedData\n}\n\n/**\n * Internal function to factorize the process common to the\n * initial call to sanitize, and iterations for Arrays and Objects\n *\n */\nfunction sanitizeProcessor(\n source,\n parentPath,\n key,\n queue,\n visitedObjectsWithPath\n) {\n // Start by handling toJSON, as we want to sanitize its output\n var sourceToSanitize = tryToApplyToJSON(source)\n\n if (!sourceToSanitize || typeof sourceToSanitize !== 'object') {\n return sanitizePrimitivesAndFunctions(sourceToSanitize)\n }\n\n var sanitizedSource = sanitizeObjects(sourceToSanitize)\n if (\n sanitizedSource !== '[Object]' &&\n sanitizedSource !== '[Array]' &&\n sanitizedSource !== '[Error]'\n ) {\n return sanitizedSource\n }\n\n // Handle potential cyclic references\n // We need to use source as sourceToSanitize could be a reference to a new object\n // At this stage, we know the source is an object type\n var sourceAsObject = source\n if (visitedObjectsWithPath.has(sourceAsObject)) {\n return (\n '[Reference seen at ' + visitedObjectsWithPath.get(sourceAsObject) + ']'\n )\n }\n\n // Add processed source to queue\n var currentPath = key !== undefined ? parentPath + '.' + key : parentPath\n var target = Array.isArray(sourceToSanitize) ? [] : {}\n visitedObjectsWithPath.set(sourceAsObject, currentPath)\n queue.push({ source: sourceToSanitize, target, path: currentPath })\n\n return target\n}\n\n/**\n * Handles sanitization of simple, non-object types\n *\n */\nfunction sanitizePrimitivesAndFunctions(value) {\n // BigInt cannot be serialized by JSON.stringify(), convert it to a string representation\n if (typeof value === 'bigint') {\n return '[BigInt] ' + value.toString()\n }\n // Functions cannot be serialized by JSON.stringify(). Moreover, if a faulty toJSON is present, it needs to be converted\n // so it won't prevent stringify from serializing later\n if (typeof value === 'function') {\n return '[Function] ' + value.name || 'unknown'\n }\n // JSON.stringify() does not serialize symbols.\n if (typeof value === 'symbol') {\n // symbol.description is part of ES2019+\n return '[Symbol] ' + value.description || value.toString()\n }\n\n return value\n}\n\n/**\n * Handles sanitization of object types\n *\n * LIMITATIONS\n * - If a class defines a toStringTag Symbol, it will fall in the catch-all method and prevent enumeration of properties.\n * To avoid this, a toJSON method can be defined.\n * - IE11 does not return a distinct type for objects such as Map, WeakMap, ... These objects will pass through and their\n * properties enumerated if any.\n *\n */\nfunction sanitizeObjects(value) {\n try {\n // Handle events - Keep a simple implementation to avoid breaking changes\n if (value instanceof Event) {\n return sanitizeEvent(value)\n }\n if (value instanceof RegExp) {\n return `[RegExp] ${value.toString()}`\n }\n // Handle all remaining object types in a generic way\n var result = Object.prototype.toString.call(value)\n var match = result.match(/\\[object (.*)\\]/)\n if (match && match[1]) {\n return '[' + match[1] + ']'\n }\n } catch {\n // If the previous serialization attempts failed, and we cannot convert using\n // Object.prototype.toString, declare the value unserializable\n }\n return '[Unserializable]'\n}\nfunction sanitizeEvent(event) {\n return {\n type: event.type,\n isTrusted: event.isTrusted,\n currentTarget: event.currentTarget\n ? sanitizeObjects(event.currentTarget)\n : null,\n target: event.target ? sanitizeObjects(event.target) : null\n }\n}\n/**\n * Checks if a toJSON function exists and tries to execute it\n *\n */\nfunction tryToApplyToJSON(value) {\n var object = value\n if (object && typeof object.toJSON === 'function') {\n try {\n return object.toJSON()\n } catch {\n // If toJSON fails, we continue by trying to serialize the value manually\n }\n }\n\n return value\n}\n\n/**\n * Helper function to display the warning when the accumulated character count is over the limit\n */\nfunction warnOverCharacterLimit(maxCharacterCount, changeType, source) {\n display.warn(\n 'The data provided has been ' +\n changeType +\n ' as it is over the limit of ' +\n maxCharacterCount +\n ' characters:',\n source\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"sanitize.js","names":["_display","require","_byteUtils","_jsonStringify","_typeof","o","Symbol","iterator","constructor","prototype","SANITIZE_DEFAULT_MAX_CHARACTER_COUNT","ONE_KIBI_BYTE","JSON_PATH_ROOT_ELEMENT","KEY_DECORATION_LENGTH","sanitize","source","maxCharacterCount","undefined","restoreObjectPrototypeToJson","detachToJsonMethod","Object","restoreArrayPrototypeToJson","Array","containerQueue","visitedObjectsWithPath","WeakMap","sanitizedData","sanitizeProcessor","accumulatedCharacterCount","JSON","stringify","length","warnOverCharacterLimit","containerToProcess","shift","separatorLength","isArray","key","targetData","path","target","hasOwnProperty","call","parentPath","queue","sourceToSanitize","tryToApplyToJSON","sanitizePrimitivesAndFunctions","sanitizedSource","sanitizeObjects","sourceAsObject","has","get","currentPath","set","push","value","toString","name","description","Event","sanitizeEvent","RegExp","concat","result","match","_unused","event","type","isTrusted","currentTarget","object","toJSON","_unused2","changeType","display","warn"],"sources":["../../src/helper/sanitize.js"],"sourcesContent":["import { display } from './display'\nimport { ONE_KIBI_BYTE } from './byteUtils'\nimport { detachToJsonMethod } from './serialisation/jsonStringify'\n\n// The maximum size of a single event is 256KiB. By default, we ensure that user-provided data\n// going through sanitize fits inside our events, while leaving room for other contexts, metadata, ...\nvar SANITIZE_DEFAULT_MAX_CHARACTER_COUNT = 220 * ONE_KIBI_BYTE\n\n// Symbol for the root element of the JSONPath used for visited objects\nvar JSON_PATH_ROOT_ELEMENT = '$'\n\n// When serializing (using JSON.stringify) a key of an object, { key: 42 } gets wrapped in quotes as \"key\".\n// With the separator (:), we need to add 3 characters to the count.\nvar KEY_DECORATION_LENGTH = 3\n\n/**\n * Ensures user-provided data is 'safe' for the SDK\n * - Deep clones data\n * - Removes cyclic references\n * - Transforms unserializable types to a string representation\n *\n * LIMITATIONS:\n * - Size is in characters, not byte count (may differ according to character encoding)\n * - Size does not take into account indentation that can be applied to JSON.stringify\n * - Non-numerical properties of Arrays are ignored. Same behavior as JSON.stringify\n *\n * @param source User-provided data meant to be serialized using JSON.stringify\n * @param maxCharacterCount Maximum number of characters allowed in serialized form\n */\n\nexport function sanitize(source, maxCharacterCount) {\n if (maxCharacterCount === undefined) {\n maxCharacterCount = SANITIZE_DEFAULT_MAX_CHARACTER_COUNT\n }\n // Unbind any toJSON function we may have on [] or {} prototypes\n var restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype)\n var restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype)\n\n // Initial call to sanitizeProcessor - will populate containerQueue if source is an Array or a plain Object\n var containerQueue = []\n var visitedObjectsWithPath = new WeakMap()\n var sanitizedData = sanitizeProcessor(\n source,\n JSON_PATH_ROOT_ELEMENT,\n undefined,\n containerQueue,\n visitedObjectsWithPath\n )\n var accumulatedCharacterCount =\n (JSON.stringify(sanitizedData) && JSON.stringify(sanitizedData).length) || 0\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'discarded', source)\n return undefined\n }\n\n while (\n containerQueue.length > 0 &&\n accumulatedCharacterCount < maxCharacterCount\n ) {\n var containerToProcess = containerQueue.shift()\n var separatorLength = 0 // 0 for the first element, 1 for subsequent elements\n\n // Arrays and Objects have to be handled distinctly to ensure\n // we do not pick up non-numerical properties from Arrays\n if (Array.isArray(containerToProcess.source)) {\n for (var key = 0; key < containerToProcess.source.length; key++) {\n var targetData = sanitizeProcessor(\n containerToProcess.source[key],\n containerToProcess.path,\n key,\n containerQueue,\n visitedObjectsWithPath\n )\n\n if (targetData !== undefined) {\n accumulatedCharacterCount += JSON.stringify(targetData).length\n } else {\n // When an element of an Array (targetData) is undefined, it is serialized as null:\n // JSON.stringify([undefined]) => '[null]' - This accounts for 4 characters\n accumulatedCharacterCount += 4\n }\n accumulatedCharacterCount += separatorLength\n separatorLength = 1\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source)\n break\n }\n containerToProcess.target[key] = targetData\n }\n } else {\n for (var key in containerToProcess.source) {\n if (\n Object.prototype.hasOwnProperty.call(containerToProcess.source, key)\n ) {\n var targetData = sanitizeProcessor(\n containerToProcess.source[key],\n containerToProcess.path,\n key,\n containerQueue,\n visitedObjectsWithPath\n )\n // When a property of an object has an undefined value, it will be dropped during serialization:\n // JSON.stringify({a:undefined}) => '{}'\n if (targetData !== undefined) {\n accumulatedCharacterCount +=\n JSON.stringify(targetData).length +\n separatorLength +\n key.length +\n KEY_DECORATION_LENGTH\n separatorLength = 1\n }\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source)\n break\n }\n containerToProcess.target[key] = targetData\n }\n }\n }\n }\n\n // Rebind detached toJSON functions\n restoreObjectPrototypeToJson()\n restoreArrayPrototypeToJson()\n\n return sanitizedData\n}\n\n/**\n * Internal function to factorize the process common to the\n * initial call to sanitize, and iterations for Arrays and Objects\n *\n */\nfunction sanitizeProcessor(\n source,\n parentPath,\n key,\n queue,\n visitedObjectsWithPath\n) {\n // Start by handling toJSON, as we want to sanitize its output\n var sourceToSanitize = tryToApplyToJSON(source)\n\n if (!sourceToSanitize || typeof sourceToSanitize !== 'object') {\n return sanitizePrimitivesAndFunctions(sourceToSanitize)\n }\n\n var sanitizedSource = sanitizeObjects(sourceToSanitize)\n if (\n sanitizedSource !== '[Object]' &&\n sanitizedSource !== '[Array]' &&\n sanitizedSource !== '[Error]'\n ) {\n return sanitizedSource\n }\n\n // Handle potential cyclic references\n // We need to use source as sourceToSanitize could be a reference to a new object\n // At this stage, we know the source is an object type\n var sourceAsObject = source\n if (visitedObjectsWithPath.has(sourceAsObject)) {\n return (\n '[Reference seen at ' + visitedObjectsWithPath.get(sourceAsObject) + ']'\n )\n }\n\n // Add processed source to queue\n var currentPath = key !== undefined ? parentPath + '.' + key : parentPath\n var target = Array.isArray(sourceToSanitize) ? [] : {}\n visitedObjectsWithPath.set(sourceAsObject, currentPath)\n queue.push({ source: sourceToSanitize, target, path: currentPath })\n\n return target\n}\n\n/**\n * Handles sanitization of simple, non-object types\n *\n */\nfunction sanitizePrimitivesAndFunctions(value) {\n // BigInt cannot be serialized by JSON.stringify(), convert it to a string representation\n if (typeof value === 'bigint') {\n return '[BigInt] ' + value.toString()\n }\n // Functions cannot be serialized by JSON.stringify(). Moreover, if a faulty toJSON is present, it needs to be converted\n // so it won't prevent stringify from serializing later\n if (typeof value === 'function') {\n return '[Function] ' + value.name || 'unknown'\n }\n // JSON.stringify() does not serialize symbols.\n if (typeof value === 'symbol') {\n // symbol.description is part of ES2019+\n return '[Symbol] ' + value.description || value.toString()\n }\n\n return value\n}\n\n/**\n * Handles sanitization of object types\n *\n * LIMITATIONS\n * - If a class defines a toStringTag Symbol, it will fall in the catch-all method and prevent enumeration of properties.\n * To avoid this, a toJSON method can be defined.\n * - IE11 does not return a distinct type for objects such as Map, WeakMap, ... These objects will pass through and their\n * properties enumerated if any.\n *\n */\nfunction sanitizeObjects(value) {\n try {\n // Handle events - Keep a simple implementation to avoid breaking changes\n if (value instanceof Event) {\n return sanitizeEvent(value)\n }\n if (value instanceof RegExp) {\n return `[RegExp] ${value.toString()}`\n }\n // Handle all remaining object types in a generic way\n var result = Object.prototype.toString.call(value)\n var match = result.match(/\\[object (.*)\\]/)\n if (match && match[1]) {\n return '[' + match[1] + ']'\n }\n } catch {\n // If the previous serialization attempts failed, and we cannot convert using\n // Object.prototype.toString, declare the value unserializable\n }\n return '[Unserializable]'\n}\nfunction sanitizeEvent(event) {\n return {\n type: event.type,\n isTrusted: event.isTrusted,\n currentTarget: event.currentTarget\n ? sanitizeObjects(event.currentTarget)\n : null,\n target: event.target ? sanitizeObjects(event.target) : null\n }\n}\n/**\n * Checks if a toJSON function exists and tries to execute it\n *\n */\nfunction tryToApplyToJSON(value) {\n var object = value\n if (object && typeof object.toJSON === 'function') {\n try {\n return object.toJSON()\n } catch {\n // If toJSON fails, we continue by trying to serialize the value manually\n }\n }\n\n return value\n}\n\n/**\n * Helper function to display the warning when the accumulated character count is over the limit\n */\nfunction warnOverCharacterLimit(maxCharacterCount, changeType, source) {\n display.warn(\n 'The data provided has been ' +\n changeType +\n ' as it is over the limit of ' +\n maxCharacterCount +\n ' characters:',\n source\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,11 +8,10 @@ exports.CustomerDataType = void 0;
|
|
|
8
8
|
// ensure that we leave room for other event attributes and maintain a decent amount of event per batch
|
|
9
9
|
// (3KB (customer data) + 1KB (other attributes)) * 4 (events per batch) = 16KB
|
|
10
10
|
|
|
11
|
-
var CustomerDataType = {
|
|
11
|
+
var CustomerDataType = exports.CustomerDataType = {
|
|
12
12
|
FeatureFlag: 'feature flag evaluation',
|
|
13
13
|
User: 'user',
|
|
14
14
|
GlobalContext: 'global context',
|
|
15
15
|
View: 'view'
|
|
16
16
|
};
|
|
17
|
-
exports.CustomerDataType = CustomerDataType;
|
|
18
17
|
//# sourceMappingURL=const.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","names":["CustomerDataType","FeatureFlag","User","GlobalContext","View"
|
|
1
|
+
{"version":3,"file":"const.js","names":["CustomerDataType","exports","FeatureFlag","User","GlobalContext","View"],"sources":["../../../src/helper/serialisation/const.js"],"sourcesContent":["// RUM and logs batch bytes limit is 16KB\n// ensure that we leave room for other event attributes and maintain a decent amount of event per batch\n// (3KB (customer data) + 1KB (other attributes)) * 4 (events per batch) = 16KB\n\nexport var CustomerDataType = {\n FeatureFlag: 'feature flag evaluation',\n User: 'user',\n GlobalContext: 'global context',\n View: 'view'\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;;AAEO,IAAIA,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG;EAC5BE,WAAW,EAAE,yBAAyB;EACtCC,IAAI,EAAE,MAAM;EACZC,aAAa,EAAE,gBAAgB;EAC/BC,IAAI,EAAE;AACR,CAAC","ignoreList":[]}
|
|
@@ -8,18 +8,18 @@ var _tools = require("../tools");
|
|
|
8
8
|
var _sanitize = require("../sanitize");
|
|
9
9
|
var _observable = require("../observable");
|
|
10
10
|
var _display = require("../display");
|
|
11
|
-
function _typeof(
|
|
12
|
-
function _slicedToArray(
|
|
11
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
12
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
13
13
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
14
|
-
function _unsupportedIterableToArray(
|
|
15
|
-
function _arrayLikeToArray(
|
|
16
|
-
function _iterableToArrayLimit(
|
|
17
|
-
function _arrayWithHoles(
|
|
18
|
-
function ownKeys(
|
|
19
|
-
function _objectSpread(
|
|
20
|
-
function _defineProperty(
|
|
21
|
-
function _toPropertyKey(
|
|
22
|
-
function _toPrimitive(
|
|
14
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
15
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
16
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
17
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
18
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
19
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
20
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
21
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
22
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
23
23
|
function ensureProperties(context, propertiesConfig, name) {
|
|
24
24
|
var newContext = _objectSpread({}, context);
|
|
25
25
|
for (var _i = 0, _Object$entries = Object.entries(propertiesConfig); _i < _Object$entries.length; _i++) {
|
|
@@ -55,7 +55,7 @@ function createContextManager() {
|
|
|
55
55
|
setContext: function setContext(newContext) {
|
|
56
56
|
if ((0, _tools.getType)(newContext) === 'object') {
|
|
57
57
|
context = (0, _sanitize.sanitize)(ensureProperties(newContext, propertiesConfig, name));
|
|
58
|
-
customerDataTracker === null || customerDataTracker === void 0
|
|
58
|
+
customerDataTracker === null || customerDataTracker === void 0 || customerDataTracker.updateCustomerData(context);
|
|
59
59
|
} else {
|
|
60
60
|
contextManager.clearContext();
|
|
61
61
|
}
|
|
@@ -63,18 +63,18 @@ function createContextManager() {
|
|
|
63
63
|
},
|
|
64
64
|
setContextProperty: function setContextProperty(key, property) {
|
|
65
65
|
context[key] = (0, _sanitize.sanitize)(ensureProperties(_defineProperty({}, key, property), propertiesConfig, name)[key]);
|
|
66
|
-
customerDataTracker === null || customerDataTracker === void 0
|
|
66
|
+
customerDataTracker === null || customerDataTracker === void 0 || customerDataTracker.updateCustomerData(context);
|
|
67
67
|
changeObservable.notify();
|
|
68
68
|
},
|
|
69
69
|
removeContextProperty: function removeContextProperty(key) {
|
|
70
70
|
delete context[key];
|
|
71
|
-
customerDataTracker === null || customerDataTracker === void 0
|
|
71
|
+
customerDataTracker === null || customerDataTracker === void 0 || customerDataTracker.updateCustomerData(context);
|
|
72
72
|
ensureProperties(context, propertiesConfig, name);
|
|
73
73
|
changeObservable.notify();
|
|
74
74
|
},
|
|
75
75
|
clearContext: function clearContext() {
|
|
76
76
|
context = {};
|
|
77
|
-
customerDataTracker === null || customerDataTracker === void 0
|
|
77
|
+
customerDataTracker === null || customerDataTracker === void 0 || customerDataTracker.resetCustomerData();
|
|
78
78
|
changeObservable.notify();
|
|
79
79
|
},
|
|
80
80
|
changeObservable: changeObservable
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextManager.js","names":["_tools","require","_sanitize","_observable","_display","_typeof","
|
|
1
|
+
{"version":3,"file":"contextManager.js","names":["_tools","require","_sanitize","_observable","_display","_typeof","o","Symbol","iterator","constructor","prototype","_slicedToArray","r","e","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","t","toString","call","slice","name","Array","from","test","length","n","l","i","u","f","next","Object","done","push","value","isArray","ownKeys","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","configurable","writable","_toPrimitive","toPrimitive","String","Number","ensureProperties","context","propertiesConfig","newContext","_i","_Object$entries","entries","_Object$entries$_i","key","_Object$entries$_i$","required","type","display","warn","concat","createContextManager","undefined","_ref","customerDataTracker","_ref$propertiesConfig","changeObservable","Observable","contextManager","getContext","deepClone","setContext","getType","sanitize","updateCustomerData","clearContext","notify","setContextProperty","property","removeContextProperty","resetCustomerData"],"sources":["../../../src/helper/serialisation/contextManager.js"],"sourcesContent":["import { deepClone, getType } from '../tools'\nimport { sanitize } from '../sanitize'\nimport { Observable } from '../observable'\nimport { display } from '../display'\n\nfunction ensureProperties(context, propertiesConfig, name) {\n const newContext = { ...context }\n\n for (const [key, { required, type }] of Object.entries(propertiesConfig)) {\n /**\n * Ensure specified properties are strings as defined here:\n */\n if (type === 'string' && key in newContext) {\n newContext[key] = String(newContext[key])\n }\n\n if (required && !(key in context)) {\n display.warn(\n `The property ${key} of ${name} context is required; context will not be sent to the intake.`\n )\n }\n }\n\n return newContext\n}\n\nexport function createContextManager(\n name = '',\n { customerDataTracker, propertiesConfig = {} } = {}\n) {\n let context = {}\n const changeObservable = new Observable()\n\n const contextManager = {\n getContext: () => deepClone(context),\n\n setContext: (newContext) => {\n if (getType(newContext) === 'object') {\n context = sanitize(ensureProperties(newContext, propertiesConfig, name))\n customerDataTracker?.updateCustomerData(context)\n } else {\n contextManager.clearContext()\n }\n changeObservable.notify()\n },\n\n setContextProperty: (key, property) => {\n context[key] = sanitize(\n ensureProperties({ [key]: property }, propertiesConfig, name)[key]\n )\n customerDataTracker?.updateCustomerData(context)\n changeObservable.notify()\n },\n\n removeContextProperty: (key) => {\n delete context[key]\n customerDataTracker?.updateCustomerData(context)\n ensureProperties(context, propertiesConfig, name)\n changeObservable.notify()\n },\n\n clearContext: () => {\n context = {}\n customerDataTracker?.resetCustomerData()\n changeObservable.notify()\n },\n\n changeObservable\n }\n return contextManager\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,23 +13,19 @@ var _display = require("../display");
|
|
|
13
13
|
// RUM and logs batch bytes limit is 16KB
|
|
14
14
|
// ensure that we leave room for other event attributes and maintain a decent amount of event per batch
|
|
15
15
|
// (3KB (customer data) + 1KB (other attributes)) * 4 (events per batch) = 16KB
|
|
16
|
-
var CUSTOMER_DATA_BYTES_LIMIT = 3 * _byteUtils.ONE_KIBI_BYTE;
|
|
16
|
+
var CUSTOMER_DATA_BYTES_LIMIT = exports.CUSTOMER_DATA_BYTES_LIMIT = 3 * _byteUtils.ONE_KIBI_BYTE;
|
|
17
17
|
|
|
18
18
|
// We observed that the compression ratio is around 8 in general, but we also want to keep a margin
|
|
19
19
|
// because some data might not be compressed (ex: last view update on page exit). We chose 16KiB
|
|
20
20
|
// because it is also the limit of the 'batchBytesCount' that we use for RUM and Logs data, but this
|
|
21
21
|
// is a bit arbitrary.
|
|
22
|
-
exports.
|
|
23
|
-
var
|
|
24
|
-
exports.
|
|
25
|
-
var BYTES_COMPUTATION_THROTTLING_DELAY = 200;
|
|
26
|
-
exports.BYTES_COMPUTATION_THROTTLING_DELAY = BYTES_COMPUTATION_THROTTLING_DELAY;
|
|
27
|
-
var CustomerDataCompressionStatus = {
|
|
22
|
+
var CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT = exports.CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT = 16 * _byteUtils.ONE_KIBI_BYTE;
|
|
23
|
+
var BYTES_COMPUTATION_THROTTLING_DELAY = exports.BYTES_COMPUTATION_THROTTLING_DELAY = 200;
|
|
24
|
+
var CustomerDataCompressionStatus = exports.CustomerDataCompressionStatus = {
|
|
28
25
|
Unknown: 0,
|
|
29
26
|
Enabled: 1,
|
|
30
27
|
Disabled: 2
|
|
31
28
|
};
|
|
32
|
-
exports.CustomerDataCompressionStatus = CustomerDataCompressionStatus;
|
|
33
29
|
function createCustomerDataTrackerManager() {
|
|
34
30
|
var compressionStatus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : CustomerDataCompressionStatus.Disabled;
|
|
35
31
|
var customerDataTrackers = new Map();
|