@cloudcare/browser-core 3.1.10 → 3.1.12
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/addEventListener.js.map +1 -1
- package/cjs/browser/cookie.js +2 -1
- package/cjs/browser/cookie.js.map +1 -1
- package/cjs/browser/fetchObservable.js.map +1 -1
- package/cjs/browser/htmlDomUtils.js +6 -1
- package/cjs/browser/htmlDomUtils.js.map +1 -1
- package/cjs/browser/pageExitObservable.js.map +1 -1
- package/cjs/browser/runOnReadyState.js.map +1 -1
- package/cjs/browser/scroll.js.map +1 -1
- package/cjs/browser/xhrObservable.js.map +1 -1
- package/cjs/configuration/configuration.js +13 -5
- package/cjs/configuration/configuration.js.map +1 -1
- package/cjs/configuration/transportConfiguration.js.map +1 -1
- package/cjs/console/consoleObservable.js +4 -2
- package/cjs/console/consoleObservable.js.map +1 -1
- package/cjs/dataMap.js +3 -1
- package/cjs/dataMap.js.map +1 -1
- package/cjs/error/trackRuntimeError.js.map +1 -1
- package/cjs/helper/boundedBuffer.js.map +1 -1
- package/cjs/helper/byteUtils.js.map +1 -1
- package/cjs/helper/catchUserErrors.js.map +1 -1
- package/cjs/helper/contextHistory.js.map +1 -1
- package/cjs/helper/createEventRateLimiter.js.map +1 -1
- package/cjs/helper/deviceInfo.js.map +1 -1
- package/cjs/helper/display.js.map +1 -1
- package/cjs/helper/enums.js.map +1 -1
- package/cjs/helper/errorTools.js.map +1 -1
- package/cjs/helper/eventEmitter.js.map +1 -1
- package/cjs/helper/getZoneJsOriginalValue.js.map +1 -1
- package/cjs/helper/instrumentMethod.js +7 -6
- package/cjs/helper/instrumentMethod.js.map +1 -1
- package/cjs/helper/lifeCycle.js +2 -0
- package/cjs/helper/lifeCycle.js.map +1 -1
- package/cjs/helper/limitModification.js.map +1 -1
- package/cjs/helper/mobileUtil.js.map +1 -1
- package/cjs/helper/monitor.js.map +1 -1
- package/cjs/helper/observable.js.map +1 -1
- package/cjs/helper/readBytesFromStream.js.map +1 -1
- package/cjs/helper/sanitize.js.map +1 -1
- package/cjs/helper/serialisation/contextManager.js.map +1 -1
- package/cjs/helper/serialisation/heavyCustomerDataWarning.js.map +1 -1
- package/cjs/helper/serialisation/jsonStringify.js.map +1 -1
- package/cjs/helper/serialisation/rowData.js.map +1 -1
- package/cjs/helper/serialisation/storedContextManager.js.map +1 -1
- package/cjs/helper/timer.js.map +1 -1
- package/cjs/helper/tools.js.map +1 -1
- package/cjs/helper/urlPolyfill.js.map +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/init.js.map +1 -1
- package/cjs/report/reportObservable.js.map +1 -1
- package/cjs/session/sessionConstants.js.map +1 -1
- package/cjs/session/sessionCookieStore.js.map +1 -1
- package/cjs/session/sessionManagement.js +7 -2
- package/cjs/session/sessionManagement.js.map +1 -1
- package/cjs/session/sessionStore.js +28 -4
- package/cjs/session/sessionStore.js.map +1 -1
- package/cjs/synthetics/syntheticsWorkerValues.js.map +1 -1
- package/cjs/synthetics/usr.js.map +1 -1
- package/cjs/telemetry/telemetry.js.map +1 -1
- package/cjs/telemetry/types.js.map +1 -1
- package/cjs/tracekit/computeStackTrace.js.map +1 -1
- package/cjs/tracekit/index.js.map +1 -1
- package/cjs/tracekit/tracekit.js.map +1 -1
- package/cjs/transport/batch.js.map +1 -1
- 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.map +1 -1
- package/cjs/transport/sendWithRetryStrategy.js.map +1 -1
- package/cjs/transport/startBatchWithReplica.js.map +1 -1
- package/cjs/user/index.js.map +1 -1
- package/cjs/user/user.js.map +1 -1
- package/cjs/worker.js.map +1 -1
- package/esm/browser/addEventListener.js.map +1 -1
- package/esm/browser/cookie.js +2 -1
- package/esm/browser/cookie.js.map +1 -1
- package/esm/browser/fetchObservable.js.map +1 -1
- package/esm/browser/htmlDomUtils.js +6 -1
- package/esm/browser/htmlDomUtils.js.map +1 -1
- package/esm/browser/pageExitObservable.js.map +1 -1
- package/esm/browser/runOnReadyState.js.map +1 -1
- package/esm/browser/scroll.js.map +1 -1
- package/esm/browser/xhrObservable.js.map +1 -1
- package/esm/configuration/configuration.js +13 -5
- package/esm/configuration/configuration.js.map +1 -1
- package/esm/configuration/transportConfiguration.js.map +1 -1
- package/esm/console/consoleObservable.js +5 -3
- package/esm/console/consoleObservable.js.map +1 -1
- package/esm/dataMap.js +3 -1
- package/esm/dataMap.js.map +1 -1
- package/esm/error/trackRuntimeError.js.map +1 -1
- package/esm/helper/boundedBuffer.js.map +1 -1
- package/esm/helper/byteUtils.js.map +1 -1
- package/esm/helper/catchUserErrors.js.map +1 -1
- package/esm/helper/contextHistory.js.map +1 -1
- package/esm/helper/createEventRateLimiter.js.map +1 -1
- package/esm/helper/deviceInfo.js.map +1 -1
- package/esm/helper/display.js.map +1 -1
- package/esm/helper/enums.js.map +1 -1
- package/esm/helper/errorTools.js.map +1 -1
- package/esm/helper/eventEmitter.js.map +1 -1
- package/esm/helper/getZoneJsOriginalValue.js.map +1 -1
- package/esm/helper/instrumentMethod.js +7 -6
- package/esm/helper/instrumentMethod.js.map +1 -1
- package/esm/helper/lifeCycle.js +2 -0
- package/esm/helper/lifeCycle.js.map +1 -1
- package/esm/helper/limitModification.js.map +1 -1
- package/esm/helper/mobileUtil.js.map +1 -1
- package/esm/helper/monitor.js.map +1 -1
- package/esm/helper/observable.js.map +1 -1
- package/esm/helper/readBytesFromStream.js.map +1 -1
- package/esm/helper/sanitize.js.map +1 -1
- package/esm/helper/serialisation/contextManager.js.map +1 -1
- package/esm/helper/serialisation/heavyCustomerDataWarning.js.map +1 -1
- package/esm/helper/serialisation/jsonStringify.js.map +1 -1
- package/esm/helper/serialisation/rowData.js.map +1 -1
- package/esm/helper/serialisation/storedContextManager.js.map +1 -1
- package/esm/helper/timer.js.map +1 -1
- package/esm/helper/tools.js.map +1 -1
- package/esm/helper/urlPolyfill.js.map +1 -1
- package/esm/index.js.map +1 -1
- package/esm/init.js.map +1 -1
- package/esm/report/reportObservable.js.map +1 -1
- package/esm/session/sessionConstants.js.map +1 -1
- package/esm/session/sessionCookieStore.js.map +1 -1
- package/esm/session/sessionManagement.js +7 -2
- package/esm/session/sessionManagement.js.map +1 -1
- package/esm/session/sessionStore.js +27 -6
- package/esm/session/sessionStore.js.map +1 -1
- package/esm/synthetics/syntheticsWorkerValues.js.map +1 -1
- package/esm/synthetics/usr.js.map +1 -1
- package/esm/telemetry/telemetry.js.map +1 -1
- package/esm/telemetry/types.js.map +1 -1
- package/esm/tracekit/computeStackTrace.js.map +1 -1
- package/esm/tracekit/index.js.map +1 -1
- package/esm/tracekit/tracekit.js.map +1 -1
- package/esm/transport/batch.js.map +1 -1
- 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.map +1 -1
- package/esm/transport/sendWithRetryStrategy.js.map +1 -1
- package/esm/transport/startBatchWithReplica.js.map +1 -1
- package/esm/user/index.js.map +1 -1
- package/esm/user/user.js.map +1 -1
- package/esm/worker.js.map +1 -1
- package/package.json +2 -2
- package/src/browser/cookie.js +3 -1
- package/src/browser/htmlDomUtils.js +7 -1
- package/src/configuration/configuration.js +17 -9
- package/src/console/consoleObservable.js +8 -4
- package/src/dataMap.js +3 -1
- package/src/helper/instrumentMethod.js +5 -4
- package/src/helper/lifeCycle.js +2 -0
- package/src/session/sessionManagement.js +7 -2
- package/src/session/sessionStore.js +26 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize.js","names":["display","ONE_KIBI_BYTE","detachToJsonMethod","SANITIZE_DEFAULT_MAX_CHARACTER_COUNT","JSON_PATH_ROOT_ELEMENT","KEY_DECORATION_LENGTH","sanitize","source","maxCharacterCount","undefined","restoreObjectPrototypeToJson","Object","prototype","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","_typeof","sanitizePrimitivesAndFunctions","sanitizedSource","sanitizeObjects","sourceAsObject","has","get","currentPath","set","push","value","toString","name","description","Event","isTrusted","result","match","_unused","object","toJSON","_unused2","changeType","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 {\n isTrusted: value.isTrusted\n }\n }\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}\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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"}
|
|
1
|
+
{"version":3,"file":"sanitize.js","names":["display","ONE_KIBI_BYTE","detachToJsonMethod","SANITIZE_DEFAULT_MAX_CHARACTER_COUNT","JSON_PATH_ROOT_ELEMENT","KEY_DECORATION_LENGTH","sanitize","source","maxCharacterCount","undefined","restoreObjectPrototypeToJson","Object","prototype","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","_typeof","sanitizePrimitivesAndFunctions","sanitizedSource","sanitizeObjects","sourceAsObject","has","get","currentPath","set","push","value","toString","name","description","Event","isTrusted","result","match","_unused","object","toJSON","_unused2","changeType","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 {\n isTrusted: value.isTrusted\n }\n }\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}\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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextManager.js","names":["computeBytesCount","deepClone","throttle","getType","sanitize","jsonStringify","Observable","warnIfCustomerDataLimitReached","BYTES_COMPUTATION_THROTTLING_DELAY","createContextManager","customerDataType","computeBytesCountImpl","context","bytesCountCache","alreadyWarned","changeObservable","computeBytesCountThrottled","throttled","contextManager","getBytesCount","get","add","key","value","notify","remove","set","newContext","getContext","setContext","clearContext","setContextProperty","property","removeContextProperty"],"sources":["../../../src/helper/serialisation/contextManager.js"],"sourcesContent":["import { computeBytesCount } from '../byteUtils'\nimport { deepClone, throttle, getType } from '../tools'\nimport { sanitize } from '../sanitize'\nimport { jsonStringify } from './jsonStringify'\nimport { Observable } from '../observable'\nimport { warnIfCustomerDataLimitReached } from './heavyCustomerDataWarning'\n\nexport var BYTES_COMPUTATION_THROTTLING_DELAY = 200\n\nexport function createContextManager(customerDataType, computeBytesCountImpl) {\n if (typeof computeBytesCountImpl === 'undefined') {\n computeBytesCountImpl = computeBytesCount\n }\n var context = {}\n var bytesCountCache\n var alreadyWarned = false\n var changeObservable = new Observable()\n // Throttle the bytes computation to minimize the impact on performance.\n // Especially useful if the user call context APIs synchronously multiple times in a row\n var computeBytesCountThrottled = throttle(function (context) {\n bytesCountCache = computeBytesCountImpl(jsonStringify(context))\n if (!alreadyWarned) {\n alreadyWarned = warnIfCustomerDataLimitReached(\n bytesCountCache,\n customerDataType\n )\n }\n }, BYTES_COMPUTATION_THROTTLING_DELAY).throttled\n\n var contextManager = {\n getBytesCount: function () {\n return bytesCountCache\n },\n /** @deprecated use getContext instead */\n get: function () {\n return context\n },\n\n /** @deprecated use setContextProperty instead */\n add: function (key, value) {\n context[key] = value\n computeBytesCountThrottled(context)\n changeObservable.notify()\n },\n\n /** @deprecated renamed to removeContextProperty */\n remove: function (key) {\n delete context[key]\n computeBytesCountThrottled(context)\n changeObservable.notify()\n },\n\n /** @deprecated use setContext instead */\n set: function (newContext) {\n context = newContext\n computeBytesCountThrottled(context)\n changeObservable.notify()\n },\n\n getContext: function () {\n return deepClone(context)\n },\n\n setContext: function (newContext) {\n if (getType(newContext) === 'object') {\n context = sanitize(newContext)\n computeBytesCountThrottled(context)\n } else {\n contextManager.clearContext()\n }\n changeObservable.notify()\n },\n\n setContextProperty: function (key, property) {\n context[key] = deepClone(property)\n computeBytesCountThrottled(context)\n changeObservable.notify()\n },\n\n removeContextProperty: function (key) {\n delete context[key]\n computeBytesCountThrottled(context)\n changeObservable.notify()\n },\n\n clearContext: function () {\n context = {}\n bytesCountCache = 0\n changeObservable.notify()\n },\n changeObservable: changeObservable\n }\n return contextManager\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contextManager.js","names":["computeBytesCount","deepClone","throttle","getType","sanitize","jsonStringify","Observable","warnIfCustomerDataLimitReached","BYTES_COMPUTATION_THROTTLING_DELAY","createContextManager","customerDataType","computeBytesCountImpl","context","bytesCountCache","alreadyWarned","changeObservable","computeBytesCountThrottled","throttled","contextManager","getBytesCount","get","add","key","value","notify","remove","set","newContext","getContext","setContext","clearContext","setContextProperty","property","removeContextProperty"],"sources":["../../../src/helper/serialisation/contextManager.js"],"sourcesContent":["import { computeBytesCount } from '../byteUtils'\nimport { deepClone, throttle, getType } from '../tools'\nimport { sanitize } from '../sanitize'\nimport { jsonStringify } from './jsonStringify'\nimport { Observable } from '../observable'\nimport { warnIfCustomerDataLimitReached } from './heavyCustomerDataWarning'\n\nexport var BYTES_COMPUTATION_THROTTLING_DELAY = 200\n\nexport function createContextManager(customerDataType, computeBytesCountImpl) {\n if (typeof computeBytesCountImpl === 'undefined') {\n computeBytesCountImpl = computeBytesCount\n }\n var context = {}\n var bytesCountCache\n var alreadyWarned = false\n var changeObservable = new Observable()\n // Throttle the bytes computation to minimize the impact on performance.\n // Especially useful if the user call context APIs synchronously multiple times in a row\n var computeBytesCountThrottled = throttle(function (context) {\n bytesCountCache = computeBytesCountImpl(jsonStringify(context))\n if (!alreadyWarned) {\n alreadyWarned = warnIfCustomerDataLimitReached(\n bytesCountCache,\n customerDataType\n )\n }\n }, BYTES_COMPUTATION_THROTTLING_DELAY).throttled\n\n var contextManager = {\n getBytesCount: function () {\n return bytesCountCache\n },\n /** @deprecated use getContext instead */\n get: function () {\n return context\n },\n\n /** @deprecated use setContextProperty instead */\n add: function (key, value) {\n context[key] = value\n computeBytesCountThrottled(context)\n changeObservable.notify()\n },\n\n /** @deprecated renamed to removeContextProperty */\n remove: function (key) {\n delete context[key]\n computeBytesCountThrottled(context)\n changeObservable.notify()\n },\n\n /** @deprecated use setContext instead */\n set: function (newContext) {\n context = newContext\n computeBytesCountThrottled(context)\n changeObservable.notify()\n },\n\n getContext: function () {\n return deepClone(context)\n },\n\n setContext: function (newContext) {\n if (getType(newContext) === 'object') {\n context = sanitize(newContext)\n computeBytesCountThrottled(context)\n } else {\n contextManager.clearContext()\n }\n changeObservable.notify()\n },\n\n setContextProperty: function (key, property) {\n context[key] = deepClone(property)\n computeBytesCountThrottled(context)\n changeObservable.notify()\n },\n\n removeContextProperty: function (key) {\n delete context[key]\n computeBytesCountThrottled(context)\n changeObservable.notify()\n },\n\n clearContext: function () {\n context = {}\n bytesCountCache = 0\n changeObservable.notify()\n },\n changeObservable: changeObservable\n }\n return contextManager\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,cAAc;AAChD,SAASC,SAAS,EAAEC,QAAQ,EAAEC,OAAO,QAAQ,UAAU;AACvD,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAASC,8BAA8B,QAAQ,4BAA4B;AAE3E,OAAO,IAAIC,kCAAkC,GAAG,GAAG;AAEnD,OAAO,SAASC,oBAAoBA,CAACC,gBAAgB,EAAEC,qBAAqB,EAAE;EAC5E,IAAI,OAAOA,qBAAqB,KAAK,WAAW,EAAE;IAChDA,qBAAqB,GAAGX,iBAAiB;EAC3C;EACA,IAAIY,OAAO,GAAG,CAAC,CAAC;EAChB,IAAIC,eAAe;EACnB,IAAIC,aAAa,GAAG,KAAK;EACzB,IAAIC,gBAAgB,GAAG,IAAIT,UAAU,CAAC,CAAC;EACvC;EACA;EACA,IAAIU,0BAA0B,GAAGd,QAAQ,CAAC,UAAUU,OAAO,EAAE;IAC3DC,eAAe,GAAGF,qBAAqB,CAACN,aAAa,CAACO,OAAO,CAAC,CAAC;IAC/D,IAAI,CAACE,aAAa,EAAE;MAClBA,aAAa,GAAGP,8BAA8B,CAC5CM,eAAe,EACfH,gBACF,CAAC;IACH;EACF,CAAC,EAAEF,kCAAkC,CAAC,CAACS,SAAS;EAEhD,IAAIC,cAAc,GAAG;IACnBC,aAAa,EAAE,SAAAA,cAAA,EAAY;MACzB,OAAON,eAAe;IACxB,CAAC;IACD;IACAO,GAAG,EAAE,SAAAA,IAAA,EAAY;MACf,OAAOR,OAAO;IAChB,CAAC;IAED;IACAS,GAAG,EAAE,SAAAA,IAAUC,GAAG,EAAEC,KAAK,EAAE;MACzBX,OAAO,CAACU,GAAG,CAAC,GAAGC,KAAK;MACpBP,0BAA0B,CAACJ,OAAO,CAAC;MACnCG,gBAAgB,CAACS,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED;IACAC,MAAM,EAAE,SAAAA,OAAUH,GAAG,EAAE;MACrB,OAAOV,OAAO,CAACU,GAAG,CAAC;MACnBN,0BAA0B,CAACJ,OAAO,CAAC;MACnCG,gBAAgB,CAACS,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED;IACAE,GAAG,EAAE,SAAAA,IAAUC,UAAU,EAAE;MACzBf,OAAO,GAAGe,UAAU;MACpBX,0BAA0B,CAACJ,OAAO,CAAC;MACnCG,gBAAgB,CAACS,MAAM,CAAC,CAAC;IAC3B,CAAC;IAEDI,UAAU,EAAE,SAAAA,WAAA,EAAY;MACtB,OAAO3B,SAAS,CAACW,OAAO,CAAC;IAC3B,CAAC;IAEDiB,UAAU,EAAE,SAAAA,WAAUF,UAAU,EAAE;MAChC,IAAIxB,OAAO,CAACwB,UAAU,CAAC,KAAK,QAAQ,EAAE;QACpCf,OAAO,GAAGR,QAAQ,CAACuB,UAAU,CAAC;QAC9BX,0BAA0B,CAACJ,OAAO,CAAC;MACrC,CAAC,MAAM;QACLM,cAAc,CAACY,YAAY,CAAC,CAAC;MAC/B;MACAf,gBAAgB,CAACS,MAAM,CAAC,CAAC;IAC3B,CAAC;IAEDO,kBAAkB,EAAE,SAAAA,mBAAUT,GAAG,EAAEU,QAAQ,EAAE;MAC3CpB,OAAO,CAACU,GAAG,CAAC,GAAGrB,SAAS,CAAC+B,QAAQ,CAAC;MAClChB,0BAA0B,CAACJ,OAAO,CAAC;MACnCG,gBAAgB,CAACS,MAAM,CAAC,CAAC;IAC3B,CAAC;IAEDS,qBAAqB,EAAE,SAAAA,sBAAUX,GAAG,EAAE;MACpC,OAAOV,OAAO,CAACU,GAAG,CAAC;MACnBN,0BAA0B,CAACJ,OAAO,CAAC;MACnCG,gBAAgB,CAACS,MAAM,CAAC,CAAC;IAC3B,CAAC;IAEDM,YAAY,EAAE,SAAAA,aAAA,EAAY;MACxBlB,OAAO,GAAG,CAAC,CAAC;MACZC,eAAe,GAAG,CAAC;MACnBE,gBAAgB,CAACS,MAAM,CAAC,CAAC;IAC3B,CAAC;IACDT,gBAAgB,EAAEA;EACpB,CAAC;EACD,OAAOG,cAAc;AACvB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heavyCustomerDataWarning.js","names":["ONE_KIBI_BYTE","display","CUSTOMER_DATA_BYTES_LIMIT","CustomerDataType","FeatureFlag","User","GlobalContext","LoggerContext","warnIfCustomerDataLimitReached","bytesCount","customerDataType","warn"],"sources":["../../../src/helper/serialisation/heavyCustomerDataWarning.js"],"sourcesContent":["import { ONE_KIBI_BYTE } from '../byteUtils'\nimport { display } from '../display'\n\n// 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\nexport var CUSTOMER_DATA_BYTES_LIMIT = 3 * ONE_KIBI_BYTE\n\nexport var CustomerDataType = {\n FeatureFlag: 'feature flag evaluation',\n User: 'user',\n GlobalContext: 'global context',\n LoggerContext: 'logger context'\n}\n\nexport function warnIfCustomerDataLimitReached(bytesCount, customerDataType) {\n if (bytesCount > CUSTOMER_DATA_BYTES_LIMIT) {\n display.warn(\n 'The ' +\n customerDataType +\n 'data is over ' +\n CUSTOMER_DATA_BYTES_LIMIT / ONE_KIBI_BYTE +\n \" KiB. On low connectivity, the SDK has the potential to exhaust the user's upload bandwidth.\"\n )\n return true\n }\n return false\n}\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,cAAc;AAC5C,SAASC,OAAO,QAAQ,YAAY;;AAEpC;AACA;AACA;AACA,OAAO,IAAIC,yBAAyB,GAAG,CAAC,GAAGF,aAAa;AAExD,OAAO,IAAIG,gBAAgB,GAAG;EAC5BC,WAAW,EAAE,yBAAyB;EACtCC,IAAI,EAAE,MAAM;EACZC,aAAa,EAAE,gBAAgB;EAC/BC,aAAa,EAAE;AACjB,CAAC;AAED,OAAO,SAASC,8BAA8BA,CAACC,UAAU,EAAEC,gBAAgB,EAAE;EAC3E,IAAID,UAAU,GAAGP,yBAAyB,EAAE;IAC1CD,OAAO,CAACU,IAAI,CACV,MAAM,GACJD,gBAAgB,GAChB,eAAe,GACfR,yBAAyB,GAAGF,aAAa,GACzC,8FACJ,CAAC;IACD,OAAO,IAAI;EACb;EACA,OAAO,KAAK;AACd"}
|
|
1
|
+
{"version":3,"file":"heavyCustomerDataWarning.js","names":["ONE_KIBI_BYTE","display","CUSTOMER_DATA_BYTES_LIMIT","CustomerDataType","FeatureFlag","User","GlobalContext","LoggerContext","warnIfCustomerDataLimitReached","bytesCount","customerDataType","warn"],"sources":["../../../src/helper/serialisation/heavyCustomerDataWarning.js"],"sourcesContent":["import { ONE_KIBI_BYTE } from '../byteUtils'\nimport { display } from '../display'\n\n// 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\nexport var CUSTOMER_DATA_BYTES_LIMIT = 3 * ONE_KIBI_BYTE\n\nexport var CustomerDataType = {\n FeatureFlag: 'feature flag evaluation',\n User: 'user',\n GlobalContext: 'global context',\n LoggerContext: 'logger context'\n}\n\nexport function warnIfCustomerDataLimitReached(bytesCount, customerDataType) {\n if (bytesCount > CUSTOMER_DATA_BYTES_LIMIT) {\n display.warn(\n 'The ' +\n customerDataType +\n 'data is over ' +\n CUSTOMER_DATA_BYTES_LIMIT / ONE_KIBI_BYTE +\n \" KiB. On low connectivity, the SDK has the potential to exhaust the user's upload bandwidth.\"\n )\n return true\n }\n return false\n}\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,cAAc;AAC5C,SAASC,OAAO,QAAQ,YAAY;;AAEpC;AACA;AACA;AACA,OAAO,IAAIC,yBAAyB,GAAG,CAAC,GAAGF,aAAa;AAExD,OAAO,IAAIG,gBAAgB,GAAG;EAC5BC,WAAW,EAAE,yBAAyB;EACtCC,IAAI,EAAE,MAAM;EACZC,aAAa,EAAE,gBAAgB;EAC/BC,aAAa,EAAE;AACjB,CAAC;AAED,OAAO,SAASC,8BAA8BA,CAACC,UAAU,EAAEC,gBAAgB,EAAE;EAC3E,IAAID,UAAU,GAAGP,yBAAyB,EAAE;IAC1CD,OAAO,CAACU,IAAI,CACV,MAAM,GACJD,gBAAgB,GAChB,eAAe,GACfR,yBAAyB,GAAGF,aAAa,GACzC,8FACJ,CAAC;IACD,OAAO,IAAI;EACb;EACA,OAAO,KAAK;AACd","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonStringify.js","names":["noop","jsonStringify","value","replacer","space","_typeof","JSON","stringify","restoreObjectPrototypeToJson","detachToJsonMethod","Object","prototype","restoreArrayPrototypeToJson","Array","restoreValuePrototypeToJson","getPrototypeOf","restoreValueToJson","_unused","object","objectToJson","toJSON"],"sources":["../../../src/helper/serialisation/jsonStringify.js"],"sourcesContent":["import { noop } from '../tools'\n\n/**\n * Custom implementation of JSON.stringify that ignores some toJSON methods. We need to do that\n * because some sites badly override toJSON on certain objects. Removing all toJSON methods from\n * nested values would be too costly, so we just detach them from the root value, and native classes\n * used to build JSON values (Array and Object).\n *\n * Note: this still assumes that JSON.stringify is correct.\n */\nexport function jsonStringify(value, replacer, space) {\n if (typeof value !== 'object' || value === null) {\n return JSON.stringify(value)\n }\n\n // Note: The order matter here. We need to detach toJSON methods on parent classes before their\n // subclasses.\n var restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype)\n var restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype)\n var restoreValuePrototypeToJson = detachToJsonMethod(\n Object.getPrototypeOf(value)\n )\n var restoreValueToJson = detachToJsonMethod(value)\n\n try {\n return JSON.stringify(value, replacer, space)\n } catch {\n return '<error: unable to serialize object>'\n } finally {\n restoreObjectPrototypeToJson()\n restoreArrayPrototypeToJson()\n restoreValuePrototypeToJson()\n restoreValueToJson()\n }\n}\n\nexport function detachToJsonMethod(value) {\n const object = value\n const objectToJson = object.toJSON\n if (objectToJson) {\n delete object.toJSON\n return () => {\n object.toJSON = objectToJson\n }\n }\n return noop\n}\n"],"mappings":";AAAA,SAASA,IAAI,QAAQ,UAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAACC,KAAK,EAAEC,QAAQ,EAAEC,KAAK,EAAE;EACpD,IAAIC,OAAA,CAAOH,KAAK,MAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,EAAE;IAC/C,OAAOI,IAAI,CAACC,SAAS,CAACL,KAAK,CAAC;EAC9B;;EAEA;EACA;EACA,IAAIM,4BAA4B,GAAGC,kBAAkB,CAACC,MAAM,CAACC,SAAS,CAAC;EACvE,IAAIC,2BAA2B,GAAGH,kBAAkB,CAACI,KAAK,CAACF,SAAS,CAAC;EACrE,IAAIG,2BAA2B,GAAGL,kBAAkB,CAClDC,MAAM,CAACK,cAAc,CAACb,KAAK,CAC7B,CAAC;EACD,IAAIc,kBAAkB,GAAGP,kBAAkB,CAACP,KAAK,CAAC;EAElD,IAAI;IACF,OAAOI,IAAI,CAACC,SAAS,CAACL,KAAK,EAAEC,QAAQ,EAAEC,KAAK,CAAC;EAC/C,CAAC,CAAC,OAAAa,OAAA,EAAM;IACN,OAAO,qCAAqC;EAC9C,CAAC,SAAS;IACRT,4BAA4B,CAAC,CAAC;IAC9BI,2BAA2B,CAAC,CAAC;IAC7BE,2BAA2B,CAAC,CAAC;IAC7BE,kBAAkB,CAAC,CAAC;EACtB;AACF;AAEA,OAAO,SAASP,kBAAkBA,CAACP,KAAK,EAAE;EACxC,IAAMgB,MAAM,GAAGhB,KAAK;EACpB,IAAMiB,YAAY,GAAGD,MAAM,CAACE,MAAM;EAClC,IAAID,YAAY,EAAE;IAChB,OAAOD,MAAM,CAACE,MAAM;IACpB,OAAO,YAAM;MACXF,MAAM,CAACE,MAAM,GAAGD,YAAY;IAC9B,CAAC;EACH;EACA,OAAOnB,IAAI;AACb"}
|
|
1
|
+
{"version":3,"file":"jsonStringify.js","names":["noop","jsonStringify","value","replacer","space","_typeof","JSON","stringify","restoreObjectPrototypeToJson","detachToJsonMethod","Object","prototype","restoreArrayPrototypeToJson","Array","restoreValuePrototypeToJson","getPrototypeOf","restoreValueToJson","_unused","object","objectToJson","toJSON"],"sources":["../../../src/helper/serialisation/jsonStringify.js"],"sourcesContent":["import { noop } from '../tools'\n\n/**\n * Custom implementation of JSON.stringify that ignores some toJSON methods. We need to do that\n * because some sites badly override toJSON on certain objects. Removing all toJSON methods from\n * nested values would be too costly, so we just detach them from the root value, and native classes\n * used to build JSON values (Array and Object).\n *\n * Note: this still assumes that JSON.stringify is correct.\n */\nexport function jsonStringify(value, replacer, space) {\n if (typeof value !== 'object' || value === null) {\n return JSON.stringify(value)\n }\n\n // Note: The order matter here. We need to detach toJSON methods on parent classes before their\n // subclasses.\n var restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype)\n var restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype)\n var restoreValuePrototypeToJson = detachToJsonMethod(\n Object.getPrototypeOf(value)\n )\n var restoreValueToJson = detachToJsonMethod(value)\n\n try {\n return JSON.stringify(value, replacer, space)\n } catch {\n return '<error: unable to serialize object>'\n } finally {\n restoreObjectPrototypeToJson()\n restoreArrayPrototypeToJson()\n restoreValuePrototypeToJson()\n restoreValueToJson()\n }\n}\n\nexport function detachToJsonMethod(value) {\n const object = value\n const objectToJson = object.toJSON\n if (objectToJson) {\n delete object.toJSON\n return () => {\n object.toJSON = objectToJson\n }\n }\n return noop\n}\n"],"mappings":";AAAA,SAASA,IAAI,QAAQ,UAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAACC,KAAK,EAAEC,QAAQ,EAAEC,KAAK,EAAE;EACpD,IAAIC,OAAA,CAAOH,KAAK,MAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,EAAE;IAC/C,OAAOI,IAAI,CAACC,SAAS,CAACL,KAAK,CAAC;EAC9B;;EAEA;EACA;EACA,IAAIM,4BAA4B,GAAGC,kBAAkB,CAACC,MAAM,CAACC,SAAS,CAAC;EACvE,IAAIC,2BAA2B,GAAGH,kBAAkB,CAACI,KAAK,CAACF,SAAS,CAAC;EACrE,IAAIG,2BAA2B,GAAGL,kBAAkB,CAClDC,MAAM,CAACK,cAAc,CAACb,KAAK,CAC7B,CAAC;EACD,IAAIc,kBAAkB,GAAGP,kBAAkB,CAACP,KAAK,CAAC;EAElD,IAAI;IACF,OAAOI,IAAI,CAACC,SAAS,CAACL,KAAK,EAAEC,QAAQ,EAAEC,KAAK,CAAC;EAC/C,CAAC,CAAC,OAAAa,OAAA,EAAM;IACN,OAAO,qCAAqC;EAC9C,CAAC,SAAS;IACRT,4BAA4B,CAAC,CAAC;IAC9BI,2BAA2B,CAAC,CAAC;IAC7BE,2BAA2B,CAAC,CAAC;IAC7BE,kBAAkB,CAAC,CAAC;EACtB;AACF;AAEA,OAAO,SAASP,kBAAkBA,CAACP,KAAK,EAAE;EACxC,IAAMgB,MAAM,GAAGhB,KAAK;EACpB,IAAMiB,YAAY,GAAGD,MAAM,CAACE,MAAM;EAClC,IAAID,YAAY,EAAE;IAChB,OAAOD,MAAM,CAACE,MAAM;IACpB,OAAO,YAAM;MACXF,MAAM,CAACE,MAAM,GAAGD,YAAY;IAC9B,CAAC;EACH;EACA,OAAOnB,IAAI;AACb","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rowData.js","names":["jsonStringify","isString","isNumber","escapeRowData","str","_typeof","reg","String","replace","word","escapeJsonValue","value","isTag","escapeFieldValueStr","escapeRowField"],"sources":["../../../src/helper/serialisation/rowData.js"],"sourcesContent":["import { jsonStringify } from './jsonStringify'\nimport { isString, isNumber } from '../tools'\nexport function escapeRowData(str) {\n if (typeof str === 'object' && str) {\n str = jsonStringify(str)\n } else if (!isString(str)) {\n return str\n }\n var reg = /[\\s=,\"]/g\n return String(str).replace(reg, function (word) {\n return '\\\\' + word\n })\n}\n\nexport function escapeJsonValue(value, isTag) {\n if (typeof value === 'object' && value) {\n value = jsonStringify(value)\n } else if (isTag) {\n // tag json 只能是字符串\n value = '' + value\n }\n\n return value\n}\n\nexport function escapeFieldValueStr(str) {\n return '\"' + str.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"') + '\"'\n}\nexport function escapeRowField(value) {\n if (typeof value === 'object' && value) {\n return escapeFieldValueStr(jsonStringify(value))\n } else if (isString(value)) {\n return escapeFieldValueStr(value)\n } else {\n return value\n }\n}\n"],"mappings":";AAAA,SAASA,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,QAAQ,EAAEC,QAAQ,QAAQ,UAAU;AAC7C,OAAO,SAASC,aAAaA,CAACC,GAAG,EAAE;EACjC,IAAIC,OAAA,CAAOD,GAAG,MAAK,QAAQ,IAAIA,GAAG,EAAE;IAClCA,GAAG,GAAGJ,aAAa,CAACI,GAAG,CAAC;EAC1B,CAAC,MAAM,IAAI,CAACH,QAAQ,CAACG,GAAG,CAAC,EAAE;IACzB,OAAOA,GAAG;EACZ;EACA,IAAIE,GAAG,GAAG,UAAU;EACpB,OAAOC,MAAM,CAACH,GAAG,CAAC,CAACI,OAAO,CAACF,GAAG,EAAE,UAAUG,IAAI,EAAE;IAC9C,OAAO,IAAI,GAAGA,IAAI;EACpB,CAAC,CAAC;AACJ;AAEA,OAAO,SAASC,eAAeA,CAACC,KAAK,EAAEC,KAAK,EAAE;EAC5C,IAAIP,OAAA,CAAOM,KAAK,MAAK,QAAQ,IAAIA,KAAK,EAAE;IACtCA,KAAK,GAAGX,aAAa,CAACW,KAAK,CAAC;EAC9B,CAAC,MAAM,IAAIC,KAAK,EAAE;IAChB;IACAD,KAAK,GAAG,EAAE,GAAGA,KAAK;EACpB;EAEA,OAAOA,KAAK;AACd;AAEA,OAAO,SAASE,mBAAmBA,CAACT,GAAG,EAAE;EACvC,OAAO,GAAG,GAAGA,GAAG,CAACI,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAACA,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG;AACpE;AACA,OAAO,SAASM,cAAcA,CAACH,KAAK,EAAE;EACpC,IAAIN,OAAA,CAAOM,KAAK,MAAK,QAAQ,IAAIA,KAAK,EAAE;IACtC,OAAOE,mBAAmB,CAACb,aAAa,CAACW,KAAK,CAAC,CAAC;EAClD,CAAC,MAAM,IAAIV,QAAQ,CAACU,KAAK,CAAC,EAAE;IAC1B,OAAOE,mBAAmB,CAACF,KAAK,CAAC;EACnC,CAAC,MAAM;IACL,OAAOA,KAAK;EACd;AACF"}
|
|
1
|
+
{"version":3,"file":"rowData.js","names":["jsonStringify","isString","isNumber","escapeRowData","str","_typeof","reg","String","replace","word","escapeJsonValue","value","isTag","escapeFieldValueStr","escapeRowField"],"sources":["../../../src/helper/serialisation/rowData.js"],"sourcesContent":["import { jsonStringify } from './jsonStringify'\nimport { isString, isNumber } from '../tools'\nexport function escapeRowData(str) {\n if (typeof str === 'object' && str) {\n str = jsonStringify(str)\n } else if (!isString(str)) {\n return str\n }\n var reg = /[\\s=,\"]/g\n return String(str).replace(reg, function (word) {\n return '\\\\' + word\n })\n}\n\nexport function escapeJsonValue(value, isTag) {\n if (typeof value === 'object' && value) {\n value = jsonStringify(value)\n } else if (isTag) {\n // tag json 只能是字符串\n value = '' + value\n }\n\n return value\n}\n\nexport function escapeFieldValueStr(str) {\n return '\"' + str.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"') + '\"'\n}\nexport function escapeRowField(value) {\n if (typeof value === 'object' && value) {\n return escapeFieldValueStr(jsonStringify(value))\n } else if (isString(value)) {\n return escapeFieldValueStr(value)\n } else {\n return value\n }\n}\n"],"mappings":";AAAA,SAASA,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,QAAQ,EAAEC,QAAQ,QAAQ,UAAU;AAC7C,OAAO,SAASC,aAAaA,CAACC,GAAG,EAAE;EACjC,IAAIC,OAAA,CAAOD,GAAG,MAAK,QAAQ,IAAIA,GAAG,EAAE;IAClCA,GAAG,GAAGJ,aAAa,CAACI,GAAG,CAAC;EAC1B,CAAC,MAAM,IAAI,CAACH,QAAQ,CAACG,GAAG,CAAC,EAAE;IACzB,OAAOA,GAAG;EACZ;EACA,IAAIE,GAAG,GAAG,UAAU;EACpB,OAAOC,MAAM,CAACH,GAAG,CAAC,CAACI,OAAO,CAACF,GAAG,EAAE,UAAUG,IAAI,EAAE;IAC9C,OAAO,IAAI,GAAGA,IAAI;EACpB,CAAC,CAAC;AACJ;AAEA,OAAO,SAASC,eAAeA,CAACC,KAAK,EAAEC,KAAK,EAAE;EAC5C,IAAIP,OAAA,CAAOM,KAAK,MAAK,QAAQ,IAAIA,KAAK,EAAE;IACtCA,KAAK,GAAGX,aAAa,CAACW,KAAK,CAAC;EAC9B,CAAC,MAAM,IAAIC,KAAK,EAAE;IAChB;IACAD,KAAK,GAAG,EAAE,GAAGA,KAAK;EACpB;EAEA,OAAOA,KAAK;AACd;AAEA,OAAO,SAASE,mBAAmBA,CAACT,GAAG,EAAE;EACvC,OAAO,GAAG,GAAGA,GAAG,CAACI,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAACA,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG;AACpE;AACA,OAAO,SAASM,cAAcA,CAACH,KAAK,EAAE;EACpC,IAAIN,OAAA,CAAOM,KAAK,MAAK,QAAQ,IAAIA,KAAK,EAAE;IACtC,OAAOE,mBAAmB,CAACb,aAAa,CAACW,KAAK,CAAC,CAAC;EAClD,CAAC,MAAM,IAAIV,QAAQ,CAACU,KAAK,CAAC,EAAE;IAC1B,OAAOE,mBAAmB,CAACF,KAAK,CAAC;EACnC,CAAC,MAAM;IACL,OAAOA,KAAK;EACd;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storedContextManager.js","names":["computeBytesCount","DOM_EVENT","map","addEventListener","createContextManager","CONTEXT_STORE_KEY_PREFIX","storageListeners","createStoredContextManager","productKey","customerDataType","computeBytesCountImpl","undefined","storageKey","buildStorageKey","contextManager","synchronizeWithStorage","push","window","STORAGE","params","key","changeObservable","subscribe","dumpToStorage","rawContext","localStorage","getItem","context","JSON","parse","setContext","setItem","stringify","getContext","removeStorageListeners","listener","stop"],"sources":["../../../src/helper/serialisation/storedContextManager.js"],"sourcesContent":["import { computeBytesCount } from '../byteUtils'\nimport { DOM_EVENT } from '../enums'\nimport { map } from '../tools'\nimport { addEventListener } from '../../browser/addEventListener'\nimport { createContextManager } from './contextManager'\nvar CONTEXT_STORE_KEY_PREFIX = '_gc_s'\n\nvar storageListeners = []\n\nexport function createStoredContextManager(\n productKey,\n customerDataType,\n computeBytesCountImpl\n) {\n if (computeBytesCountImpl === undefined) {\n computeBytesCountImpl = computeBytesCount\n }\n var storageKey = buildStorageKey(productKey, customerDataType)\n var contextManager = createContextManager(\n customerDataType,\n computeBytesCountImpl\n )\n\n synchronizeWithStorage()\n storageListeners.push(\n addEventListener(window, DOM_EVENT.STORAGE, function (params) {\n if (storageKey === params.key) {\n synchronizeWithStorage()\n }\n })\n )\n contextManager.changeObservable.subscribe(dumpToStorage)\n function synchronizeWithStorage() {\n var rawContext = localStorage.getItem(storageKey)\n var context = rawContext !== null ? JSON.parse(rawContext) : {}\n contextManager.setContext(context)\n }\n\n function dumpToStorage() {\n localStorage.setItem(\n storageKey,\n JSON.stringify(contextManager.getContext())\n )\n }\n return contextManager\n}\n\nexport function buildStorageKey(productKey, customerDataType) {\n return CONTEXT_STORE_KEY_PREFIX + '_' + productKey + '_' + customerDataType\n}\n\nexport function removeStorageListeners() {\n map(storageListeners, function (listener) {\n listener.stop()\n })\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,cAAc;AAChD,SAASC,SAAS,QAAQ,UAAU;AACpC,SAASC,GAAG,QAAQ,UAAU;AAC9B,SAASC,gBAAgB,QAAQ,gCAAgC;AACjE,SAASC,oBAAoB,QAAQ,kBAAkB;AACvD,IAAIC,wBAAwB,GAAG,OAAO;AAEtC,IAAIC,gBAAgB,GAAG,EAAE;AAEzB,OAAO,SAASC,0BAA0BA,CACxCC,UAAU,EACVC,gBAAgB,EAChBC,qBAAqB,EACrB;EACA,IAAIA,qBAAqB,KAAKC,SAAS,EAAE;IACvCD,qBAAqB,GAAGV,iBAAiB;EAC3C;EACA,IAAIY,UAAU,GAAGC,eAAe,CAACL,UAAU,EAAEC,gBAAgB,CAAC;EAC9D,IAAIK,cAAc,GAAGV,oBAAoB,CACvCK,gBAAgB,EAChBC,qBACF,CAAC;EAEDK,sBAAsB,CAAC,CAAC;EACxBT,gBAAgB,CAACU,IAAI,CACnBb,gBAAgB,CAACc,MAAM,EAAEhB,SAAS,CAACiB,OAAO,EAAE,UAAUC,MAAM,EAAE;IAC5D,IAAIP,UAAU,KAAKO,MAAM,CAACC,GAAG,EAAE;MAC7BL,sBAAsB,CAAC,CAAC;IAC1B;EACF,CAAC,CACH,CAAC;EACDD,cAAc,CAACO,gBAAgB,CAACC,SAAS,CAACC,aAAa,CAAC;EACxD,SAASR,sBAAsBA,CAAA,EAAG;IAChC,IAAIS,UAAU,GAAGC,YAAY,CAACC,OAAO,CAACd,UAAU,CAAC;IACjD,IAAIe,OAAO,GAAGH,UAAU,KAAK,IAAI,GAAGI,IAAI,CAACC,KAAK,CAACL,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/DV,cAAc,CAACgB,UAAU,CAACH,OAAO,CAAC;EACpC;EAEA,SAASJ,aAAaA,CAAA,EAAG;IACvBE,YAAY,CAACM,OAAO,CAClBnB,UAAU,EACVgB,IAAI,CAACI,SAAS,CAAClB,cAAc,CAACmB,UAAU,CAAC,CAAC,CAC5C,CAAC;EACH;EACA,OAAOnB,cAAc;AACvB;AAEA,OAAO,SAASD,eAAeA,CAACL,UAAU,EAAEC,gBAAgB,EAAE;EAC5D,OAAOJ,wBAAwB,GAAG,GAAG,GAAGG,UAAU,GAAG,GAAG,GAAGC,gBAAgB;AAC7E;AAEA,OAAO,SAASyB,sBAAsBA,CAAA,EAAG;EACvChC,GAAG,CAACI,gBAAgB,EAAE,UAAU6B,QAAQ,EAAE;IACxCA,QAAQ,CAACC,IAAI,CAAC,CAAC;EACjB,CAAC,CAAC;AACJ"}
|
|
1
|
+
{"version":3,"file":"storedContextManager.js","names":["computeBytesCount","DOM_EVENT","map","addEventListener","createContextManager","CONTEXT_STORE_KEY_PREFIX","storageListeners","createStoredContextManager","productKey","customerDataType","computeBytesCountImpl","undefined","storageKey","buildStorageKey","contextManager","synchronizeWithStorage","push","window","STORAGE","params","key","changeObservable","subscribe","dumpToStorage","rawContext","localStorage","getItem","context","JSON","parse","setContext","setItem","stringify","getContext","removeStorageListeners","listener","stop"],"sources":["../../../src/helper/serialisation/storedContextManager.js"],"sourcesContent":["import { computeBytesCount } from '../byteUtils'\nimport { DOM_EVENT } from '../enums'\nimport { map } from '../tools'\nimport { addEventListener } from '../../browser/addEventListener'\nimport { createContextManager } from './contextManager'\nvar CONTEXT_STORE_KEY_PREFIX = '_gc_s'\n\nvar storageListeners = []\n\nexport function createStoredContextManager(\n productKey,\n customerDataType,\n computeBytesCountImpl\n) {\n if (computeBytesCountImpl === undefined) {\n computeBytesCountImpl = computeBytesCount\n }\n var storageKey = buildStorageKey(productKey, customerDataType)\n var contextManager = createContextManager(\n customerDataType,\n computeBytesCountImpl\n )\n\n synchronizeWithStorage()\n storageListeners.push(\n addEventListener(window, DOM_EVENT.STORAGE, function (params) {\n if (storageKey === params.key) {\n synchronizeWithStorage()\n }\n })\n )\n contextManager.changeObservable.subscribe(dumpToStorage)\n function synchronizeWithStorage() {\n var rawContext = localStorage.getItem(storageKey)\n var context = rawContext !== null ? JSON.parse(rawContext) : {}\n contextManager.setContext(context)\n }\n\n function dumpToStorage() {\n localStorage.setItem(\n storageKey,\n JSON.stringify(contextManager.getContext())\n )\n }\n return contextManager\n}\n\nexport function buildStorageKey(productKey, customerDataType) {\n return CONTEXT_STORE_KEY_PREFIX + '_' + productKey + '_' + customerDataType\n}\n\nexport function removeStorageListeners() {\n map(storageListeners, function (listener) {\n listener.stop()\n })\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,cAAc;AAChD,SAASC,SAAS,QAAQ,UAAU;AACpC,SAASC,GAAG,QAAQ,UAAU;AAC9B,SAASC,gBAAgB,QAAQ,gCAAgC;AACjE,SAASC,oBAAoB,QAAQ,kBAAkB;AACvD,IAAIC,wBAAwB,GAAG,OAAO;AAEtC,IAAIC,gBAAgB,GAAG,EAAE;AAEzB,OAAO,SAASC,0BAA0BA,CACxCC,UAAU,EACVC,gBAAgB,EAChBC,qBAAqB,EACrB;EACA,IAAIA,qBAAqB,KAAKC,SAAS,EAAE;IACvCD,qBAAqB,GAAGV,iBAAiB;EAC3C;EACA,IAAIY,UAAU,GAAGC,eAAe,CAACL,UAAU,EAAEC,gBAAgB,CAAC;EAC9D,IAAIK,cAAc,GAAGV,oBAAoB,CACvCK,gBAAgB,EAChBC,qBACF,CAAC;EAEDK,sBAAsB,CAAC,CAAC;EACxBT,gBAAgB,CAACU,IAAI,CACnBb,gBAAgB,CAACc,MAAM,EAAEhB,SAAS,CAACiB,OAAO,EAAE,UAAUC,MAAM,EAAE;IAC5D,IAAIP,UAAU,KAAKO,MAAM,CAACC,GAAG,EAAE;MAC7BL,sBAAsB,CAAC,CAAC;IAC1B;EACF,CAAC,CACH,CAAC;EACDD,cAAc,CAACO,gBAAgB,CAACC,SAAS,CAACC,aAAa,CAAC;EACxD,SAASR,sBAAsBA,CAAA,EAAG;IAChC,IAAIS,UAAU,GAAGC,YAAY,CAACC,OAAO,CAACd,UAAU,CAAC;IACjD,IAAIe,OAAO,GAAGH,UAAU,KAAK,IAAI,GAAGI,IAAI,CAACC,KAAK,CAACL,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/DV,cAAc,CAACgB,UAAU,CAACH,OAAO,CAAC;EACpC;EAEA,SAASJ,aAAaA,CAAA,EAAG;IACvBE,YAAY,CAACM,OAAO,CAClBnB,UAAU,EACVgB,IAAI,CAACI,SAAS,CAAClB,cAAc,CAACmB,UAAU,CAAC,CAAC,CAC5C,CAAC;EACH;EACA,OAAOnB,cAAc;AACvB;AAEA,OAAO,SAASD,eAAeA,CAACL,UAAU,EAAEC,gBAAgB,EAAE;EAC5D,OAAOJ,wBAAwB,GAAG,GAAG,GAAGG,UAAU,GAAG,GAAG,GAAGC,gBAAgB;AAC7E;AAEA,OAAO,SAASyB,sBAAsBA,CAAA,EAAG;EACvChC,GAAG,CAACI,gBAAgB,EAAE,UAAU6B,QAAQ,EAAE;IACxCA,QAAQ,CAACC,IAAI,CAAC,CAAC;EACjB,CAAC,CAAC;AACJ","ignoreList":[]}
|
package/esm/helper/timer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timer.js","names":["getZoneJsOriginalValue","getGlobalObject","monitor","setTimeout","callback","delay","clearTimeout","timeoutId","setInterval","window","clearInterval"],"sources":["../../src/helper/timer.js"],"sourcesContent":["import { getZoneJsOriginalValue } from './getZoneJsOriginalValue'\nimport { getGlobalObject } from '../init'\nimport { monitor } from './monitor'\nexport function setTimeout(callback, delay) {\n return getZoneJsOriginalValue(getGlobalObject(), 'setTimeout')(\n monitor(callback),\n delay\n )\n}\n\nexport function clearTimeout(timeoutId) {\n getZoneJsOriginalValue(getGlobalObject(), 'clearTimeout')(timeoutId)\n}\n\nexport function setInterval(callback, delay) {\n return getZoneJsOriginalValue(window, 'setInterval')(monitor(callback), delay)\n}\n\nexport function clearInterval(timeoutId) {\n getZoneJsOriginalValue(window, 'clearInterval')(timeoutId)\n}\n"],"mappings":"AAAA,SAASA,sBAAsB,QAAQ,0BAA0B;AACjE,SAASC,eAAe,QAAQ,SAAS;AACzC,SAASC,OAAO,QAAQ,WAAW;AACnC,OAAO,SAASC,UAAUA,CAACC,QAAQ,EAAEC,KAAK,EAAE;EAC1C,OAAOL,sBAAsB,CAACC,eAAe,CAAC,CAAC,EAAE,YAAY,CAAC,CAC5DC,OAAO,CAACE,QAAQ,CAAC,EACjBC,KACF,CAAC;AACH;AAEA,OAAO,SAASC,YAAYA,CAACC,SAAS,EAAE;EACtCP,sBAAsB,CAACC,eAAe,CAAC,CAAC,EAAE,cAAc,CAAC,CAACM,SAAS,CAAC;AACtE;AAEA,OAAO,SAASC,WAAWA,CAACJ,QAAQ,EAAEC,KAAK,EAAE;EAC3C,OAAOL,sBAAsB,CAACS,MAAM,EAAE,aAAa,CAAC,CAACP,OAAO,CAACE,QAAQ,CAAC,EAAEC,KAAK,CAAC;AAChF;AAEA,OAAO,SAASK,aAAaA,CAACH,SAAS,EAAE;EACvCP,sBAAsB,CAACS,MAAM,EAAE,eAAe,CAAC,CAACF,SAAS,CAAC;AAC5D"}
|
|
1
|
+
{"version":3,"file":"timer.js","names":["getZoneJsOriginalValue","getGlobalObject","monitor","setTimeout","callback","delay","clearTimeout","timeoutId","setInterval","window","clearInterval"],"sources":["../../src/helper/timer.js"],"sourcesContent":["import { getZoneJsOriginalValue } from './getZoneJsOriginalValue'\nimport { getGlobalObject } from '../init'\nimport { monitor } from './monitor'\nexport function setTimeout(callback, delay) {\n return getZoneJsOriginalValue(getGlobalObject(), 'setTimeout')(\n monitor(callback),\n delay\n )\n}\n\nexport function clearTimeout(timeoutId) {\n getZoneJsOriginalValue(getGlobalObject(), 'clearTimeout')(timeoutId)\n}\n\nexport function setInterval(callback, delay) {\n return getZoneJsOriginalValue(window, 'setInterval')(monitor(callback), delay)\n}\n\nexport function clearInterval(timeoutId) {\n getZoneJsOriginalValue(window, 'clearInterval')(timeoutId)\n}\n"],"mappings":"AAAA,SAASA,sBAAsB,QAAQ,0BAA0B;AACjE,SAASC,eAAe,QAAQ,SAAS;AACzC,SAASC,OAAO,QAAQ,WAAW;AACnC,OAAO,SAASC,UAAUA,CAACC,QAAQ,EAAEC,KAAK,EAAE;EAC1C,OAAOL,sBAAsB,CAACC,eAAe,CAAC,CAAC,EAAE,YAAY,CAAC,CAC5DC,OAAO,CAACE,QAAQ,CAAC,EACjBC,KACF,CAAC;AACH;AAEA,OAAO,SAASC,YAAYA,CAACC,SAAS,EAAE;EACtCP,sBAAsB,CAACC,eAAe,CAAC,CAAC,EAAE,cAAc,CAAC,CAACM,SAAS,CAAC;AACtE;AAEA,OAAO,SAASC,WAAWA,CAACJ,QAAQ,EAAEC,KAAK,EAAE;EAC3C,OAAOL,sBAAsB,CAACS,MAAM,EAAE,aAAa,CAAC,CAACP,OAAO,CAACE,QAAQ,CAAC,EAAEC,KAAK,CAAC;AAChF;AAEA,OAAO,SAASK,aAAaA,CAACH,SAAS,EAAE;EACvCP,sBAAsB,CAACS,MAAM,EAAE,eAAe,CAAC,CAACF,SAAS,CAAC;AAC5D","ignoreList":[]}
|