{"version":3,"sources":["node_modules/object-assign/index.js","node_modules/react/cjs/react.production.min.js","node_modules/react/index.js","node_modules/scheduler/cjs/scheduler.production.min.js","node_modules/scheduler/index.js","node_modules/react-dom/cjs/react-dom.production.min.js","node_modules/react-dom/index.js","node_modules/tslib/tslib.es6.js","../../src/severity.ts","../../src/index.ts","../../src/async.ts","../../src/env.ts","node_modules/process/browser.js","../../src/node.ts","../../src/global.ts","../../src/is.ts","../../src/browser.ts","../../src/polyfill.ts","../../src/error.ts","../../src/flags.ts","../../src/dsn.ts","../../src/enums.ts","../../src/logger.ts","../../src/string.ts","../../src/object.ts","../../src/stacktrace.ts","../../src/supports.ts","../../src/instrument.ts","../../src/memo.ts","../../src/misc.ts","../../src/normalize.ts","../../src/path.ts","../../src/syncpromise.ts","../../src/promisebuffer.ts","../../src/status.ts","../../src/time.ts","../../src/tracing.ts","../../src/envelope.ts","../../src/clientreport.ts","../../src/ratelimit.ts","../../src/scope.ts","../../src/session.ts","../../src/hub.ts","../../src/sessionflusher.ts","../../src/api.ts","../../src/integration.ts","../../src/baseclient.ts","../../src/request.ts","../../../src/transports/noop.ts","../../src/basebackend.ts","../../src/sdk.ts","../../../src/transports/base.ts","../../src/version.ts","../../../src/integrations/functiontostring.ts","../../../src/integrations/inboundfilters.ts","../../../src/integrations/index.ts","../../../src/stack-parsers.ts","../../../src/eventbuilder.ts","../../../src/flags.ts","../../../../src/transports/utils.ts","../../../../src/transports/base.ts","../../../../src/transports/fetch.ts","../../../../src/transports/xhr.ts","../../../../src/transports/new-fetch.ts","../../../../src/transports/new-xhr.ts","../../../../src/transports/index.ts","../../../src/backend.ts","../../../src/helpers.ts","../../../../src/integrations/globalhandlers.ts","../../../../src/integrations/trycatch.ts","../../../../src/integrations/breadcrumbs.ts","../../../../src/integrations/linkederrors.ts","../../../../src/integrations/useragent.ts","../../../../src/integrations/dedupe.ts","../../../../src/integrations/index.ts","../../../src/client.ts","../../../src/sdk.ts","../../../src/version.ts","../../../src/exports.ts","../../../src/index.ts","node_modules/react-is/cjs/react-is.production.min.js","node_modules/react-is/index.js","node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../src/constants.ts","../../src/profiler.tsx","../../src/errorboundary.tsx","../../src/redux.ts","../../src/reactrouterv3.ts","../../src/reactrouter.tsx","../../../src/utils.ts","../../../src/errors.ts","../../../src/constants.ts","../../../src/span.ts","../../../src/transaction.ts","../../../src/idletransaction.ts","../../../src/hubextensions.ts","../../../../../src/integrations/node/express.ts","../../../../../src/integrations/node/postgres.ts","../../../../../src/integrations/node/mysql.ts","../../../../../src/integrations/node/mongo.ts","../../../../src/browser/backgroundtab.ts","../../../../../../src/browser/web-vitals/lib/bindReporter.ts","../../../../../../src/browser/web-vitals/lib/generateUniqueID.ts","../../../../../../src/browser/web-vitals/lib/initMetric.ts","../../../../../../src/browser/web-vitals/lib/observe.ts","../../../../../../src/browser/web-vitals/lib/onHidden.ts","../../../../../src/browser/web-vitals/getCLS.ts","../../../../../../src/browser/web-vitals/lib/getVisibilityWatcher.ts","../../../../../src/browser/web-vitals/getFID.ts","../../../../../src/browser/web-vitals/getLCP.ts","../../../../src/browser/metrics.ts","../../../../src/browser/request.ts","../../../../src/browser/router.ts","../../../../src/browser/browsertracing.ts","../../../../src/browser/index.ts","../../../src/spanstatus.ts","../src/options.ts","../../../src/jitter/full/full.jitter.ts","../../../src/jitter/no/no.jitter.ts","../../src/jitter/jitter.factory.ts","../../src/delay/delay.base.ts","../../../src/delay/skip-first/skip-first.delay.ts","../../../src/delay/always/always.delay.ts","../../src/delay/delay.factory.ts","../src/backoff.ts","node_modules/decimal.js/decimal.js","src/models/product.ts","src/util/currency.ts","src/components/orders/AddButton.tsx","src/models/orderItem.ts","node_modules/@protobufjs/aspromise/index.js","node_modules/@protobufjs/base64/index.js","node_modules/@protobufjs/eventemitter/index.js","node_modules/@protobufjs/float/index.js","node_modules/@protobufjs/inquire/index.js","node_modules/@protobufjs/utf8/index.js","node_modules/@protobufjs/pool/index.js","node_modules/protobufjs/src/util/longbits.js","node_modules/base64-js/index.js","node_modules/ieee754/index.js","node_modules/isarray/index.js","node_modules/buffer/index.js","node_modules/protobufjs/src/util/minimal.js","node_modules/protobufjs/src/writer.js","node_modules/protobufjs/src/writer_buffer.js","node_modules/protobufjs/src/reader.js","node_modules/protobufjs/src/reader_buffer.js","node_modules/protobufjs/src/rpc/service.js","node_modules/protobufjs/src/rpc.js","node_modules/protobufjs/src/roots.js","node_modules/protobufjs/src/index-minimal.js","node_modules/protobufjs/minimal.js","node_modules/long/src/long.js","src/rpc/shopaholic/google/protobuf/timestamp.ts","src/rpc/shopaholic/google/protobuf/duration.ts","src/rpc/shopaholic/shopaholic.ts","src/models/order.ts","src/hooks/localStorage.ts","src/hooks/Order.tsx","src/models/action.ts","src/service/analytics.ts","src/controllers/orders/AddController.tsx","node_modules/@stripe/react-stripe-js/dist/react-stripe.umd.js","src/components/core/Button.tsx","src/components/orders/CartButton.tsx","src/components/core/ButtonGroup.tsx","src/components/orders/CartItem.tsx","src/components/core/Divider.tsx","src/components/core/Padded.tsx","src/components/core/Deemphasized.tsx","src/components/orders/FreeShippingCTA.tsx","src/components/core/Select.tsx","src/components/orders/SelectConveyance.tsx","src/components/orders/CartTotal.tsx","src/components/core/Screen.tsx","src/controllers/orders/CartController.tsx","src/util/date.ts","src/components/app/BusinessHours.tsx","node_modules/axios/lib/helpers/bind.js","node_modules/axios/lib/utils.js","node_modules/axios/lib/helpers/buildURL.js","node_modules/axios/lib/core/InterceptorManager.js","node_modules/axios/lib/core/transformData.js","node_modules/axios/lib/cancel/isCancel.js","node_modules/axios/lib/helpers/normalizeHeaderName.js","node_modules/axios/lib/core/enhanceError.js","node_modules/axios/lib/core/createError.js","node_modules/axios/lib/core/settle.js","node_modules/axios/lib/helpers/cookies.js","node_modules/axios/lib/helpers/isAbsoluteURL.js","node_modules/axios/lib/helpers/combineURLs.js","node_modules/axios/lib/core/buildFullPath.js","node_modules/axios/lib/helpers/parseHeaders.js","node_modules/axios/lib/helpers/isURLSameOrigin.js","node_modules/axios/lib/adapters/xhr.js","node_modules/axios/lib/defaults.js","node_modules/axios/lib/core/dispatchRequest.js","node_modules/axios/lib/core/mergeConfig.js","node_modules/axios/lib/core/Axios.js","node_modules/axios/lib/cancel/Cancel.js","node_modules/axios/lib/cancel/CancelToken.js","node_modules/axios/lib/helpers/spread.js","node_modules/axios/lib/helpers/isAxiosError.js","node_modules/axios/lib/axios.js","node_modules/axios/index.js","src/service/client.ts","src/service/timetable.ts","src/controllers/app/BusinessHoursController.tsx","src/components/app/Calendar.tsx","src/components/core/Split.tsx","src/components/app/DateTimePicker.tsx","src/components/core/Message.tsx","src/controllers/orders/ConfirmTimeController.tsx","src/components/app/Loading.tsx","src/util/time.ts","src/controllers/orders/FindTimeController.tsx","src/components/core/Overlay.tsx","src/components/core/Field.tsx","src/components/core/Heading.tsx","node_modules/react-text-mask/dist/reactTextMask.js","src/components/core/Input.tsx","node_modules/text-mask-addons/dist/textMaskAddons.js","src/util/forms.ts","src/components/orders/Pay.tsx","src/util/errors.ts","src/service/order.ts","src/controllers/orders/PaymentController.tsx","src/components/orders/Ship.tsx","src/controllers/orders/ThanksController.tsx","src/controllers/orders/OrderController.tsx","node_modules/@stripe/stripe-js/dist/pure.js","node_modules/@stripe/stripe-js/pure.js","config.ts","src/service/products.ts","index.tsx"],"names":["getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","toObject","val","TypeError","shouldUseNative","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","order2","map","n","join","test3","split","forEach","letter","keys","err","module","exports","target","source","from","symbols","to","s","arguments","length","key","call","l","require","Symbol","for","p","q","r","t","u","v","w","x","y","z","A","B","iterator","C","a","b","c","encodeURIComponent","D","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","E","F","props","context","refs","updater","G","H","isReactComponent","setState","Error","forceUpdate","I","constructor","isPureReactComponent","J","current","K","L","ref","__self","__source","M","e","d","g","k","f","children","h","Array","m","defaultProps","$$typeof","type","_owner","N","O","escape","replace","P","Q","R","pop","result","keyPrefix","func","count","S","push","T","U","isArray","next","done","value","V","toString","W","aa","X","Y","Z","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Children","toArray","only","Component","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","createElement","createFactory","bind","createRef","forwardRef","render","isValidElement","lazy","_ctor","_status","_result","memo","compare","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","version","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","console","error","extendStatics","setPrototypeOf","__proto__","__extends","__","create","__assign","apply","__rest","indexOf","__decorate","decorators","desc","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","generator","Promise","resolve","reject","fulfilled","step","rejected","adopt","then","__generator","body","_","label","sent","trys","ops","verb","op","__createBinding","o","k2","undefined","__exportStar","__values","__read","ar","__spread","concat","__spreadArrays","il","j","jl","__await","__asyncGenerator","asyncIterator","resume","fulfill","settle","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__importStar","mod","__esModule","default","__importDefault","__classPrivateFieldGet","receiver","privateMap","has","get","__classPrivateFieldSet","set","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","runClearTimeout","marker","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","len","run","Item","array","noop","nextTick","args","title","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","name","binding","cwd","chdir","dir","umask","global","factory","define","amd","self","ReactStripe","React","_typeof","obj","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceKeys","sourceSymbolKeys","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_arr","_n","_d","_e","_s","_i","_nonIterableRest","unwrapExports","createCommonjsModule","fn","reactIs_production_min","typeOf","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Lazy","Memo","Portal","isValidElementType","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","reactIs_production_min_1","reactIs_development","reactIs_development_1","objectAssign","ReactPropTypesSecret_1","checkPropTypes","typeSpecs","values","location","componentName","getStack","resetWarningCache","Function","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","propTypes","shim","propName","propFullName","secret","getShim","isRequired","ReactPropTypes","bool","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","PropTypes","isUnknownObject","isEqual","left","right","leftArray","leftPlainObject","leftKeys","rightKeys","keySet","allKeys","every","usePrevious","validateStripe","maybeStripe","elements","createToken","createPaymentMethod","confirmCardPayment","parseStripeProp","isPromise","tag","stripePromise","stripe","ElementsContext","displayName","parseElementsContext","Elements","_ref","rawStripeProp","options","_final","parsed","_React$useState2","ctx","setContext","prevStripe","prevOptions","warn","useElementsContextWithUseCase","useCaseMessage","useCase","ElementsConsumer","_ref2","useCallbackReference","cb","extractUpdateableOptions","paymentRequest","rest","createElementComponent","isServer","str","charAt","toUpperCase","slice","id","className","_ref$options","_ref$onBlur","onBlur","_ref$onFocus","onFocus","_ref$onReady","onReady","_ref$onChange","onChange","_ref$onEscape","onEscape","_ref$onClick","onClick","elementRef","domNode","callOnReady","callOnBlur","callOnFocus","callOnClick","callOnChange","callOnEscape","mount","updateableOptions","update","destroy","__elementType","window","AuBankAccountElement","CardElement","CardNumberElement","CardExpiryElement","CardCvcElement","FpxBankElement","IbanElement","IdealBankElement","PaymentRequestButtonElement","useElements","useStripe"],"mappings":"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","file":"index.js","sourceRoot":"..","sourcesContent":["/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v16.13.1\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cQ.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTimeb}return!1}function v(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;dpc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=td(a.document)}return b}\nfunction yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;gzf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(gl&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;by?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;yy?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;cf))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(lN.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;hd.tailExpiration&&1b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTimea?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){awi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/**\n * TODO(v7): Remove this enum and replace with SeverityLevel\n */\nexport enum Severity {\n /** JSDoc */\n Fatal = 'fatal',\n /** JSDoc */\n Error = 'error',\n /** JSDoc */\n Warning = 'warning',\n /** JSDoc */\n Log = 'log',\n /** JSDoc */\n Info = 'info',\n /** JSDoc */\n Debug = 'debug',\n /** JSDoc */\n Critical = 'critical',\n}\n\n// TODO: in v7, these can disappear, because they now also exist in `@sentry/utils`. (Having them there rather than here\n// is nice because then it enforces the idea that only types are exported from `@sentry/types`.)\nexport const SeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug', 'critical'] as const;\nexport type SeverityLevel = typeof SeverityLevels[number];\n","export { Breadcrumb, BreadcrumbHint } from './breadcrumb';\nexport { Client } from './client';\nexport { ClientReport } from './clientreport';\nexport { Context, Contexts } from './context';\nexport { DsnComponents, DsnLike, DsnProtocol } from './dsn';\nexport { DebugImage, DebugImageType, DebugMeta } from './debugMeta';\nexport {\n AttachmentItem,\n BaseEnvelopeHeaders,\n BaseEnvelopeItemHeaders,\n ClientReportEnvelope,\n ClientReportItem,\n Envelope,\n EventEnvelope,\n EventItem,\n SessionEnvelope,\n SessionItem,\n UserFeedbackItem,\n} from './envelope';\nexport { ExtendedError } from './error';\nexport { Event, EventHint } from './event';\nexport { EventStatus } from './eventstatus';\nexport { EventProcessor } from './eventprocessor';\nexport { Exception } from './exception';\nexport { Extra, Extras } from './extra';\nexport { Hub } from './hub';\nexport { Integration, IntegrationClass } from './integration';\nexport { Mechanism } from './mechanism';\nexport { ExtractedNodeRequestData, Primitive, WorkerLocation } from './misc';\nexport { Options } from './options';\nexport { Package } from './package';\nexport { QueryParams, Request, SentryRequest, SentryRequestType } from './request';\nexport { Response } from './response';\nexport { Runtime } from './runtime';\nexport { CaptureContext, Scope, ScopeContext } from './scope';\nexport { SdkInfo } from './sdkinfo';\nexport { SdkMetadata } from './sdkmetadata';\nexport {\n SessionAggregates,\n AggregationCounts,\n Session,\n SessionContext,\n SessionStatus,\n RequestSession,\n RequestSessionStatus,\n SessionFlusherLike,\n} from './session';\n\nexport { Severity } from './severity';\nexport { SeverityLevel, SeverityLevels } from './severity';\nexport { Span, SpanContext } from './span';\nexport { StackFrame } from './stackframe';\nexport { Stacktrace } from './stacktrace';\nexport {\n CustomSamplingContext,\n Measurements,\n SamplingContext,\n TraceparentData,\n Transaction,\n TransactionContext,\n TransactionMetadata,\n TransactionSamplingMethod,\n} from './transaction';\nexport { Thread } from './thread';\nexport { Outcome, Transport, TransportOptions, TransportClass } from './transport';\nexport { User, UserFeedback } from './user';\nexport { WrappedFunction } from './wrappedfunction';\n","/**\n * Consumes the promise and logs the error when it rejects.\n * @param promise A promise to forget.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function forget(promise: PromiseLike): void {\n void promise.then(null, e => {\n // TODO: Use a better logging mechanism\n // eslint-disable-next-line no-console\n console.error(e);\n });\n}\n","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These fags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\ndeclare const __SENTRY_BROWSER_BUNDLE__: boolean | undefined;\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nexport function isBrowserBundle(): boolean {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\nimport { isBrowserBundle } from './env';\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv(): boolean {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function dynamicRequire(mod: any, request: string): any {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nexport function loadModule(moduleName: string): T | undefined {\n let mod: T | undefined;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) as T;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { Integration } from '@sentry/types';\n\nimport { isNodeEnv } from './node';\n\n/** Internal */\ninterface SentryGlobal {\n Sentry?: {\n Integrations?: Integration[];\n };\n SENTRY_ENVIRONMENT?: string;\n SENTRY_DSN?: string;\n SENTRY_RELEASE?: {\n id?: string;\n };\n __SENTRY__: {\n globalEventProcessors: any;\n hub: any;\n logger: any;\n };\n}\n\nconst fallbackGlobalObject = {};\n\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nexport function getGlobalObject(): T & SentryGlobal {\n return (\n isNodeEnv()\n ? global\n : typeof window !== 'undefined' // eslint-disable-line no-restricted-globals\n ? window // eslint-disable-line no-restricted-globals\n : typeof self !== 'undefined'\n ? self\n : fallbackGlobalObject\n ) as T & SentryGlobal;\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `getGlobalObject`'s return value\n * @returns the singleton\n */\nexport function getGlobalSingleton(name: keyof SentryGlobal['__SENTRY__'], creator: () => T, obj?: unknown): T {\n const global = (obj || getGlobalObject()) as SentryGlobal;\n const __SENTRY__ = (global.__SENTRY__ = global.__SENTRY__ || {});\n const singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\nimport { Primitive } from '@sentry/types';\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat: unknown): wat is Error {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n\nfunction isBuiltin(wat: unknown, ty: string): boolean {\n return objectToString.call(wat) === `[object ${ty}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat: unknown): boolean {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat: unknown): wat is string {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat: unknown): wat is Primitive {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat: unknown): wat is Record {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat: unknown): boolean {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat: unknown): boolean {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat: unknown): wat is RegExp {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat: any): wat is PromiseLike {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat: unknown): boolean {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isNaN(wat: unknown): boolean {\n return typeof wat === 'number' && wat !== wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat: any, base: any): boolean {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n","import { getGlobalObject } from './global';\nimport { isString } from './is';\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(elem: unknown, keyAttrs?: string[]): string {\n type SimpleNode = {\n parentNode: SimpleNode;\n } | null;\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem as SimpleNode;\n const MAX_TRAVERSE_HEIGHT = 5;\n const MAX_OUTPUT_LEN = 80;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n\n // eslint-disable-next-line no-plusplus\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el: unknown, keyAttrs?: string[]): string {\n const elem = el as {\n tagName?: string;\n id?: string;\n className?: string;\n getAttribute(key: string): string;\n };\n\n const out = [];\n let className;\n let classes;\n let key;\n let attr;\n let i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n const keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(`.${classes[i]}`);\n }\n }\n }\n const allowedAttrs = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(`[${key}=\"${attr}\"]`);\n }\n }\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nexport function getLocationHref(): string {\n const global = getGlobalObject();\n try {\n return global.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n","export const setPrototypeOf =\n Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties);\n\n/**\n * setPrototypeOf polyfill using __proto__\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction setProtoOf(obj: TTarget, proto: TProto): TTarget & TProto {\n // @ts-ignore __proto__ does not exist on obj\n obj.__proto__ = proto;\n return obj as TTarget & TProto;\n}\n\n/**\n * setPrototypeOf polyfill using mixin\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction mixinProperties(obj: TTarget, proto: TProto): TTarget & TProto {\n for (const prop in proto) {\n if (!Object.prototype.hasOwnProperty.call(obj, prop)) {\n // @ts-ignore typescript complains about indexing so we remove\n obj[prop] = proto[prop];\n }\n }\n\n return obj as TTarget & TProto;\n}\n","import { setPrototypeOf } from './polyfill';\n\n/** An error emitted by Sentry SDKs and related utilities. */\nexport class SentryError extends Error {\n /** Display name of this error instance. */\n public name: string;\n\n public constructor(public message: string) {\n super(message);\n\n this.name = new.target.prototype.constructor.name;\n setPrototypeOf(this, new.target.prototype);\n }\n}\n","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n\ndeclare const __SENTRY_DEBUG__: boolean;\n\n/** Flag that is true for debug builds, false otherwise. */\nexport const IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n","import { DsnComponents, DsnLike, DsnProtocol } from '@sentry/types';\n\nimport { SentryError } from './error';\nimport { IS_DEBUG_BUILD } from './flags';\n\n/** Regular expression used to parse a Dsn. */\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol?: string): protocol is DsnProtocol {\n return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nexport function dsnToString(dsn: DsnComponents, withPassword: boolean = false): string {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\nfunction dsnFromString(str: string): DsnComponents {\n const match = DSN_REGEX.exec(str);\n\n if (!match) {\n throw new SentryError(`Invalid Sentry Dsn: ${str}`);\n }\n\n const [protocol, publicKey, pass = '', host, port = '', lastPath] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n const split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() as string;\n }\n\n if (projectId) {\n const projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol as DsnProtocol, publicKey });\n}\n\nfunction dsnFromComponents(components: DsnComponents): DsnComponents {\n // TODO this is for backwards compatibility, and can be removed in a future version\n if ('user' in components && !('publicKey' in components)) {\n components.publicKey = components.user;\n }\n\n return {\n user: components.publicKey || '',\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn: DsnComponents): boolean | void {\n if (!IS_DEBUG_BUILD) {\n return;\n }\n\n const { port, projectId, protocol } = dsn;\n\n const requiredComponents: ReadonlyArray = ['protocol', 'publicKey', 'host', 'projectId'];\n requiredComponents.forEach(component => {\n if (!dsn[component]) {\n throw new SentryError(`Invalid Sentry Dsn: ${component} missing`);\n }\n });\n\n if (!projectId.match(/^\\d+$/)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n }\n\n if (!isValidProtocol(protocol)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid port ${port}`);\n }\n\n return true;\n}\n\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nexport function makeDsn(from: DsnLike): DsnComponents {\n const components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n\n validateDsn(components);\n\n return components;\n}\n","export const SeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug', 'critical'] as const;\nexport type SeverityLevel = typeof SeverityLevels[number];\n","import { WrappedFunction } from '@sentry/types';\n\nimport { IS_DEBUG_BUILD } from './flags';\nimport { getGlobalObject, getGlobalSingleton } from './global';\n\n// TODO: Implement different loggers for different environments\nconst global = getGlobalObject();\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nexport const CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert'] as const;\n\ntype LoggerMethod = (...args: unknown[]) => void;\ntype LoggerConsoleMethods = Record;\n\n/** JSDoc */\ninterface Logger extends LoggerConsoleMethods {\n disable(): void;\n enable(): void;\n}\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nexport function consoleSandbox(callback: () => T): T {\n const global = getGlobalObject();\n\n if (!('console' in global)) {\n return callback();\n }\n\n const originalConsole = global.console as Console & Record;\n const wrappedLevels: Partial = {};\n\n // Restore all wrapped console methods\n CONSOLE_LEVELS.forEach(level => {\n // TODO(v7): Remove this check as it's only needed for Node 6\n const originalWrappedFunc =\n originalConsole[level] && (originalConsole[level] as WrappedFunction).__sentry_original__;\n if (level in global.console && originalWrappedFunc) {\n wrappedLevels[level] = originalConsole[level] as LoggerConsoleMethods[typeof level];\n originalConsole[level] = originalWrappedFunc as Console[typeof level];\n }\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(level => {\n originalConsole[level] = wrappedLevels[level as typeof CONSOLE_LEVELS[number]];\n });\n }\n}\n\nfunction makeLogger(): Logger {\n let enabled = false;\n const logger: Partial = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n };\n\n if (IS_DEBUG_BUILD) {\n CONSOLE_LEVELS.forEach(name => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = (...args: any[]) => {\n if (enabled) {\n consoleSandbox(() => {\n global.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger as Logger;\n}\n\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nlet logger: Logger;\nif (IS_DEBUG_BUILD) {\n logger = getGlobalSingleton('logger', makeLogger);\n} else {\n logger = makeLogger();\n}\n\nexport { logger };\n","import { isRegExp, isString } from './is';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str: string, max: number = 0): string {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.substr(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line: string, colno: number): string {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function safeJoin(input: any[], delimiter?: string): string {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n output.push(String(value));\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nexport function isMatchingPattern(value: string, pattern: RegExp | string): boolean {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n return false;\n}\n\n/**\n * Given a string, escape characters which have meaning in the regex grammar, such that the result is safe to feed to\n * `new RegExp()`.\n *\n * Based on https://github.com/sindresorhus/escape-string-regexp. Vendored to a) reduce the size by skipping the runtime\n * type-checking, and b) ensure it gets down-compiled for old versions of Node (the published package only supports Node\n * 12+).\n *\n * @param regexString The string to escape\n * @returns An version of the string with all special regex characters escaped\n */\nexport function escapeStringForRegex(regexString: string): string {\n // escape the hyphen separately so we can also replace it with a unicode literal hyphen, to avoid the problems\n // discussed in https://github.com/sindresorhus/escape-string-regexp/issues/20.\n return regexString.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\n","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ExtendedError, WrappedFunction } from '@sentry/types';\n\nimport { htmlTreeAsString } from './browser';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive } from './is';\nimport { truncate } from './string';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nexport function fill(source: { [key: string]: any }, name: string, replacementFactory: (...args: any[]) => any): void {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] as () => any;\n const wrapped = replacementFactory(original) as WrappedFunction;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n markFunctionWrapped(wrapped, original);\n } catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nexport function addNonEnumerableProperty(obj: { [key: string]: unknown }, name: string, value: unknown): void {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nexport function markFunctionWrapped(wrapped: WrappedFunction, original: WrappedFunction): void {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nexport function getOriginalFunction(func: WrappedFunction): WrappedFunction | undefined {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object: { [key: string]: any }): string {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any object into an object literal with all its attributes\n * attached to it.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n */\nexport function convertToPlainObject(value: unknown): {\n [key: string]: unknown;\n} {\n let newObj = value as {\n [key: string]: unknown;\n };\n\n if (isError(value)) {\n newObj = {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value as ExtendedError),\n };\n } else if (isEvent(value)) {\n /**\n * Event-like interface that's usable in browser and node\n */\n interface SimpleEvent {\n [key: string]: unknown;\n type: string;\n target?: unknown;\n currentTarget?: unknown;\n }\n\n const event = value as SimpleEvent;\n\n newObj = {\n type: event.type,\n target: serializeEventTarget(event.target),\n currentTarget: serializeEventTarget(event.currentTarget),\n ...getOwnProperties(event),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = event.detail;\n }\n }\n return newObj;\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target: unknown): string {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj: { [key: string]: unknown }): { [key: string]: unknown } {\n const extractedProps: { [key: string]: unknown } = {};\n for (const property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = obj[property];\n }\n }\n return extractedProps;\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function extractExceptionKeysForMessage(exception: any, maxLength: number = 40): string {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return the new object with removed keys that value was `undefined`.\n * Works recursively on objects and arrays.\n */\nexport function dropUndefinedKeys(val: T): T {\n if (isPlainObject(val)) {\n const rv: { [key: string]: any } = {};\n for (const key of Object.keys(val)) {\n if (typeof val[key] !== 'undefined') {\n rv[key] = dropUndefinedKeys(val[key]);\n }\n }\n return rv as T;\n }\n\n if (Array.isArray(val)) {\n return (val as any[]).map(dropUndefinedKeys) as any;\n }\n\n return val;\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nexport function objectify(wat: unknown): typeof Object {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat as any).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n","import { StackFrame } from '@sentry/types';\n\nconst STACKTRACE_LIMIT = 50;\n\nexport type StackParser = (stack: string, skipFirst?: number) => StackFrame[];\nexport type StackLineParserFn = (line: string) => StackFrame | undefined;\nexport type StackLineParser = [number, StackLineParserFn];\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nexport function createStackParser(...parsers: StackLineParser[]): StackParser {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack: string, skipFirst: number = 0): StackFrame[] => {\n const frames: StackFrame[] = [];\n\n for (const line of stack.split('\\n').slice(skipFirst)) {\n for (const parser of sortedParsers) {\n const frame = parser(line);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n }\n\n return stripSentryFramesAndReverse(frames);\n };\n}\n\n/**\n * @hidden\n */\nexport function stripSentryFramesAndReverse(stack: StackFrame[]): StackFrame[] {\n if (!stack.length) {\n return [];\n }\n\n let localStack = stack;\n\n const firstFrameFunction = localStack[0].function || '';\n const lastFrameFunction = localStack[localStack.length - 1].function || '';\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n }\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n }\n\n // The frame where the crash happened, should be the last entry in the array\n return localStack\n .slice(0, STACKTRACE_LIMIT)\n .map(frame => ({\n ...frame,\n filename: frame.filename || localStack[0].filename,\n function: frame.function || '?',\n }))\n .reverse();\n}\n\nconst defaultFunctionName = '';\n\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn: unknown): string {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n","import { IS_DEBUG_BUILD } from './flags';\nimport { getGlobalObject } from './global';\nimport { logger } from './logger';\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent(): boolean {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError(): boolean {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException(): boolean {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch(): boolean {\n if (!('fetch' in getGlobalObject())) {\n return false;\n }\n\n try {\n new Headers();\n new Request('');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNativeFetch(func: Function): boolean {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch(): boolean {\n if (!supportsFetch()) {\n return false;\n }\n\n const global = getGlobalObject();\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(global.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n const doc = global.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof (doc.createElement as unknown) === 'function') {\n try {\n const sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n IS_DEBUG_BUILD &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver(): boolean {\n return 'ReportingObserver' in getGlobalObject();\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy(): boolean {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' as ReferrerPolicy,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory(): boolean {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n const global = getGlobalObject();\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const chrome = (global as any).chrome;\n const isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n const hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport { WrappedFunction } from '@sentry/types';\n\nimport { IS_DEBUG_BUILD } from './flags';\nimport { getGlobalObject } from './global';\nimport { isInstanceOf, isString } from './is';\nimport { CONSOLE_LEVELS, logger } from './logger';\nimport { fill } from './object';\nimport { getFunctionName } from './stacktrace';\nimport { supportsHistory, supportsNativeFetch } from './supports';\n\nconst global = getGlobalObject();\n\ntype InstrumentHandlerType =\n | 'console'\n | 'dom'\n | 'fetch'\n | 'history'\n | 'sentry'\n | 'xhr'\n | 'error'\n | 'unhandledrejection';\ntype InstrumentHandlerCallback = (data: any) => void;\n\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\n\nconst handlers: { [key in InstrumentHandlerType]?: InstrumentHandlerCallback[] } = {};\nconst instrumented: { [key in InstrumentHandlerType]?: boolean } = {};\n\n/** Instruments given API */\nfunction instrument(type: InstrumentHandlerType): void {\n if (instrumented[type]) {\n return;\n }\n\n instrumented[type] = true;\n\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n IS_DEBUG_BUILD && logger.warn('unknown instrumentation type:', type);\n return;\n }\n}\n\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addInstrumentationHandler(type: InstrumentHandlerType, callback: InstrumentHandlerCallback): void {\n handlers[type] = handlers[type] || [];\n (handlers[type] as InstrumentHandlerCallback[]).push(callback);\n instrument(type);\n}\n\n/** JSDoc */\nfunction triggerHandlers(type: InstrumentHandlerType, data: any): void {\n if (!type || !handlers[type]) {\n return;\n }\n\n for (const handler of handlers[type] || []) {\n try {\n handler(data);\n } catch (e) {\n IS_DEBUG_BUILD &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\n/** JSDoc */\nfunction instrumentConsole(): void {\n if (!('console' in global)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level: string): void {\n if (!(level in global.console)) {\n return;\n }\n\n fill(global.console, level, function (originalConsoleMethod: () => any): Function {\n return function (...args: any[]): void {\n triggerHandlers('console', { args, level });\n\n // this fails for some browsers. :(\n if (originalConsoleMethod) {\n originalConsoleMethod.apply(global.console, args);\n }\n };\n });\n });\n}\n\n/** JSDoc */\nfunction instrumentFetch(): void {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(global, 'fetch', function (originalFetch: () => void): () => void {\n return function (...args: any[]): void {\n const handlerData = {\n args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n\n triggerHandlers('fetch', {\n ...handlerData,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(global, args).then(\n (response: Response) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n response,\n });\n return response;\n },\n (error: Error) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n error,\n });\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\ntype XHRSendInput = null | Blob | BufferSource | FormData | URLSearchParams | string;\n\n/** JSDoc */\ninterface SentryWrappedXMLHttpRequest extends XMLHttpRequest {\n [key: string]: any;\n __sentry_xhr__?: {\n method?: string;\n url?: string;\n status_code?: number;\n body?: XHRSendInput;\n };\n}\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs: any[] = []): string {\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs: any[] = []): string {\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n/* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\n/** JSDoc */\nfunction instrumentXHR(): void {\n if (!('XMLHttpRequest' in global)) {\n return;\n }\n\n const xhrproto = XMLHttpRequest.prototype;\n\n fill(xhrproto, 'open', function (originalOpen: () => void): () => void {\n return function (this: SentryWrappedXMLHttpRequest, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const url = args[1];\n const xhrInfo: SentryWrappedXMLHttpRequest['__sentry_xhr__'] = (xhr.__sentry_xhr__ = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n });\n\n // if Sentry key appears in URL, don't capture it as a request\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (isString(url) && xhrInfo.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n\n const onreadystatechangeHandler = function (): void {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = xhr.status;\n } catch (e) {\n /* do nothing */\n }\n\n triggerHandlers('xhr', {\n args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr,\n });\n }\n };\n\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original: WrappedFunction): Function {\n return function (...readyStateArgs: any[]): void {\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n } else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n return originalOpen.apply(xhr, args);\n };\n });\n\n fill(xhrproto, 'send', function (originalSend: () => void): () => void {\n return function (this: SentryWrappedXMLHttpRequest, ...args: any[]): void {\n if (this.__sentry_xhr__ && args[0] !== undefined) {\n this.__sentry_xhr__.body = args[0];\n }\n\n triggerHandlers('xhr', {\n args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n\n return originalSend.apply(this, args);\n };\n });\n}\n\nlet lastHref: string;\n\n/** JSDoc */\nfunction instrumentHistory(): void {\n if (!supportsHistory()) {\n return;\n }\n\n const oldOnPopState = global.onpopstate;\n global.onpopstate = function (this: WindowEventHandlers, ...args: any[]): any {\n const to = global.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n const from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction: () => void): () => void {\n return function (this: History, ...args: any[]): void {\n const url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n const from = lastHref;\n const to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(global.history, 'pushState', historyReplacementFunction);\n fill(global.history, 'replaceState', historyReplacementFunction);\n}\n\nconst debounceDuration = 1000;\nlet debounceTimerID: number | undefined;\nlet lastCapturedEvent: Event | undefined;\n\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous: Event | undefined, current: Event): boolean {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n }\n\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (previous.type !== current.type) {\n return true;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return false;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event: Event): boolean {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n\n try {\n const target = event.target as HTMLElement;\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler: Function, globalListener: boolean = false): (event: Event) => void {\n return (event: Event): void => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n\n const name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = global.setTimeout(() => {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n\ntype AddEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n) => void;\ntype RemoveEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n) => void;\n\ntype InstrumentedElement = Element & {\n __sentry_instrumentation_handlers__?: {\n [key in 'click' | 'keypress']?: {\n handler?: Function;\n /** The number of custom listeners attached to this element */\n refCount: number;\n };\n };\n};\n\n/** JSDoc */\nfunction instrumentDOM(): void {\n if (!('document' in global)) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n const triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n global.document.addEventListener('click', globalDOMEventHandler, false);\n global.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target: string) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = (global as any)[target] && (global as any)[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener: AddEventListener): AddEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): AddEventListener {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n const handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n const handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount += 1;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener: RemoveEventListener): RemoveEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = el.__sentry_instrumentation_handlers__ || {};\n const handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount -= 1;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\nlet _oldOnErrorHandler: OnErrorEventHandler = null;\n/** JSDoc */\nfunction instrumentError(): void {\n _oldOnErrorHandler = global.onerror;\n\n global.onerror = function (msg: any, url: any, line: any, column: any, error: any): boolean {\n triggerHandlers('error', {\n column,\n error,\n line,\n msg,\n url,\n });\n\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n}\n\nlet _oldOnUnhandledRejectionHandler: ((e: any) => void) | null = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection(): void {\n _oldOnUnhandledRejectionHandler = global.onunhandledrejection;\n\n global.onunhandledrejection = function (e: any): boolean {\n triggerHandlers('unhandledrejection', e);\n\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport type MemoFunc = [\n // memoize\n (obj: any) => boolean,\n // unmemoize\n (obj: any) => void,\n];\n\n/**\n * Helper to decycle json objects\n */\nexport function memoBuilder(): MemoFunc {\n const hasWeakSet = typeof WeakSet === 'function';\n const inner: any = hasWeakSet ? new WeakSet() : [];\n function memoize(obj: any): boolean {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < inner.length; i++) {\n const value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj: any): void {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Event, Exception, Mechanism, StackFrame } from '@sentry/types';\n\nimport { getGlobalObject } from './global';\nimport { addNonEnumerableProperty } from './object';\nimport { snipLine } from './string';\n\n/**\n * Extended Window interface that allows for Crypto API usage in IE browsers\n */\ninterface MsCryptoWindow extends Window {\n msCrypto?: Crypto;\n}\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4(): string {\n const global = getGlobalObject() as MsCryptoWindow;\n const crypto = global.crypto || global.msCrypto;\n\n if (!(crypto === void 0) && crypto.getRandomValues) {\n // Use window.crypto API if available\n const arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n\n // set 4 in byte 7\n // eslint-disable-next-line no-bitwise\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n // eslint-disable-next-line no-bitwise\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n\n const pad = (num: number): string => {\n let v = num.toString(16);\n while (v.length < 4) {\n v = `0${v}`;\n }\n return v;\n };\n\n return (\n pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7])\n );\n }\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, c => {\n // eslint-disable-next-line no-bitwise\n const r = (Math.random() * 16) | 0;\n // eslint-disable-next-line no-bitwise\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(url: string): {\n host?: string;\n path?: string;\n protocol?: string;\n relative?: string;\n} {\n if (!url) {\n return {};\n }\n\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n const query = match[6] || '';\n const fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\nfunction getFirstException(event: Event): Exception | undefined {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event: Event): string {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event: Event, value?: string, type?: string): void {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nexport function addExceptionMechanism(event: Event, newMechanism?: Partial): void {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\ninterface SemVer {\n major?: number;\n minor?: number;\n patch?: number;\n prerelease?: string;\n buildmetadata?: string;\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input: string): SemVer {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n const patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines: string[], frame: StackFrame, linesOfContext: number = 5): void {\n const lineno = frame.lineno || 0;\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line: string) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line: string) => snipLine(line, 0));\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nexport function stripUrlQueryAndFragment(urlPath: string): string {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nexport function checkOrSetAlreadyCaught(exception: unknown): boolean {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && (exception as any).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception as { [key: string]: unknown }, '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n","import { Primitive } from '@sentry/types';\n\nimport { isError, isEvent, isNaN, isSyntheticEvent } from './is';\nimport { memoBuilder, MemoFunc } from './memo';\nimport { convertToPlainObject } from './object';\nimport { getFunctionName } from './stacktrace';\n\ntype Prototype = { constructor: (...args: unknown[]) => unknown };\n// This is a hack to placate TS, relying on the fact that technically, arrays are objects with integer keys. Normally we\n// think of those keys as actual numbers, but `arr['0']` turns out to work just as well as `arr[0]`, and doing it this\n// way lets us use a single type in the places where behave as if we are only dealing with objects, even if some of them\n// might be arrays.\ntype ObjOrArray = { [key: string]: T };\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output..\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\nexport function normalize(input: unknown, depth: number = +Infinity, maxProperties: number = +Infinity): any {\n try {\n // since we're at the outermost level, there is no key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nexport function normalizeToSize(\n object: { [key: string]: any },\n // Default Node.js REPL depth\n depth: number = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize: number = 100 * 1024,\n): T {\n const normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized as T;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key: string,\n value: unknown,\n depth: number = +Infinity,\n maxProperties: number = +Infinity,\n memo: MemoFunc = memoBuilder(),\n): Primitive | ObjOrArray {\n const [memoize, unmemoize] = memo;\n\n // If the value has a `toJSON` method, see if we can bail and let it do the work\n const valueWithToJSON = value as unknown & { toJSON?: () => Primitive | ObjOrArray };\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n return valueWithToJSON.toJSON();\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // Get the simple cases out of the way first\n if (value === null || (['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value))) {\n return value as Primitive;\n }\n\n const stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // We're also done if we've reached the max depth\n if (depth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n const normalized = (Array.isArray(value) ? [] : {}) as ObjOrArray;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n const visitable = (isError(value) || isEvent(value) ? convertToPlainObject(value) : value) as ObjOrArray;\n\n for (const visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n const visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, depth - 1, maxProperties, memo);\n\n numAdded += 1;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n// TODO remove this in v7 (this means the method will no longer be exported, under any name)\nexport { visit as walk };\n\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key: unknown,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value: Exclude,\n): string {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value as { _events: unknown })._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n // this catches `undefined` (but not `null`, which is a primitive and can be serialized on its own)\n if (value === void 0) {\n return '[undefined]';\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n return `[object ${(Object.getPrototypeOf(value) as Prototype).constructor.name}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value: string): number {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\nfunction jsonSize(value: any): number {\n return utf8Length(JSON.stringify(value));\n}\n","// Slightly modified (no IE8 support, ES6) and transcribed to TypeScript\n// https://raw.githubusercontent.com/calvinmetcalf/rollup-plugin-node-builtins/master/src/es6/path.js\n\n/** JSDoc */\nfunction normalizeArray(parts: string[], allowAboveRoot?: boolean): string[] {\n // if the path tries to go above the root, `up` ends up > 0\n let up = 0;\n for (let i = parts.length - 1; i >= 0; i--) {\n const last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n // eslint-disable-next-line no-plusplus\n up++;\n } else if (up) {\n parts.splice(i, 1);\n // eslint-disable-next-line no-plusplus\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n // eslint-disable-next-line no-plusplus\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// Split a filename into [root, dir, basename, ext], unix version\n// 'root' is just a slash, or nothing.\nconst splitPathRe = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^/]+?|)(\\.[^./]*|))(?:[/]*)$/;\n/** JSDoc */\nfunction splitPath(filename: string): string[] {\n const parts = splitPathRe.exec(filename);\n return parts ? parts.slice(1) : [];\n}\n\n// path.resolve([from ...], to)\n// posix version\n/** JSDoc */\nexport function resolve(...args: string[]): string {\n let resolvedPath = '';\n let resolvedAbsolute = false;\n\n for (let i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n const path = i >= 0 ? args[i] : '/';\n\n // Skip empty entries\n if (!path) {\n continue;\n }\n\n resolvedPath = `${path}/${resolvedPath}`;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(\n resolvedPath.split('/').filter(p => !!p),\n !resolvedAbsolute,\n ).join('/');\n\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}\n\n/** JSDoc */\nfunction trim(arr: string[]): string[] {\n let start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') {\n break;\n }\n }\n\n let end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') {\n break;\n }\n }\n\n if (start > end) {\n return [];\n }\n return arr.slice(start, end - start + 1);\n}\n\n// path.relative(from, to)\n// posix version\n/** JSDoc */\nexport function relative(from: string, to: string): string {\n /* eslint-disable no-param-reassign */\n from = resolve(from).substr(1);\n to = resolve(to).substr(1);\n /* eslint-enable no-param-reassign */\n\n const fromParts = trim(from.split('/'));\n const toParts = trim(to.split('/'));\n\n const length = Math.min(fromParts.length, toParts.length);\n let samePartsLength = length;\n for (let i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n let outputParts = [];\n for (let i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n}\n\n// path.normalize(path)\n// posix version\n/** JSDoc */\nexport function normalizePath(path: string): string {\n const isPathAbsolute = isAbsolute(path);\n const trailingSlash = path.substr(-1) === '/';\n\n // Normalize the path\n let normalizedPath = normalizeArray(\n path.split('/').filter(p => !!p),\n !isPathAbsolute,\n ).join('/');\n\n if (!normalizedPath && !isPathAbsolute) {\n normalizedPath = '.';\n }\n if (normalizedPath && trailingSlash) {\n normalizedPath += '/';\n }\n\n return (isPathAbsolute ? '/' : '') + normalizedPath;\n}\n\n// posix version\n/** JSDoc */\nexport function isAbsolute(path: string): boolean {\n return path.charAt(0) === '/';\n}\n\n// posix version\n/** JSDoc */\nexport function join(...args: string[]): string {\n return normalizePath(args.join('/'));\n}\n\n/** JSDoc */\nexport function dirname(path: string): string {\n const result = splitPath(path);\n const root = result[0];\n let dir = result[1];\n\n if (!root && !dir) {\n // No dirname whatsoever\n return '.';\n }\n\n if (dir) {\n // It has a dirname, strip trailing slash\n dir = dir.substr(0, dir.length - 1);\n }\n\n return root + dir;\n}\n\n/** JSDoc */\nexport function basename(path: string, ext?: string): string {\n let f = splitPath(path)[2];\n if (ext && f.substr(ext.length * -1) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n}\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n\n/** SyncPromise internal states */\nconst enum States {\n /** Pending */\n PENDING = 0,\n /** Resolved / OK */\n RESOLVED = 1,\n /** Rejected / Error */\n REJECTED = 2,\n}\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nexport function resolvedSyncPromise(value: T | PromiseLike): PromiseLike {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nexport function rejectedSyncPromise(reason?: any): PromiseLike {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise implements PromiseLike {\n private _state: States = States.PENDING;\n private _handlers: Array<[boolean, (value: T) => void, (reason: any) => any]> = [];\n private _value: any;\n\n public constructor(\n executor: (resolve: (value?: T | PromiseLike | null) => void, reject: (reason?: any) => void) => void,\n ) {\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n public then(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike) | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike) | null,\n ): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result as any);\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n public catch(\n onrejected?: ((reason: any) => TResult | PromiseLike) | null,\n ): PromiseLike {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n public finally(onfinally?: (() => void) | null): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n let val: TResult | any;\n let isRejected: boolean;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val as unknown as any);\n });\n });\n }\n\n /** JSDoc */\n private readonly _resolve = (value?: T | PromiseLike | null) => {\n this._setResult(States.RESOLVED, value);\n };\n\n /** JSDoc */\n private readonly _reject = (reason?: any) => {\n this._setResult(States.REJECTED, reason);\n };\n\n /** JSDoc */\n private readonly _setResult = (state: States, value?: T | PromiseLike | any) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value as PromiseLike).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };\n\n /** JSDoc */\n private readonly _executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](this._value as unknown as any);\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };\n}\n\nexport { SyncPromise };\n","import { SentryError } from './error';\nimport { rejectedSyncPromise, resolvedSyncPromise, SyncPromise } from './syncpromise';\n\nexport interface PromiseBuffer {\n // exposes the internal array so tests can assert on the state of it.\n // XXX: this really should not be public api.\n $: Array>;\n add(taskProducer: () => PromiseLike): PromiseLike;\n drain(timeout?: number): PromiseLike;\n}\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nexport function makePromiseBuffer(limit?: number): PromiseBuffer {\n const buffer: Array> = [];\n\n function isReady(): boolean {\n return limit === undefined || buffer.length < limit;\n }\n\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n function remove(task: PromiseLike): PromiseLike {\n return buffer.splice(buffer.indexOf(task), 1)[0];\n }\n\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike; In previous versions this used to be `task:\n * PromiseLike`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n function add(taskProducer: () => PromiseLike): PromiseLike {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise due to buffer limit reached.'));\n }\n\n // start the task and add its promise to the queue\n const task = taskProducer();\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n void task\n .then(() => remove(task))\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, () =>\n remove(task).then(null, () => {\n // We have to add another catch here because `remove()` starts a new promise chain.\n }),\n );\n return task;\n }\n\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout?: number): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n let counter = buffer.length;\n\n if (!counter) {\n return resolve(true);\n }\n\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n const capturedSetTimeout = setTimeout(() => {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n\n // if all promises resolve in time, cancel the timer and resolve to `true`\n buffer.forEach(item => {\n void resolvedSyncPromise(item).then(() => {\n // eslint-disable-next-line no-plusplus\n if (!--counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n\n return {\n $: buffer,\n add,\n drain,\n };\n}\n","import { EventStatus } from '@sentry/types';\n/**\n * Converts an HTTP status code to sentry status {@link EventStatus}.\n *\n * @param code number HTTP status code\n * @returns EventStatus\n */\nexport function eventStatusFromHttpCode(code: number): EventStatus {\n if (code >= 200 && code < 300) {\n return 'success';\n }\n\n if (code === 429) {\n return 'rate_limit';\n }\n\n if (code >= 400 && code < 500) {\n return 'invalid';\n }\n\n if (code >= 500) {\n return 'failed';\n }\n\n return 'unknown';\n}\n","import { getGlobalObject } from './global';\nimport { dynamicRequire, isNodeEnv } from './node';\n\n/**\n * An object that can return the current timestamp in seconds since the UNIX epoch.\n */\ninterface TimestampSource {\n nowSeconds(): number;\n}\n\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nconst dateTimestampSource: TimestampSource = {\n nowSeconds: () => Date.now() / 1000,\n};\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\ninterface Performance {\n /**\n * The millisecond timestamp at which measurement began, measured in Unix time.\n */\n timeOrigin: number;\n /**\n * Returns the current millisecond timestamp, where 0 represents the start of measurement.\n */\n now(): number;\n}\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance(): Performance | undefined {\n const { performance } = getGlobalObject();\n if (!performance || !performance.now) {\n return undefined;\n }\n\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n const timeOrigin = Date.now() - performance.now();\n\n return {\n now: () => performance.now(),\n timeOrigin,\n };\n}\n\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance(): Performance | undefined {\n try {\n const perfHooks = dynamicRequire(module, 'perf_hooks') as { performance: Performance };\n return perfHooks.performance;\n } catch (_) {\n return undefined;\n }\n}\n\n/**\n * The Performance API implementation for the current platform, if available.\n */\nconst platformPerformance: Performance | undefined = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\n\nconst timestampSource: TimestampSource =\n platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: () => (platformPerformance.timeOrigin + platformPerformance.now()) / 1000,\n };\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nexport const dateTimestampInSeconds: () => number = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nexport const timestampInSeconds: () => number = timestampSource.nowSeconds.bind(timestampSource);\n\n// Re-exported with an old name for backwards-compatibility.\nexport const timestampWithMs = timestampInSeconds;\n\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nexport const usingPerformanceAPI = platformPerformance !== undefined;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nexport let _browserPerformanceTimeOriginMode: string;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nexport const browserPerformanceTimeOrigin = ((): number | undefined => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = getGlobalObject();\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n","import { TraceparentData } from '@sentry/types';\n\nexport const TRACEPARENT_REGEXP = new RegExp(\n '^[ \\\\t]*' + // whitespace\n '([0-9a-f]{32})?' + // trace_id\n '-?([0-9a-f]{16})?' + // span_id\n '-?([01])?' + // sampled\n '[ \\\\t]*$', // whitespace\n);\n\n/**\n * Extract transaction context data from a `sentry-trace` header.\n *\n * @param traceparent Traceparent string\n *\n * @returns Object containing data from the header, or undefined if traceparent string is malformed\n */\nexport function extractTraceparentData(traceparent: string): TraceparentData | undefined {\n const matches = traceparent.match(TRACEPARENT_REGEXP);\n if (matches) {\n let parentSampled: boolean | undefined;\n if (matches[3] === '1') {\n parentSampled = true;\n } else if (matches[3] === '0') {\n parentSampled = false;\n }\n return {\n traceId: matches[1],\n parentSampled,\n parentSpanId: matches[2],\n };\n }\n return undefined;\n}\n","import { Envelope } from '@sentry/types';\n\nimport { isPrimitive } from './is';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function createEnvelope(headers: E[0], items: E[1] = []): E {\n return [headers, items] as E;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function addItemToEnvelope(envelope: E, newItem: E[1][number]): E {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]] as E;\n}\n\n/**\n * Get the type of the envelope. Grabs the type from the first envelope item.\n */\nexport function getEnvelopeType(envelope: E): string {\n const [, [[firstItemHeader]]] = envelope;\n return firstItemHeader.type;\n}\n\n/**\n * Serializes an envelope into a string.\n */\nexport function serializeEnvelope(envelope: Envelope): string {\n const [headers, items] = envelope;\n const serializedHeaders = JSON.stringify(headers);\n\n // Have to cast items to any here since Envelope is a union type\n // Fixed in Typescript 4.2\n // TODO: Remove any[] cast when we upgrade to TS 4.2\n // https://github.com/microsoft/TypeScript/issues/36390\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (items as any[]).reduce((acc, item: typeof items[number]) => {\n const [itemHeaders, payload] = item;\n // We do not serialize payloads that are primitives\n const serializedPayload = isPrimitive(payload) ? String(payload) : JSON.stringify(payload);\n return `${acc}\\n${JSON.stringify(itemHeaders)}\\n${serializedPayload}`;\n }, serializedHeaders);\n}\n","import { ClientReport, ClientReportEnvelope, ClientReportItem } from '@sentry/types';\n\nimport { createEnvelope } from './envelope';\nimport { dateTimestampInSeconds } from './time';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nexport function createClientReportEnvelope(\n discarded_events: ClientReport['discarded_events'],\n dsn?: string,\n timestamp?: number,\n): ClientReportEnvelope {\n const clientReportItem: ClientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n","// Keeping the key broad until we add the new transports\nexport type RateLimits = Record;\n\nexport const DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nexport function parseRetryAfterHeader(header: string, now: number = Date.now()): number {\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that given category is disabled until for rate limiting\n */\nexport function disabledUntil(limits: RateLimits, category: string): number {\n return limits[category] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nexport function isRateLimited(limits: RateLimits, category: string, now: number = Date.now()): boolean {\n return disabledUntil(limits, category) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n * Returns true if headers contains a non-empty rate limiting header.\n */\nexport function updateRateLimits(\n limits: RateLimits,\n headers: Record,\n now: number = Date.now(),\n): RateLimits {\n const updatedRateLimits: RateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n const rateLimitHeader = headers['x-sentry-rate-limits'];\n const retryAfterHeader = headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n *
,
,..\n * where each
is of the form\n * : : : \n * where\n * is a delay in seconds\n * is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * ;;...\n * is what's being limited (org, project, or key) - ignored by SDK\n * is an arbitrary string like \"org_quota\" - ignored by SDK\n */\n for (const limit of rateLimitHeader.trim().split(',')) {\n const parameters = limit.split(':', 2);\n const headerDelay = parseInt(parameters[0], 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!parameters[1]) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of parameters[1].split(';')) {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n }\n\n return updatedRateLimits;\n}\n","/* eslint-disable max-lines */\nimport {\n Breadcrumb,\n CaptureContext,\n Context,\n Contexts,\n Event,\n EventHint,\n EventProcessor,\n Extra,\n Extras,\n Primitive,\n RequestSession,\n Scope as ScopeInterface,\n ScopeContext,\n Severity,\n Span,\n Transaction,\n User,\n} from '@sentry/types';\nimport { dateTimestampInSeconds, getGlobalSingleton, isPlainObject, isThenable, SyncPromise } from '@sentry/utils';\n\nimport { Session } from './session';\n\n/**\n * Absolute maximum number of breadcrumbs added to an event.\n * The `maxBreadcrumbs` option cannot be higher than this value.\n */\nconst MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nexport class Scope implements ScopeInterface {\n /** Flag if notifying is happening. */\n protected _notifyingListeners: boolean = false;\n\n /** Callback for client to receive scope changes. */\n protected _scopeListeners: Array<(scope: Scope) => void> = [];\n\n /** Callback list that will be called after {@link applyToEvent}. */\n protected _eventProcessors: EventProcessor[] = [];\n\n /** Array of breadcrumbs. */\n protected _breadcrumbs: Breadcrumb[] = [];\n\n /** User */\n protected _user: User = {};\n\n /** Tags */\n protected _tags: { [key: string]: Primitive } = {};\n\n /** Extra */\n protected _extra: Extras = {};\n\n /** Contexts */\n protected _contexts: Contexts = {};\n\n /** Fingerprint */\n protected _fingerprint?: string[];\n\n /** Severity */\n protected _level?: Severity;\n\n /** Transaction Name */\n protected _transactionName?: string;\n\n /** Span */\n protected _span?: Span;\n\n /** Session */\n protected _session?: Session;\n\n /** Request Mode Session Status */\n protected _requestSession?: RequestSession;\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n protected _sdkProcessingMetadata?: { [key: string]: unknown } = {};\n\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n public static clone(scope?: Scope): Scope {\n const newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = [...scope._breadcrumbs];\n newScope._tags = { ...scope._tags };\n newScope._extra = { ...scope._extra };\n newScope._contexts = { ...scope._contexts };\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = [...scope._eventProcessors];\n newScope._requestSession = scope._requestSession;\n }\n return newScope;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n public addScopeListener(callback: (scope: Scope) => void): void {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public addEventProcessor(callback: EventProcessor): this {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): this {\n this._user = user || {};\n if (this._session) {\n this._session.update({ user });\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getUser(): User | undefined {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n public getRequestSession(): RequestSession | undefined {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n public setRequestSession(requestSession?: RequestSession): this {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): this {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): this {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): this {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): this {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setFingerprint(fingerprint: string[]): this {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setLevel(level: Severity): this {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTransactionName(name?: string): this {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Can be removed in major version.\n * @deprecated in favor of {@link this.setTransactionName}\n */\n public setTransaction(name?: string): this {\n return this.setTransactionName(name);\n }\n\n /**\n * @inheritDoc\n */\n public setContext(key: string, context: Context | null): this {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts = { ...this._contexts, [key]: context };\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setSpan(span?: Span): this {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSpan(): Span | undefined {\n return this._span;\n }\n\n /**\n * @inheritDoc\n */\n public getTransaction(): Transaction | undefined {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n const span = this.getSpan();\n return span && span.transaction;\n }\n\n /**\n * @inheritDoc\n */\n public setSession(session?: Session): this {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSession(): Session | undefined {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n public update(captureContext?: CaptureContext): this {\n if (!captureContext) {\n return this;\n }\n\n if (typeof captureContext === 'function') {\n const updatedScope = (captureContext as (scope: T) => T)(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n\n if (captureContext instanceof Scope) {\n this._tags = { ...this._tags, ...captureContext._tags };\n this._extra = { ...this._extra, ...captureContext._extra };\n this._contexts = { ...this._contexts, ...captureContext._contexts };\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n } else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext as ScopeContext;\n this._tags = { ...this._tags, ...captureContext.tags };\n this._extra = { ...this._extra, ...captureContext.extra };\n this._contexts = { ...this._contexts, ...captureContext.contexts };\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public clear(): this {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, maxBreadcrumbs?: number): this {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? Math.min(maxBreadcrumbs, MAX_BREADCRUMBS) : MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n this._breadcrumbs = [...this._breadcrumbs, mergedBreadcrumb].slice(-maxCrumbs);\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public clearBreadcrumbs(): this {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Applies the current context and fingerprint to the event.\n * Note that breadcrumbs will be added by the client.\n * Also if the event has already breadcrumbs on it, we do not merge them.\n * @param event Event\n * @param hint May contain additional information about the original exception.\n * @hidden\n */\n public applyToEvent(event: Event, hint?: EventHint): PromiseLike {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = { ...this._extra, ...event.extra };\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = { ...this._tags, ...event.tags };\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = { ...this._user, ...event.user };\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = { ...this._contexts, ...event.contexts };\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (this._span) {\n event.contexts = { trace: this._span.getTraceContext(), ...event.contexts };\n const transactionName = this._span.transaction && this._span.transaction.name;\n if (transactionName) {\n event.tags = { transaction: transactionName, ...event.tags };\n }\n }\n\n this._applyFingerprint(event);\n\n event.breadcrumbs = [...(event.breadcrumbs || []), ...this._breadcrumbs];\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n\n event.sdkProcessingMetadata = this._sdkProcessingMetadata;\n\n return this._notifyEventProcessors([...getGlobalEventProcessors(), ...this._eventProcessors], event, hint);\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n public setSDKProcessingMetadata(newData: { [key: string]: unknown }): this {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n protected _notifyEventProcessors(\n processors: EventProcessor[],\n event: Event | null,\n hint?: EventHint,\n index: number = 0,\n ): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) as Event | null;\n if (isThenable(result)) {\n void result\n .then(final => this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n }\n\n /**\n * This will be called on every set call.\n */\n protected _notifyScopeListeners(): void {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n private _applyFingerprint(event: Event): void {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n }\n}\n\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors(): EventProcessor[] {\n return getGlobalSingleton('globalEventProcessors', () => []);\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nexport function addGlobalEventProcessor(callback: EventProcessor): void {\n getGlobalEventProcessors().push(callback);\n}\n","import { Session as SessionInterface, SessionContext, SessionStatus } from '@sentry/types';\nimport { dropUndefinedKeys, timestampInSeconds, uuid4 } from '@sentry/utils';\n\n/**\n * @inheritdoc\n */\nexport class Session implements SessionInterface {\n public userAgent?: string;\n public errors: number = 0;\n public release?: string;\n public sid: string = uuid4();\n public did?: string;\n public timestamp: number;\n public started: number;\n public duration?: number = 0;\n public status: SessionStatus = 'ok';\n public environment?: string;\n public ipAddress?: string;\n public init: boolean = true;\n public ignoreDuration: boolean = false;\n\n public constructor(context?: Omit) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n this.timestamp = startingTime;\n this.started = startingTime;\n if (context) {\n this.update(context);\n }\n }\n\n /** JSDoc */\n // eslint-disable-next-line complexity\n public update(context: SessionContext = {}): void {\n if (context.user) {\n if (!this.ipAddress && context.user.ip_address) {\n this.ipAddress = context.user.ip_address;\n }\n\n if (!this.did && !context.did) {\n this.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n this.timestamp = context.timestamp || timestampInSeconds();\n if (context.ignoreDuration) {\n this.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n this.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n this.init = context.init;\n }\n if (!this.did && context.did) {\n this.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n this.started = context.started;\n }\n if (this.ignoreDuration) {\n this.duration = undefined;\n } else if (typeof context.duration === 'number') {\n this.duration = context.duration;\n } else {\n const duration = this.timestamp - this.started;\n this.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n this.release = context.release;\n }\n if (context.environment) {\n this.environment = context.environment;\n }\n if (!this.ipAddress && context.ipAddress) {\n this.ipAddress = context.ipAddress;\n }\n if (!this.userAgent && context.userAgent) {\n this.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n this.errors = context.errors;\n }\n if (context.status) {\n this.status = context.status;\n }\n }\n\n /** JSDoc */\n public close(status?: Exclude): void {\n if (status) {\n this.update({ status });\n } else if (this.status === 'ok') {\n this.update({ status: 'exited' });\n } else {\n this.update();\n }\n }\n\n /** JSDoc */\n public toJSON(): {\n init: boolean;\n sid: string;\n did?: string;\n timestamp: string;\n started: string;\n duration?: number;\n status: SessionStatus;\n errors: number;\n attrs?: {\n release?: string;\n environment?: string;\n user_agent?: string;\n ip_address?: string;\n };\n } {\n return dropUndefinedKeys({\n sid: `${this.sid}`,\n init: this.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(this.started * 1000).toISOString(),\n timestamp: new Date(this.timestamp * 1000).toISOString(),\n status: this.status,\n errors: this.errors,\n did: typeof this.did === 'number' || typeof this.did === 'string' ? `${this.did}` : undefined,\n duration: this.duration,\n attrs: {\n release: this.release,\n environment: this.environment,\n ip_address: this.ipAddress,\n user_agent: this.userAgent,\n },\n });\n }\n}\n","/* eslint-disable max-lines */\nimport {\n Breadcrumb,\n BreadcrumbHint,\n Client,\n CustomSamplingContext,\n Event,\n EventHint,\n Extra,\n Extras,\n Hub as HubInterface,\n Integration,\n IntegrationClass,\n Primitive,\n SessionContext,\n Severity,\n Span,\n SpanContext,\n Transaction,\n TransactionContext,\n User,\n} from '@sentry/types';\nimport {\n consoleSandbox,\n dateTimestampInSeconds,\n getGlobalObject,\n getGlobalSingleton,\n isNodeEnv,\n logger,\n uuid4,\n} from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from './flags';\nimport { Scope } from './scope';\nimport { Session } from './session';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nexport const API_VERSION = 4;\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * A layer in the process stack.\n * @hidden\n */\nexport interface Layer {\n client?: Client;\n scope?: Scope;\n}\n\n/**\n * An object that contains a hub and maintains a scope stack.\n * @hidden\n */\nexport interface Carrier {\n __SENTRY__?: {\n hub?: Hub;\n /**\n * Extra Hub properties injected by various SDKs\n */\n integrations?: Integration[];\n extensions?: {\n /** Hack to prevent bundlers from breaking our usage of the domain package in the cross-platform Hub package */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n domain?: { [key: string]: any };\n } & {\n /** Extension methods for the hub, which are bound to the current Hub instance */\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key: string]: Function;\n };\n };\n}\n\n/**\n * @hidden\n * @deprecated Can be removed once `Hub.getActiveDomain` is removed.\n */\nexport interface DomainAsCarrier extends Carrier {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n members: { [key: string]: any }[];\n}\n\n/**\n * @inheritDoc\n */\nexport class Hub implements HubInterface {\n /** Is a {@link Layer}[] containing the client and scope */\n private readonly _stack: Layer[] = [{}];\n\n /** Contains the last event id of a captured event. */\n private _lastEventId?: string;\n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n public constructor(client?: Client, scope: Scope = new Scope(), private readonly _version: number = API_VERSION) {\n this.getStackTop().scope = scope;\n if (client) {\n this.bindClient(client);\n }\n }\n\n /**\n * @inheritDoc\n */\n public isOlderThan(version: number): boolean {\n return this._version < version;\n }\n\n /**\n * @inheritDoc\n */\n public bindClient(client?: Client): void {\n const top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n */\n public pushScope(): Scope {\n // We want to clone the content of prev scope\n const scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n */\n public popScope(): boolean {\n if (this.getStack().length <= 1) return false;\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n */\n public withScope(callback: (scope: Scope) => void): void {\n const scope = this.pushScope();\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n }\n\n /**\n * @inheritDoc\n */\n public getClient(): C | undefined {\n return this.getStackTop().client as C;\n }\n\n /** Returns the scope of the top stack. */\n public getScope(): Scope | undefined {\n return this.getStackTop().scope;\n }\n\n /** Returns the scope stack for domains or the process. */\n public getStack(): Layer[] {\n return this._stack;\n }\n\n /** Returns the topmost scope layer in the order domain > local > process. */\n public getStackTop(): Layer {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public captureException(exception: any, hint?: EventHint): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n let finalHint = hint;\n\n // If there's no explicit hint provided, mimic the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n let syntheticException: Error;\n try {\n throw new Error('Sentry syntheticException');\n } catch (exception) {\n syntheticException = exception as Error;\n }\n finalHint = {\n originalException: exception,\n syntheticException,\n };\n }\n\n this._invokeClient('captureException', exception, {\n ...finalHint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(message: string, level?: Severity, hint?: EventHint): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n let finalHint = hint;\n\n // If there's no explicit hint provided, mimic the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n let syntheticException: Error;\n try {\n throw new Error(message);\n } catch (exception) {\n syntheticException = exception as Error;\n }\n finalHint = {\n originalException: message,\n syntheticException,\n };\n }\n\n this._invokeClient('captureMessage', message, level, {\n ...finalHint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (event.type !== 'transaction') {\n this._lastEventId = eventId;\n }\n\n this._invokeClient('captureEvent', event, {\n ...hint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public lastEventId(): string | undefined {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void {\n const { scope, client } = this.getStackTop();\n\n if (!scope || !client) return;\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) as Breadcrumb | null)\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): void {\n const scope = this.getScope();\n if (scope) scope.setUser(user);\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): void {\n const scope = this.getScope();\n if (scope) scope.setTags(tags);\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): void {\n const scope = this.getScope();\n if (scope) scope.setExtras(extras);\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): void {\n const scope = this.getScope();\n if (scope) scope.setTag(key, value);\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): void {\n const scope = this.getScope();\n if (scope) scope.setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public setContext(name: string, context: { [key: string]: any } | null): void {\n const scope = this.getScope();\n if (scope) scope.setContext(name, context);\n }\n\n /**\n * @inheritDoc\n */\n public configureScope(callback: (scope: Scope) => void): void {\n const { scope, client } = this.getStackTop();\n if (scope && client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n public run(callback: (hub: Hub) => void): void {\n const oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n */\n public getIntegration(integration: IntegrationClass): T | null {\n const client = this.getClient();\n if (!client) return null;\n try {\n return client.getIntegration(integration);\n } catch (_oO) {\n IS_DEBUG_BUILD && logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n public startSpan(context: SpanContext): Span {\n return this._callExtensionMethod('startSpan', context);\n }\n\n /**\n * @inheritDoc\n */\n public startTransaction(context: TransactionContext, customSamplingContext?: CustomSamplingContext): Transaction {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n }\n\n /**\n * @inheritDoc\n */\n public traceHeaders(): { [key: string]: string } {\n return this._callExtensionMethod<{ [key: string]: string }>('traceHeaders');\n }\n\n /**\n * @inheritDoc\n */\n public captureSession(endSession: boolean = false): void {\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n */\n public endSession(): void {\n const layer = this.getStackTop();\n const scope = layer && layer.scope;\n const session = scope && scope.getSession();\n if (session) {\n session.close();\n }\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n if (scope) {\n scope.setSession();\n }\n }\n\n /**\n * @inheritDoc\n */\n public startSession(context?: SessionContext): Session {\n const { scope, client } = this.getStackTop();\n const { release, environment } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const global = getGlobalObject<{ navigator?: { userAgent?: string } }>();\n const { userAgent } = global.navigator || {};\n\n const session = new Session({\n release,\n environment,\n ...(scope && { user: scope.getUser() }),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n if (scope) {\n // End existing session if there's one\n const currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n currentSession.update({ status: 'exited' });\n }\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n\n return session;\n }\n\n /**\n * Sends the current Session on the scope\n */\n private _sendSessionUpdate(): void {\n const { scope, client } = this.getStackTop();\n if (!scope) return;\n\n const session = scope.getSession && scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n }\n\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _invokeClient(method: M, ...args: any[]): void {\n const { scope, client } = this.getStackTop();\n if (client && client[method]) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (client as any)[method](...args, scope);\n }\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _callExtensionMethod(method: string, ...args: any[]): T {\n const carrier = getMainCarrier();\n const sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n IS_DEBUG_BUILD && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nexport function getMainCarrier(): Carrier {\n const carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nexport function makeMain(hub: Hub): Hub {\n const registry = getMainCarrier();\n const oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nexport function getCurrentHub(): Hub {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * Returns the active domain, if one exists\n * @deprecated No longer used; remove in v7\n * @returns The domain, or undefined if there is no active domain\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getActiveDomain(): DomainAsCarrier | undefined {\n IS_DEBUG_BUILD && logger.warn('Function `getActiveDomain` is deprecated and will be removed in a future version.');\n\n const sentry = getMainCarrier().__SENTRY__;\n\n return sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n}\n\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry: Carrier): Hub {\n try {\n const sentry = getMainCarrier().__SENTRY__;\n const activeDomain = sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n const registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n } catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier: Carrier): boolean {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier: Carrier): Hub {\n return getGlobalSingleton('hub', () => new Hub(), carrier);\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nexport function setHubOnCarrier(carrier: Carrier, hub: Hub): boolean {\n if (!carrier) return false;\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n","import {\n AggregationCounts,\n RequestSessionStatus,\n SessionAggregates,\n SessionFlusherLike,\n Transport,\n} from '@sentry/types';\nimport { dropUndefinedKeys, logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from './flags';\nimport { getCurrentHub } from './hub';\n\ntype ReleaseHealthAttributes = {\n environment?: string;\n release: string;\n};\n\n/**\n * @inheritdoc\n */\nexport class SessionFlusher implements SessionFlusherLike {\n public readonly flushTimeout: number = 60;\n private _pendingAggregates: Record = {};\n private _sessionAttrs: ReleaseHealthAttributes;\n private _intervalId: ReturnType;\n private _isEnabled: boolean = true;\n private _transport: Transport;\n\n public constructor(transport: Transport, attrs: ReleaseHealthAttributes) {\n this._transport = transport;\n // Call to setInterval, so that flush is called every 60 seconds\n this._intervalId = setInterval(() => this.flush(), this.flushTimeout * 1000);\n this._sessionAttrs = attrs;\n }\n\n /** Sends session aggregates to Transport */\n public sendSessionAggregates(sessionAggregates: SessionAggregates): void {\n if (!this._transport.sendSession) {\n IS_DEBUG_BUILD && logger.warn(\"Dropping session because custom transport doesn't implement sendSession\");\n return;\n }\n void this._transport.sendSession(sessionAggregates).then(null, reason => {\n IS_DEBUG_BUILD && logger.error('Error while sending session:', reason);\n });\n }\n\n /** Checks if `pendingAggregates` has entries, and if it does flushes them by calling `sendSessions` */\n public flush(): void {\n const sessionAggregates = this.getSessionAggregates();\n if (sessionAggregates.aggregates.length === 0) {\n return;\n }\n this._pendingAggregates = {};\n this.sendSessionAggregates(sessionAggregates);\n }\n\n /** Massages the entries in `pendingAggregates` and returns aggregated sessions */\n public getSessionAggregates(): SessionAggregates {\n const aggregates: AggregationCounts[] = Object.keys(this._pendingAggregates).map((key: string) => {\n return this._pendingAggregates[parseInt(key)];\n });\n\n const sessionAggregates: SessionAggregates = {\n attrs: this._sessionAttrs,\n aggregates,\n };\n return dropUndefinedKeys(sessionAggregates);\n }\n\n /** JSDoc */\n public close(): void {\n clearInterval(this._intervalId);\n this._isEnabled = false;\n this.flush();\n }\n\n /**\n * Wrapper function for _incrementSessionStatusCount that checks if the instance of SessionFlusher is enabled then\n * fetches the session status of the request from `Scope.getRequestSession().status` on the scope and passes them to\n * `_incrementSessionStatusCount` along with the start date\n */\n public incrementSessionStatusCount(): void {\n if (!this._isEnabled) {\n return;\n }\n const scope = getCurrentHub().getScope();\n const requestSession = scope && scope.getRequestSession();\n\n if (requestSession && requestSession.status) {\n this._incrementSessionStatusCount(requestSession.status, new Date());\n // This is not entirely necessarily but is added as a safe guard to indicate the bounds of a request and so in\n // case captureRequestSession is called more than once to prevent double count\n if (scope) {\n scope.setRequestSession(undefined);\n }\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n }\n }\n\n /**\n * Increments status bucket in pendingAggregates buffer (internal state) corresponding to status of\n * the session received\n */\n private _incrementSessionStatusCount(status: RequestSessionStatus, date: Date): number {\n // Truncate minutes and seconds on Session Started attribute to have one minute bucket keys\n const sessionStartedTrunc = new Date(date).setSeconds(0, 0);\n this._pendingAggregates[sessionStartedTrunc] = this._pendingAggregates[sessionStartedTrunc] || {};\n\n // corresponds to aggregated sessions in one specific minute bucket\n // for example, {\"started\":\"2021-03-16T08:00:00.000Z\",\"exited\":4, \"errored\": 1}\n const aggregationCounts: AggregationCounts = this._pendingAggregates[sessionStartedTrunc];\n if (!aggregationCounts.started) {\n aggregationCounts.started = new Date(sessionStartedTrunc).toISOString();\n }\n\n switch (status) {\n case 'errored':\n aggregationCounts.errored = (aggregationCounts.errored || 0) + 1;\n return aggregationCounts.errored;\n case 'ok':\n aggregationCounts.exited = (aggregationCounts.exited || 0) + 1;\n return aggregationCounts.exited;\n default:\n aggregationCounts.crashed = (aggregationCounts.crashed || 0) + 1;\n return aggregationCounts.crashed;\n }\n }\n}\n","import { DsnComponents, DsnLike, SdkMetadata } from '@sentry/types';\nimport { dsnToString, makeDsn, urlEncode } from '@sentry/utils';\n\nconst SENTRY_API_VERSION = '7';\n\n/**\n * Stores details about a Sentry SDK\n */\nexport interface APIDetails {\n /** The DSN as passed to Sentry.init() */\n initDsn: DsnLike;\n /** Metadata about the SDK (name, version, etc) for inclusion in envelope headers */\n metadata: SdkMetadata;\n /** The internally used Dsn object. */\n readonly dsn: DsnComponents;\n /** The envelope tunnel to use. */\n readonly tunnel?: string;\n}\n\n/**\n * Helper class to provide urls, headers and metadata that can be used to form\n * different types of requests to Sentry endpoints.\n * Supports both envelopes and regular event requests.\n *\n * @deprecated Please use APIDetails\n **/\nexport class API {\n /** The DSN as passed to Sentry.init() */\n public dsn: DsnLike;\n\n /** Metadata about the SDK (name, version, etc) for inclusion in envelope headers */\n public metadata: SdkMetadata;\n\n /** The internally used Dsn object. */\n private readonly _dsnObject: DsnComponents;\n\n /** The envelope tunnel to use. */\n private readonly _tunnel?: string;\n\n /** Create a new instance of API */\n public constructor(dsn: DsnLike, metadata: SdkMetadata = {}, tunnel?: string) {\n this.dsn = dsn;\n this._dsnObject = makeDsn(dsn);\n this.metadata = metadata;\n this._tunnel = tunnel;\n }\n\n /** Returns the Dsn object. */\n public getDsn(): DsnComponents {\n return this._dsnObject;\n }\n\n /** Does this transport force envelopes? */\n public forceEnvelope(): boolean {\n return !!this._tunnel;\n }\n\n /** Returns the prefix to construct Sentry ingestion API endpoints. */\n public getBaseApiEndpoint(): string {\n return getBaseApiEndpoint(this._dsnObject);\n }\n\n /** Returns the store endpoint URL. */\n public getStoreEndpoint(): string {\n return getStoreEndpoint(this._dsnObject);\n }\n\n /**\n * Returns the store endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n public getStoreEndpointWithUrlEncodedAuth(): string {\n return getStoreEndpointWithUrlEncodedAuth(this._dsnObject);\n }\n\n /**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n public getEnvelopeEndpointWithUrlEncodedAuth(): string {\n return getEnvelopeEndpointWithUrlEncodedAuth(this._dsnObject, this._tunnel);\n }\n}\n\n/** Initializes API Details */\nexport function initAPIDetails(dsn: DsnLike, metadata?: SdkMetadata, tunnel?: string): APIDetails {\n return {\n initDsn: dsn,\n metadata: metadata || {},\n dsn: makeDsn(dsn),\n tunnel,\n } as APIDetails;\n}\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn: DsnComponents): string {\n const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n const port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn: DsnComponents, target: 'store' | 'envelope'): string {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/${target}/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn: DsnComponents): string {\n return urlEncode({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n });\n}\n\n/** Returns the store endpoint URL. */\nfunction getStoreEndpoint(dsn: DsnComponents): string {\n return _getIngestEndpoint(dsn, 'store');\n}\n\n/**\n * Returns the store endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nexport function getStoreEndpointWithUrlEncodedAuth(dsn: DsnComponents): string {\n return `${getStoreEndpoint(dsn)}?${_encodedAuth(dsn)}`;\n}\n\n/** Returns the envelope endpoint URL. */\nfunction _getEnvelopeEndpoint(dsn: DsnComponents): string {\n return _getIngestEndpoint(dsn, 'envelope');\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nexport function getEnvelopeEndpointWithUrlEncodedAuth(dsn: DsnComponents, tunnel?: string): string {\n return tunnel ? tunnel : `${_getEnvelopeEndpoint(dsn)}?${_encodedAuth(dsn)}`;\n}\n\n/**\n * Returns an object that can be used in request headers.\n * This is needed for node and the old /store endpoint in sentry\n */\nexport function getRequestHeaders(\n dsn: DsnComponents,\n clientName: string,\n clientVersion: string,\n): { [key: string]: string } {\n // CHANGE THIS to use metadata but keep clientName and clientVersion compatible\n const header = [`Sentry sentry_version=${SENTRY_API_VERSION}`];\n header.push(`sentry_client=${clientName}/${clientVersion}`);\n header.push(`sentry_key=${dsn.publicKey}`);\n if (dsn.pass) {\n header.push(`sentry_secret=${dsn.pass}`);\n }\n return {\n 'Content-Type': 'application/json',\n 'X-Sentry-Auth': header.join(', '),\n };\n}\n\n/** Returns the url to the report dialog endpoint. */\nexport function getReportDialogEndpoint(\n dsnLike: DsnLike,\n dialogOptions: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n user?: { name?: string; email?: string };\n },\n): string {\n const dsn = makeDsn(dsnLike);\n const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (const key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'user') {\n if (!dialogOptions.user) {\n continue;\n }\n if (dialogOptions.user.name) {\n encodedOptions += `&name=${encodeURIComponent(dialogOptions.user.name)}`;\n }\n if (dialogOptions.user.email) {\n encodedOptions += `&email=${encodeURIComponent(dialogOptions.user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] as string)}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { Integration, Options } from '@sentry/types';\nimport { addNonEnumerableProperty, logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from './flags';\n\nexport const installedIntegrations: string[] = [];\n\n/** Map of integrations assigned to a client */\nexport type IntegrationIndex = {\n [key: string]: Integration;\n} & { initialized?: boolean };\n\n/**\n * @private\n */\nfunction filterDuplicates(integrations: Integration[]): Integration[] {\n return integrations.reduce((acc, integrations) => {\n if (acc.every(accIntegration => integrations.name !== accIntegration.name)) {\n acc.push(integrations);\n }\n return acc;\n }, [] as Integration[]);\n}\n\n/** Gets integration to install */\nexport function getIntegrationsToSetup(options: Options): Integration[] {\n const defaultIntegrations = (options.defaultIntegrations && [...options.defaultIntegrations]) || [];\n const userIntegrations = options.integrations;\n\n let integrations: Integration[] = [...filterDuplicates(defaultIntegrations)];\n\n if (Array.isArray(userIntegrations)) {\n // Filter out integrations that are also included in user options\n integrations = [\n ...integrations.filter(integrations =>\n userIntegrations.every(userIntegration => userIntegration.name !== integrations.name),\n ),\n // And filter out duplicated user options integrations\n ...filterDuplicates(userIntegrations),\n ];\n } else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(integrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n }\n\n // Make sure that if present, `Debug` integration will always run last\n const integrationsNames = integrations.map(i => i.name);\n const alwaysLastToRun = 'Debug';\n if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n integrations.push(...integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1));\n }\n\n return integrations;\n}\n\n/** Setup given integration */\nexport function setupIntegration(integration: Integration): void {\n if (installedIntegrations.indexOf(integration.name) !== -1) {\n return;\n }\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n IS_DEBUG_BUILD && logger.log(`Integration installed: ${integration.name}`);\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nexport function setupIntegrations(options: O): IntegrationIndex {\n const integrations: IntegrationIndex = {};\n getIntegrationsToSetup(options).forEach(integration => {\n integrations[integration.name] = integration;\n setupIntegration(integration);\n });\n // set the `initialized` flag so we don't run through the process again unecessarily; use `Object.defineProperty`\n // because by default it creates a property which is nonenumerable, which we want since `initialized` shouldn't be\n // considered a member of the index the way the actual integrations are\n addNonEnumerableProperty(integrations, 'initialized', true);\n return integrations;\n}\n","/* eslint-disable max-lines */\nimport { Scope, Session } from '@sentry/hub';\nimport {\n Client,\n DsnComponents,\n Event,\n EventHint,\n Integration,\n IntegrationClass,\n Options,\n Severity,\n Transport,\n} from '@sentry/types';\nimport {\n checkOrSetAlreadyCaught,\n dateTimestampInSeconds,\n isPlainObject,\n isPrimitive,\n isThenable,\n logger,\n makeDsn,\n normalize,\n rejectedSyncPromise,\n resolvedSyncPromise,\n SentryError,\n SyncPromise,\n truncate,\n uuid4,\n} from '@sentry/utils';\n\nimport { Backend, BackendClass } from './basebackend';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { IntegrationIndex, setupIntegrations } from './integration';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding backend constructor and options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}. Also, the Backend instance is available via\n * {@link Client.getBackend}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event via the backend, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient {\n * public constructor(options: NodeOptions) {\n * super(NodeBackend, options);\n * }\n *\n * // ...\n * }\n */\nexport abstract class BaseClient implements Client {\n /**\n * The backend used to physically interact in the environment. Usually, this\n * will correspond to the client. When composing SDKs, however, the Backend\n * from the root SDK will be used.\n */\n protected readonly _backend: B;\n\n /** Options passed to the SDK. */\n protected readonly _options: O;\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n protected readonly _dsn?: DsnComponents;\n\n /** Array of used integrations. */\n protected _integrations: IntegrationIndex = {};\n\n /** Number of calls being processed */\n protected _numProcessing: number = 0;\n\n /**\n * Initializes this client instance.\n *\n * @param backendClass A constructor function to create the backend.\n * @param options Options for the client.\n */\n protected constructor(backendClass: BackendClass, options: O) {\n this._backend = new backendClass(options);\n this._options = options;\n\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public captureException(exception: any, hint?: EventHint, scope?: Scope): string | undefined {\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n IS_DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId: string | undefined = hint && hint.event_id;\n\n this._process(\n this._getBackend()\n .eventFromException(exception, hint)\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(message: string, level?: Severity, hint?: EventHint, scope?: Scope): string | undefined {\n let eventId: string | undefined = hint && hint.event_id;\n\n const promisedEvent = isPrimitive(message)\n ? this._getBackend().eventFromMessage(String(message), level, hint)\n : this._getBackend().eventFromException(message, hint);\n\n this._process(\n promisedEvent\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint, scope?: Scope): string | undefined {\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n IS_DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId: string | undefined = hint && hint.event_id;\n\n this._process(\n this._captureEvent(event, hint, scope).then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureSession(session: Session): void {\n if (!this._isEnabled()) {\n IS_DEBUG_BUILD && logger.warn('SDK not enabled, will not capture session.');\n return;\n }\n\n if (!(typeof session.release === 'string')) {\n IS_DEBUG_BUILD && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this._sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n session.update({ init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n public getDsn(): DsnComponents | undefined {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n public getOptions(): O {\n return this._options;\n }\n\n /**\n * @inheritDoc\n */\n public getTransport(): Transport {\n return this._getBackend().getTransport();\n }\n\n /**\n * @inheritDoc\n */\n public flush(timeout?: number): PromiseLike {\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return this.getTransport()\n .close(timeout)\n .then(transportFlushed => clientFinished && transportFlushed);\n });\n }\n\n /**\n * @inheritDoc\n */\n public close(timeout?: number): PromiseLike {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n return result;\n });\n }\n\n /**\n * Sets up the integrations\n */\n public setupIntegrations(): void {\n if (this._isEnabled() && !this._integrations.initialized) {\n this._integrations = setupIntegrations(this._options);\n }\n }\n\n /**\n * @inheritDoc\n */\n public getIntegration(integration: IntegrationClass): T | null {\n try {\n return (this._integrations[integration.id] as T) || null;\n } catch (_oO) {\n IS_DEBUG_BUILD && logger.warn(`Cannot retrieve integration ${integration.id} from the current Client`);\n return null;\n }\n }\n\n /** Updates existing session based on the provided event */\n protected _updateSessionFromEvent(session: Session, event: Event): void {\n let crashed = false;\n let errored = false;\n const exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (const ex of exceptions) {\n const mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n const sessionNonTerminal = session.status === 'ok';\n const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n session.update({\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /** Deliver captured session to Sentry */\n protected _sendSession(session: Session): void {\n this._getBackend().sendSession(session);\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n protected _isClientDoneProcessing(timeout?: number): PromiseLike {\n return new SyncPromise(resolve => {\n let ticked: number = 0;\n const tick: number = 1;\n\n const interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Returns the current backend. */\n protected _getBackend(): B {\n return this._backend;\n }\n\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n protected _isEnabled(): boolean {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n protected _prepareEvent(event: Event, scope?: Scope, hint?: EventHint): PromiseLike {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1_000 } = this.getOptions();\n const prepared: Event = {\n ...event,\n event_id: event.event_id || (hint && hint.event_id ? hint.event_id : uuid4()),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n\n this._applyClientOptions(prepared);\n this._applyIntegrationsMetadata(prepared);\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n let finalScope = scope;\n if (hint && hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n\n // We prepare the result here with a resolved Event.\n let result = resolvedSyncPromise(prepared);\n\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n if (finalScope) {\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n\n return result.then(evt => {\n if (evt) {\n // TODO this is more of the hack trying to solve https://github.com/getsentry/sentry-javascript/issues/2809\n // it is only attached as extra data to the event if the event somehow skips being normalized\n evt.sdkProcessingMetadata = {\n ...evt.sdkProcessingMetadata,\n normalizeDepth: `${normalize(normalizeDepth)} (${typeof normalizeDepth})`,\n };\n }\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return this._normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n }\n\n /**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\n protected _normalizeEvent(event: Event | null, depth: number, maxBreadth: number): Event | null {\n if (!event) {\n return null;\n }\n\n const normalized = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n normalized.contexts.trace = event.contexts.trace;\n }\n\n normalized.sdkProcessingMetadata = { ...normalized.sdkProcessingMetadata, baseClientNormalized: true };\n\n return normalized;\n }\n\n /**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\n protected _applyClientOptions(event: Event): void {\n const options = this.getOptions();\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : 'production';\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n const exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n const request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n }\n\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\n protected _applyIntegrationsMetadata(event: Event): void {\n const integrationsArray = Object.keys(this._integrations);\n if (integrationsArray.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationsArray];\n }\n }\n\n /**\n * Tells the backend to send this event\n * @param event The Sentry event to send\n */\n protected _sendEvent(event: Event): void {\n this._getBackend().sendEvent(event);\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n protected _captureEvent(event: Event, hint?: EventHint, scope?: Scope): PromiseLike {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n IS_DEBUG_BUILD && logger.error(reason);\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n protected _processEvent(event: Event, hint?: EventHint, scope?: Scope): PromiseLike {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { beforeSend, sampleRate } = this.getOptions();\n const transport = this.getTransport();\n\n type RecordLostEvent = NonNullable;\n type RecordLostEventParams = Parameters;\n\n function recordLostEvent(outcome: RecordLostEventParams[0], category: RecordLostEventParams[1]): void {\n if (transport.recordLostEvent) {\n transport.recordLostEvent(outcome, category);\n }\n }\n\n if (!this._isEnabled()) {\n return rejectedSyncPromise(new SentryError('SDK not enabled, will not capture event.'));\n }\n\n const isTransaction = event.type === 'transaction';\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n recordLostEvent('sample_rate', 'event');\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n ),\n );\n }\n\n return this._prepareEvent(event, scope, hint)\n .then(prepared => {\n if (prepared === null) {\n recordLostEvent('event_processor', event.type || 'event');\n throw new SentryError('An event processor returned null, will not send event.');\n }\n\n const isInternalException = hint && hint.data && (hint.data as { __sentry__: boolean }).__sentry__ === true;\n if (isInternalException || isTransaction || !beforeSend) {\n return prepared;\n }\n\n const beforeSendResult = beforeSend(prepared, hint);\n return _ensureBeforeSendRv(beforeSendResult);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n recordLostEvent('before_send', event.type || 'event');\n throw new SentryError('`beforeSend` returned `null`, will not send event.');\n }\n\n const session = scope && scope.getSession && scope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n this._sendEvent(processedEvent);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason as Error,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n protected _process(promise: PromiseLike): void {\n this._numProcessing += 1;\n void promise.then(\n value => {\n this._numProcessing -= 1;\n return value;\n },\n reason => {\n this._numProcessing -= 1;\n return reason;\n },\n );\n }\n}\n\n/**\n * Verifies that return value of configured `beforeSend` is of expected type.\n */\nfunction _ensureBeforeSendRv(rv: PromiseLike | Event | null): PromiseLike | Event | null {\n const nullErr = '`beforeSend` method has to return `null` or a valid event.';\n if (isThenable(rv)) {\n return rv.then(\n event => {\n if (!(isPlainObject(event) || event === null)) {\n throw new SentryError(nullErr);\n }\n return event;\n },\n e => {\n throw new SentryError(`beforeSend rejected with ${e}`);\n },\n );\n } else if (!(isPlainObject(rv) || rv === null)) {\n throw new SentryError(nullErr);\n }\n return rv;\n}\n","import {\n Event,\n EventEnvelope,\n EventItem,\n SdkInfo,\n SentryRequest,\n SentryRequestType,\n Session,\n SessionAggregates,\n SessionEnvelope,\n SessionItem,\n} from '@sentry/types';\nimport { createEnvelope, dsnToString, normalize, serializeEnvelope } from '@sentry/utils';\n\nimport { APIDetails, getEnvelopeEndpointWithUrlEncodedAuth, getStoreEndpointWithUrlEncodedAuth } from './api';\n\n/** Extract sdk info from from the API metadata */\nfunction getSdkMetadataForEnvelopeHeader(api: APIDetails): SdkInfo | undefined {\n if (!api.metadata || !api.metadata.sdk) {\n return;\n }\n const { name, version } = api.metadata.sdk;\n return { name, version };\n}\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event: Event, sdkInfo?: SdkInfo): Event {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];\n event.sdk.packages = [...(event.sdk.packages || []), ...(sdkInfo.packages || [])];\n return event;\n}\n\n/** Creates an envelope from a Session */\nexport function createSessionEnvelope(\n session: Session | SessionAggregates,\n api: APIDetails,\n): [SessionEnvelope, SentryRequestType] {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n const envelopeHeaders = {\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!api.tunnel && { dsn: dsnToString(api.dsn) }),\n };\n\n // I know this is hacky but we don't want to add `sessions` to request type since it's never rate limited\n const type = 'aggregates' in session ? ('sessions' as SentryRequestType) : 'session';\n\n // TODO (v7) Have to cast type because envelope items do not accept a `SentryRequestType`\n const envelopeItem = [{ type } as { type: 'session' | 'sessions' }, session] as SessionItem;\n const envelope = createEnvelope(envelopeHeaders, [envelopeItem]);\n\n return [envelope, type];\n}\n\n/** Creates a SentryRequest from a Session. */\nexport function sessionToSentryRequest(session: Session | SessionAggregates, api: APIDetails): SentryRequest {\n const [envelope, type] = createSessionEnvelope(session, api);\n return {\n body: serializeEnvelope(envelope),\n type,\n url: getEnvelopeEndpointWithUrlEncodedAuth(api.dsn, api.tunnel),\n };\n}\n\n/**\n * Create an Envelope from an event. Note that this is duplicated from below,\n * but on purpose as this will be refactored in v7.\n */\nexport function createEventEnvelope(event: Event, api: APIDetails): EventEnvelope {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n const eventType = event.type || 'event';\n\n const { transactionSampling } = event.sdkProcessingMetadata || {};\n const { method: samplingMethod, rate: sampleRate } = transactionSampling || {};\n\n // TODO: Below is a temporary hack in order to debug a serialization error - see\n // https://github.com/getsentry/sentry-javascript/issues/2809,\n // https://github.com/getsentry/sentry-javascript/pull/4425, and\n // https://github.com/getsentry/sentry-javascript/pull/4574.\n //\n // TL; DR: even though we normalize all events (which should prevent this), something is causing `JSON.stringify` to\n // throw a circular reference error.\n //\n // When it's time to remove it:\n // 1. Delete everything between here and where the request object `req` is created, EXCEPT the line deleting\n // `sdkProcessingMetadata`\n // 2. Restore the original version of the request body, which is commented out\n // 3. Search for either of the PR URLs above and pull out the companion hacks in the browser playwright tests and the\n // baseClient tests in this package\n enhanceEventWithSdkInfo(event, api.metadata.sdk);\n event.tags = event.tags || {};\n event.extra = event.extra || {};\n\n // In theory, all events should be marked as having gone through normalization and so\n // we should never set this tag/extra data\n if (!(event.sdkProcessingMetadata && event.sdkProcessingMetadata.baseClientNormalized)) {\n event.tags.skippedNormalization = true;\n event.extra.normalizeDepth = event.sdkProcessingMetadata ? event.sdkProcessingMetadata.normalizeDepth : 'unset';\n }\n\n // prevent this data from being sent to sentry\n // TODO: This is NOT part of the hack - DO NOT DELETE\n delete event.sdkProcessingMetadata;\n\n const envelopeHeaders = {\n event_id: event.event_id as string,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!api.tunnel && { dsn: dsnToString(api.dsn) }),\n };\n const eventItem: EventItem = [\n {\n type: eventType,\n sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n },\n event,\n ];\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\n\n/** Creates a SentryRequest from an event. */\nexport function eventToSentryRequest(event: Event, api: APIDetails): SentryRequest {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n const eventType = event.type || 'event';\n const useEnvelope = eventType === 'transaction' || !!api.tunnel;\n\n const { transactionSampling } = event.sdkProcessingMetadata || {};\n const { method: samplingMethod, rate: sampleRate } = transactionSampling || {};\n\n // TODO: Below is a temporary hack in order to debug a serialization error - see\n // https://github.com/getsentry/sentry-javascript/issues/2809,\n // https://github.com/getsentry/sentry-javascript/pull/4425, and\n // https://github.com/getsentry/sentry-javascript/pull/4574.\n //\n // TL; DR: even though we normalize all events (which should prevent this), something is causing `JSON.stringify` to\n // throw a circular reference error.\n //\n // When it's time to remove it:\n // 1. Delete everything between here and where the request object `req` is created, EXCEPT the line deleting\n // `sdkProcessingMetadata`\n // 2. Restore the original version of the request body, which is commented out\n // 3. Search for either of the PR URLs above and pull out the companion hacks in the browser playwright tests and the\n // baseClient tests in this package\n enhanceEventWithSdkInfo(event, api.metadata.sdk);\n event.tags = event.tags || {};\n event.extra = event.extra || {};\n\n // In theory, all events should be marked as having gone through normalization and so\n // we should never set this tag/extra data\n if (!(event.sdkProcessingMetadata && event.sdkProcessingMetadata.baseClientNormalized)) {\n event.tags.skippedNormalization = true;\n event.extra.normalizeDepth = event.sdkProcessingMetadata ? event.sdkProcessingMetadata.normalizeDepth : 'unset';\n }\n\n // prevent this data from being sent to sentry\n // TODO: This is NOT part of the hack - DO NOT DELETE\n delete event.sdkProcessingMetadata;\n\n let body;\n try {\n // 99.9% of events should get through just fine - no change in behavior for them\n body = JSON.stringify(event);\n } catch (err) {\n // Record data about the error without replacing original event data, then force renormalization\n event.tags.JSONStringifyError = true;\n event.extra.JSONStringifyError = err;\n try {\n body = JSON.stringify(normalize(event));\n } catch (newErr) {\n // At this point even renormalization hasn't worked, meaning something about the event data has gone very wrong.\n // Time to cut our losses and record only the new error. With luck, even in the problematic cases we're trying to\n // debug with this hack, we won't ever land here.\n const innerErr = newErr as Error;\n body = JSON.stringify({\n message: 'JSON.stringify error after renormalization',\n // setting `extra: { innerErr }` here for some reason results in an empty object, so unpack manually\n extra: { message: innerErr.message, stack: innerErr.stack },\n });\n }\n }\n\n const req: SentryRequest = {\n // this is the relevant line of code before the hack was added, to make it easy to undo said hack once we've solved\n // the mystery\n // body: JSON.stringify(sdkInfo ? enhanceEventWithSdkInfo(event, api.metadata.sdk) : event),\n body,\n type: eventType,\n url: useEnvelope\n ? getEnvelopeEndpointWithUrlEncodedAuth(api.dsn, api.tunnel)\n : getStoreEndpointWithUrlEncodedAuth(api.dsn),\n };\n\n // https://develop.sentry.dev/sdk/envelopes/\n\n // Since we don't need to manipulate envelopes nor store them, there is no\n // exported concept of an Envelope with operations including serialization and\n // deserialization. Instead, we only implement a minimal subset of the spec to\n // serialize events inline here.\n if (useEnvelope) {\n const envelopeHeaders = {\n event_id: event.event_id as string,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!api.tunnel && { dsn: dsnToString(api.dsn) }),\n };\n const eventItem: EventItem = [\n {\n type: eventType,\n sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n },\n req.body,\n ];\n const envelope = createEnvelope(envelopeHeaders, [eventItem]);\n req.body = serializeEnvelope(envelope);\n }\n\n return req;\n}\n","import { Event, Response, Transport } from '@sentry/types';\nimport { resolvedSyncPromise } from '@sentry/utils';\n\n/** Noop transport */\nexport class NoopTransport implements Transport {\n /**\n * @inheritDoc\n */\n public sendEvent(_: Event): PromiseLike {\n return resolvedSyncPromise({\n reason: 'NoopTransport: Event has been skipped because no Dsn is configured.',\n status: 'skipped',\n });\n }\n\n /**\n * @inheritDoc\n */\n public close(_?: number): PromiseLike {\n return resolvedSyncPromise(true);\n }\n}\n","import { Event, EventHint, Options, Session, Severity, Transport } from '@sentry/types';\nimport { logger, SentryError } from '@sentry/utils';\n\nimport { initAPIDetails } from './api';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { createEventEnvelope, createSessionEnvelope } from './request';\nimport { NewTransport } from './transports/base';\nimport { NoopTransport } from './transports/noop';\n\n/**\n * Internal platform-dependent Sentry SDK Backend.\n *\n * While {@link Client} contains business logic specific to an SDK, the\n * Backend offers platform specific implementations for low-level operations.\n * These are persisting and loading information, sending events, and hooking\n * into the environment.\n *\n * Backends receive a handle to the Client in their constructor. When a\n * Backend automatically generates events, it must pass them to\n * the Client for validation and processing first.\n *\n * Usually, the Client will be of corresponding type, e.g. NodeBackend\n * receives NodeClient. However, higher-level SDKs can choose to instantiate\n * multiple Backends and delegate tasks between them. In this case, an event\n * generated by one backend might very well be sent by another one.\n *\n * The client also provides access to options via {@link Client.getOptions}.\n * @hidden\n */\nexport interface Backend {\n /** Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`. */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n eventFromException(exception: any, hint?: EventHint): PromiseLike;\n\n /** Creates an {@link Event} from primitive inputs to `captureMessage`. */\n eventFromMessage(message: string, level?: Severity, hint?: EventHint): PromiseLike;\n\n /** Submits the event to Sentry */\n sendEvent(event: Event): void;\n\n /** Submits the session to Sentry */\n sendSession(session: Session): void;\n\n /**\n * Returns the transport that is used by the backend.\n * Please note that the transport gets lazy initialized so it will only be there once the first event has been sent.\n *\n * @returns The transport.\n */\n getTransport(): Transport;\n}\n\n/**\n * A class object that can instantiate Backend objects.\n * @hidden\n */\nexport type BackendClass = new (options: O) => B;\n\n/**\n * This is the base implemention of a Backend.\n * @hidden\n */\nexport abstract class BaseBackend implements Backend {\n /** Options passed to the SDK. */\n protected readonly _options: O;\n\n /** Cached transport used internally. */\n protected _transport: Transport;\n\n /** New v7 Transport that is initialized alongside the old one */\n protected _newTransport?: NewTransport;\n\n /** Creates a new backend instance. */\n public constructor(options: O) {\n this._options = options;\n if (!this._options.dsn) {\n IS_DEBUG_BUILD && logger.warn('No DSN provided, backend will not do anything.');\n }\n this._transport = this._setupTransport();\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public eventFromException(_exception: any, _hint?: EventHint): PromiseLike {\n throw new SentryError('Backend has to implement `eventFromException` method');\n }\n\n /**\n * @inheritDoc\n */\n public eventFromMessage(_message: string, _level?: Severity, _hint?: EventHint): PromiseLike {\n throw new SentryError('Backend has to implement `eventFromMessage` method');\n }\n\n /**\n * @inheritDoc\n */\n public sendEvent(event: Event): void {\n // TODO(v7): Remove the if-else\n if (\n this._newTransport &&\n this._options.dsn &&\n this._options._experiments &&\n this._options._experiments.newTransport\n ) {\n const api = initAPIDetails(this._options.dsn, this._options._metadata, this._options.tunnel);\n const env = createEventEnvelope(event, api);\n void this._newTransport.send(env).then(null, reason => {\n IS_DEBUG_BUILD && logger.error('Error while sending event:', reason);\n });\n } else {\n void this._transport.sendEvent(event).then(null, reason => {\n IS_DEBUG_BUILD && logger.error('Error while sending event:', reason);\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n public sendSession(session: Session): void {\n if (!this._transport.sendSession) {\n IS_DEBUG_BUILD && logger.warn(\"Dropping session because custom transport doesn't implement sendSession\");\n return;\n }\n\n // TODO(v7): Remove the if-else\n if (\n this._newTransport &&\n this._options.dsn &&\n this._options._experiments &&\n this._options._experiments.newTransport\n ) {\n const api = initAPIDetails(this._options.dsn, this._options._metadata, this._options.tunnel);\n const [env] = createSessionEnvelope(session, api);\n void this._newTransport.send(env).then(null, reason => {\n IS_DEBUG_BUILD && logger.error('Error while sending session:', reason);\n });\n } else {\n void this._transport.sendSession(session).then(null, reason => {\n IS_DEBUG_BUILD && logger.error('Error while sending session:', reason);\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n public getTransport(): Transport {\n return this._transport;\n }\n\n /**\n * Sets up the transport so it can be used later to send requests.\n */\n protected _setupTransport(): Transport {\n return new NoopTransport();\n }\n}\n","import { getCurrentHub } from '@sentry/hub';\nimport { Client, Options } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from './flags';\n\n/** A class object that can instantiate Client objects. */\nexport type ClientClass = new (options: O) => F;\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nexport function initAndBind(clientClass: ClientClass, options: O): void {\n if (options.debug === true) {\n if (IS_DEBUG_BUILD) {\n logger.enable();\n } else {\n // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n // eslint-disable-next-line no-console\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n }\n }\n const hub = getCurrentHub();\n const scope = hub.getScope();\n if (scope) {\n scope.update(options.initialScope);\n }\n const client = new clientClass(options);\n hub.bindClient(client);\n}\n","import { Envelope, EventStatus } from '@sentry/types';\nimport {\n disabledUntil,\n eventStatusFromHttpCode,\n getEnvelopeType,\n isRateLimited,\n makePromiseBuffer,\n PromiseBuffer,\n RateLimits,\n rejectedSyncPromise,\n resolvedSyncPromise,\n serializeEnvelope,\n updateRateLimits,\n} from '@sentry/utils';\n\nexport const ERROR_TRANSPORT_CATEGORY = 'error';\n\nexport const TRANSACTION_TRANSPORT_CATEGORY = 'transaction';\n\nexport const ATTACHMENT_TRANSPORT_CATEGORY = 'attachment';\n\nexport const SESSION_TRANSPORT_CATEGORY = 'session';\n\ntype TransportCategory =\n | typeof ERROR_TRANSPORT_CATEGORY\n | typeof TRANSACTION_TRANSPORT_CATEGORY\n | typeof ATTACHMENT_TRANSPORT_CATEGORY\n | typeof SESSION_TRANSPORT_CATEGORY;\n\nexport type TransportRequest = {\n body: string;\n category: TransportCategory;\n};\n\nexport type TransportMakeRequestResponse = {\n body?: string;\n headers?: {\n [key: string]: string | null;\n 'x-sentry-rate-limits': string | null;\n 'retry-after': string | null;\n };\n reason?: string;\n statusCode: number;\n};\n\nexport type TransportResponse = {\n status: EventStatus;\n reason?: string;\n};\n\ninterface InternalBaseTransportOptions {\n bufferSize?: number;\n}\n\nexport interface BaseTransportOptions extends InternalBaseTransportOptions {\n // url to send the event\n // transport does not care about dsn specific - client should take care of\n // parsing and figuring that out\n url: string;\n}\n\n// TODO: Move into Browser Transport\nexport interface BrowserTransportOptions extends BaseTransportOptions {\n // options to pass into fetch request\n fetchParams: Record;\n headers?: Record;\n sendClientReports?: boolean;\n}\n\nexport interface NewTransport {\n send(request: Envelope): PromiseLike;\n flush(timeout?: number): PromiseLike;\n}\n\nexport type TransportRequestExecutor = (request: TransportRequest) => PromiseLike;\n\nexport const DEFAULT_TRANSPORT_BUFFER_SIZE = 30;\n\n/**\n * Creates a `NewTransport`\n *\n * @param options\n * @param makeRequest\n */\nexport function createTransport(\n options: InternalBaseTransportOptions,\n makeRequest: TransportRequestExecutor,\n buffer: PromiseBuffer = makePromiseBuffer(options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE),\n): NewTransport {\n let rateLimits: RateLimits = {};\n\n const flush = (timeout?: number): PromiseLike => buffer.drain(timeout);\n\n function send(envelope: Envelope): PromiseLike {\n const envCategory = getEnvelopeType(envelope);\n const category = envCategory === 'event' ? 'error' : (envCategory as TransportCategory);\n const request: TransportRequest = {\n category,\n body: serializeEnvelope(envelope),\n };\n\n // Don't add to buffer if transport is already rate-limited\n if (isRateLimited(rateLimits, category)) {\n return rejectedSyncPromise({\n status: 'rate_limit',\n reason: getRateLimitReason(rateLimits, category),\n });\n }\n\n const requestTask = (): PromiseLike =>\n makeRequest(request).then(({ body, headers, reason, statusCode }): PromiseLike => {\n const status = eventStatusFromHttpCode(statusCode);\n if (headers) {\n rateLimits = updateRateLimits(rateLimits, headers);\n }\n if (status === 'success') {\n return resolvedSyncPromise({ status, reason });\n }\n return rejectedSyncPromise({\n status,\n reason:\n reason ||\n body ||\n (status === 'rate_limit' ? getRateLimitReason(rateLimits, category) : 'Unknown transport error'),\n });\n });\n\n return buffer.add(requestTask);\n }\n\n return {\n send,\n flush,\n };\n}\n\nfunction getRateLimitReason(rateLimits: RateLimits, category: TransportCategory): string {\n return `Too many ${category} requests, backing off until: ${new Date(\n disabledUntil(rateLimits, category),\n ).toISOString()}`;\n}\n","export const SDK_VERSION = '6.19.6';\n","import { Integration, WrappedFunction } from '@sentry/types';\nimport { getOriginalFunction } from '@sentry/utils';\n\nlet originalFunctionToString: () => void;\n\n/** Patch toString calls to return proper name for wrapped functions */\nexport class FunctionToString implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'FunctionToString';\n\n /**\n * @inheritDoc\n */\n public name: string = FunctionToString.id;\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function (this: WrappedFunction, ...args: any[]): string {\n const context = getOriginalFunction(this) || this;\n return originalFunctionToString.apply(context, args);\n };\n }\n}\n","import { Event, EventProcessor, Hub, Integration, StackFrame } from '@sentry/types';\nimport { getEventDescription, isMatchingPattern, logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../flags';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nconst DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n\n/** Options for the InboundFilters integration */\nexport interface InboundFiltersOptions {\n allowUrls: Array;\n denyUrls: Array;\n ignoreErrors: Array;\n ignoreInternal: boolean;\n\n /** @deprecated use {@link InboundFiltersOptions.allowUrls} instead. */\n whitelistUrls: Array;\n /** @deprecated use {@link InboundFiltersOptions.denyUrls} instead. */\n blacklistUrls: Array;\n}\n\n/** Inbound filters configurable by the user */\nexport class InboundFilters implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'InboundFilters';\n\n /**\n * @inheritDoc\n */\n public name: string = InboundFilters.id;\n\n public constructor(private readonly _options: Partial = {}) {}\n\n /**\n * @inheritDoc\n */\n public setupOnce(addGlobalEventProcessor: (processor: EventProcessor) => void, getCurrentHub: () => Hub): void {\n addGlobalEventProcessor((event: Event) => {\n const hub = getCurrentHub();\n if (hub) {\n const self = hub.getIntegration(InboundFilters);\n if (self) {\n const client = hub.getClient();\n const clientOptions = client ? client.getOptions() : {};\n const options = _mergeOptions(self._options, clientOptions);\n return _shouldDropEvent(event, options) ? null : event;\n }\n }\n return event;\n });\n }\n}\n\n/** JSDoc */\nexport function _mergeOptions(\n internalOptions: Partial = {},\n clientOptions: Partial = {},\n): Partial {\n return {\n allowUrls: [\n // eslint-disable-next-line deprecation/deprecation\n ...(internalOptions.whitelistUrls || []),\n ...(internalOptions.allowUrls || []),\n // eslint-disable-next-line deprecation/deprecation\n ...(clientOptions.whitelistUrls || []),\n ...(clientOptions.allowUrls || []),\n ],\n denyUrls: [\n // eslint-disable-next-line deprecation/deprecation\n ...(internalOptions.blacklistUrls || []),\n ...(internalOptions.denyUrls || []),\n // eslint-disable-next-line deprecation/deprecation\n ...(clientOptions.blacklistUrls || []),\n ...(clientOptions.denyUrls || []),\n ],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...DEFAULT_IGNORE_ERRORS,\n ],\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n };\n}\n\n/** JSDoc */\nexport function _shouldDropEvent(event: Event, options: Partial): boolean {\n if (options.ignoreInternal && _isSentryError(event)) {\n IS_DEBUG_BUILD &&\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n return true;\n }\n if (_isIgnoredError(event, options.ignoreErrors)) {\n IS_DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n IS_DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n IS_DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n return false;\n}\n\nfunction _isIgnoredError(event: Event, ignoreErrors?: Array): boolean {\n if (!ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n\n return _getPossibleEventMessages(event).some(message =>\n ignoreErrors.some(pattern => isMatchingPattern(message, pattern)),\n );\n}\n\nfunction _isDeniedUrl(event: Event, denyUrls?: Array): boolean {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n const url = _getEventFilterUrl(event);\n return !url ? false : denyUrls.some(pattern => isMatchingPattern(url, pattern));\n}\n\nfunction _isAllowedUrl(event: Event, allowUrls?: Array): boolean {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n const url = _getEventFilterUrl(event);\n return !url ? true : allowUrls.some(pattern => isMatchingPattern(url, pattern));\n}\n\nfunction _getPossibleEventMessages(event: Event): string[] {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n const { type = '', value = '' } = (event.exception.values && event.exception.values[0]) || {};\n return [`${value}`, `${type}: ${value}`];\n } catch (oO) {\n IS_DEBUG_BUILD && logger.error(`Cannot extract message for event ${getEventDescription(event)}`);\n return [];\n }\n }\n return [];\n}\n\nfunction _isSentryError(event: Event): boolean {\n try {\n // @ts-ignore can't be a sentry error if undefined\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {\n // ignore\n }\n return false;\n}\n\nfunction _getLastValidUrl(frames: StackFrame[] = []): string | null {\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n\n if (frame && frame.filename !== '' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event: Event): string | null {\n try {\n if (event.stacktrace) {\n return _getLastValidUrl(event.stacktrace.frames);\n }\n let frames;\n try {\n // @ts-ignore we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {\n // ignore\n }\n return frames ? _getLastValidUrl(frames) : null;\n } catch (oO) {\n IS_DEBUG_BUILD && logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n","export { FunctionToString } from './functiontostring';\nexport { InboundFilters } from './inboundfilters';\n","import { StackFrame } from '@sentry/types';\nimport { StackLineParser, StackLineParserFn } from '@sentry/utils';\n\n// global reference to slice\nconst UNKNOWN_FUNCTION = '?';\n\nconst OPERA10_PRIORITY = 10;\nconst OPERA11_PRIORITY = 20;\nconst CHROME_PRIORITY = 30;\nconst WINJS_PRIORITY = 40;\nconst GECKO_PRIORITY = 50;\n\nfunction createFrame(filename: string, func: string, lineno?: number, colno?: number): StackFrame {\n const frame: StackFrame = {\n filename,\n function: func,\n // All browser frames are considered in_app\n in_app: true,\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n}\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nconst chromeRegex =\n /^\\s*at (?:(.*?) ?\\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack||[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nconst chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nconst chrome: StackLineParserFn = line => {\n const parts = chromeRegex.exec(line);\n\n if (parts) {\n const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n const subMatch = chromeEvalRegex.exec(parts[2]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nexport const chromeStackParser: StackLineParser = [CHROME_PRIORITY, chrome];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nconst geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nconst gecko: StackLineParserFn = line => {\n const parts = geckoREgex.exec(line);\n\n if (parts) {\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n const subMatch = geckoEvalRegex.exec(parts[3]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n\n let filename = parts[3];\n let func = parts[1] || UNKNOWN_FUNCTION;\n [func, filename] = extractSafariExtensionDetails(func, filename);\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nexport const geckoStackParser: StackLineParser = [GECKO_PRIORITY, gecko];\n\nconst winjsRegex =\n /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nconst winjs: StackLineParserFn = line => {\n const parts = winjsRegex.exec(line);\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\n\nexport const winjsStackParser: StackLineParser = [WINJS_PRIORITY, winjs];\n\nconst opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nconst opera10: StackLineParserFn = line => {\n const parts = opera10Regex.exec(line);\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nexport const opera10StackParser: StackLineParser = [OPERA10_PRIORITY, opera10];\n\nconst opera11Regex =\n / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nconst opera11: StackLineParserFn = line => {\n const parts = opera11Regex.exec(line);\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nexport const opera11StackParser: StackLineParser = [OPERA11_PRIORITY, opera11];\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nconst extractSafariExtensionDetails = (func: string, filename: string): [string, string] => {\n const isSafariExtension = func.indexOf('safari-extension') !== -1;\n const isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename];\n};\n","import { Event, EventHint, Exception, Severity, StackFrame } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addExceptionTypeValue,\n createStackParser,\n extractExceptionKeysForMessage,\n isDOMError,\n isDOMException,\n isError,\n isErrorEvent,\n isEvent,\n isPlainObject,\n normalizeToSize,\n resolvedSyncPromise,\n} from '@sentry/utils';\n\nimport {\n chromeStackParser,\n geckoStackParser,\n opera10StackParser,\n opera11StackParser,\n winjsStackParser,\n} from './stack-parsers';\n\n/**\n * This function creates an exception from an TraceKitStackTrace\n * @param stacktrace TraceKitStackTrace that will be converted to an exception\n * @hidden\n */\nexport function exceptionFromError(ex: Error): Exception {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n const frames = parseStackFrames(ex);\n\n const exception: Exception = {\n type: ex && ex.name,\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\n/**\n * @hidden\n */\nexport function eventFromPlainObject(\n exception: Record,\n syntheticException?: Error,\n isUnhandledRejection?: boolean,\n): Event {\n const event: Event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: `Non-Error ${\n isUnhandledRejection ? 'promise rejection' : 'exception'\n } captured with keys: ${extractExceptionKeysForMessage(exception)}`,\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception),\n },\n };\n\n if (syntheticException) {\n const frames = parseStackFrames(syntheticException);\n if (frames.length) {\n event.stacktrace = { frames };\n }\n }\n\n return event;\n}\n\n/**\n * @hidden\n */\nexport function eventFromError(ex: Error): Event {\n return {\n exception: {\n values: [exceptionFromError(ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nexport function parseStackFrames(ex: Error & { framesToPop?: number; stacktrace?: string }): StackFrame[] {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n const stacktrace = ex.stacktrace || ex.stack || '';\n\n const popSize = getPopSize(ex);\n\n try {\n return createStackParser(\n opera10StackParser,\n opera11StackParser,\n chromeStackParser,\n winjsStackParser,\n geckoStackParser,\n )(stacktrace, popSize);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\nfunction getPopSize(ex: Error & { framesToPop?: number }): number {\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n if (reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n }\n\n return 0;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex: Error & { message: { error?: Error } }): string {\n const message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nexport function eventFromException(\n exception: unknown,\n hint?: EventHint,\n attachStacktrace?: boolean,\n): PromiseLike {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromUnknownInput(exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = Severity.Error;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(\n message: string,\n level: Severity = Severity.Info,\n hint?: EventHint,\n attachStacktrace?: boolean,\n): PromiseLike {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromString(message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nexport function eventFromUnknownInput(\n exception: unknown,\n syntheticException?: Error,\n attachStacktrace?: boolean,\n isUnhandledRejection?: boolean,\n): Event {\n let event: Event;\n\n if (isErrorEvent(exception as ErrorEvent) && (exception as ErrorEvent).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n const errorEvent = exception as ErrorEvent;\n return eventFromError(errorEvent.error as Error);\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception as DOMError) || isDOMException(exception as DOMException)) {\n const domException = exception as DOMException;\n\n if ('stack' in (exception as Error)) {\n event = eventFromError(exception as Error);\n } else {\n const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n const message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n const objectException = exception as Record;\n event = eventFromPlainObject(objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(exception as string, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\n/**\n * @hidden\n */\nexport function eventFromString(input: string, syntheticException?: Error, attachStacktrace?: boolean): Event {\n const event: Event = {\n message: input,\n };\n\n if (attachStacktrace && syntheticException) {\n const frames = parseStackFrames(syntheticException);\n if (frames.length) {\n event.stacktrace = { frames };\n }\n }\n\n return event;\n}\n","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n\ndeclare const __SENTRY_DEBUG__: boolean;\n\n/** Flag that is true for debug builds, false otherwise. */\nexport const IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n","import { forget, getGlobalObject, isNativeFetch, logger, supportsFetch } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../flags';\n\nconst global = getGlobalObject();\nlet cachedFetchImpl: FetchImpl;\n\nexport type FetchImpl = typeof fetch;\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nexport function getNativeFetchImplementation(): FetchImpl {\n if (cachedFetchImpl) {\n return cachedFetchImpl;\n }\n\n /* eslint-disable @typescript-eslint/unbound-method */\n\n // Fast path to avoid DOM I/O\n if (isNativeFetch(global.fetch)) {\n return (cachedFetchImpl = global.fetch.bind(global));\n }\n\n const document = global.document;\n let fetchImpl = global.fetch;\n // eslint-disable-next-line deprecation/deprecation\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow.fetch) {\n fetchImpl = contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n IS_DEBUG_BUILD &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n\n return (cachedFetchImpl = fetchImpl.bind(global));\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n\n/**\n * Sends sdk client report using sendBeacon or fetch as a fallback if available\n *\n * @param url report endpoint\n * @param body report payload\n */\nexport function sendReport(url: string, body: string): void {\n const isRealNavigator = Object.prototype.toString.call(global && global.navigator) === '[object Navigator]';\n const hasSendBeacon = isRealNavigator && typeof global.navigator.sendBeacon === 'function';\n\n if (hasSendBeacon) {\n // Prevent illegal invocations - https://xgwang.me/posts/you-may-not-know-beacon/#it-may-throw-error%2C-be-sure-to-catch\n const sendBeacon = global.navigator.sendBeacon.bind(global.navigator);\n return sendBeacon(url, body);\n }\n\n if (supportsFetch()) {\n const fetch = getNativeFetchImplementation();\n return forget(\n fetch(url, {\n body,\n method: 'POST',\n credentials: 'omit',\n keepalive: true,\n }),\n );\n }\n}\n","import {\n APIDetails,\n eventToSentryRequest,\n getEnvelopeEndpointWithUrlEncodedAuth,\n getStoreEndpointWithUrlEncodedAuth,\n initAPIDetails,\n sessionToSentryRequest,\n} from '@sentry/core';\nimport {\n ClientReport,\n Event,\n Outcome,\n Response as SentryResponse,\n SentryRequest,\n SentryRequestType,\n Session,\n Transport,\n TransportOptions,\n} from '@sentry/types';\nimport {\n createClientReportEnvelope,\n disabledUntil,\n dsnToString,\n eventStatusFromHttpCode,\n getGlobalObject,\n isRateLimited,\n logger,\n makePromiseBuffer,\n PromiseBuffer,\n RateLimits,\n serializeEnvelope,\n updateRateLimits,\n} from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../flags';\nimport { sendReport } from './utils';\n\nfunction requestTypeToCategory(ty: SentryRequestType): string {\n const tyStr = ty as string;\n return tyStr === 'event' ? 'error' : tyStr;\n}\n\nconst global = getGlobalObject();\n\n/** Base Transport class implementation */\nexport abstract class BaseTransport implements Transport {\n /**\n * @deprecated\n */\n public url: string;\n\n /** Helper to get Sentry API endpoints. */\n protected readonly _api: APIDetails;\n\n /** A simple buffer holding all requests. */\n protected readonly _buffer: PromiseBuffer = makePromiseBuffer(30);\n\n /** Locks transport after receiving rate limits in a response */\n protected _rateLimits: RateLimits = {};\n\n protected _outcomes: { [key: string]: number } = {};\n\n public constructor(public options: TransportOptions) {\n this._api = initAPIDetails(options.dsn, options._metadata, options.tunnel);\n // eslint-disable-next-line deprecation/deprecation\n this.url = getStoreEndpointWithUrlEncodedAuth(this._api.dsn);\n\n if (this.options.sendClientReports && global.document) {\n global.document.addEventListener('visibilitychange', () => {\n if (global.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n public sendEvent(event: Event): PromiseLike {\n return this._sendRequest(eventToSentryRequest(event, this._api), event);\n }\n\n /**\n * @inheritDoc\n */\n public sendSession(session: Session): PromiseLike {\n return this._sendRequest(sessionToSentryRequest(session, this._api), session);\n }\n\n /**\n * @inheritDoc\n */\n public close(timeout?: number): PromiseLike {\n return this._buffer.drain(timeout);\n }\n\n /**\n * @inheritDoc\n */\n public recordLostEvent(reason: Outcome, category: SentryRequestType): void {\n if (!this.options.sendClientReports) {\n return;\n }\n // We want to track each category (event, transaction, session) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial>>>`\n const key = `${requestTypeToCategory(category)}:${reason}`;\n IS_DEBUG_BUILD && logger.log(`Adding outcome: ${key}`);\n this._outcomes[key] = (this._outcomes[key] ?? 0) + 1;\n }\n\n /**\n * Send outcomes as an envelope\n */\n protected _flushOutcomes(): void {\n if (!this.options.sendClientReports) {\n return;\n }\n\n const outcomes = this._outcomes;\n this._outcomes = {};\n\n // Nothing to send\n if (!Object.keys(outcomes).length) {\n IS_DEBUG_BUILD && logger.log('No outcomes to flush');\n return;\n }\n\n IS_DEBUG_BUILD && logger.log(`Flushing outcomes:\\n${JSON.stringify(outcomes, null, 2)}`);\n\n const url = getEnvelopeEndpointWithUrlEncodedAuth(this._api.dsn, this._api.tunnel);\n\n const discardedEvents = Object.keys(outcomes).map(key => {\n const [category, reason] = key.split(':');\n return {\n reason,\n category,\n quantity: outcomes[key],\n };\n // TODO: Improve types on discarded_events to get rid of cast\n }) as ClientReport['discarded_events'];\n const envelope = createClientReportEnvelope(discardedEvents, this._api.tunnel && dsnToString(this._api.dsn));\n\n try {\n sendReport(url, serializeEnvelope(envelope));\n } catch (e) {\n IS_DEBUG_BUILD && logger.error(e);\n }\n }\n\n /**\n * Handle Sentry repsonse for promise-based transports.\n */\n protected _handleResponse({\n requestType,\n response,\n headers,\n resolve,\n reject,\n }: {\n requestType: SentryRequestType;\n response: Response | XMLHttpRequest;\n headers: Record;\n resolve: (value?: SentryResponse | PromiseLike | null | undefined) => void;\n reject: (reason?: unknown) => void;\n }): void {\n const status = eventStatusFromHttpCode(response.status);\n\n this._rateLimits = updateRateLimits(this._rateLimits, headers);\n // eslint-disable-next-line deprecation/deprecation\n if (this._isRateLimited(requestType)) {\n IS_DEBUG_BUILD &&\n // eslint-disable-next-line deprecation/deprecation\n logger.warn(`Too many ${requestType} requests, backing off until: ${this._disabledUntil(requestType)}`);\n }\n\n if (status === 'success') {\n resolve({ status });\n return;\n }\n\n reject(response);\n }\n\n /**\n * Gets the time that given category is disabled until for rate limiting\n *\n * @deprecated Please use `disabledUntil` from @sentry/utils\n */\n protected _disabledUntil(requestType: SentryRequestType): Date {\n const category = requestTypeToCategory(requestType);\n return new Date(disabledUntil(this._rateLimits, category));\n }\n\n /**\n * Checks if a category is rate limited\n *\n * @deprecated Please use `isRateLimited` from @sentry/utils\n */\n protected _isRateLimited(requestType: SentryRequestType): boolean {\n const category = requestTypeToCategory(requestType);\n return isRateLimited(this._rateLimits, category);\n }\n\n protected abstract _sendRequest(\n sentryRequest: SentryRequest,\n originalPayload: Event | Session,\n ): PromiseLike;\n}\n","import { Event, Response, SentryRequest, Session, TransportOptions } from '@sentry/types';\nimport { SentryError, supportsReferrerPolicy, SyncPromise } from '@sentry/utils';\n\nimport { BaseTransport } from './base';\nimport { FetchImpl, getNativeFetchImplementation } from './utils';\n\n/** `fetch` based transport */\nexport class FetchTransport extends BaseTransport {\n /**\n * Fetch API reference which always points to native browser implementation.\n */\n private _fetch: typeof fetch;\n\n public constructor(options: TransportOptions, fetchImpl: FetchImpl = getNativeFetchImplementation()) {\n super(options);\n this._fetch = fetchImpl;\n }\n\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n protected _sendRequest(sentryRequest: SentryRequest, originalPayload: Event | Session): PromiseLike {\n // eslint-disable-next-line deprecation/deprecation\n if (this._isRateLimited(sentryRequest.type)) {\n this.recordLostEvent('ratelimit_backoff', sentryRequest.type);\n\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n // eslint-disable-next-line deprecation/deprecation\n reason: `Transport for ${sentryRequest.type} requests locked till ${this._disabledUntil(\n sentryRequest.type,\n )} due to too many requests.`,\n status: 429,\n });\n }\n\n const options: RequestInit = {\n body: sentryRequest.body,\n method: 'POST',\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n referrerPolicy: (supportsReferrerPolicy() ? 'origin' : '') as ReferrerPolicy,\n };\n if (this.options.fetchParameters !== undefined) {\n Object.assign(options, this.options.fetchParameters);\n }\n if (this.options.headers !== undefined) {\n options.headers = this.options.headers;\n }\n\n return this._buffer\n .add(\n () =>\n new SyncPromise((resolve, reject) => {\n void this._fetch(sentryRequest.url, options)\n .then(response => {\n const headers = {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n };\n this._handleResponse({\n requestType: sentryRequest.type,\n response,\n headers,\n resolve,\n reject,\n });\n })\n .catch(reject);\n }),\n )\n .then(undefined, reason => {\n // It's either buffer rejection or any other xhr/fetch error, which are treated as NetworkError.\n if (reason instanceof SentryError) {\n this.recordLostEvent('queue_overflow', sentryRequest.type);\n } else {\n this.recordLostEvent('network_error', sentryRequest.type);\n }\n throw reason;\n });\n }\n}\n","import { Event, Response, SentryRequest, Session } from '@sentry/types';\nimport { SentryError, SyncPromise } from '@sentry/utils';\n\nimport { BaseTransport } from './base';\n\n/** `XHR` based transport */\nexport class XHRTransport extends BaseTransport {\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n protected _sendRequest(sentryRequest: SentryRequest, originalPayload: Event | Session): PromiseLike {\n // eslint-disable-next-line deprecation/deprecation\n if (this._isRateLimited(sentryRequest.type)) {\n this.recordLostEvent('ratelimit_backoff', sentryRequest.type);\n\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n // eslint-disable-next-line deprecation/deprecation\n reason: `Transport for ${sentryRequest.type} requests locked till ${this._disabledUntil(\n sentryRequest.type,\n )} due to too many requests.`,\n status: 429,\n });\n }\n\n return this._buffer\n .add(\n () =>\n new SyncPromise((resolve, reject) => {\n const request = new XMLHttpRequest();\n\n request.onreadystatechange = (): void => {\n if (request.readyState === 4) {\n const headers = {\n 'x-sentry-rate-limits': request.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': request.getResponseHeader('Retry-After'),\n };\n this._handleResponse({ requestType: sentryRequest.type, response: request, headers, resolve, reject });\n }\n };\n\n request.open('POST', sentryRequest.url);\n for (const header in this.options.headers) {\n if (Object.prototype.hasOwnProperty.call(this.options.headers, header)) {\n request.setRequestHeader(header, this.options.headers[header]);\n }\n }\n request.send(sentryRequest.body);\n }),\n )\n .then(undefined, reason => {\n // It's either buffer rejection or any other xhr/fetch error, which are treated as NetworkError.\n if (reason instanceof SentryError) {\n this.recordLostEvent('queue_overflow', sentryRequest.type);\n } else {\n this.recordLostEvent('network_error', sentryRequest.type);\n }\n throw reason;\n });\n }\n}\n","import {\n BaseTransportOptions,\n createTransport,\n NewTransport,\n TransportMakeRequestResponse,\n TransportRequest,\n} from '@sentry/core';\n\nimport { FetchImpl, getNativeFetchImplementation } from './utils';\n\nexport interface FetchTransportOptions extends BaseTransportOptions {\n requestOptions?: RequestInit;\n}\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nexport function makeNewFetchTransport(\n options: FetchTransportOptions,\n nativeFetch: FetchImpl = getNativeFetchImplementation(),\n): NewTransport {\n function makeRequest(request: TransportRequest): PromiseLike {\n const requestOptions: RequestInit = {\n body: request.body,\n method: 'POST',\n referrerPolicy: 'origin',\n ...options.requestOptions,\n };\n\n return nativeFetch(options.url, requestOptions).then(response => {\n return response.text().then(body => ({\n body,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n },\n reason: response.statusText,\n statusCode: response.status,\n }));\n });\n }\n\n return createTransport({ bufferSize: options.bufferSize }, makeRequest);\n}\n","import {\n BaseTransportOptions,\n createTransport,\n NewTransport,\n TransportMakeRequestResponse,\n TransportRequest,\n} from '@sentry/core';\nimport { SyncPromise } from '@sentry/utils';\n\n/**\n * The DONE ready state for XmlHttpRequest\n *\n * Defining it here as a constant b/c XMLHttpRequest.DONE is not always defined\n * (e.g. during testing, it is `undefined`)\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState}\n */\nconst XHR_READYSTATE_DONE = 4;\n\nexport interface XHRTransportOptions extends BaseTransportOptions {\n headers?: { [key: string]: string };\n}\n\n/**\n * Creates a Transport that uses the XMLHttpRequest API to send events to Sentry.\n */\nexport function makeNewXHRTransport(options: XHRTransportOptions): NewTransport {\n function makeRequest(request: TransportRequest): PromiseLike {\n return new SyncPromise((resolve, _reject) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = (): void => {\n if (xhr.readyState === XHR_READYSTATE_DONE) {\n const response = {\n body: xhr.response,\n headers: {\n 'x-sentry-rate-limits': xhr.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': xhr.getResponseHeader('Retry-After'),\n },\n reason: xhr.statusText,\n statusCode: xhr.status,\n };\n resolve(response);\n }\n };\n\n xhr.open('POST', options.url);\n\n for (const header in options.headers) {\n if (Object.prototype.hasOwnProperty.call(options.headers, header)) {\n xhr.setRequestHeader(header, options.headers[header]);\n }\n }\n\n xhr.send(request.body);\n });\n }\n\n return createTransport({ bufferSize: options.bufferSize }, makeRequest);\n}\n","export { BaseTransport } from './base';\nexport { FetchTransport } from './fetch';\nexport { XHRTransport } from './xhr';\n\nexport { makeNewFetchTransport } from './new-fetch';\nexport { makeNewXHRTransport } from './new-xhr';\n","import { BaseBackend, getEnvelopeEndpointWithUrlEncodedAuth, initAPIDetails } from '@sentry/core';\nimport { Event, EventHint, Options, Severity, Transport, TransportOptions } from '@sentry/types';\nimport { supportsFetch } from '@sentry/utils';\n\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { FetchTransport, makeNewFetchTransport, makeNewXHRTransport, XHRTransport } from './transports';\n\n/**\n * Configuration options for the Sentry Browser SDK.\n * @see BrowserClient for more information.\n */\nexport interface BrowserOptions extends Options {\n /**\n * A pattern for error URLs which should exclusively be sent to Sentry.\n * This is the opposite of {@link Options.denyUrls}.\n * By default, all errors will be sent.\n */\n allowUrls?: Array;\n\n /**\n * A pattern for error URLs which should not be sent to Sentry.\n * To allow certain errors instead, use {@link Options.allowUrls}.\n * By default, all errors will be sent.\n */\n denyUrls?: Array;\n\n /** @deprecated use {@link Options.allowUrls} instead. */\n whitelistUrls?: Array;\n\n /** @deprecated use {@link Options.denyUrls} instead. */\n blacklistUrls?: Array;\n}\n\n/**\n * The Sentry Browser SDK Backend.\n * @hidden\n */\nexport class BrowserBackend extends BaseBackend {\n /**\n * @inheritDoc\n */\n public eventFromException(exception: unknown, hint?: EventHint): PromiseLike {\n return eventFromException(exception, hint, this._options.attachStacktrace);\n }\n /**\n * @inheritDoc\n */\n public eventFromMessage(message: string, level: Severity = Severity.Info, hint?: EventHint): PromiseLike {\n return eventFromMessage(message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n protected _setupTransport(): Transport {\n if (!this._options.dsn) {\n // We return the noop transport here in case there is no Dsn.\n return super._setupTransport();\n }\n\n const transportOptions: TransportOptions = {\n ...this._options.transportOptions,\n dsn: this._options.dsn,\n tunnel: this._options.tunnel,\n sendClientReports: this._options.sendClientReports,\n _metadata: this._options._metadata,\n };\n\n const api = initAPIDetails(transportOptions.dsn, transportOptions._metadata, transportOptions.tunnel);\n const url = getEnvelopeEndpointWithUrlEncodedAuth(api.dsn, api.tunnel);\n\n if (this._options.transport) {\n return new this._options.transport(transportOptions);\n }\n if (supportsFetch()) {\n const requestOptions: RequestInit = { ...transportOptions.fetchParameters };\n this._newTransport = makeNewFetchTransport({ requestOptions, url });\n return new FetchTransport(transportOptions);\n }\n\n this._newTransport = makeNewXHRTransport({\n url,\n headers: transportOptions.headers,\n });\n return new XHRTransport(transportOptions);\n }\n}\n","import { captureException, getReportDialogEndpoint, withScope } from '@sentry/core';\nimport { DsnLike, Event as SentryEvent, Mechanism, Scope, WrappedFunction } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addExceptionTypeValue,\n addNonEnumerableProperty,\n getGlobalObject,\n getOriginalFunction,\n logger,\n markFunctionWrapped,\n} from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from './flags';\n\nconst global = getGlobalObject();\nlet ignoreOnError: number = 0;\n\n/**\n * @hidden\n */\nexport function shouldIgnoreOnError(): boolean {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nexport function ignoreNextOnError(): void {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(() => {\n ignoreOnError -= 1;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap.\n * @returns The wrapped function.\n * @hidden\n */\nexport function wrap(\n fn: WrappedFunction,\n options: {\n mechanism?: Mechanism;\n } = {},\n before?: WrappedFunction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n const wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n return wrapper;\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n /* eslint-disable prefer-rest-params */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const sentryWrapped: WrappedFunction = function (this: any): void {\n const args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n const wrappedArguments = args.map((arg: any) => wrap(arg, options));\n\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope((scope: Scope) => {\n scope.addEventProcessor((event: SentryEvent) => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (const property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') as PropertyDescriptor;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get(): string {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\n/**\n * All properties the report dialog supports\n */\nexport interface ReportDialogOptions {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n eventId?: string;\n dsn?: DsnLike;\n user?: {\n email?: string;\n name?: string;\n };\n lang?: string;\n title?: string;\n subtitle?: string;\n subtitle2?: string;\n labelName?: string;\n labelEmail?: string;\n labelComments?: string;\n labelClose?: string;\n labelSubmit?: string;\n errorGeneric?: string;\n errorFormEntry?: string;\n successMessage?: string;\n /** Callback after reportDialog showed up */\n onLoad?(): void;\n}\n\n/**\n * Injects the Report Dialog script\n * @hidden\n */\nexport function injectReportDialog(options: ReportDialogOptions = {}): void {\n if (!global.document) {\n return;\n }\n\n if (!options.eventId) {\n IS_DEBUG_BUILD && logger.error('Missing eventId option in showReportDialog call');\n return;\n }\n\n if (!options.dsn) {\n IS_DEBUG_BUILD && logger.error('Missing dsn option in showReportDialog call');\n return;\n }\n\n const script = global.document.createElement('script');\n script.async = true;\n script.src = getReportDialogEndpoint(options.dsn, options);\n\n if (options.onLoad) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n script.onload = options.onLoad;\n }\n\n const injectionPoint = global.document.head || global.document.body;\n\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n }\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { getCurrentHub } from '@sentry/core';\nimport { Event, EventHint, Hub, Integration, Primitive, Severity } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addInstrumentationHandler,\n getLocationHref,\n isErrorEvent,\n isPrimitive,\n isString,\n logger,\n} from '@sentry/utils';\n\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { IS_DEBUG_BUILD } from '../flags';\nimport { shouldIgnoreOnError } from '../helpers';\n\ntype GlobalHandlersIntegrationsOptionKeys = 'onerror' | 'onunhandledrejection';\n\n/** JSDoc */\ntype GlobalHandlersIntegrations = Record;\n\n/** Global handlers */\nexport class GlobalHandlers implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'GlobalHandlers';\n\n /**\n * @inheritDoc\n */\n public name: string = GlobalHandlers.id;\n\n /** JSDoc */\n private readonly _options: GlobalHandlersIntegrations;\n\n /**\n * Stores references functions to installing handlers. Will set to undefined\n * after they have been run so that they are not used twice.\n */\n private _installFunc: Record void) | undefined> = {\n onerror: _installGlobalOnErrorHandler,\n onunhandledrejection: _installGlobalOnUnhandledRejectionHandler,\n };\n\n /** JSDoc */\n public constructor(options?: GlobalHandlersIntegrations) {\n this._options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n }\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n Error.stackTraceLimit = 50;\n const options = this._options;\n\n // We can disable guard-for-in as we construct the options object above + do checks against\n // `this._installFunc` for the property.\n // eslint-disable-next-line guard-for-in\n for (const key in options) {\n const installFunc = this._installFunc[key as GlobalHandlersIntegrationsOptionKeys];\n if (installFunc && options[key as GlobalHandlersIntegrationsOptionKeys]) {\n globalHandlerLog(key);\n installFunc();\n this._installFunc[key as GlobalHandlersIntegrationsOptionKeys] = undefined;\n }\n }\n }\n}\n\n/** JSDoc */\nfunction _installGlobalOnErrorHandler(): void {\n addInstrumentationHandler(\n 'error',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (data: { msg: any; url: any; line: any; column: any; error: any }) => {\n const [hub, attachStacktrace] = getHubAndAttachStacktrace();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n const { msg, url, line, column, error } = data;\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return;\n }\n\n const event =\n error === undefined && isString(msg)\n ? _eventFromIncompleteOnError(msg, url, line, column)\n : _enhanceEventWithInitialFrame(\n eventFromUnknownInput(error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = Severity.Error;\n\n addMechanismAndCapture(hub, error, event, 'onerror');\n },\n );\n}\n\n/** JSDoc */\nfunction _installGlobalOnUnhandledRejectionHandler(): void {\n addInstrumentationHandler(\n 'unhandledrejection',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (e: any) => {\n const [hub, attachStacktrace] = getHubAndAttachStacktrace();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n let error = e;\n\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n } catch (_oO) {\n // no-empty\n }\n\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return true;\n }\n\n const event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(error, undefined, attachStacktrace, true);\n\n event.level = Severity.Error;\n\n addMechanismAndCapture(hub, error, event, 'onunhandledrejection');\n return;\n },\n );\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason: Primitive): Event {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\n\n/**\n * This function creates a stack from an old, error-less onerror handler.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _eventFromIncompleteOnError(msg: any, url: any, line: any, column: any): Event {\n const ERROR_TYPES_RE =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n\n // If 'message' is ErrorEvent, get real message from inside\n let message = isErrorEvent(msg) ? msg.message : msg;\n let name = 'Error';\n\n const groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n\n const event = {\n exception: {\n values: [\n {\n type: name,\n value: message,\n },\n ],\n },\n };\n\n return _enhanceEventWithInitialFrame(event, url, line, column);\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _enhanceEventWithInitialFrame(event: Event, url: any, line: any, column: any): Event {\n // event.exception\n const e = (event.exception = event.exception || {});\n // event.exception.values\n const ev = (e.values = e.values || []);\n // event.exception.values[0]\n const ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n const ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n const ev0sf = (ev0s.frames = ev0s.frames || []);\n\n const colno = isNaN(parseInt(column, 10)) ? undefined : column;\n const lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n const filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: '?',\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type: string): void {\n IS_DEBUG_BUILD && logger.log(`Global Handler attached: ${type}`);\n}\n\nfunction addMechanismAndCapture(hub: Hub, error: EventHint['originalException'], event: Event, type: string): void {\n addExceptionMechanism(event, {\n handled: false,\n type,\n });\n hub.captureEvent(event, {\n originalException: error,\n });\n}\n\nfunction getHubAndAttachStacktrace(): [Hub, boolean | undefined] {\n const hub = getCurrentHub();\n const client = hub.getClient();\n const attachStacktrace = client && client.getOptions().attachStacktrace;\n return [hub, attachStacktrace];\n}\n","import { Integration, WrappedFunction } from '@sentry/types';\nimport { fill, getFunctionName, getGlobalObject, getOriginalFunction } from '@sentry/utils';\n\nimport { wrap } from '../helpers';\n\nconst DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\ntype XMLHttpRequestProp = 'onload' | 'onerror' | 'onprogress' | 'onreadystatechange';\n\n/** JSDoc */\ninterface TryCatchOptions {\n setTimeout: boolean;\n setInterval: boolean;\n requestAnimationFrame: boolean;\n XMLHttpRequest: boolean;\n eventTarget: boolean | string[];\n}\n\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nexport class TryCatch implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'TryCatch';\n\n /**\n * @inheritDoc\n */\n public name: string = TryCatch.id;\n\n /** JSDoc */\n private readonly _options: TryCatchOptions;\n\n /**\n * @inheritDoc\n */\n public constructor(options?: Partial) {\n this._options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n }\n\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n public setupOnce(): void {\n const global = getGlobalObject();\n\n if (this._options.setTimeout) {\n fill(global, 'setTimeout', _wrapTimeFunction);\n }\n\n if (this._options.setInterval) {\n fill(global, 'setInterval', _wrapTimeFunction);\n }\n\n if (this._options.requestAnimationFrame) {\n fill(global, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n const eventTargetOption = this._options.eventTarget;\n if (eventTargetOption) {\n const eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n }\n}\n\n/** JSDoc */\nfunction _wrapTimeFunction(original: () => void): () => number {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: any, ...args: any[]): number {\n const originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _wrapRAF(original: any): (callback: () => void) => any {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: any, callback: () => void): () => void {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.apply(this, [\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n }),\n ]);\n };\n}\n\n/** JSDoc */\nfunction _wrapXHR(originalSend: () => void): () => void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: XMLHttpRequest, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const xmlHttpRequestProps: XMLHttpRequestProp[] = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(prop => {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original: WrappedFunction): () => any {\n const wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n\n // If Instrument integration has been called before TryCatch, get the name of original function\n const originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n}\n\n/** JSDoc */\nfunction _wrapEventTarget(target: string): void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const global = getGlobalObject() as { [key: string]: any };\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = global[target] && global[target].prototype;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original: () => void): (\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ) => void {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this: any,\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): (eventName: string, fn: EventListenerObject, capture?: boolean, secure?: boolean) => void {\n try {\n if (typeof fn.handleEvent === 'function') {\n fn.handleEvent = wrap(fn.handleEvent.bind(fn), {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.apply(this, [\n eventName,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn as any as WrappedFunction, {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n }),\n options,\n ]);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (\n originalRemoveEventListener: () => void,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): (this: any, eventName: string, fn: EventListenerObject, options?: boolean | EventListenerOptions) => () => void {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this: any,\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n const wrappedEventHandler = fn as unknown as WrappedFunction;\n try {\n const originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n },\n );\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable max-lines */\nimport { getCurrentHub } from '@sentry/core';\nimport { Event, Integration, Severity } from '@sentry/types';\nimport {\n addInstrumentationHandler,\n getEventDescription,\n getGlobalObject,\n htmlTreeAsString,\n parseUrl,\n safeJoin,\n severityFromString,\n} from '@sentry/utils';\n\n/** JSDoc */\ninterface BreadcrumbsOptions {\n console: boolean;\n dom: boolean | { serializeAttribute: string | string[] };\n fetch: boolean;\n history: boolean;\n sentry: boolean;\n xhr: boolean;\n}\n\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nexport class Breadcrumbs implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Breadcrumbs';\n\n /**\n * @inheritDoc\n */\n public name: string = Breadcrumbs.id;\n\n /** JSDoc */\n private readonly _options: BreadcrumbsOptions;\n\n /**\n * @inheritDoc\n */\n public constructor(options?: Partial) {\n this._options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\n }\n\n /**\n * Create a breadcrumb of `sentry` from the events themselves\n */\n public addSentryBreadcrumb(event: Event): void {\n if (!this._options.sentry) {\n return;\n }\n getCurrentHub().addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n }\n\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n public setupOnce(): void {\n if (this._options.console) {\n addInstrumentationHandler('console', _consoleBreadcrumb);\n }\n if (this._options.dom) {\n addInstrumentationHandler('dom', _domBreadcrumb(this._options.dom));\n }\n if (this._options.xhr) {\n addInstrumentationHandler('xhr', _xhrBreadcrumb);\n }\n if (this._options.fetch) {\n addInstrumentationHandler('fetch', _fetchBreadcrumb);\n }\n if (this._options.history) {\n addInstrumentationHandler('history', _historyBreadcrumb);\n }\n }\n}\n\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _domBreadcrumb(dom: BreadcrumbsOptions['dom']): (handlerData: { [key: string]: any }) => void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function _innerDomBreadcrumb(handlerData: { [key: string]: any }): void {\n let target;\n let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = handlerData.event.target\n ? htmlTreeAsString(handlerData.event.target as Node, keyAttrs)\n : htmlTreeAsString(handlerData.event as unknown as Node, keyAttrs);\n } catch (e) {\n target = '';\n }\n\n if (target.length === 0) {\n return;\n }\n\n getCurrentHub().addBreadcrumb(\n {\n category: `ui.${handlerData.name}`,\n message: target,\n },\n {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n },\n );\n }\n\n return _innerDomBreadcrumb;\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _consoleBreadcrumb(handlerData: { [key: string]: any }): void {\n const breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _xhrBreadcrumb(handlerData: { [key: string]: any }): void {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n\n const { method, url, status_code, body } = handlerData.xhr.__sentry_xhr__ || {};\n\n getCurrentHub().addBreadcrumb(\n {\n category: 'xhr',\n data: {\n method,\n url,\n status_code,\n },\n type: 'http',\n },\n {\n xhr: handlerData.xhr,\n input: body,\n },\n );\n\n return;\n }\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _fetchBreadcrumb(handlerData: { [key: string]: any }): void {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: handlerData.fetchData,\n level: Severity.Error,\n type: 'http',\n },\n {\n data: handlerData.error,\n input: handlerData.args,\n },\n );\n } else {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: {\n ...handlerData.fetchData,\n status_code: handlerData.response.status,\n },\n type: 'http',\n },\n {\n input: handlerData.args,\n response: handlerData.response,\n },\n );\n }\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _historyBreadcrumb(handlerData: { [key: string]: any }): void {\n const global = getGlobalObject();\n let from = handlerData.from;\n let to = handlerData.to;\n const parsedLoc = parseUrl(global.location.href);\n let parsedFrom = parseUrl(from);\n const parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from,\n to,\n },\n });\n}\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { Event, EventHint, Exception, ExtendedError, Integration } from '@sentry/types';\nimport { isInstanceOf } from '@sentry/utils';\n\nimport { exceptionFromError } from '../eventbuilder';\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\ninterface LinkedErrorsOptions {\n key: string;\n limit: number;\n}\n\n/** Adds SDK info to an event. */\nexport class LinkedErrors implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'LinkedErrors';\n\n /**\n * @inheritDoc\n */\n public readonly name: string = LinkedErrors.id;\n\n /**\n * @inheritDoc\n */\n private readonly _key: LinkedErrorsOptions['key'];\n\n /**\n * @inheritDoc\n */\n private readonly _limit: LinkedErrorsOptions['limit'];\n\n /**\n * @inheritDoc\n */\n public constructor(options: Partial = {}) {\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n addGlobalEventProcessor((event: Event, hint?: EventHint) => {\n const self = getCurrentHub().getIntegration(LinkedErrors);\n return self ? _handler(self._key, self._limit, event, hint) : event;\n });\n }\n}\n\n/**\n * @inheritDoc\n */\nexport function _handler(key: string, limit: number, event: Event, hint?: EventHint): Event | null {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n const linkedErrors = _walkErrorTree(limit, hint.originalException as ExtendedError, key);\n event.exception.values = [...linkedErrors, ...event.exception.values];\n return event;\n}\n\n/**\n * JSDOC\n */\nexport function _walkErrorTree(limit: number, error: ExtendedError, key: string, stack: Exception[] = []): Exception[] {\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= limit) {\n return stack;\n }\n const exception = exceptionFromError(error[key]);\n return _walkErrorTree(limit, error[key], key, [exception, ...stack]);\n}\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { Event, Integration } from '@sentry/types';\nimport { getGlobalObject } from '@sentry/utils';\n\nconst global = getGlobalObject();\n\n/** UserAgent */\nexport class UserAgent implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'UserAgent';\n\n /**\n * @inheritDoc\n */\n public name: string = UserAgent.id;\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n addGlobalEventProcessor((event: Event) => {\n if (getCurrentHub().getIntegration(UserAgent)) {\n // if none of the information we want exists, don't bother\n if (!global.navigator && !global.location && !global.document) {\n return event;\n }\n\n // grab as much info as exists and add it to the event\n const url = (event.request && event.request.url) || (global.location && global.location.href);\n const { referrer } = global.document || {};\n const { userAgent } = global.navigator || {};\n\n const headers = {\n ...(event.request && event.request.headers),\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n const request = { ...(url && { url }), headers };\n\n return { ...event, request };\n }\n return event;\n });\n }\n}\n","import { Event, EventProcessor, Exception, Hub, Integration, StackFrame } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../flags';\n\n/** Deduplication filter */\nexport class Dedupe implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Dedupe';\n\n /**\n * @inheritDoc\n */\n public name: string = Dedupe.id;\n\n /**\n * @inheritDoc\n */\n private _previousEvent?: Event;\n\n /**\n * @inheritDoc\n */\n public setupOnce(addGlobalEventProcessor: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n addGlobalEventProcessor((currentEvent: Event) => {\n const self = getCurrentHub().getIntegration(Dedupe);\n if (self) {\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, self._previousEvent)) {\n IS_DEBUG_BUILD && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {\n return (self._previousEvent = currentEvent);\n }\n\n return (self._previousEvent = currentEvent);\n }\n return currentEvent;\n });\n }\n}\n\n/** JSDoc */\nfunction _shouldDropEvent(currentEvent: Event, previousEvent?: Event): boolean {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\n/** JSDoc */\nfunction _isSameMessageEvent(currentEvent: Event, previousEvent: Event): boolean {\n const currentMessage = currentEvent.message;\n const previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameExceptionEvent(currentEvent: Event, previousEvent: Event): boolean {\n const previousException = _getExceptionFromEvent(previousEvent);\n const currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameStacktrace(currentEvent: Event, previousEvent: Event): boolean {\n let currentFrames = _getFramesFromEvent(currentEvent);\n let previousFrames = _getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames as StackFrame[];\n previousFrames = previousFrames as StackFrame[];\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n const frameA = previousFrames[i];\n const frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameFingerprint(currentEvent: Event, previousEvent: Event): boolean {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint as string[];\n previousFingerprint = previousFingerprint as string[];\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\n/** JSDoc */\nfunction _getExceptionFromEvent(event: Event): Exception | undefined {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\n/** JSDoc */\nfunction _getFramesFromEvent(event: Event): StackFrame[] | undefined {\n const exception = event.exception;\n\n if (exception) {\n try {\n // @ts-ignore Object could be undefined\n return exception.values[0].stacktrace.frames;\n } catch (_oO) {\n return undefined;\n }\n } else if (event.stacktrace) {\n return event.stacktrace.frames;\n }\n return undefined;\n}\n","export { GlobalHandlers } from './globalhandlers';\nexport { TryCatch } from './trycatch';\nexport { Breadcrumbs } from './breadcrumbs';\nexport { LinkedErrors } from './linkederrors';\nexport { UserAgent } from './useragent';\nexport { Dedupe } from './dedupe';\n","import { BaseClient, Scope, SDK_VERSION } from '@sentry/core';\nimport { Event, EventHint } from '@sentry/types';\nimport { getGlobalObject, logger } from '@sentry/utils';\n\nimport { BrowserBackend, BrowserOptions } from './backend';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { injectReportDialog, ReportDialogOptions } from './helpers';\nimport { Breadcrumbs } from './integrations';\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nexport class BrowserClient extends BaseClient {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n public constructor(options: BrowserOptions = {}) {\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n\n super(BrowserBackend, options);\n }\n\n /**\n * Show a report dialog to the user to send feedback to a specific event.\n *\n * @param options Set individual options for the dialog\n */\n public showReportDialog(options: ReportDialogOptions = {}): void {\n // doesn't work without a document (React Native)\n const document = getGlobalObject().document;\n if (!document) {\n return;\n }\n\n if (!this._isEnabled()) {\n IS_DEBUG_BUILD && logger.error('Trying to call showReportDialog with Sentry Client disabled');\n return;\n }\n\n injectReportDialog({\n ...options,\n dsn: options.dsn || this.getDsn(),\n });\n }\n\n /**\n * @inheritDoc\n */\n protected _prepareEvent(event: Event, scope?: Scope, hint?: EventHint): PromiseLike {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, scope, hint);\n }\n\n /**\n * @inheritDoc\n */\n protected _sendEvent(event: Event): void {\n const integration = this.getIntegration(Breadcrumbs);\n if (integration) {\n integration.addSentryBreadcrumb(event);\n }\n super._sendEvent(event);\n }\n}\n","import { getCurrentHub, initAndBind, Integrations as CoreIntegrations } from '@sentry/core';\nimport { Hub } from '@sentry/types';\nimport { addInstrumentationHandler, getGlobalObject, logger, resolvedSyncPromise } from '@sentry/utils';\n\nimport { BrowserOptions } from './backend';\nimport { BrowserClient } from './client';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { ReportDialogOptions, wrap as internalWrap } from './helpers';\nimport { Breadcrumbs, Dedupe, GlobalHandlers, LinkedErrors, TryCatch, UserAgent } from './integrations';\n\nexport const defaultIntegrations = [\n new CoreIntegrations.InboundFilters(),\n new CoreIntegrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new Dedupe(),\n new UserAgent(),\n];\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nexport function init(options: BrowserOptions = {}): void {\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n const window = getGlobalObject();\n // This supports the variable that sentry-webpack-plugin injects\n if (window.SENTRY_RELEASE && window.SENTRY_RELEASE.id) {\n options.release = window.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n if (options.sendClientReports === undefined) {\n options.sendClientReports = true;\n }\n\n initAndBind(BrowserClient, options);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nexport function showReportDialog(options: ReportDialogOptions = {}): void {\n const hub = getCurrentHub();\n const scope = hub.getScope();\n if (scope) {\n options.user = {\n ...scope.getUser(),\n ...options.user,\n };\n }\n\n if (!options.eventId) {\n options.eventId = hub.lastEventId();\n }\n const client = hub.getClient();\n if (client) {\n client.showReportDialog(options);\n }\n}\n\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nexport function lastEventId(): string | undefined {\n return getCurrentHub().lastEventId();\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function forceLoad(): void {\n // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function onLoad(callback: () => void): void {\n callback();\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport function flush(timeout?: number): PromiseLike {\n const client = getCurrentHub().getClient();\n if (client) {\n return client.flush(timeout);\n }\n IS_DEBUG_BUILD && logger.warn('Cannot flush events. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport function close(timeout?: number): PromiseLike {\n const client = getCurrentHub().getClient();\n if (client) {\n return client.close(timeout);\n }\n IS_DEBUG_BUILD && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function wrap(fn: (...args: any) => any): any {\n return internalWrap(fn)();\n}\n\nfunction startSessionOnHub(hub: Hub): void {\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n}\n\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking(): void {\n const window = getGlobalObject();\n const document = window.document;\n\n if (typeof document === 'undefined') {\n IS_DEBUG_BUILD && logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n\n const hub = getCurrentHub();\n\n // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and\n // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are\n // pinned at the same version in package.json, but there are edge cases where it's possible. See\n // https://github.com/getsentry/sentry-javascript/issues/3207 and\n // https://github.com/getsentry/sentry-javascript/issues/3234 and\n // https://github.com/getsentry/sentry-javascript/issues/3278.\n if (!hub.captureSession) {\n return;\n }\n\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n startSessionOnHub(hub);\n\n // We want to create a session for every navigation as well\n addInstrumentationHandler('history', ({ from, to }) => {\n // Don't create an additional session for the initial route or if the location did not change\n if (!(from === undefined || from === to)) {\n startSessionOnHub(getCurrentHub());\n }\n });\n}\n","// TODO: Remove in the next major release and rely only on @sentry/core SDK_VERSION and SdkInfo metadata\nexport const SDK_NAME = 'sentry.javascript.browser';\n","export {\n Breadcrumb,\n BreadcrumbHint,\n Request,\n SdkInfo,\n Event,\n EventHint,\n EventStatus,\n Exception,\n Response,\n Severity,\n StackFrame,\n Stacktrace,\n Thread,\n User,\n} from '@sentry/types';\n\nexport { SeverityLevel } from '@sentry/utils';\n\nexport {\n addGlobalEventProcessor,\n addBreadcrumb,\n captureException,\n captureEvent,\n captureMessage,\n configureScope,\n getHubFromCarrier,\n getCurrentHub,\n Hub,\n makeMain,\n Scope,\n Session,\n startTransaction,\n SDK_VERSION,\n setContext,\n setExtra,\n setExtras,\n setTag,\n setTags,\n setUser,\n withScope,\n} from '@sentry/core';\n\nexport { BrowserOptions } from './backend';\nexport { BrowserClient } from './client';\nexport { injectReportDialog, ReportDialogOptions } from './helpers';\nexport { eventFromException, eventFromMessage } from './eventbuilder';\nexport { defaultIntegrations, forceLoad, init, lastEventId, onLoad, showReportDialog, flush, close, wrap } from './sdk';\nexport { SDK_NAME } from './version';\n","export * from './exports';\n\nimport { Integrations as CoreIntegrations } from '@sentry/core';\nimport { getGlobalObject } from '@sentry/utils';\n\nimport * as BrowserIntegrations from './integrations';\nimport * as Transports from './transports';\n\nlet windowIntegrations = {};\n\n// This block is needed to add compatibility with the integrations packages when used with a CDN\nconst _window = getGlobalObject();\nif (_window.Sentry && _window.Sentry.Integrations) {\n windowIntegrations = _window.Sentry.Integrations;\n}\n\nconst INTEGRATIONS = {\n ...windowIntegrations,\n ...CoreIntegrations,\n ...BrowserIntegrations,\n};\n\nexport { INTEGRATIONS as Integrations, Transports };\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","export const REACT_RENDER_OP = 'ui.react.render';\n\nexport const REACT_UPDATE_OP = 'ui.react.update';\n\nexport const REACT_MOUNT_OP = 'ui.react.mount';\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { getCurrentHub, Hub } from '@sentry/browser';\nimport { Integration, IntegrationClass, Span, Transaction } from '@sentry/types';\nimport { timestampWithMs } from '@sentry/utils';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\n\nimport { REACT_MOUNT_OP, REACT_RENDER_OP, REACT_UPDATE_OP } from './constants';\n\nexport const UNKNOWN_COMPONENT = 'unknown';\n\nconst TRACING_GETTER = ({\n id: 'Tracing',\n} as any) as IntegrationClass;\n\nlet globalTracingIntegration: Integration | null = null;\n/** @deprecated remove when @sentry/apm no longer used */\nconst getTracingIntegration = (): Integration | null => {\n if (globalTracingIntegration) {\n return globalTracingIntegration;\n }\n\n globalTracingIntegration = getCurrentHub().getIntegration(TRACING_GETTER);\n return globalTracingIntegration;\n};\n\n/**\n * pushActivity creates an new react activity.\n * Is a no-op if Tracing integration is not valid\n * @param name displayName of component that started activity\n * @deprecated remove when @sentry/apm no longer used\n */\nfunction pushActivity(name: string, op: string): number | null {\n if (globalTracingIntegration === null) {\n return null;\n }\n\n return (globalTracingIntegration as any).constructor.pushActivity(name, {\n description: `<${name}>`,\n op,\n });\n}\n\n/**\n * popActivity removes a React activity.\n * Is a no-op if Tracing integration is not valid.\n * @param activity id of activity that is being popped\n * @deprecated remove when @sentry/apm no longer used\n */\nfunction popActivity(activity: number | null): void {\n if (activity === null || globalTracingIntegration === null) {\n return;\n }\n\n (globalTracingIntegration as any).constructor.popActivity(activity);\n}\n\n/**\n * Obtain a span given an activity id.\n * Is a no-op if Tracing integration is not valid.\n * @param activity activity id associated with obtained span\n * @deprecated remove when @sentry/apm no longer used\n */\nfunction getActivitySpan(activity: number | null): Span | undefined {\n if (activity === null || globalTracingIntegration === null) {\n return undefined;\n }\n\n return (globalTracingIntegration as any).constructor.getActivitySpan(activity) as Span | undefined;\n}\n\nexport type ProfilerProps = {\n // The name of the component being profiled.\n name: string;\n // If the Profiler is disabled. False by default. This is useful if you want to disable profilers\n // in certain environments.\n disabled?: boolean;\n // If time component is on page should be displayed as spans. True by default.\n includeRender?: boolean;\n // If component updates should be displayed as spans. True by default.\n includeUpdates?: boolean;\n // props given to component being profiled.\n updateProps: { [key: string]: unknown };\n};\n\n/**\n * The Profiler component leverages Sentry's Tracing integration to generate\n * spans based on component lifecycles.\n */\nclass Profiler extends React.Component {\n /**\n * The span of the mount activity\n * Made protected for the React Native SDK to access\n */\n protected _mountSpan: Span | undefined = undefined;\n\n // The activity representing how long it takes to mount a component.\n private _mountActivity: number | null = null;\n\n // eslint-disable-next-line @typescript-eslint/member-ordering\n public static defaultProps: Partial = {\n disabled: false,\n includeRender: true,\n includeUpdates: true,\n };\n\n public constructor(props: ProfilerProps) {\n super(props);\n const { name, disabled = false } = this.props;\n\n if (disabled) {\n return;\n }\n\n // If they are using @sentry/apm, we need to push/pop activities\n // eslint-disable-next-line deprecation/deprecation\n if (getTracingIntegration()) {\n // eslint-disable-next-line deprecation/deprecation\n this._mountActivity = pushActivity(name, REACT_MOUNT_OP);\n } else {\n const activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n this._mountSpan = activeTransaction.startChild({\n description: `<${name}>`,\n op: REACT_MOUNT_OP,\n });\n }\n }\n }\n\n // If a component mounted, we can finish the mount activity.\n public componentDidMount(): void {\n if (this._mountSpan) {\n this._mountSpan.finish();\n } else {\n // eslint-disable-next-line deprecation/deprecation\n this._mountSpan = getActivitySpan(this._mountActivity);\n // eslint-disable-next-line deprecation/deprecation\n popActivity(this._mountActivity);\n this._mountActivity = null;\n }\n }\n\n public componentDidUpdate({ updateProps, includeUpdates = true }: ProfilerProps): void {\n // Only generate an update span if hasUpdateSpan is true, if there is a valid mountSpan,\n // and if the updateProps have changed. It is ok to not do a deep equality check here as it is expensive.\n // We are just trying to give baseline clues for further investigation.\n if (includeUpdates && this._mountSpan && updateProps !== this.props.updateProps) {\n // See what props haved changed between the previous props, and the current props. This is\n // set as data on the span. We just store the prop keys as the values could be potenially very large.\n const changedProps = Object.keys(updateProps).filter(k => updateProps[k] !== this.props.updateProps[k]);\n if (changedProps.length > 0) {\n // The update span is a point in time span with 0 duration, just signifying that the component\n // has been updated.\n const now = timestampWithMs();\n this._mountSpan.startChild({\n data: {\n changedProps,\n },\n description: `<${this.props.name}>`,\n endTimestamp: now,\n op: REACT_UPDATE_OP,\n startTimestamp: now,\n });\n }\n }\n }\n\n // If a component is unmounted, we can say it is no longer on the screen.\n // This means we can finish the span representing the component render.\n public componentWillUnmount(): void {\n const { name, includeRender = true } = this.props;\n\n if (this._mountSpan && includeRender) {\n // If we were able to obtain the spanId of the mount activity, we should set the\n // next activity as a child to the component mount activity.\n this._mountSpan.startChild({\n description: `<${name}>`,\n endTimestamp: timestampWithMs(),\n op: REACT_RENDER_OP,\n startTimestamp: this._mountSpan.endTimestamp,\n });\n }\n }\n\n public render(): React.ReactNode {\n return this.props.children;\n }\n}\n\n/**\n * withProfiler is a higher order component that wraps a\n * component in a {@link Profiler} component. It is recommended that\n * the higher order component be used over the regular {@link Profiler} component.\n *\n * @param WrappedComponent component that is wrapped by Profiler\n * @param options the {@link ProfilerProps} you can pass into the Profiler\n */\nfunction withProfiler

>(\n WrappedComponent: React.ComponentType

,\n // We do not want to have `updateProps` given in options, it is instead filled through the HOC.\n options?: Pick, Exclude>,\n): React.FC

{\n const componentDisplayName =\n (options && options.name) || WrappedComponent.displayName || WrappedComponent.name || UNKNOWN_COMPONENT;\n\n const Wrapped: React.FC

= (props: P) => (\n \n \n \n );\n\n Wrapped.displayName = `profiler(${componentDisplayName})`;\n\n // Copy over static methods from Wrapped component to Profiler HOC\n // See: https://reactjs.org/docs/higher-order-components.html#static-methods-must-be-copied-over\n hoistNonReactStatics(Wrapped, WrappedComponent);\n return Wrapped;\n}\n\n/**\n *\n * `useProfiler` is a React hook that profiles a React component.\n *\n * Requires React 16.8 or above.\n * @param name displayName of component being profiled\n */\nfunction useProfiler(\n name: string,\n options: { disabled?: boolean; hasRenderSpan?: boolean } = {\n disabled: false,\n hasRenderSpan: true,\n },\n): void {\n const [mountSpan] = React.useState(() => {\n if (options && options.disabled) {\n return undefined;\n }\n\n const activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n return activeTransaction.startChild({\n description: `<${name}>`,\n op: REACT_MOUNT_OP,\n });\n }\n\n return undefined;\n });\n\n React.useEffect(() => {\n if (mountSpan) {\n mountSpan.finish();\n }\n\n return (): void => {\n if (mountSpan && options.hasRenderSpan) {\n mountSpan.startChild({\n description: `<${name}>`,\n endTimestamp: timestampWithMs(),\n op: REACT_RENDER_OP,\n startTimestamp: mountSpan.endTimestamp,\n });\n }\n };\n // We only want this to run once.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n}\n\nexport { withProfiler, Profiler, useProfiler };\n\n/** Grabs active transaction off scope */\nexport function getActiveTransaction(hub: Hub = getCurrentHub()): T | undefined {\n if (hub) {\n const scope = hub.getScope();\n if (scope) {\n return scope.getTransaction() as T | undefined;\n }\n }\n\n return undefined;\n}\n","import { captureException, ReportDialogOptions, Scope, showReportDialog, withScope } from '@sentry/browser';\nimport { logger } from '@sentry/utils';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\n\nimport { IS_DEBUG_BUILD } from './flags';\n\nexport function isAtLeastReact17(version: string): boolean {\n const major = version.match(/^([^.]+)/);\n return major !== null && parseInt(major[0]) >= 17;\n}\n\nexport const UNKNOWN_COMPONENT = 'unknown';\n\nexport type FallbackRender = (errorData: {\n error: Error;\n componentStack: string | null;\n eventId: string | null;\n resetError(): void;\n}) => React.ReactElement;\n\nexport type ErrorBoundaryProps = {\n /** If a Sentry report dialog should be rendered on error */\n showDialog?: boolean;\n /**\n * Options to be passed into the Sentry report dialog.\n * No-op if {@link showDialog} is false.\n */\n dialogOptions?: ReportDialogOptions;\n /**\n * A fallback component that gets rendered when the error boundary encounters an error.\n *\n * Can either provide a React Component, or a function that returns React Component as\n * a valid fallback prop. If a function is provided, the function will be called with\n * the error, the component stack, and an function that resets the error boundary on error.\n *\n */\n fallback?: React.ReactElement | FallbackRender;\n /** Called when the error boundary encounters an error */\n onError?(error: Error, componentStack: string, eventId: string): void;\n /** Called on componentDidMount() */\n onMount?(): void;\n /** Called if resetError() is called from the fallback render props function */\n onReset?(error: Error | null, componentStack: string | null, eventId: string | null): void;\n /** Called on componentWillUnmount() */\n onUnmount?(error: Error | null, componentStack: string | null, eventId: string | null): void;\n /** Called before the error is captured by Sentry, allows for you to add tags or context using the scope */\n beforeCapture?(scope: Scope, error: Error | null, componentStack: string | null): void;\n};\n\ntype ErrorBoundaryState = {\n componentStack: React.ErrorInfo['componentStack'] | null;\n error: Error | null;\n eventId: string | null;\n};\n\nconst INITIAL_STATE = {\n componentStack: null,\n error: null,\n eventId: null,\n};\n\n/**\n * A ErrorBoundary component that logs errors to Sentry. Requires React >= 16.\n * NOTE: If you are a Sentry user, and you are seeing this stack frame, it means the\n * Sentry React SDK ErrorBoundary caught an error invoking your application code. This\n * is expected behavior and NOT indicative of a bug with the Sentry React SDK.\n */\nclass ErrorBoundary extends React.Component {\n public state: ErrorBoundaryState = INITIAL_STATE;\n\n public componentDidCatch(error: Error & { cause?: Error }, { componentStack }: React.ErrorInfo): void {\n const { beforeCapture, onError, showDialog, dialogOptions } = this.props;\n\n withScope(scope => {\n // If on React version >= 17, create stack trace from componentStack param and links\n // to to the original error using `error.cause` otherwise relies on error param for stacktrace.\n // Linking errors requires the `LinkedErrors` integration be enabled.\n if (isAtLeastReact17(React.version)) {\n const errorBoundaryError = new Error(error.message);\n errorBoundaryError.name = `React ErrorBoundary ${errorBoundaryError.name}`;\n errorBoundaryError.stack = componentStack;\n\n // Using the `LinkedErrors` integration to link the errors together.\n error.cause = errorBoundaryError;\n }\n\n if (beforeCapture) {\n beforeCapture(scope, error, componentStack);\n }\n const eventId = captureException(error, { contexts: { react: { componentStack } } });\n if (onError) {\n onError(error, componentStack, eventId);\n }\n if (showDialog) {\n showReportDialog({ ...dialogOptions, eventId });\n }\n\n // componentDidCatch is used over getDerivedStateFromError\n // so that componentStack is accessible through state.\n this.setState({ error, componentStack, eventId });\n });\n }\n\n public componentDidMount(): void {\n const { onMount } = this.props;\n if (onMount) {\n onMount();\n }\n }\n\n public componentWillUnmount(): void {\n const { error, componentStack, eventId } = this.state;\n const { onUnmount } = this.props;\n if (onUnmount) {\n onUnmount(error, componentStack, eventId);\n }\n }\n\n public resetErrorBoundary: () => void = () => {\n const { onReset } = this.props;\n const { error, componentStack, eventId } = this.state;\n if (onReset) {\n onReset(error, componentStack, eventId);\n }\n this.setState(INITIAL_STATE);\n };\n\n public render(): React.ReactNode {\n const { fallback, children } = this.props;\n const { error, componentStack, eventId } = this.state;\n\n if (error) {\n let element: React.ReactElement | undefined = undefined;\n if (typeof fallback === 'function') {\n element = fallback({ error, componentStack, resetError: this.resetErrorBoundary, eventId });\n } else {\n element = fallback;\n }\n\n if (React.isValidElement(element)) {\n return element;\n }\n\n if (fallback) {\n IS_DEBUG_BUILD && logger.warn('fallback did not produce a valid ReactElement');\n }\n\n // Fail gracefully if no fallback provided or is not valid\n return null;\n }\n\n if (typeof children === 'function') {\n return children();\n }\n return children;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction withErrorBoundary

>(\n WrappedComponent: React.ComponentType

,\n errorBoundaryOptions: ErrorBoundaryProps,\n): React.FC

{\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const componentDisplayName = WrappedComponent.displayName || WrappedComponent.name || UNKNOWN_COMPONENT;\n\n const Wrapped: React.FC

, R extends React.ComponentType

>(Route: R): R {\n const componentDisplayName = (Route as any).displayName || (Route as any).name;\n\n const WrappedRoute: React.FC

= (props: P) => {\n if (activeTransaction && props && props.computedMatch && props.computedMatch.isExact) {\n activeTransaction.setName(props.computedMatch.path);\n }\n\n // @ts-ignore Setting more specific React Component typing for `R` generic above\n // will break advanced type inference done by react router params:\n // https://github.com/DefinitelyTyped/DefinitelyTyped/blob/13dc4235c069e25fe7ee16e11f529d909f9f3ff8/types/react-router/index.d.ts#L154-L164\n return ;\n };\n\n WrappedRoute.displayName = `sentryRoute(${componentDisplayName})`;\n hoistNonReactStatics(WrappedRoute, Route);\n // @ts-ignore Setting more specific React Component typing for `R` generic above\n // will break advanced type inference done by react router params:\n // https://github.com/DefinitelyTyped/DefinitelyTyped/blob/13dc4235c069e25fe7ee16e11f529d909f9f3ff8/types/react-router/index.d.ts#L154-L164\n return WrappedRoute;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\n","import { getCurrentHub, Hub } from '@sentry/hub';\nimport { Options, Transaction } from '@sentry/types';\n\n/**\n * The `extractTraceparentData` function and `TRACEPARENT_REGEXP` constant used\n * to be declared in this file. It was later moved into `@sentry/utils` as part of a\n * move to remove `@sentry/tracing` dependencies from `@sentry/node` (`extractTraceparentData`\n * is the only tracing function used by `@sentry/node`).\n *\n * These exports are kept here for backwards compatability's sake.\n *\n * TODO(v7): Reorganize these exports\n *\n * See https://github.com/getsentry/sentry-javascript/issues/4642 for more details.\n */\nexport { TRACEPARENT_REGEXP, extractTraceparentData } from '@sentry/utils';\n\n/**\n * Determines if tracing is currently enabled.\n *\n * Tracing is enabled when at least one of `tracesSampleRate` and `tracesSampler` is defined in the SDK config.\n */\nexport function hasTracingEnabled(maybeOptions?: Options | undefined): boolean {\n const client = getCurrentHub().getClient();\n const options = maybeOptions || (client && client.getOptions());\n return !!options && ('tracesSampleRate' in options || 'tracesSampler' in options);\n}\n\n/** Grabs active transaction off scope, if any */\nexport function getActiveTransaction(maybeHub?: Hub): T | undefined {\n const hub = maybeHub || getCurrentHub();\n const scope = hub.getScope();\n return scope && (scope.getTransaction() as T | undefined);\n}\n\n/**\n * Converts from milliseconds to seconds\n * @param time time in ms\n */\nexport function msToSec(time: number): number {\n return time / 1000;\n}\n\n/**\n * Converts from seconds to milliseconds\n * @param time time in seconds\n */\nexport function secToMs(time: number): number {\n return time * 1000;\n}\n\n// so it can be used in manual instrumentation without necessitating a hard dependency on @sentry/utils\nexport { stripUrlQueryAndFragment } from '@sentry/utils';\n","import { addInstrumentationHandler, logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from './flags';\nimport { SpanStatusType } from './span';\nimport { getActiveTransaction } from './utils';\n\n/**\n * Configures global error listeners\n */\nexport function registerErrorInstrumentation(): void {\n addInstrumentationHandler('error', errorCallback);\n addInstrumentationHandler('unhandledrejection', errorCallback);\n}\n\n/**\n * If an error or unhandled promise occurs, we mark the active transaction as failed\n */\nfunction errorCallback(): void {\n const activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n const status: SpanStatusType = 'internal_error';\n IS_DEBUG_BUILD && logger.log(`[Tracing] Transaction: ${status} -> Global error occured`);\n activeTransaction.setStatus(status);\n }\n}\n","// Store finish reasons in tuple to save on bundle size\n// Readonly type should enforce that this is not mutated.\nexport const FINISH_REASON_TAG = 'finishReason';\n\nexport const IDLE_TRANSACTION_FINISH_REASONS = ['heartbeatFailed', 'idleTimeout', 'documentHidden'] as const;\n","/* eslint-disable max-lines */\nimport { Primitive, Span as SpanInterface, SpanContext, Transaction } from '@sentry/types';\nimport { dropUndefinedKeys, timestampWithMs, uuid4 } from '@sentry/utils';\n\n/**\n * Keeps track of finished spans for a given transaction\n * @internal\n * @hideconstructor\n * @hidden\n */\nexport class SpanRecorder {\n public spans: Span[] = [];\n\n private readonly _maxlen: number;\n\n public constructor(maxlen: number = 1000) {\n this._maxlen = maxlen;\n }\n\n /**\n * This is just so that we don't run out of memory while recording a lot\n * of spans. At some point we just stop and flush out the start of the\n * trace tree (i.e.the first n spans with the smallest\n * start_timestamp).\n */\n public add(span: Span): void {\n if (this.spans.length > this._maxlen) {\n span.spanRecorder = undefined;\n } else {\n this.spans.push(span);\n }\n }\n}\n\n/**\n * Span contains all data about a span\n */\nexport class Span implements SpanInterface {\n /**\n * @inheritDoc\n */\n public traceId: string = uuid4();\n\n /**\n * @inheritDoc\n */\n public spanId: string = uuid4().substring(16);\n\n /**\n * @inheritDoc\n */\n public parentSpanId?: string;\n\n /**\n * Internal keeper of the status\n */\n public status?: SpanStatusType | string;\n\n /**\n * @inheritDoc\n */\n public sampled?: boolean;\n\n /**\n * Timestamp in seconds when the span was created.\n */\n public startTimestamp: number = timestampWithMs();\n\n /**\n * Timestamp in seconds when the span ended.\n */\n public endTimestamp?: number;\n\n /**\n * @inheritDoc\n */\n public op?: string;\n\n /**\n * @inheritDoc\n */\n public description?: string;\n\n /**\n * @inheritDoc\n */\n public tags: { [key: string]: Primitive } = {};\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public data: { [key: string]: any } = {};\n\n /**\n * List of spans that were finalized\n */\n public spanRecorder?: SpanRecorder;\n\n /**\n * @inheritDoc\n */\n public transaction?: Transaction;\n\n /**\n * You should never call the constructor manually, always use `Sentry.startTransaction()`\n * or call `startChild()` on an existing span.\n * @internal\n * @hideconstructor\n * @hidden\n */\n public constructor(spanContext?: SpanContext) {\n if (!spanContext) {\n return this;\n }\n if (spanContext.traceId) {\n this.traceId = spanContext.traceId;\n }\n if (spanContext.spanId) {\n this.spanId = spanContext.spanId;\n }\n if (spanContext.parentSpanId) {\n this.parentSpanId = spanContext.parentSpanId;\n }\n // We want to include booleans as well here\n if ('sampled' in spanContext) {\n this.sampled = spanContext.sampled;\n }\n if (spanContext.op) {\n this.op = spanContext.op;\n }\n if (spanContext.description) {\n this.description = spanContext.description;\n }\n if (spanContext.data) {\n this.data = spanContext.data;\n }\n if (spanContext.tags) {\n this.tags = spanContext.tags;\n }\n if (spanContext.status) {\n this.status = spanContext.status;\n }\n if (spanContext.startTimestamp) {\n this.startTimestamp = spanContext.startTimestamp;\n }\n if (spanContext.endTimestamp) {\n this.endTimestamp = spanContext.endTimestamp;\n }\n }\n\n /**\n * @inheritDoc\n * @deprecated\n */\n public child(\n spanContext?: Pick>,\n ): Span {\n return this.startChild(spanContext);\n }\n\n /**\n * @inheritDoc\n */\n public startChild(\n spanContext?: Pick>,\n ): Span {\n const childSpan = new Span({\n ...spanContext,\n parentSpanId: this.spanId,\n sampled: this.sampled,\n traceId: this.traceId,\n });\n\n childSpan.spanRecorder = this.spanRecorder;\n if (childSpan.spanRecorder) {\n childSpan.spanRecorder.add(childSpan);\n }\n\n childSpan.transaction = this.transaction;\n\n return childSpan;\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): this {\n this.tags = { ...this.tags, [key]: value };\n return this;\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public setData(key: string, value: any): this {\n this.data = { ...this.data, [key]: value };\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setStatus(value: SpanStatusType): this {\n this.status = value;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setHttpStatus(httpStatus: number): this {\n this.setTag('http.status_code', String(httpStatus));\n const spanStatus = spanStatusfromHttpCode(httpStatus);\n if (spanStatus !== 'unknown_error') {\n this.setStatus(spanStatus);\n }\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public isSuccess(): boolean {\n return this.status === 'ok';\n }\n\n /**\n * @inheritDoc\n */\n public finish(endTimestamp?: number): void {\n this.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n }\n\n /**\n * @inheritDoc\n */\n public toTraceparent(): string {\n let sampledString = '';\n if (this.sampled !== undefined) {\n sampledString = this.sampled ? '-1' : '-0';\n }\n return `${this.traceId}-${this.spanId}${sampledString}`;\n }\n\n /**\n * @inheritDoc\n */\n public toContext(): SpanContext {\n return dropUndefinedKeys({\n data: this.data,\n description: this.description,\n endTimestamp: this.endTimestamp,\n op: this.op,\n parentSpanId: this.parentSpanId,\n sampled: this.sampled,\n spanId: this.spanId,\n startTimestamp: this.startTimestamp,\n status: this.status,\n tags: this.tags,\n traceId: this.traceId,\n });\n }\n\n /**\n * @inheritDoc\n */\n public updateWithContext(spanContext: SpanContext): this {\n this.data = spanContext.data ?? {};\n this.description = spanContext.description;\n this.endTimestamp = spanContext.endTimestamp;\n this.op = spanContext.op;\n this.parentSpanId = spanContext.parentSpanId;\n this.sampled = spanContext.sampled;\n this.spanId = spanContext.spanId ?? this.spanId;\n this.startTimestamp = spanContext.startTimestamp ?? this.startTimestamp;\n this.status = spanContext.status;\n this.tags = spanContext.tags ?? {};\n this.traceId = spanContext.traceId ?? this.traceId;\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getTraceContext(): {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data?: { [key: string]: any };\n description?: string;\n op?: string;\n parent_span_id?: string;\n span_id: string;\n status?: string;\n tags?: { [key: string]: Primitive };\n trace_id: string;\n } {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n trace_id: this.traceId,\n });\n }\n\n /**\n * @inheritDoc\n */\n public toJSON(): {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data?: { [key: string]: any };\n description?: string;\n op?: string;\n parent_span_id?: string;\n span_id: string;\n start_timestamp: number;\n status?: string;\n tags?: { [key: string]: Primitive };\n timestamp?: number;\n trace_id: string;\n } {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n start_timestamp: this.startTimestamp,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n timestamp: this.endTimestamp,\n trace_id: this.traceId,\n });\n }\n}\n\nexport type SpanStatusType =\n /** The operation completed successfully. */\n | 'ok'\n /** Deadline expired before operation could complete. */\n | 'deadline_exceeded'\n /** 401 Unauthorized (actually does mean unauthenticated according to RFC 7235) */\n | 'unauthenticated'\n /** 403 Forbidden */\n | 'permission_denied'\n /** 404 Not Found. Some requested entity (file or directory) was not found. */\n | 'not_found'\n /** 429 Too Many Requests */\n | 'resource_exhausted'\n /** Client specified an invalid argument. 4xx. */\n | 'invalid_argument'\n /** 501 Not Implemented */\n | 'unimplemented'\n /** 503 Service Unavailable */\n | 'unavailable'\n /** Other/generic 5xx. */\n | 'internal_error'\n /** Unknown. Any non-standard HTTP status code. */\n | 'unknown_error'\n /** The operation was cancelled (typically by the user). */\n | 'cancelled'\n /** Already exists (409) */\n | 'already_exists'\n /** Operation was rejected because the system is not in a state required for the operation's */\n | 'failed_precondition'\n /** The operation was aborted, typically due to a concurrency issue. */\n | 'aborted'\n /** Operation was attempted past the valid range. */\n | 'out_of_range'\n /** Unrecoverable data loss or corruption */\n | 'data_loss';\n\n/**\n * Converts a HTTP status code into a {@link SpanStatusType}.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\nexport function spanStatusfromHttpCode(httpStatus: number): SpanStatusType {\n if (httpStatus < 400 && httpStatus >= 100) {\n return 'ok';\n }\n\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return 'unauthenticated';\n case 403:\n return 'permission_denied';\n case 404:\n return 'not_found';\n case 409:\n return 'already_exists';\n case 413:\n return 'failed_precondition';\n case 429:\n return 'resource_exhausted';\n default:\n return 'invalid_argument';\n }\n }\n\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return 'unimplemented';\n case 503:\n return 'unavailable';\n case 504:\n return 'deadline_exceeded';\n default:\n return 'internal_error';\n }\n }\n\n return 'unknown_error';\n}\n","import { getCurrentHub, Hub } from '@sentry/hub';\nimport {\n Event,\n Measurements,\n Transaction as TransactionInterface,\n TransactionContext,\n TransactionMetadata,\n} from '@sentry/types';\nimport { dropUndefinedKeys, isInstanceOf, logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from './flags';\nimport { Span as SpanClass, SpanRecorder } from './span';\n\n/** JSDoc */\nexport class Transaction extends SpanClass implements TransactionInterface {\n public name: string;\n\n public metadata: TransactionMetadata;\n\n private _measurements: Measurements = {};\n\n /**\n * The reference to the current hub.\n */\n private readonly _hub: Hub = getCurrentHub() as unknown as Hub;\n\n private _trimEnd?: boolean;\n\n /**\n * This constructor should never be called manually. Those instrumenting tracing should use\n * `Sentry.startTransaction()`, and internal methods should use `hub.startTransaction()`.\n * @internal\n * @hideconstructor\n * @hidden\n */\n public constructor(transactionContext: TransactionContext, hub?: Hub) {\n super(transactionContext);\n\n if (isInstanceOf(hub, Hub)) {\n this._hub = hub as Hub;\n }\n\n this.name = transactionContext.name || '';\n\n this.metadata = transactionContext.metadata || {};\n this._trimEnd = transactionContext.trimEnd;\n\n // this is because transactions are also spans, and spans have a transaction pointer\n this.transaction = this;\n }\n\n /**\n * JSDoc\n */\n public setName(name: string): void {\n this.name = name;\n }\n\n /**\n * Attaches SpanRecorder to the span itself\n * @param maxlen maximum number of spans that can be recorded\n */\n public initSpanRecorder(maxlen: number = 1000): void {\n if (!this.spanRecorder) {\n this.spanRecorder = new SpanRecorder(maxlen);\n }\n this.spanRecorder.add(this);\n }\n\n /**\n * Set observed measurements for this transaction.\n * @hidden\n */\n public setMeasurements(measurements: Measurements): void {\n this._measurements = { ...measurements };\n }\n\n /**\n * Set metadata for this transaction.\n * @hidden\n */\n public setMetadata(newMetadata: TransactionMetadata): void {\n this.metadata = { ...this.metadata, ...newMetadata };\n }\n\n /**\n * @inheritDoc\n */\n public finish(endTimestamp?: number): string | undefined {\n // This transaction is already finished, so we should not flush it again.\n if (this.endTimestamp !== undefined) {\n return undefined;\n }\n\n if (!this.name) {\n IS_DEBUG_BUILD && logger.warn('Transaction has no name, falling back to ``.');\n this.name = '';\n }\n\n // just sets the end timestamp\n super.finish(endTimestamp);\n\n if (this.sampled !== true) {\n // At this point if `sampled !== true` we want to discard the transaction.\n IS_DEBUG_BUILD && logger.log('[Tracing] Discarding transaction because its trace was not chosen to be sampled.');\n\n const client = this._hub.getClient();\n const transport = client && client.getTransport && client.getTransport();\n if (transport && transport.recordLostEvent) {\n transport.recordLostEvent('sample_rate', 'transaction');\n }\n return undefined;\n }\n\n const finishedSpans = this.spanRecorder ? this.spanRecorder.spans.filter(s => s !== this && s.endTimestamp) : [];\n\n if (this._trimEnd && finishedSpans.length > 0) {\n this.endTimestamp = finishedSpans.reduce((prev: SpanClass, current: SpanClass) => {\n if (prev.endTimestamp && current.endTimestamp) {\n return prev.endTimestamp > current.endTimestamp ? prev : current;\n }\n return prev;\n }).endTimestamp;\n }\n\n const transaction: Event = {\n contexts: {\n trace: this.getTraceContext(),\n },\n spans: finishedSpans,\n start_timestamp: this.startTimestamp,\n tags: this.tags,\n timestamp: this.endTimestamp,\n transaction: this.name,\n type: 'transaction',\n sdkProcessingMetadata: this.metadata,\n };\n\n const hasMeasurements = Object.keys(this._measurements).length > 0;\n\n if (hasMeasurements) {\n IS_DEBUG_BUILD &&\n logger.log(\n '[Measurements] Adding measurements to transaction',\n JSON.stringify(this._measurements, undefined, 2),\n );\n transaction.measurements = this._measurements;\n }\n\n IS_DEBUG_BUILD && logger.log(`[Tracing] Finishing ${this.op} transaction: ${this.name}.`);\n\n return this._hub.captureEvent(transaction);\n }\n\n /**\n * @inheritDoc\n */\n public toContext(): TransactionContext {\n const spanContext = super.toContext();\n\n return dropUndefinedKeys({\n ...spanContext,\n name: this.name,\n trimEnd: this._trimEnd,\n });\n }\n\n /**\n * @inheritDoc\n */\n public updateWithContext(transactionContext: TransactionContext): this {\n super.updateWithContext(transactionContext);\n\n this.name = transactionContext.name ?? '';\n\n this._trimEnd = transactionContext.trimEnd;\n\n return this;\n }\n}\n","import { Hub } from '@sentry/hub';\nimport { TransactionContext } from '@sentry/types';\nimport { logger, timestampWithMs } from '@sentry/utils';\n\nimport { FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS } from './constants';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { Span, SpanRecorder } from './span';\nimport { Transaction } from './transaction';\n\nexport const DEFAULT_IDLE_TIMEOUT = 1000;\nexport const HEARTBEAT_INTERVAL = 5000;\n\n/**\n * @inheritDoc\n */\nexport class IdleTransactionSpanRecorder extends SpanRecorder {\n public constructor(\n private readonly _pushActivity: (id: string) => void,\n private readonly _popActivity: (id: string) => void,\n public transactionSpanId: string = '',\n maxlen?: number,\n ) {\n super(maxlen);\n }\n\n /**\n * @inheritDoc\n */\n public add(span: Span): void {\n // We should make sure we do not push and pop activities for\n // the transaction that this span recorder belongs to.\n if (span.spanId !== this.transactionSpanId) {\n // We patch span.finish() to pop an activity after setting an endTimestamp.\n span.finish = (endTimestamp?: number) => {\n span.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n this._popActivity(span.spanId);\n };\n\n // We should only push new activities if the span does not have an end timestamp.\n if (span.endTimestamp === undefined) {\n this._pushActivity(span.spanId);\n }\n }\n\n super.add(span);\n }\n}\n\nexport type BeforeFinishCallback = (transactionSpan: IdleTransaction, endTimestamp: number) => void;\n\n/**\n * An IdleTransaction is a transaction that automatically finishes. It does this by tracking child spans as activities.\n * You can have multiple IdleTransactions active, but if the `onScope` option is specified, the idle transaction will\n * put itself on the scope on creation.\n */\nexport class IdleTransaction extends Transaction {\n // Activities store a list of active spans\n public activities: Record = {};\n\n // Track state of activities in previous heartbeat\n private _prevHeartbeatString: string | undefined;\n\n // Amount of times heartbeat has counted. Will cause transaction to finish after 3 beats.\n private _heartbeatCounter: number = 0;\n\n // We should not use heartbeat if we finished a transaction\n private _finished: boolean = false;\n\n private readonly _beforeFinishCallbacks: BeforeFinishCallback[] = [];\n\n /**\n * If a transaction is created and no activities are added, we want to make sure that\n * it times out properly. This is cleared and not used when activities are added.\n */\n private _initTimeout: ReturnType | undefined;\n\n public constructor(\n transactionContext: TransactionContext,\n private readonly _idleHub?: Hub,\n /**\n * The time to wait in ms until the idle transaction will be finished.\n * @default 1000\n */\n private readonly _idleTimeout: number = DEFAULT_IDLE_TIMEOUT,\n // Whether or not the transaction should put itself on the scope when it starts and pop itself off when it ends\n private readonly _onScope: boolean = false,\n ) {\n super(transactionContext, _idleHub);\n\n if (_idleHub && _onScope) {\n // There should only be one active transaction on the scope\n clearActiveTransaction(_idleHub);\n\n // We set the transaction here on the scope so error events pick up the trace\n // context and attach it to the error.\n IS_DEBUG_BUILD && logger.log(`Setting idle transaction on scope. Span ID: ${this.spanId}`);\n _idleHub.configureScope(scope => scope.setSpan(this));\n }\n\n this._initTimeout = setTimeout(() => {\n if (!this._finished) {\n this.finish();\n }\n }, this._idleTimeout);\n }\n\n /** {@inheritDoc} */\n public finish(endTimestamp: number = timestampWithMs()): string | undefined {\n this._finished = true;\n this.activities = {};\n\n if (this.spanRecorder) {\n IS_DEBUG_BUILD &&\n logger.log('[Tracing] finishing IdleTransaction', new Date(endTimestamp * 1000).toISOString(), this.op);\n\n for (const callback of this._beforeFinishCallbacks) {\n callback(this, endTimestamp);\n }\n\n this.spanRecorder.spans = this.spanRecorder.spans.filter((span: Span) => {\n // If we are dealing with the transaction itself, we just return it\n if (span.spanId === this.spanId) {\n return true;\n }\n\n // We cancel all pending spans with status \"cancelled\" to indicate the idle transaction was finished early\n if (!span.endTimestamp) {\n span.endTimestamp = endTimestamp;\n span.setStatus('cancelled');\n IS_DEBUG_BUILD &&\n logger.log('[Tracing] cancelling span since transaction ended early', JSON.stringify(span, undefined, 2));\n }\n\n const keepSpan = span.startTimestamp < endTimestamp;\n if (!keepSpan) {\n IS_DEBUG_BUILD &&\n logger.log(\n '[Tracing] discarding Span since it happened after Transaction was finished',\n JSON.stringify(span, undefined, 2),\n );\n }\n return keepSpan;\n });\n\n IS_DEBUG_BUILD && logger.log('[Tracing] flushing IdleTransaction');\n } else {\n IS_DEBUG_BUILD && logger.log('[Tracing] No active IdleTransaction');\n }\n\n // if `this._onScope` is `true`, the transaction put itself on the scope when it started\n if (this._onScope) {\n clearActiveTransaction(this._idleHub);\n }\n\n return super.finish(endTimestamp);\n }\n\n /**\n * Register a callback function that gets excecuted before the transaction finishes.\n * Useful for cleanup or if you want to add any additional spans based on current context.\n *\n * This is exposed because users have no other way of running something before an idle transaction\n * finishes.\n */\n public registerBeforeFinishCallback(callback: BeforeFinishCallback): void {\n this._beforeFinishCallbacks.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public initSpanRecorder(maxlen?: number): void {\n if (!this.spanRecorder) {\n const pushActivity = (id: string): void => {\n if (this._finished) {\n return;\n }\n this._pushActivity(id);\n };\n const popActivity = (id: string): void => {\n if (this._finished) {\n return;\n }\n this._popActivity(id);\n };\n\n this.spanRecorder = new IdleTransactionSpanRecorder(pushActivity, popActivity, this.spanId, maxlen);\n\n // Start heartbeat so that transactions do not run forever.\n IS_DEBUG_BUILD && logger.log('Starting heartbeat');\n this._pingHeartbeat();\n }\n this.spanRecorder.add(this);\n }\n\n /**\n * Start tracking a specific activity.\n * @param spanId The span id that represents the activity\n */\n private _pushActivity(spanId: string): void {\n if (this._initTimeout) {\n clearTimeout(this._initTimeout);\n this._initTimeout = undefined;\n }\n IS_DEBUG_BUILD && logger.log(`[Tracing] pushActivity: ${spanId}`);\n this.activities[spanId] = true;\n IS_DEBUG_BUILD && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n /**\n * Remove an activity from usage\n * @param spanId The span id that represents the activity\n */\n private _popActivity(spanId: string): void {\n if (this.activities[spanId]) {\n IS_DEBUG_BUILD && logger.log(`[Tracing] popActivity ${spanId}`);\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.activities[spanId];\n IS_DEBUG_BUILD && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n if (Object.keys(this.activities).length === 0) {\n const timeout = this._idleTimeout;\n // We need to add the timeout here to have the real endtimestamp of the transaction\n // Remember timestampWithMs is in seconds, timeout is in ms\n const end = timestampWithMs() + timeout / 1000;\n\n setTimeout(() => {\n if (!this._finished) {\n this.setTag(FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS[1]);\n this.finish(end);\n }\n }, timeout);\n }\n }\n\n /**\n * Checks when entries of this.activities are not changing for 3 beats.\n * If this occurs we finish the transaction.\n */\n private _beat(): void {\n // We should not be running heartbeat if the idle transaction is finished.\n if (this._finished) {\n return;\n }\n\n const heartbeatString = Object.keys(this.activities).join('');\n\n if (heartbeatString === this._prevHeartbeatString) {\n this._heartbeatCounter += 1;\n } else {\n this._heartbeatCounter = 1;\n }\n\n this._prevHeartbeatString = heartbeatString;\n\n if (this._heartbeatCounter >= 3) {\n IS_DEBUG_BUILD && logger.log('[Tracing] Transaction finished because of no change for 3 heart beats');\n this.setStatus('deadline_exceeded');\n this.setTag(FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS[0]);\n this.finish();\n } else {\n this._pingHeartbeat();\n }\n }\n\n /**\n * Pings the heartbeat\n */\n private _pingHeartbeat(): void {\n IS_DEBUG_BUILD && logger.log(`pinging Heartbeat -> current counter: ${this._heartbeatCounter}`);\n setTimeout(() => {\n this._beat();\n }, HEARTBEAT_INTERVAL);\n }\n}\n\n/**\n * Reset transaction on scope to `undefined`\n */\nfunction clearActiveTransaction(hub?: Hub): void {\n if (hub) {\n const scope = hub.getScope();\n if (scope) {\n const transaction = scope.getTransaction();\n if (transaction) {\n scope.setSpan(undefined);\n }\n }\n }\n}\n","import { getMainCarrier, Hub } from '@sentry/hub';\nimport {\n CustomSamplingContext,\n Integration,\n IntegrationClass,\n Options,\n SamplingContext,\n TransactionContext,\n} from '@sentry/types';\nimport { dynamicRequire, isNaN, isNodeEnv, loadModule, logger } from '@sentry/utils';\n\nimport { registerErrorInstrumentation } from './errors';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { IdleTransaction } from './idletransaction';\nimport { Transaction } from './transaction';\nimport { hasTracingEnabled } from './utils';\n\n/** Returns all trace headers that are currently on the top scope. */\nfunction traceHeaders(this: Hub): { [key: string]: string } {\n const scope = this.getScope();\n if (scope) {\n const span = scope.getSpan();\n if (span) {\n return {\n 'sentry-trace': span.toTraceparent(),\n };\n }\n }\n return {};\n}\n\n/**\n * Makes a sampling decision for the given transaction and stores it on the transaction.\n *\n * Called every time a transaction is created. Only transactions which emerge with a `sampled` value of `true` will be\n * sent to Sentry.\n *\n * @param transaction: The transaction needing a sampling decision\n * @param options: The current client's options, so we can access `tracesSampleRate` and/or `tracesSampler`\n * @param samplingContext: Default and user-provided data which may be used to help make the decision\n *\n * @returns The given transaction with its `sampled` value set\n */\nfunction sample(transaction: T, options: Options, samplingContext: SamplingContext): T {\n // nothing to do if tracing is not enabled\n if (!hasTracingEnabled(options)) {\n transaction.sampled = false;\n return transaction;\n }\n\n // if the user has forced a sampling decision by passing a `sampled` value in their transaction context, go with that\n if (transaction.sampled !== undefined) {\n transaction.setMetadata({\n transactionSampling: { method: 'explicitly_set' },\n });\n return transaction;\n }\n\n // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` were defined, so one of these should\n // work; prefer the hook if so\n let sampleRate;\n if (typeof options.tracesSampler === 'function') {\n sampleRate = options.tracesSampler(samplingContext);\n transaction.setMetadata({\n transactionSampling: {\n method: 'client_sampler',\n // cast to number in case it's a boolean\n rate: Number(sampleRate),\n },\n });\n } else if (samplingContext.parentSampled !== undefined) {\n sampleRate = samplingContext.parentSampled;\n transaction.setMetadata({\n transactionSampling: { method: 'inheritance' },\n });\n } else {\n sampleRate = options.tracesSampleRate;\n transaction.setMetadata({\n transactionSampling: {\n method: 'client_rate',\n // cast to number in case it's a boolean\n rate: Number(sampleRate),\n },\n });\n }\n\n // Since this is coming from the user (or from a function provided by the user), who knows what we might get. (The\n // only valid values are booleans or numbers between 0 and 1.)\n if (!isValidSampleRate(sampleRate)) {\n IS_DEBUG_BUILD && logger.warn('[Tracing] Discarding transaction because of invalid sample rate.');\n transaction.sampled = false;\n return transaction;\n }\n\n // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped\n if (!sampleRate) {\n IS_DEBUG_BUILD &&\n logger.log(\n `[Tracing] Discarding transaction because ${\n typeof options.tracesSampler === 'function'\n ? 'tracesSampler returned 0 or false'\n : 'a negative sampling decision was inherited or tracesSampleRate is set to 0'\n }`,\n );\n transaction.sampled = false;\n return transaction;\n }\n\n // Now we roll the dice. Math.random is inclusive of 0, but not of 1, so strict < is safe here. In case sampleRate is\n // a boolean, the < comparison will cause it to be automatically cast to 1 if it's true and 0 if it's false.\n transaction.sampled = Math.random() < (sampleRate as number | boolean);\n\n // if we're not going to keep it, we're done\n if (!transaction.sampled) {\n IS_DEBUG_BUILD &&\n logger.log(\n `[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(\n sampleRate,\n )})`,\n );\n return transaction;\n }\n\n IS_DEBUG_BUILD && logger.log(`[Tracing] starting ${transaction.op} transaction - ${transaction.name}`);\n return transaction;\n}\n\n/**\n * Checks the given sample rate to make sure it is valid type and value (a boolean, or a number between 0 and 1).\n */\nfunction isValidSampleRate(rate: unknown): boolean {\n // we need to check NaN explicitly because it's of type 'number' and therefore wouldn't get caught by this typecheck\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isNaN(rate) || !(typeof rate === 'number' || typeof rate === 'boolean')) {\n IS_DEBUG_BUILD &&\n logger.warn(\n `[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n rate,\n )} of type ${JSON.stringify(typeof rate)}.`,\n );\n return false;\n }\n\n // in case sampleRate is a boolean, it will get automatically cast to 1 if it's true and 0 if it's false\n if (rate < 0 || rate > 1) {\n IS_DEBUG_BUILD &&\n logger.warn(`[Tracing] Given sample rate is invalid. Sample rate must be between 0 and 1. Got ${rate}.`);\n return false;\n }\n return true;\n}\n\n/**\n * Creates a new transaction and adds a sampling decision if it doesn't yet have one.\n *\n * The Hub.startTransaction method delegates to this method to do its work, passing the Hub instance in as `this`, as if\n * it had been called on the hub directly. Exists as a separate function so that it can be injected into the class as an\n * \"extension method.\"\n *\n * @param this: The Hub starting the transaction\n * @param transactionContext: Data used to configure the transaction\n * @param CustomSamplingContext: Optional data to be provided to the `tracesSampler` function (if any)\n *\n * @returns The new transaction\n *\n * @see {@link Hub.startTransaction}\n */\nfunction _startTransaction(\n this: Hub,\n transactionContext: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n): Transaction {\n const client = this.getClient();\n const options = (client && client.getOptions()) || {};\n\n let transaction = new Transaction(transactionContext, this);\n transaction = sample(transaction, options, {\n parentSampled: transactionContext.parentSampled,\n transactionContext,\n ...customSamplingContext,\n });\n if (transaction.sampled) {\n transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number));\n }\n return transaction;\n}\n\n/**\n * Create new idle transaction.\n */\nexport function startIdleTransaction(\n hub: Hub,\n transactionContext: TransactionContext,\n idleTimeout?: number,\n onScope?: boolean,\n customSamplingContext?: CustomSamplingContext,\n): IdleTransaction {\n const client = hub.getClient();\n const options = (client && client.getOptions()) || {};\n\n let transaction = new IdleTransaction(transactionContext, hub, idleTimeout, onScope);\n transaction = sample(transaction, options, {\n parentSampled: transactionContext.parentSampled,\n transactionContext,\n ...customSamplingContext,\n });\n if (transaction.sampled) {\n transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number));\n }\n return transaction;\n}\n\n/**\n * @private\n */\nexport function _addTracingExtensions(): void {\n const carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n carrier.__SENTRY__.extensions = carrier.__SENTRY__.extensions || {};\n if (!carrier.__SENTRY__.extensions.startTransaction) {\n carrier.__SENTRY__.extensions.startTransaction = _startTransaction;\n }\n if (!carrier.__SENTRY__.extensions.traceHeaders) {\n carrier.__SENTRY__.extensions.traceHeaders = traceHeaders;\n }\n}\n\n/**\n * @private\n */\nfunction _autoloadDatabaseIntegrations(): void {\n const carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n\n const packageToIntegrationMapping: Record Integration> = {\n mongodb() {\n const integration = dynamicRequire(module, './integrations/node/mongo') as {\n Mongo: IntegrationClass;\n };\n return new integration.Mongo();\n },\n mongoose() {\n const integration = dynamicRequire(module, './integrations/node/mongo') as {\n Mongo: IntegrationClass;\n };\n return new integration.Mongo({ mongoose: true });\n },\n mysql() {\n const integration = dynamicRequire(module, './integrations/node/mysql') as {\n Mysql: IntegrationClass;\n };\n return new integration.Mysql();\n },\n pg() {\n const integration = dynamicRequire(module, './integrations/node/postgres') as {\n Postgres: IntegrationClass;\n };\n return new integration.Postgres();\n },\n };\n\n const mappedPackages = Object.keys(packageToIntegrationMapping)\n .filter(moduleName => !!loadModule(moduleName))\n .map(pkg => {\n try {\n return packageToIntegrationMapping[pkg]();\n } catch (e) {\n return undefined;\n }\n })\n .filter(p => p) as Integration[];\n\n if (mappedPackages.length > 0) {\n carrier.__SENTRY__.integrations = [...(carrier.__SENTRY__.integrations || []), ...mappedPackages];\n }\n}\n\n/**\n * This patches the global object and injects the Tracing extensions methods\n */\nexport function addExtensionMethods(): void {\n _addTracingExtensions();\n\n // Detect and automatically load specified integrations.\n if (isNodeEnv()) {\n _autoloadDatabaseIntegrations();\n }\n\n // If an error happens globally, we should make sure transaction status is set to error.\n registerErrorInstrumentation();\n}\n","import { Integration, Transaction } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../../flags';\n\ntype Method =\n | 'all'\n | 'get'\n | 'post'\n | 'put'\n | 'delete'\n | 'patch'\n | 'options'\n | 'head'\n | 'checkout'\n | 'copy'\n | 'lock'\n | 'merge'\n | 'mkactivity'\n | 'mkcol'\n | 'move'\n | 'm-search'\n | 'notify'\n | 'purge'\n | 'report'\n | 'search'\n | 'subscribe'\n | 'trace'\n | 'unlock'\n | 'unsubscribe'\n | 'use';\n\ntype Router = {\n [method in Method]: (...args: any) => any; // eslint-disable-line @typescript-eslint/no-explicit-any\n};\n\ninterface ExpressResponse {\n once(name: string, callback: () => void): void;\n}\n\n/**\n * Internal helper for `__sentry_transaction`\n * @hidden\n */\ninterface SentryTracingResponse {\n __sentry_transaction?: Transaction;\n}\n\n/**\n * Express integration\n *\n * Provides an request and error handler for Express framework as well as tracing capabilities\n */\nexport class Express implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Express';\n\n /**\n * @inheritDoc\n */\n public name: string = Express.id;\n\n /**\n * Express App instance\n */\n private readonly _router?: Router;\n private readonly _methods?: Method[];\n\n /**\n * @inheritDoc\n */\n public constructor(options: { app?: Router; router?: Router; methods?: Method[] } = {}) {\n this._router = options.router || options.app;\n this._methods = (Array.isArray(options.methods) ? options.methods : []).concat('use');\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n if (!this._router) {\n IS_DEBUG_BUILD && logger.error('ExpressIntegration is missing an Express instance');\n return;\n }\n instrumentMiddlewares(this._router, this._methods);\n }\n}\n\n/**\n * Wraps original middleware function in a tracing call, which stores the info about the call as a span,\n * and finishes it once the middleware is done invoking.\n *\n * Express middlewares have 3 various forms, thus we have to take care of all of them:\n * // sync\n * app.use(function (req, res) { ... })\n * // async\n * app.use(function (req, res, next) { ... })\n * // error handler\n * app.use(function (err, req, res, next) { ... })\n *\n * They all internally delegate to the `router[method]` of the given application instance.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types, @typescript-eslint/no-explicit-any\nfunction wrap(fn: Function, method: Method): (...args: any[]) => void {\n const arity = fn.length;\n\n switch (arity) {\n case 2: {\n return function (this: NodeJS.Global, req: unknown, res: ExpressResponse & SentryTracingResponse): void {\n const transaction = res.__sentry_transaction;\n if (transaction) {\n const span = transaction.startChild({\n description: fn.name,\n op: `express.middleware.${method}`,\n });\n res.once('finish', () => {\n span.finish();\n });\n }\n return fn.call(this, req, res);\n };\n }\n case 3: {\n return function (\n this: NodeJS.Global,\n req: unknown,\n res: ExpressResponse & SentryTracingResponse,\n next: () => void,\n ): void {\n const transaction = res.__sentry_transaction;\n const span = transaction?.startChild({\n description: fn.name,\n op: `express.middleware.${method}`,\n });\n fn.call(this, req, res, function (this: NodeJS.Global, ...args: unknown[]): void {\n span?.finish();\n next.call(this, ...args);\n });\n };\n }\n case 4: {\n return function (\n this: NodeJS.Global,\n err: Error,\n req: Request,\n res: Response & SentryTracingResponse,\n next: () => void,\n ): void {\n const transaction = res.__sentry_transaction;\n const span = transaction?.startChild({\n description: fn.name,\n op: `express.middleware.${method}`,\n });\n fn.call(this, err, req, res, function (this: NodeJS.Global, ...args: unknown[]): void {\n span?.finish();\n next.call(this, ...args);\n });\n };\n }\n default: {\n throw new Error(`Express middleware takes 2-4 arguments. Got: ${arity}`);\n }\n }\n}\n\n/**\n * Takes all the function arguments passed to the original `app` or `router` method, eg. `app.use` or `router.use`\n * and wraps every function, as well as array of functions with a call to our `wrap` method.\n * We have to take care of the arrays as well as iterate over all of the arguments,\n * as `app.use` can accept middlewares in few various forms.\n *\n * app.use([], )\n * app.use([], , ...)\n * app.use([], ...[])\n */\nfunction wrapMiddlewareArgs(args: unknown[], method: Method): unknown[] {\n return args.map((arg: unknown) => {\n if (typeof arg === 'function') {\n return wrap(arg, method);\n }\n\n if (Array.isArray(arg)) {\n return arg.map((a: unknown) => {\n if (typeof a === 'function') {\n return wrap(a, method);\n }\n return a;\n });\n }\n\n return arg;\n });\n}\n\n/**\n * Patches original router to utilize our tracing functionality\n */\nfunction patchMiddleware(router: Router, method: Method): Router {\n const originalCallback = router[method];\n\n router[method] = function (...args: unknown[]): void {\n return originalCallback.call(this, ...wrapMiddlewareArgs(args, method));\n };\n\n return router;\n}\n\n/**\n * Patches original router methods\n */\nfunction instrumentMiddlewares(router: Router, methods: Method[] = []): void {\n methods.forEach((method: Method) => patchMiddleware(router, method));\n}\n","import { Hub } from '@sentry/hub';\nimport { EventProcessor, Integration } from '@sentry/types';\nimport { fill, isThenable, loadModule, logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../../flags';\n\ninterface PgClient {\n prototype: {\n query: () => void | Promise;\n };\n}\n\ninterface PgOptions {\n usePgNative?: boolean;\n}\n\n/** Tracing integration for node-postgres package */\nexport class Postgres implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Postgres';\n\n /**\n * @inheritDoc\n */\n public name: string = Postgres.id;\n\n private _usePgNative: boolean;\n\n public constructor(options: PgOptions = {}) {\n this._usePgNative = !!options.usePgNative;\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n const pkg = loadModule<{ Client: PgClient; native: { Client: PgClient } }>('pg');\n\n if (!pkg) {\n IS_DEBUG_BUILD && logger.error('Postgres Integration was unable to require `pg` package.');\n return;\n }\n\n if (this._usePgNative && !pkg.native?.Client) {\n IS_DEBUG_BUILD && logger.error(\"Postgres Integration was unable to access 'pg-native' bindings.\");\n return;\n }\n\n const { Client } = this._usePgNative ? pkg.native : pkg;\n\n /**\n * function (query, callback) => void\n * function (query, params, callback) => void\n * function (query) => Promise\n * function (query, params) => Promise\n * function (pg.Cursor) => pg.Cursor\n */\n fill(Client.prototype, 'query', function (orig: () => void | Promise) {\n return function (this: unknown, config: unknown, values: unknown, callback: unknown) {\n const scope = getCurrentHub().getScope();\n const parentSpan = scope?.getSpan();\n const span = parentSpan?.startChild({\n description: typeof config === 'string' ? config : (config as { text: string }).text,\n op: 'db',\n });\n\n if (typeof callback === 'function') {\n return orig.call(this, config, values, function (err: Error, result: unknown) {\n span?.finish();\n callback(err, result);\n });\n }\n\n if (typeof values === 'function') {\n return orig.call(this, config, function (err: Error, result: unknown) {\n span?.finish();\n values(err, result);\n });\n }\n\n const rv = typeof values !== 'undefined' ? orig.call(this, config, values) : orig.call(this, config);\n\n if (isThenable(rv)) {\n return rv.then((res: unknown) => {\n span?.finish();\n return res;\n });\n }\n\n span?.finish();\n return rv;\n };\n });\n }\n}\n","import { Hub } from '@sentry/hub';\nimport { EventProcessor, Integration } from '@sentry/types';\nimport { fill, loadModule, logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../../flags';\n\ninterface MysqlConnection {\n createQuery: () => void;\n}\n\n/** Tracing integration for node-mysql package */\nexport class Mysql implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Mysql';\n\n /**\n * @inheritDoc\n */\n public name: string = Mysql.id;\n\n /**\n * @inheritDoc\n */\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n const pkg = loadModule('mysql/lib/Connection.js');\n\n if (!pkg) {\n IS_DEBUG_BUILD && logger.error('Mysql Integration was unable to require `mysql` package.');\n return;\n }\n\n // The original function will have one of these signatures:\n // function (callback) => void\n // function (options, callback) => void\n // function (options, values, callback) => void\n fill(pkg, 'createQuery', function (orig: () => void) {\n return function (this: unknown, options: unknown, values: unknown, callback: unknown) {\n const scope = getCurrentHub().getScope();\n const parentSpan = scope?.getSpan();\n const span = parentSpan?.startChild({\n description: typeof options === 'string' ? options : (options as { sql: string }).sql,\n op: 'db',\n });\n\n if (typeof callback === 'function') {\n return orig.call(this, options, values, function (err: Error, result: unknown, fields: unknown) {\n span?.finish();\n callback(err, result, fields);\n });\n }\n\n if (typeof values === 'function') {\n return orig.call(this, options, function (err: Error, result: unknown, fields: unknown) {\n span?.finish();\n values(err, result, fields);\n });\n }\n\n return orig.call(this, options, values, callback);\n };\n });\n }\n}\n","import { Hub } from '@sentry/hub';\nimport { EventProcessor, Integration, SpanContext } from '@sentry/types';\nimport { fill, isThenable, loadModule, logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../../flags';\n\n// This allows us to use the same array for both defaults options and the type itself.\n// (note `as const` at the end to make it a union of string literal types (i.e. \"a\" | \"b\" | ... )\n// and not just a string[])\ntype Operation = typeof OPERATIONS[number];\nconst OPERATIONS = [\n 'aggregate', // aggregate(pipeline, options, callback)\n 'bulkWrite', // bulkWrite(operations, options, callback)\n 'countDocuments', // countDocuments(query, options, callback)\n 'createIndex', // createIndex(fieldOrSpec, options, callback)\n 'createIndexes', // createIndexes(indexSpecs, options, callback)\n 'deleteMany', // deleteMany(filter, options, callback)\n 'deleteOne', // deleteOne(filter, options, callback)\n 'distinct', // distinct(key, query, options, callback)\n 'drop', // drop(options, callback)\n 'dropIndex', // dropIndex(indexName, options, callback)\n 'dropIndexes', // dropIndexes(options, callback)\n 'estimatedDocumentCount', // estimatedDocumentCount(options, callback)\n 'find', // find(query, options, callback)\n 'findOne', // findOne(query, options, callback)\n 'findOneAndDelete', // findOneAndDelete(filter, options, callback)\n 'findOneAndReplace', // findOneAndReplace(filter, replacement, options, callback)\n 'findOneAndUpdate', // findOneAndUpdate(filter, update, options, callback)\n 'indexes', // indexes(options, callback)\n 'indexExists', // indexExists(indexes, options, callback)\n 'indexInformation', // indexInformation(options, callback)\n 'initializeOrderedBulkOp', // initializeOrderedBulkOp(options, callback)\n 'insertMany', // insertMany(docs, options, callback)\n 'insertOne', // insertOne(doc, options, callback)\n 'isCapped', // isCapped(options, callback)\n 'mapReduce', // mapReduce(map, reduce, options, callback)\n 'options', // options(options, callback)\n 'parallelCollectionScan', // parallelCollectionScan(options, callback)\n 'rename', // rename(newName, options, callback)\n 'replaceOne', // replaceOne(filter, doc, options, callback)\n 'stats', // stats(options, callback)\n 'updateMany', // updateMany(filter, update, options, callback)\n 'updateOne', // updateOne(filter, update, options, callback)\n] as const;\n\n// All of the operations above take `options` and `callback` as their final parameters, but some of them\n// take additional parameters as well. For those operations, this is a map of\n// { : [] }, as a way to know what to call the operation's\n// positional arguments when we add them to the span's `data` object later\nconst OPERATION_SIGNATURES: {\n [op in Operation]?: string[];\n} = {\n // aggregate intentionally not included because `pipeline` arguments are too complex to serialize well\n // see https://github.com/getsentry/sentry-javascript/pull/3102\n bulkWrite: ['operations'],\n countDocuments: ['query'],\n createIndex: ['fieldOrSpec'],\n createIndexes: ['indexSpecs'],\n deleteMany: ['filter'],\n deleteOne: ['filter'],\n distinct: ['key', 'query'],\n dropIndex: ['indexName'],\n find: ['query'],\n findOne: ['query'],\n findOneAndDelete: ['filter'],\n findOneAndReplace: ['filter', 'replacement'],\n findOneAndUpdate: ['filter', 'update'],\n indexExists: ['indexes'],\n insertMany: ['docs'],\n insertOne: ['doc'],\n mapReduce: ['map', 'reduce'],\n rename: ['newName'],\n replaceOne: ['filter', 'doc'],\n updateMany: ['filter', 'update'],\n updateOne: ['filter', 'update'],\n};\n\ninterface MongoCollection {\n collectionName: string;\n dbName: string;\n namespace: string;\n prototype: {\n [operation in Operation]: (...args: unknown[]) => unknown;\n };\n}\n\ninterface MongoOptions {\n operations?: Operation[];\n describeOperations?: boolean | Operation[];\n useMongoose?: boolean;\n}\n\n/** Tracing integration for mongo package */\nexport class Mongo implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Mongo';\n\n /**\n * @inheritDoc\n */\n public name: string = Mongo.id;\n\n private _operations: Operation[];\n private _describeOperations?: boolean | Operation[];\n private _useMongoose: boolean;\n\n /**\n * @inheritDoc\n */\n public constructor(options: MongoOptions = {}) {\n this._operations = Array.isArray(options.operations) ? options.operations : (OPERATIONS as unknown as Operation[]);\n this._describeOperations = 'describeOperations' in options ? options.describeOperations : true;\n this._useMongoose = !!options.useMongoose;\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n const moduleName = this._useMongoose ? 'mongoose' : 'mongodb';\n const pkg = loadModule<{ Collection: MongoCollection }>(moduleName);\n\n if (!pkg) {\n IS_DEBUG_BUILD && logger.error(`Mongo Integration was unable to require \\`${moduleName}\\` package.`);\n return;\n }\n\n this._instrumentOperations(pkg.Collection, this._operations, getCurrentHub);\n }\n\n /**\n * Patches original collection methods\n */\n private _instrumentOperations(collection: MongoCollection, operations: Operation[], getCurrentHub: () => Hub): void {\n operations.forEach((operation: Operation) => this._patchOperation(collection, operation, getCurrentHub));\n }\n\n /**\n * Patches original collection to utilize our tracing functionality\n */\n private _patchOperation(collection: MongoCollection, operation: Operation, getCurrentHub: () => Hub): void {\n if (!(operation in collection.prototype)) return;\n\n const getSpanContext = this._getSpanContextFromOperationArguments.bind(this);\n\n fill(collection.prototype, operation, function (orig: () => void | Promise) {\n return function (this: unknown, ...args: unknown[]) {\n const lastArg = args[args.length - 1];\n const scope = getCurrentHub().getScope();\n const parentSpan = scope?.getSpan();\n\n // Check if the operation was passed a callback. (mapReduce requires a different check, as\n // its (non-callback) arguments can also be functions.)\n if (typeof lastArg !== 'function' || (operation === 'mapReduce' && args.length === 2)) {\n const span = parentSpan?.startChild(getSpanContext(this, operation, args));\n const maybePromise = orig.call(this, ...args) as Promise;\n\n if (isThenable(maybePromise)) {\n return maybePromise.then((res: unknown) => {\n span?.finish();\n return res;\n });\n } else {\n span?.finish();\n return maybePromise;\n }\n }\n\n const span = parentSpan?.startChild(getSpanContext(this, operation, args.slice(0, -1)));\n return orig.call(this, ...args.slice(0, -1), function (err: Error, result: unknown) {\n span?.finish();\n lastArg(err, result);\n });\n };\n });\n }\n\n /**\n * Form a SpanContext based on the user input to a given operation.\n */\n private _getSpanContextFromOperationArguments(\n collection: MongoCollection,\n operation: Operation,\n args: unknown[],\n ): SpanContext {\n const data: { [key: string]: string } = {\n collectionName: collection.collectionName,\n dbName: collection.dbName,\n namespace: collection.namespace,\n };\n const spanContext: SpanContext = {\n op: 'db',\n description: operation,\n data,\n };\n\n // If the operation takes no arguments besides `options` and `callback`, or if argument\n // collection is disabled for this operation, just return early.\n const signature = OPERATION_SIGNATURES[operation];\n const shouldDescribe = Array.isArray(this._describeOperations)\n ? this._describeOperations.includes(operation)\n : this._describeOperations;\n\n if (!signature || !shouldDescribe) {\n return spanContext;\n }\n\n try {\n // Special case for `mapReduce`, as the only one accepting functions as arguments.\n if (operation === 'mapReduce') {\n const [map, reduce] = args as { name?: string }[];\n data[signature[0]] = typeof map === 'string' ? map : map.name || '';\n data[signature[1]] = typeof reduce === 'string' ? reduce : reduce.name || '';\n } else {\n for (let i = 0; i < signature.length; i++) {\n data[signature[i]] = JSON.stringify(args[i]);\n }\n }\n } catch (_oO) {\n // no-empty\n }\n\n return spanContext;\n }\n}\n","import { getGlobalObject, logger } from '@sentry/utils';\n\nimport { FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS } from '../constants';\nimport { IS_DEBUG_BUILD } from '../flags';\nimport { IdleTransaction } from '../idletransaction';\nimport { SpanStatusType } from '../span';\nimport { getActiveTransaction } from '../utils';\n\nconst global = getGlobalObject();\n\n/**\n * Add a listener that cancels and finishes a transaction when the global\n * document is hidden.\n */\nexport function registerBackgroundTabDetection(): void {\n if (global && global.document) {\n global.document.addEventListener('visibilitychange', () => {\n const activeTransaction = getActiveTransaction() as IdleTransaction;\n if (global.document.hidden && activeTransaction) {\n const statusType: SpanStatusType = 'cancelled';\n\n IS_DEBUG_BUILD &&\n logger.log(\n `[Tracing] Transaction: ${statusType} -> since tab moved to the background, op: ${activeTransaction.op}`,\n );\n // We should not set status if it is already set, this prevent important statuses like\n // error or data loss from being overwritten on transaction.\n if (!activeTransaction.status) {\n activeTransaction.setStatus(statusType);\n }\n activeTransaction.setTag('visibilitychange', 'document.hidden');\n activeTransaction.setTag(FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS[2]);\n activeTransaction.finish();\n }\n });\n } else {\n IS_DEBUG_BUILD && logger.warn('[Tracing] Could not set up background tab detection due to lack of global document');\n }\n}\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Metric, ReportHandler } from '../types';\n\nexport const bindReporter = (\n callback: ReportHandler,\n metric: Metric,\n reportAllChanges?: boolean,\n): ((forceReport?: boolean) => void) => {\n let prevValue: number;\n return (forceReport?: boolean) => {\n if (metric.value >= 0) {\n if (forceReport || reportAllChanges) {\n metric.delta = metric.value - (prevValue || 0);\n\n // Report the metric if there's a non-zero delta or if no previous\n // value exists (which can happen in the case of the document becoming\n // hidden when the metric value is 0).\n // See: https://github.com/GoogleChrome/web-vitals/issues/14\n if (metric.delta || prevValue === undefined) {\n prevValue = metric.value;\n callback(metric);\n }\n }\n }\n };\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Performantly generate a unique, 30-char string by combining a version\n * number, the current timestamp with a 13-digit number integer.\n * @return {string}\n */\nexport const generateUniqueID = (): string => {\n return `v2-${Date.now()}-${Math.floor(Math.random() * (9e12 - 1)) + 1e12}`;\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Metric } from '../types';\nimport { generateUniqueID } from './generateUniqueID';\n\nexport const initMetric = (name: Metric['name'], value?: number): Metric => {\n return {\n name,\n value: value ?? -1,\n delta: 0,\n entries: [],\n id: generateUniqueID(),\n };\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface PerformanceEntryHandler {\n (entry: PerformanceEntry): void;\n}\n\n/**\n * Takes a performance entry type and a callback function, and creates a\n * `PerformanceObserver` instance that will observe the specified entry type\n * with buffering enabled and call the callback _for each entry_.\n *\n * This function also feature-detects entry support and wraps the logic in a\n * try/catch to avoid errors in unsupporting browsers.\n */\nexport const observe = (type: string, callback: PerformanceEntryHandler): PerformanceObserver | undefined => {\n try {\n if (PerformanceObserver.supportedEntryTypes.includes(type)) {\n // More extensive feature detect needed for Firefox due to:\n // https://github.com/GoogleChrome/web-vitals/issues/142\n if (type === 'first-input' && !('PerformanceEventTiming' in self)) {\n return;\n }\n\n const po: PerformanceObserver = new PerformanceObserver(l => l.getEntries().map(callback));\n\n po.observe({ type, buffered: true });\n return po;\n }\n } catch (e) {\n // Do nothing.\n }\n return;\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getGlobalObject } from '@sentry/utils';\n\nexport interface OnHiddenCallback {\n (event: Event): void;\n}\n\nexport const onHidden = (cb: OnHiddenCallback, once?: boolean): void => {\n const onHiddenOrPageHide = (event: Event): void => {\n if (event.type === 'pagehide' || getGlobalObject().document.visibilityState === 'hidden') {\n cb(event);\n if (once) {\n removeEventListener('visibilitychange', onHiddenOrPageHide, true);\n removeEventListener('pagehide', onHiddenOrPageHide, true);\n }\n }\n };\n addEventListener('visibilitychange', onHiddenOrPageHide, true);\n // Some browsers have buggy implementations of visibilitychange,\n // so we use pagehide in addition, just to be safe.\n addEventListener('pagehide', onHiddenOrPageHide, true);\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bindReporter } from './lib/bindReporter';\nimport { initMetric } from './lib/initMetric';\nimport { observe, PerformanceEntryHandler } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport { ReportHandler } from './types';\n\n// https://wicg.github.io/layout-instability/#sec-layout-shift\nexport interface LayoutShift extends PerformanceEntry {\n value: number;\n hadRecentInput: boolean;\n sources: Array;\n toJSON(): Record;\n}\n\nexport interface LayoutShiftAttribution {\n node?: Node;\n previousRect: DOMRectReadOnly;\n currentRect: DOMRectReadOnly;\n}\n\nexport const getCLS = (onReport: ReportHandler, reportAllChanges?: boolean): void => {\n const metric = initMetric('CLS', 0);\n let report: ReturnType;\n\n let sessionValue = 0;\n let sessionEntries: PerformanceEntry[] = [];\n\n const entryHandler = (entry: LayoutShift): void => {\n // Only count layout shifts without recent user input.\n // TODO: Figure out why entry can be undefined\n if (entry && !entry.hadRecentInput) {\n const firstSessionEntry = sessionEntries[0];\n const lastSessionEntry = sessionEntries[sessionEntries.length - 1];\n\n // If the entry occurred less than 1 second after the previous entry and\n // less than 5 seconds after the first entry in the session, include the\n // entry in the current session. Otherwise, start a new session.\n if (\n sessionValue &&\n sessionEntries.length !== 0 &&\n entry.startTime - lastSessionEntry.startTime < 1000 &&\n entry.startTime - firstSessionEntry.startTime < 5000\n ) {\n sessionValue += entry.value;\n sessionEntries.push(entry);\n } else {\n sessionValue = entry.value;\n sessionEntries = [entry];\n }\n\n // If the current session value is larger than the current CLS value,\n // update CLS and the entries contributing to it.\n if (sessionValue > metric.value) {\n metric.value = sessionValue;\n metric.entries = sessionEntries;\n if (report) {\n report();\n }\n }\n }\n };\n\n const po = observe('layout-shift', entryHandler as PerformanceEntryHandler);\n if (po) {\n report = bindReporter(onReport, metric, reportAllChanges);\n\n onHidden(() => {\n po.takeRecords().map(entryHandler as PerformanceEntryHandler);\n report(true);\n });\n }\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getGlobalObject } from '@sentry/utils';\n\nimport { onHidden } from './onHidden';\n\nlet firstHiddenTime = -1;\n\nconst initHiddenTime = (): number => {\n return getGlobalObject().document.visibilityState === 'hidden' ? 0 : Infinity;\n};\n\nconst trackChanges = (): void => {\n // Update the time if/when the document becomes hidden.\n onHidden(({ timeStamp }) => {\n firstHiddenTime = timeStamp;\n }, true);\n};\n\nexport const getVisibilityWatcher = (): {\n readonly firstHiddenTime: number;\n} => {\n if (firstHiddenTime < 0) {\n // If the document is hidden when this code runs, assume it was hidden\n // since navigation start. This isn't a perfect heuristic, but it's the\n // best we can do until an API is available to support querying past\n // visibilityState.\n firstHiddenTime = initHiddenTime();\n trackChanges();\n }\n return {\n get firstHiddenTime() {\n return firstHiddenTime;\n },\n };\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bindReporter } from './lib/bindReporter';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe, PerformanceEntryHandler } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport { PerformanceEventTiming, ReportHandler } from './types';\n\nexport const getFID = (onReport: ReportHandler, reportAllChanges?: boolean): void => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('FID');\n let report: ReturnType;\n\n const entryHandler = (entry: PerformanceEventTiming): void => {\n // Only report if the page wasn't hidden prior to the first input.\n if (report && entry.startTime < visibilityWatcher.firstHiddenTime) {\n metric.value = entry.processingStart - entry.startTime;\n metric.entries.push(entry);\n report(true);\n }\n };\n\n const po = observe('first-input', entryHandler as PerformanceEntryHandler);\n if (po) {\n report = bindReporter(onReport, metric, reportAllChanges);\n onHidden(() => {\n po.takeRecords().map(entryHandler as PerformanceEntryHandler);\n po.disconnect();\n }, true);\n }\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bindReporter } from './lib/bindReporter';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe, PerformanceEntryHandler } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport { ReportHandler } from './types';\n\n// https://wicg.github.io/largest-contentful-paint/#sec-largest-contentful-paint-interface\nexport interface LargestContentfulPaint extends PerformanceEntry {\n renderTime: DOMHighResTimeStamp;\n loadTime: DOMHighResTimeStamp;\n size: number;\n id: string;\n url: string;\n element?: Element;\n toJSON(): Record;\n}\n\nconst reportedMetricIDs: Record = {};\n\nexport const getLCP = (onReport: ReportHandler, reportAllChanges?: boolean): void => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('LCP');\n let report: ReturnType;\n\n const entryHandler = (entry: PerformanceEntry): void => {\n // The startTime attribute returns the value of the renderTime if it is not 0,\n // and the value of the loadTime otherwise.\n const value = entry.startTime;\n\n // If the page was hidden prior to paint time of the entry,\n // ignore it and mark the metric as final, otherwise add the entry.\n if (value < visibilityWatcher.firstHiddenTime) {\n metric.value = value;\n metric.entries.push(entry);\n }\n\n if (report) {\n report();\n }\n };\n\n const po = observe('largest-contentful-paint', entryHandler);\n\n if (po) {\n report = bindReporter(onReport, metric, reportAllChanges);\n\n const stopListening = (): void => {\n if (!reportedMetricIDs[metric.id]) {\n po.takeRecords().map(entryHandler as PerformanceEntryHandler);\n po.disconnect();\n reportedMetricIDs[metric.id] = true;\n report(true);\n }\n };\n\n // Stop listening after input. Note: while scrolling is an input that\n // stop LCP observation, it's unreliable since it can be programmatically\n // generated. See: https://github.com/GoogleChrome/web-vitals/issues/75\n ['keydown', 'click'].forEach(type => {\n addEventListener(type, stopListening, { once: true, capture: true });\n });\n\n onHidden(stopListening, true);\n }\n};\n","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Measurements, SpanContext } from '@sentry/types';\nimport { browserPerformanceTimeOrigin, getGlobalObject, htmlTreeAsString, isNodeEnv, logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../flags';\nimport { Span } from '../span';\nimport { Transaction } from '../transaction';\nimport { msToSec } from '../utils';\nimport { getCLS, LayoutShift } from './web-vitals/getCLS';\nimport { getFID } from './web-vitals/getFID';\nimport { getLCP, LargestContentfulPaint } from './web-vitals/getLCP';\nimport { getVisibilityWatcher } from './web-vitals/lib/getVisibilityWatcher';\nimport { NavigatorDeviceMemory, NavigatorNetworkInformation } from './web-vitals/types';\n\nconst global = getGlobalObject();\n\n/** Class tracking metrics */\nexport class MetricsInstrumentation {\n private _measurements: Measurements = {};\n\n private _performanceCursor: number = 0;\n private _lcpEntry: LargestContentfulPaint | undefined;\n private _clsEntry: LayoutShift | undefined;\n\n public constructor(private _reportAllChanges: boolean = false) {\n if (!isNodeEnv() && global && global.performance && global.document) {\n if (global.performance.mark) {\n global.performance.mark('sentry-tracing-init');\n }\n\n this._trackCLS();\n this._trackLCP();\n this._trackFID();\n }\n }\n\n /** Add performance related spans to a transaction */\n public addPerformanceEntries(transaction: Transaction): void {\n if (!global || !global.performance || !global.performance.getEntries || !browserPerformanceTimeOrigin) {\n // Gatekeeper if performance API not available\n return;\n }\n\n IS_DEBUG_BUILD && logger.log('[Tracing] Adding & adjusting spans using Performance API');\n\n const timeOrigin = msToSec(browserPerformanceTimeOrigin);\n\n let responseStartTimestamp: number | undefined;\n let requestStartTimestamp: number | undefined;\n\n global.performance\n .getEntries()\n .slice(this._performanceCursor)\n .forEach((entry: Record) => {\n const startTime = msToSec(entry.startTime as number);\n const duration = msToSec(entry.duration as number);\n\n if (transaction.op === 'navigation' && timeOrigin + startTime < transaction.startTimestamp) {\n return;\n }\n\n switch (entry.entryType) {\n case 'navigation': {\n addNavigationSpans(transaction, entry, timeOrigin);\n responseStartTimestamp = timeOrigin + msToSec(entry.responseStart as number);\n requestStartTimestamp = timeOrigin + msToSec(entry.requestStart as number);\n break;\n }\n case 'mark':\n case 'paint':\n case 'measure': {\n const startTimestamp = addMeasureSpans(transaction, entry, startTime, duration, timeOrigin);\n // capture web vitals\n\n const firstHidden = getVisibilityWatcher();\n // Only report if the page wasn't hidden prior to the web vital.\n const shouldRecord = entry.startTime < firstHidden.firstHiddenTime;\n\n if (entry.name === 'first-paint' && shouldRecord) {\n IS_DEBUG_BUILD && logger.log('[Measurements] Adding FP');\n this._measurements['fp'] = { value: entry.startTime };\n this._measurements['mark.fp'] = { value: startTimestamp };\n }\n\n if (entry.name === 'first-contentful-paint' && shouldRecord) {\n IS_DEBUG_BUILD && logger.log('[Measurements] Adding FCP');\n this._measurements['fcp'] = { value: entry.startTime };\n this._measurements['mark.fcp'] = { value: startTimestamp };\n }\n\n break;\n }\n case 'resource': {\n const resourceName = (entry.name as string).replace(global.location.origin, '');\n addResourceSpans(transaction, entry, resourceName, startTime, duration, timeOrigin);\n break;\n }\n default:\n // Ignore other entry types.\n }\n });\n\n this._performanceCursor = Math.max(performance.getEntries().length - 1, 0);\n\n this._trackNavigator(transaction);\n\n // Measurements are only available for pageload transactions\n if (transaction.op === 'pageload') {\n // normalize applicable web vital values to be relative to transaction.startTimestamp\n\n const timeOrigin = msToSec(browserPerformanceTimeOrigin);\n\n // Generate TTFB (Time to First Byte), which measured as the time between the beginning of the transaction and the\n // start of the response in milliseconds\n if (typeof responseStartTimestamp === 'number') {\n IS_DEBUG_BUILD && logger.log('[Measurements] Adding TTFB');\n this._measurements['ttfb'] = { value: (responseStartTimestamp - transaction.startTimestamp) * 1000 };\n\n if (typeof requestStartTimestamp === 'number' && requestStartTimestamp <= responseStartTimestamp) {\n // Capture the time spent making the request and receiving the first byte of the response.\n // This is the time between the start of the request and the start of the response in milliseconds.\n this._measurements['ttfb.requestTime'] = { value: (responseStartTimestamp - requestStartTimestamp) * 1000 };\n }\n }\n\n ['fcp', 'fp', 'lcp'].forEach(name => {\n if (!this._measurements[name] || timeOrigin >= transaction.startTimestamp) {\n return;\n }\n\n // The web vitals, fcp, fp, lcp, and ttfb, all measure relative to timeOrigin.\n // Unfortunately, timeOrigin is not captured within the transaction span data, so these web vitals will need\n // to be adjusted to be relative to transaction.startTimestamp.\n\n const oldValue = this._measurements[name].value;\n const measurementTimestamp = timeOrigin + msToSec(oldValue);\n // normalizedValue should be in milliseconds\n const normalizedValue = Math.abs((measurementTimestamp - transaction.startTimestamp) * 1000);\n\n const delta = normalizedValue - oldValue;\n IS_DEBUG_BUILD &&\n logger.log(`[Measurements] Normalized ${name} from ${oldValue} to ${normalizedValue} (${delta})`);\n\n this._measurements[name].value = normalizedValue;\n });\n\n if (this._measurements['mark.fid'] && this._measurements['fid']) {\n // create span for FID\n\n _startChild(transaction, {\n description: 'first input delay',\n endTimestamp: this._measurements['mark.fid'].value + msToSec(this._measurements['fid'].value),\n op: 'web.vitals',\n startTimestamp: this._measurements['mark.fid'].value,\n });\n }\n\n // If FCP is not recorded we should not record the cls value\n // according to the new definition of CLS.\n if (!('fcp' in this._measurements)) {\n delete this._measurements.cls;\n }\n\n transaction.setMeasurements(this._measurements);\n tagMetricInfo(transaction, this._lcpEntry, this._clsEntry);\n transaction.setTag('sentry_reportAllChanges', this._reportAllChanges);\n }\n }\n\n /**\n * Capture the information of the user agent.\n */\n private _trackNavigator(transaction: Transaction): void {\n const navigator = global.navigator as null | (Navigator & NavigatorNetworkInformation & NavigatorDeviceMemory);\n if (!navigator) {\n return;\n }\n\n // track network connectivity\n const connection = navigator.connection;\n if (connection) {\n if (connection.effectiveType) {\n transaction.setTag('effectiveConnectionType', connection.effectiveType);\n }\n\n if (connection.type) {\n transaction.setTag('connectionType', connection.type);\n }\n\n if (isMeasurementValue(connection.rtt)) {\n this._measurements['connection.rtt'] = { value: connection.rtt as number };\n }\n\n if (isMeasurementValue(connection.downlink)) {\n this._measurements['connection.downlink'] = { value: connection.downlink as number };\n }\n }\n\n if (isMeasurementValue(navigator.deviceMemory)) {\n transaction.setTag('deviceMemory', String(navigator.deviceMemory));\n }\n\n if (isMeasurementValue(navigator.hardwareConcurrency)) {\n transaction.setTag('hardwareConcurrency', String(navigator.hardwareConcurrency));\n }\n }\n\n /** Starts tracking the Cumulative Layout Shift on the current page. */\n private _trackCLS(): void {\n // See:\n // https://web.dev/evolving-cls/\n // https://web.dev/cls-web-tooling/\n getCLS(metric => {\n const entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n\n IS_DEBUG_BUILD && logger.log('[Measurements] Adding CLS');\n this._measurements['cls'] = { value: metric.value };\n this._clsEntry = entry as LayoutShift;\n });\n }\n\n /** Starts tracking the Largest Contentful Paint on the current page. */\n private _trackLCP(): void {\n getLCP(metric => {\n const entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n\n const timeOrigin = msToSec(browserPerformanceTimeOrigin as number);\n const startTime = msToSec(entry.startTime);\n IS_DEBUG_BUILD && logger.log('[Measurements] Adding LCP');\n this._measurements['lcp'] = { value: metric.value };\n this._measurements['mark.lcp'] = { value: timeOrigin + startTime };\n this._lcpEntry = entry as LargestContentfulPaint;\n }, this._reportAllChanges);\n }\n\n /** Starts tracking the First Input Delay on the current page. */\n private _trackFID(): void {\n getFID(metric => {\n const entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n\n const timeOrigin = msToSec(browserPerformanceTimeOrigin as number);\n const startTime = msToSec(entry.startTime);\n IS_DEBUG_BUILD && logger.log('[Measurements] Adding FID');\n this._measurements['fid'] = { value: metric.value };\n this._measurements['mark.fid'] = { value: timeOrigin + startTime };\n });\n }\n}\n\n/** Instrument navigation entries */\nfunction addNavigationSpans(transaction: Transaction, entry: Record, timeOrigin: number): void {\n ['unloadEvent', 'redirect', 'domContentLoadedEvent', 'loadEvent', 'connect'].forEach(event => {\n addPerformanceNavigationTiming(transaction, entry, event, timeOrigin);\n });\n addPerformanceNavigationTiming(transaction, entry, 'secureConnection', timeOrigin, 'TLS/SSL', 'connectEnd');\n addPerformanceNavigationTiming(transaction, entry, 'fetch', timeOrigin, 'cache', 'domainLookupStart');\n addPerformanceNavigationTiming(transaction, entry, 'domainLookup', timeOrigin, 'DNS');\n addRequest(transaction, entry, timeOrigin);\n}\n\n/** Create measure related spans */\nfunction addMeasureSpans(\n transaction: Transaction,\n entry: Record,\n startTime: number,\n duration: number,\n timeOrigin: number,\n): number {\n const measureStartTimestamp = timeOrigin + startTime;\n const measureEndTimestamp = measureStartTimestamp + duration;\n\n _startChild(transaction, {\n description: entry.name as string,\n endTimestamp: measureEndTimestamp,\n op: entry.entryType as string,\n startTimestamp: measureStartTimestamp,\n });\n\n return measureStartTimestamp;\n}\n\nexport interface ResourceEntry extends Record {\n initiatorType?: string;\n transferSize?: number;\n encodedBodySize?: number;\n decodedBodySize?: number;\n}\n\n/** Create resource-related spans */\nexport function addResourceSpans(\n transaction: Transaction,\n entry: ResourceEntry,\n resourceName: string,\n startTime: number,\n duration: number,\n timeOrigin: number,\n): void {\n // we already instrument based on fetch and xhr, so we don't need to\n // duplicate spans here.\n if (entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch') {\n return;\n }\n\n const data: Record = {};\n if ('transferSize' in entry) {\n data['Transfer Size'] = entry.transferSize;\n }\n if ('encodedBodySize' in entry) {\n data['Encoded Body Size'] = entry.encodedBodySize;\n }\n if ('decodedBodySize' in entry) {\n data['Decoded Body Size'] = entry.decodedBodySize;\n }\n\n const startTimestamp = timeOrigin + startTime;\n const endTimestamp = startTimestamp + duration;\n\n _startChild(transaction, {\n description: resourceName,\n endTimestamp,\n op: entry.initiatorType ? `resource.${entry.initiatorType}` : 'resource',\n startTimestamp,\n data,\n });\n}\n\n/** Create performance navigation related spans */\nfunction addPerformanceNavigationTiming(\n transaction: Transaction,\n entry: Record,\n event: string,\n timeOrigin: number,\n description?: string,\n eventEnd?: string,\n): void {\n const end = eventEnd ? (entry[eventEnd] as number | undefined) : (entry[`${event}End`] as number | undefined);\n const start = entry[`${event}Start`] as number | undefined;\n if (!start || !end) {\n return;\n }\n _startChild(transaction, {\n op: 'browser',\n description: description ?? event,\n startTimestamp: timeOrigin + msToSec(start),\n endTimestamp: timeOrigin + msToSec(end),\n });\n}\n\n/** Create request and response related spans */\nfunction addRequest(transaction: Transaction, entry: Record, timeOrigin: number): void {\n _startChild(transaction, {\n op: 'browser',\n description: 'request',\n startTimestamp: timeOrigin + msToSec(entry.requestStart as number),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd as number),\n });\n\n _startChild(transaction, {\n op: 'browser',\n description: 'response',\n startTimestamp: timeOrigin + msToSec(entry.responseStart as number),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd as number),\n });\n}\n\n/**\n * Helper function to start child on transactions. This function will make sure that the transaction will\n * use the start timestamp of the created child span if it is earlier than the transactions actual\n * start timestamp.\n */\nexport function _startChild(transaction: Transaction, { startTimestamp, ...ctx }: SpanContext): Span {\n if (startTimestamp && transaction.startTimestamp > startTimestamp) {\n transaction.startTimestamp = startTimestamp;\n }\n\n return transaction.startChild({\n startTimestamp,\n ...ctx,\n });\n}\n\n/**\n * Checks if a given value is a valid measurement value.\n */\nfunction isMeasurementValue(value: any): boolean {\n return typeof value === 'number' && isFinite(value);\n}\n\n/** Add LCP / CLS data to transaction to allow debugging */\nfunction tagMetricInfo(\n transaction: Transaction,\n lcpEntry: MetricsInstrumentation['_lcpEntry'],\n clsEntry: MetricsInstrumentation['_clsEntry'],\n): void {\n if (lcpEntry) {\n IS_DEBUG_BUILD && logger.log('[Measurements] Adding LCP Data');\n\n // Capture Properties of the LCP element that contributes to the LCP.\n\n if (lcpEntry.element) {\n transaction.setTag('lcp.element', htmlTreeAsString(lcpEntry.element));\n }\n\n if (lcpEntry.id) {\n transaction.setTag('lcp.id', lcpEntry.id);\n }\n\n if (lcpEntry.url) {\n // Trim URL to the first 200 characters.\n transaction.setTag('lcp.url', lcpEntry.url.trim().slice(0, 200));\n }\n\n transaction.setTag('lcp.size', lcpEntry.size);\n }\n\n // See: https://developer.mozilla.org/en-US/docs/Web/API/LayoutShift\n if (clsEntry && clsEntry.sources) {\n IS_DEBUG_BUILD && logger.log('[Measurements] Adding CLS Data');\n clsEntry.sources.forEach((source, index) =>\n transaction.setTag(`cls.source.${index + 1}`, htmlTreeAsString(source.node)),\n );\n }\n}\n","import { addInstrumentationHandler, isInstanceOf, isMatchingPattern } from '@sentry/utils';\n\nimport { Span } from '../span';\nimport { getActiveTransaction, hasTracingEnabled } from '../utils';\n\nexport const DEFAULT_TRACING_ORIGINS = ['localhost', /^\\//];\n\n/** Options for Request Instrumentation */\nexport interface RequestInstrumentationOptions {\n /**\n * List of strings / regex where the integration should create Spans out of. Additionally this will be used\n * to define which outgoing requests the `sentry-trace` header will be attached to.\n *\n * Default: ['localhost', /^\\//] {@see DEFAULT_TRACING_ORIGINS}\n */\n tracingOrigins: Array;\n\n /**\n * Flag to disable patching all together for fetch requests.\n *\n * Default: true\n */\n traceFetch: boolean;\n\n /**\n * Flag to disable patching all together for xhr requests.\n *\n * Default: true\n */\n traceXHR: boolean;\n\n /**\n * This function will be called before creating a span for a request with the given url.\n * Return false if you don't want a span for the given url.\n *\n * By default it uses the `tracingOrigins` options as a url match.\n */\n shouldCreateSpanForRequest?(url: string): boolean;\n}\n\n/** Data returned from fetch callback */\nexport interface FetchData {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args: any[]; // the arguments passed to the fetch call itself\n fetchData?: {\n method: string;\n url: string;\n // span_id\n __span?: string;\n };\n\n // TODO Should this be unknown instead? If we vendor types, make it a Response\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n response?: any;\n error?: unknown;\n\n startTimestamp: number;\n endTimestamp?: number;\n}\n\n/** Data returned from XHR request */\nexport interface XHRData {\n xhr?: {\n __sentry_xhr__?: {\n method: string;\n url: string;\n status_code: number;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data: Record;\n };\n __sentry_xhr_span_id__?: string;\n setRequestHeader?: (key: string, val: string) => void;\n __sentry_own_request__?: boolean;\n };\n startTimestamp: number;\n endTimestamp?: number;\n}\n\nexport const defaultRequestInstrumentationOptions: RequestInstrumentationOptions = {\n traceFetch: true,\n traceXHR: true,\n tracingOrigins: DEFAULT_TRACING_ORIGINS,\n};\n\n/** Registers span creators for xhr and fetch requests */\nexport function instrumentOutgoingRequests(_options?: Partial): void {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { traceFetch, traceXHR, tracingOrigins, shouldCreateSpanForRequest } = {\n ...defaultRequestInstrumentationOptions,\n ..._options,\n };\n\n // We should cache url -> decision so that we don't have to compute\n // regexp everytime we create a request.\n const urlMap: Record = {};\n\n const defaultShouldCreateSpan = (url: string): boolean => {\n if (urlMap[url]) {\n return urlMap[url];\n }\n const origins = tracingOrigins;\n urlMap[url] =\n origins.some((origin: string | RegExp) => isMatchingPattern(url, origin)) &&\n !isMatchingPattern(url, 'sentry_key');\n return urlMap[url];\n };\n\n // We want that our users don't have to re-implement shouldCreateSpanForRequest themselves\n // That's why we filter out already unwanted Spans from tracingOrigins\n let shouldCreateSpan = defaultShouldCreateSpan;\n if (typeof shouldCreateSpanForRequest === 'function') {\n shouldCreateSpan = (url: string) => {\n return defaultShouldCreateSpan(url) && shouldCreateSpanForRequest(url);\n };\n }\n\n const spans: Record = {};\n\n if (traceFetch) {\n addInstrumentationHandler('fetch', (handlerData: FetchData) => {\n fetchCallback(handlerData, shouldCreateSpan, spans);\n });\n }\n\n if (traceXHR) {\n addInstrumentationHandler('xhr', (handlerData: XHRData) => {\n xhrCallback(handlerData, shouldCreateSpan, spans);\n });\n }\n}\n\n/**\n * Create and track fetch request spans\n */\nexport function fetchCallback(\n handlerData: FetchData,\n shouldCreateSpan: (url: string) => boolean,\n spans: Record,\n): void {\n if (!hasTracingEnabled() || !(handlerData.fetchData && shouldCreateSpan(handlerData.fetchData.url))) {\n return;\n }\n\n if (handlerData.endTimestamp) {\n const spanId = handlerData.fetchData.__span;\n if (!spanId) return;\n\n const span = spans[spanId];\n if (span) {\n if (handlerData.response) {\n // TODO (kmclb) remove this once types PR goes through\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n span.setHttpStatus(handlerData.response.status);\n } else if (handlerData.error) {\n span.setStatus('internal_error');\n }\n span.finish();\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return;\n }\n\n const activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n const span = activeTransaction.startChild({\n data: {\n ...handlerData.fetchData,\n type: 'fetch',\n },\n description: `${handlerData.fetchData.method} ${handlerData.fetchData.url}`,\n op: 'http.client',\n });\n\n handlerData.fetchData.__span = span.spanId;\n spans[span.spanId] = span;\n\n const request = (handlerData.args[0] = handlerData.args[0] as string | Request);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const options = (handlerData.args[1] = (handlerData.args[1] as { [key: string]: any }) || {});\n let headers = options.headers;\n if (isInstanceOf(request, Request)) {\n headers = (request as Request).headers;\n }\n if (headers) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (typeof headers.append === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n headers.append('sentry-trace', span.toTraceparent());\n } else if (Array.isArray(headers)) {\n headers = [...headers, ['sentry-trace', span.toTraceparent()]];\n } else {\n headers = { ...headers, 'sentry-trace': span.toTraceparent() };\n }\n } else {\n headers = { 'sentry-trace': span.toTraceparent() };\n }\n options.headers = headers;\n }\n}\n\n/**\n * Create and track xhr request spans\n */\nexport function xhrCallback(\n handlerData: XHRData,\n shouldCreateSpan: (url: string) => boolean,\n spans: Record,\n): void {\n if (\n !hasTracingEnabled() ||\n (handlerData.xhr && handlerData.xhr.__sentry_own_request__) ||\n !(handlerData.xhr && handlerData.xhr.__sentry_xhr__ && shouldCreateSpan(handlerData.xhr.__sentry_xhr__.url))\n ) {\n return;\n }\n\n const xhr = handlerData.xhr.__sentry_xhr__;\n\n // check first if the request has finished and is tracked by an existing span which should now end\n if (handlerData.endTimestamp) {\n const spanId = handlerData.xhr.__sentry_xhr_span_id__;\n if (!spanId) return;\n\n const span = spans[spanId];\n if (span) {\n span.setHttpStatus(xhr.status_code);\n span.finish();\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return;\n }\n\n // if not, create a new span to track it\n const activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n const span = activeTransaction.startChild({\n data: {\n ...xhr.data,\n type: 'xhr',\n method: xhr.method,\n url: xhr.url,\n },\n description: `${xhr.method} ${xhr.url}`,\n op: 'http.client',\n });\n\n handlerData.xhr.__sentry_xhr_span_id__ = span.spanId;\n spans[handlerData.xhr.__sentry_xhr_span_id__] = span;\n\n if (handlerData.xhr.setRequestHeader) {\n try {\n handlerData.xhr.setRequestHeader('sentry-trace', span.toTraceparent());\n } catch (_) {\n // Error: InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.\n }\n }\n }\n}\n","import { Transaction, TransactionContext } from '@sentry/types';\nimport { addInstrumentationHandler, getGlobalObject, logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../flags';\n\nconst global = getGlobalObject();\n\n/**\n * Default function implementing pageload and navigation transactions\n */\nexport function instrumentRoutingWithDefaults(\n customStartTransaction: (context: TransactionContext) => T | undefined,\n startTransactionOnPageLoad: boolean = true,\n startTransactionOnLocationChange: boolean = true,\n): void {\n if (!global || !global.location) {\n IS_DEBUG_BUILD && logger.warn('Could not initialize routing instrumentation due to invalid location');\n return;\n }\n\n let startingUrl: string | undefined = global.location.href;\n\n let activeTransaction: T | undefined;\n if (startTransactionOnPageLoad) {\n activeTransaction = customStartTransaction({ name: global.location.pathname, op: 'pageload' });\n }\n\n if (startTransactionOnLocationChange) {\n addInstrumentationHandler('history', ({ to, from }: { to: string; from?: string }) => {\n /**\n * This early return is there to account for some cases where a navigation transaction starts right after\n * long-running pageload. We make sure that if `from` is undefined and a valid `startingURL` exists, we don't\n * create an uneccessary navigation transaction.\n *\n * This was hard to duplicate, but this behavior stopped as soon as this fix was applied. This issue might also\n * only be caused in certain development environments where the usage of a hot module reloader is causing\n * errors.\n */\n if (from === undefined && startingUrl && startingUrl.indexOf(to) !== -1) {\n startingUrl = undefined;\n return;\n }\n\n if (from !== to) {\n startingUrl = undefined;\n if (activeTransaction) {\n IS_DEBUG_BUILD && logger.log(`[Tracing] Finishing current transaction with op: ${activeTransaction.op}`);\n // If there's an open transaction on the scope, we need to finish it before creating an new one.\n activeTransaction.finish();\n }\n activeTransaction = customStartTransaction({ name: global.location.pathname, op: 'navigation' });\n }\n });\n }\n}\n","import { Hub } from '@sentry/hub';\nimport { EventProcessor, Integration, Transaction, TransactionContext } from '@sentry/types';\nimport { getGlobalObject, logger } from '@sentry/utils';\n\nimport { IS_DEBUG_BUILD } from '../flags';\nimport { startIdleTransaction } from '../hubextensions';\nimport { DEFAULT_IDLE_TIMEOUT, IdleTransaction } from '../idletransaction';\nimport { extractTraceparentData, secToMs } from '../utils';\nimport { registerBackgroundTabDetection } from './backgroundtab';\nimport { MetricsInstrumentation } from './metrics';\nimport {\n defaultRequestInstrumentationOptions,\n instrumentOutgoingRequests,\n RequestInstrumentationOptions,\n} from './request';\nimport { instrumentRoutingWithDefaults } from './router';\n\nexport const DEFAULT_MAX_TRANSACTION_DURATION_SECONDS = 600;\n\n/** Options for Browser Tracing integration */\nexport interface BrowserTracingOptions extends RequestInstrumentationOptions {\n /**\n * The time to wait in ms until the transaction will be finished. The transaction will use the end timestamp of\n * the last finished span as the endtime for the transaction.\n * Time is in ms.\n *\n * Default: 1000\n */\n idleTimeout: number;\n\n /**\n * Flag to enable/disable creation of `navigation` transaction on history changes.\n *\n * Default: true\n */\n startTransactionOnLocationChange: boolean;\n\n /**\n * Flag to enable/disable creation of `pageload` transaction on first pageload.\n *\n * Default: true\n */\n startTransactionOnPageLoad: boolean;\n\n /**\n * The maximum duration of a transaction before it will be marked as \"deadline_exceeded\".\n * If you never want to mark a transaction set it to 0.\n * Time is in seconds.\n *\n * Default: 600\n */\n maxTransactionDuration: number;\n\n /**\n * Flag Transactions where tabs moved to background with \"cancelled\". Browser background tab timing is\n * not suited towards doing precise measurements of operations. By default, we recommend that this option\n * be enabled as background transactions can mess up your statistics in nondeterministic ways.\n *\n * Default: true\n */\n markBackgroundTransactions: boolean;\n\n /**\n * _metricOptions allows the user to send options to change how metrics are collected.\n *\n * _metricOptions is currently experimental.\n *\n * Default: undefined\n */\n _metricOptions?: Partial<{ _reportAllChanges: boolean }>;\n\n /**\n * beforeNavigate is called before a pageload/navigation transaction is created and allows users to modify transaction\n * context data, or drop the transaction entirely (by setting `sampled = false` in the context).\n *\n * Note: For legacy reasons, transactions can also be dropped by returning `undefined`.\n *\n * @param context: The context data which will be passed to `startTransaction` by default\n *\n * @returns A (potentially) modified context object, with `sampled = false` if the transaction should be dropped.\n */\n beforeNavigate?(context: TransactionContext): TransactionContext | undefined;\n\n /**\n * Instrumentation that creates routing change transactions. By default creates\n * pageload and navigation transactions.\n */\n routingInstrumentation(\n customStartTransaction: (context: TransactionContext) => T | undefined,\n startTransactionOnPageLoad?: boolean,\n startTransactionOnLocationChange?: boolean,\n ): void;\n}\n\nconst DEFAULT_BROWSER_TRACING_OPTIONS = {\n idleTimeout: DEFAULT_IDLE_TIMEOUT,\n markBackgroundTransactions: true,\n maxTransactionDuration: DEFAULT_MAX_TRANSACTION_DURATION_SECONDS,\n routingInstrumentation: instrumentRoutingWithDefaults,\n startTransactionOnLocationChange: true,\n startTransactionOnPageLoad: true,\n ...defaultRequestInstrumentationOptions,\n};\n\n/**\n * The Browser Tracing integration automatically instruments browser pageload/navigation\n * actions as transactions, and captures requests, metrics and errors as spans.\n *\n * The integration can be configured with a variety of options, and can be extended to use\n * any routing library. This integration uses {@see IdleTransaction} to create transactions.\n */\nexport class BrowserTracing implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'BrowserTracing';\n\n /** Browser Tracing integration options */\n public options: BrowserTracingOptions;\n\n /**\n * @inheritDoc\n */\n public name: string = BrowserTracing.id;\n\n private _getCurrentHub?: () => Hub;\n\n private readonly _metrics: MetricsInstrumentation;\n\n private readonly _emitOptionsWarning?: boolean;\n\n /** Store configured idle timeout so that it can be added as a tag to transactions */\n private _configuredIdleTimeout: BrowserTracingOptions['idleTimeout'] | undefined = undefined;\n\n public constructor(_options?: Partial) {\n let tracingOrigins = defaultRequestInstrumentationOptions.tracingOrigins;\n // NOTE: Logger doesn't work in constructors, as it's initialized after integrations instances\n if (_options) {\n this._configuredIdleTimeout = _options.idleTimeout;\n if (_options.tracingOrigins && Array.isArray(_options.tracingOrigins) && _options.tracingOrigins.length !== 0) {\n tracingOrigins = _options.tracingOrigins;\n } else {\n IS_DEBUG_BUILD && (this._emitOptionsWarning = true);\n }\n }\n\n this.options = {\n ...DEFAULT_BROWSER_TRACING_OPTIONS,\n ..._options,\n tracingOrigins,\n };\n\n const { _metricOptions } = this.options;\n this._metrics = new MetricsInstrumentation(_metricOptions && _metricOptions._reportAllChanges);\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n this._getCurrentHub = getCurrentHub;\n\n if (this._emitOptionsWarning) {\n IS_DEBUG_BUILD &&\n logger.warn(\n '[Tracing] You need to define `tracingOrigins` in the options. Set an array of urls or patterns to trace.',\n );\n IS_DEBUG_BUILD &&\n logger.warn(\n `[Tracing] We added a reasonable default for you: ${defaultRequestInstrumentationOptions.tracingOrigins}`,\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const {\n routingInstrumentation: instrumentRouting,\n startTransactionOnLocationChange,\n startTransactionOnPageLoad,\n markBackgroundTransactions,\n traceFetch,\n traceXHR,\n tracingOrigins,\n shouldCreateSpanForRequest,\n } = this.options;\n\n instrumentRouting(\n (context: TransactionContext) => this._createRouteTransaction(context),\n startTransactionOnPageLoad,\n startTransactionOnLocationChange,\n );\n\n if (markBackgroundTransactions) {\n registerBackgroundTabDetection();\n }\n\n instrumentOutgoingRequests({ traceFetch, traceXHR, tracingOrigins, shouldCreateSpanForRequest });\n }\n\n /** Create routing idle transaction. */\n private _createRouteTransaction(context: TransactionContext): Transaction | undefined {\n if (!this._getCurrentHub) {\n IS_DEBUG_BUILD &&\n logger.warn(`[Tracing] Did not create ${context.op} transaction because _getCurrentHub is invalid.`);\n return undefined;\n }\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { beforeNavigate, idleTimeout, maxTransactionDuration } = this.options;\n\n const parentContextFromHeader = context.op === 'pageload' ? getHeaderContext() : undefined;\n\n const expandedContext = {\n ...context,\n ...parentContextFromHeader,\n trimEnd: true,\n };\n const modifiedContext = typeof beforeNavigate === 'function' ? beforeNavigate(expandedContext) : expandedContext;\n\n // For backwards compatibility reasons, beforeNavigate can return undefined to \"drop\" the transaction (prevent it\n // from being sent to Sentry).\n const finalContext = modifiedContext === undefined ? { ...expandedContext, sampled: false } : modifiedContext;\n\n if (finalContext.sampled === false) {\n IS_DEBUG_BUILD && logger.log(`[Tracing] Will not send ${finalContext.op} transaction because of beforeNavigate.`);\n }\n\n IS_DEBUG_BUILD && logger.log(`[Tracing] Starting ${finalContext.op} transaction on scope`);\n\n const hub = this._getCurrentHub();\n const { location } = getGlobalObject() as WindowOrWorkerGlobalScope & { location: Location };\n\n const idleTransaction = startIdleTransaction(\n hub,\n finalContext,\n idleTimeout,\n true,\n { location }, // for use in the tracesSampler\n );\n idleTransaction.registerBeforeFinishCallback((transaction, endTimestamp) => {\n this._metrics.addPerformanceEntries(transaction);\n adjustTransactionDuration(secToMs(maxTransactionDuration), transaction, endTimestamp);\n });\n\n idleTransaction.setTag('idleTimeout', this._configuredIdleTimeout);\n\n return idleTransaction as Transaction;\n }\n}\n\n/**\n * Gets transaction context from a sentry-trace meta.\n *\n * @returns Transaction context data from the header or undefined if there's no header or the header is malformed\n */\nexport function getHeaderContext(): Partial | undefined {\n const header = getMetaContent('sentry-trace');\n if (header) {\n return extractTraceparentData(header);\n }\n\n return undefined;\n}\n\n/** Returns the value of a meta tag */\nexport function getMetaContent(metaName: string): string | null {\n const el = getGlobalObject().document.querySelector(`meta[name=${metaName}]`);\n return el ? el.getAttribute('content') : null;\n}\n\n/** Adjusts transaction value based on max transaction duration */\nfunction adjustTransactionDuration(maxDuration: number, transaction: IdleTransaction, endTimestamp: number): void {\n const diff = endTimestamp - transaction.startTimestamp;\n const isOutdatedTransaction = endTimestamp && (diff > maxDuration || diff < 0);\n if (isOutdatedTransaction) {\n transaction.setStatus('deadline_exceeded');\n transaction.setTag('maxTransactionDurationExceeded', 'true');\n }\n}\n","export { BrowserTracing } from './browsertracing';\nexport {\n instrumentOutgoingRequests,\n RequestInstrumentationOptions,\n defaultRequestInstrumentationOptions,\n} from './request';\n","/** The status of an Span.\n *\n * @deprecated Use string literals - if you require type casting, cast to SpanStatusType type\n */\n// eslint-disable-next-line import/export\nexport enum SpanStatus {\n /** The operation completed successfully. */\n Ok = 'ok',\n /** Deadline expired before operation could complete. */\n DeadlineExceeded = 'deadline_exceeded',\n /** 401 Unauthorized (actually does mean unauthenticated according to RFC 7235) */\n Unauthenticated = 'unauthenticated',\n /** 403 Forbidden */\n PermissionDenied = 'permission_denied',\n /** 404 Not Found. Some requested entity (file or directory) was not found. */\n NotFound = 'not_found',\n /** 429 Too Many Requests */\n ResourceExhausted = 'resource_exhausted',\n /** Client specified an invalid argument. 4xx. */\n InvalidArgument = 'invalid_argument',\n /** 501 Not Implemented */\n Unimplemented = 'unimplemented',\n /** 503 Service Unavailable */\n Unavailable = 'unavailable',\n /** Other/generic 5xx. */\n InternalError = 'internal_error',\n /** Unknown. Any non-standard HTTP status code. */\n UnknownError = 'unknown_error',\n /** The operation was cancelled (typically by the user). */\n Cancelled = 'cancelled',\n /** Already exists (409) */\n AlreadyExists = 'already_exists',\n /** Operation was rejected because the system is not in a state required for the operation's */\n FailedPrecondition = 'failed_precondition',\n /** The operation was aborted, typically due to a concurrency issue. */\n Aborted = 'aborted',\n /** Operation was attempted past the valid range. */\n OutOfRange = 'out_of_range',\n /** Unrecoverable data loss or corruption */\n DataLoss = 'data_loss',\n}\n",null,null,null,null,null,null,null,null,null,";(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*\r\n * decimal.js v10.2.0\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js\r\n * Copyright (c) 2019 Michael Mclaughlin \r\n * MIT Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The maximum exponent magnitude.\r\n // The limit on the value of `toExpNeg`, `toExpPos`, `minE` and `maxE`.\r\n var EXP_LIMIT = 9e15, // 0 to 9e15\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n // Base conversion alphabet.\r\n NUMERALS = '0123456789abcdef',\r\n\r\n // The natural logarithm of 10 (1025 digits).\r\n LN10 = '2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058',\r\n\r\n // Pi (1025 digits).\r\n PI = '3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789',\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n DEFAULTS = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed at run-time using the `Decimal.config` method.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used when rounding to `precision`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend (JavaScript %).\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 The IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). Always positive.\r\n //\r\n // Truncated division (1), floored division (3), the IEEE 754 remainder (6), and Euclidian\r\n // division (9) are commonly used for the modulus operation. The other rounding modes can also\r\n // be used, but they may not give useful results.\r\n modulo: 1, // 0 to 9\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -EXP_LIMIT\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to EXP_LIMIT\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // JavaScript numbers: -324 (5e-324)\r\n minE: -EXP_LIMIT, // -1 to -EXP_LIMIT\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // JavaScript numbers: 308 (1.7976931348623157e+308)\r\n maxE: EXP_LIMIT, // 1 to EXP_LIMIT\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n crypto: false // true/false\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n Decimal, inexact, noConflict, quadrant,\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n precisionLimitExceeded = decimalError + 'Precision limit exceeded',\r\n cryptoUnavailable = decimalError + 'crypto unavailable',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isBinary = /^0b([01]+(\\.[01]*)?|\\.[01]+)(p[+-]?\\d+)?$/i,\r\n isHex = /^0x([0-9a-f]+(\\.[0-9a-f]*)?|\\.[0-9a-f]+)(p[+-]?\\d+)?$/i,\r\n isOctal = /^0o([0-7]+(\\.[0-7]*)?|\\.[0-7]+)(p[+-]?\\d+)?$/i,\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n\r\n LN10_PRECISION = LN10.length - 1,\r\n PI_PRECISION = PI.length - 1,\r\n\r\n // Decimal.prototype object\r\n P = { name: '[object Decimal]' };\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * ceil\r\n * comparedTo cmp\r\n * cosine cos\r\n * cubeRoot cbrt\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy divToInt\r\n * equals eq\r\n * floor\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * hyperbolicCosine cosh\r\n * hyperbolicSine sinh\r\n * hyperbolicTangent tanh\r\n * inverseCosine acos\r\n * inverseHyperbolicCosine acosh\r\n * inverseHyperbolicSine asinh\r\n * inverseHyperbolicTangent atanh\r\n * inverseSine asin\r\n * inverseTangent atan\r\n * isFinite\r\n * isInteger isInt\r\n * isNaN\r\n * isNegative isNeg\r\n * isPositive isPos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * [maximum] [max]\r\n * [minimum] [min]\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * round\r\n * sine sin\r\n * squareRoot sqrt\r\n * tangent tan\r\n * times mul\r\n * toBinary\r\n * toDecimalPlaces toDP\r\n * toExponential\r\n * toFixed\r\n * toFraction\r\n * toHexadecimal toHex\r\n * toNearest\r\n * toNumber\r\n * toOctal\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits toSD\r\n * toString\r\n * truncated trunc\r\n * valueOf toJSON\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s < 0) x.s = 1;\r\n return finalise(x);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the\r\n * direction of positive Infinity.\r\n *\r\n */\r\n P.ceil = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value,\r\n * NaN if the value of either Decimal is NaN.\r\n *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this,\r\n xd = x.d,\r\n yd = (y = new x.constructor(y)).d,\r\n xs = x.s,\r\n ys = y.s;\r\n\r\n // Either NaN or ±Infinity?\r\n if (!xd || !yd) {\r\n return !xs || !ys ? NaN : xs !== ys ? xs : xd === yd ? 0 : !xd ^ xs < 0 ? 1 : -1;\r\n }\r\n\r\n // Either zero?\r\n if (!xd[0] || !yd[0]) return xd[0] ? xs : yd[0] ? -ys : 0;\r\n\r\n // Signs differ?\r\n if (xs !== ys) return xs;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ xs < 0 ? 1 : -1;\r\n\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (xd[i] !== yd[i]) return xd[i] > yd[i] ^ xs < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ xs < 0 ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the cosine of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * cos(0) = 1\r\n * cos(-0) = 1\r\n * cos(Infinity) = NaN\r\n * cos(-Infinity) = NaN\r\n * cos(NaN) = NaN\r\n *\r\n */\r\n P.cosine = P.cos = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.d) return new Ctor(NaN);\r\n\r\n // cos(0) = cos(-0) = 1\r\n if (!x.d[0]) return new Ctor(1);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;\r\n Ctor.rounding = 1;\r\n\r\n x = cosine(Ctor, toLessThanHalfPi(Ctor, x));\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant == 2 || quadrant == 3 ? x.neg() : x, pr, rm, true);\r\n };\r\n\r\n\r\n /*\r\n *\r\n * Return a new Decimal whose value is the cube root of the value of this Decimal, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * cbrt(0) = 0\r\n * cbrt(-0) = -0\r\n * cbrt(1) = 1\r\n * cbrt(-1) = -1\r\n * cbrt(N) = N\r\n * cbrt(-I) = -I\r\n * cbrt(I) = I\r\n *\r\n * Math.cbrt(x) = (x < 0 ? -Math.pow(-x, 1/3) : Math.pow(x, 1/3))\r\n *\r\n */\r\n P.cubeRoot = P.cbrt = function () {\r\n var e, m, n, r, rep, s, sd, t, t3, t3plusx,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = x.s * mathpow(x.s * x, 1 / 3);\r\n\r\n // Math.cbrt underflow/overflow?\r\n // Pass x to Math.pow as integer, then adjust the exponent of the result.\r\n if (!s || Math.abs(s) == 1 / 0) {\r\n n = digitsToString(x.d);\r\n e = x.e;\r\n\r\n // Adjust n exponent so it is a multiple of 3 away from x exponent.\r\n if (s = (e - n.length + 1) % 3) n += (s == 1 || s == -2 ? '0' : '00');\r\n s = mathpow(n, 1 / 3);\r\n\r\n // Rarely, e may be one less than the result exponent value.\r\n e = mathfloor((e + 1) / 3) - (e % 3 == (e < 0 ? -1 : 2));\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n r.s = x.s;\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n sd = (e = Ctor.precision) + 3;\r\n\r\n // Halley's method.\r\n // TODO? Compare Newton's method.\r\n for (;;) {\r\n t = r;\r\n t3 = t.times(t).times(t);\r\n t3plusx = t3.plus(x);\r\n r = divide(t3plusx.plus(x).times(t), t3plusx.plus(t3), sd + 2, 1);\r\n\r\n // TODO? Replace with for-loop and checkRoundingDigits.\r\n if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {\r\n n = n.slice(sd - 3, sd + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or 4999\r\n // , i.e. approaching a rounding boundary, continue the iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n if (!rep) {\r\n finalise(t, e + 1, 0);\r\n\r\n if (t.times(t).times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n sd += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result.\r\n // If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n finalise(r, e + 1, 1);\r\n m = !r.times(r).times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, e, Ctor.rounding, m);\r\n };\r\n\r\n\r\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\n P.decimalPlaces = P.dp = function () {\r\n var w,\r\n d = this.d,\r\n n = NaN;\r\n\r\n if (d) {\r\n w = d.length - 1;\r\n n = (w - mathfloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) n--;\r\n if (n < 0) n = 0;\r\n }\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.divToInt = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return finalise(divide(x, new Ctor(y), 0, 1, 1), Ctor.precision, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\n P.equals = P.eq = function (y) {\r\n return this.cmp(y) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the\r\n * direction of negative Infinity.\r\n *\r\n */\r\n P.floor = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 3);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\n P.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\n P.greaterThanOrEqualTo = P.gte = function (y) {\r\n var k = this.cmp(y);\r\n return k == 1 || k === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic cosine of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [1, Infinity]\r\n *\r\n * cosh(x) = 1 + x^2/2! + x^4/4! + x^6/6! + ...\r\n *\r\n * cosh(0) = 1\r\n * cosh(-0) = 1\r\n * cosh(Infinity) = Infinity\r\n * cosh(-Infinity) = Infinity\r\n * cosh(NaN) = NaN\r\n *\r\n * x time taken (ms) result\r\n * 1000 9 9.8503555700852349694e+433\r\n * 10000 25 4.4034091128314607936e+4342\r\n * 100000 171 1.4033316802130615897e+43429\r\n * 1000000 3817 1.5166076984010437725e+434294\r\n * 10000000 abandoned after 2 minute wait\r\n *\r\n * TODO? Compare performance of cosh(x) = 0.5 * (exp(x) + exp(-x))\r\n *\r\n */\r\n P.hyperbolicCosine = P.cosh = function () {\r\n var k, n, pr, rm, len,\r\n x = this,\r\n Ctor = x.constructor,\r\n one = new Ctor(1);\r\n\r\n if (!x.isFinite()) return new Ctor(x.s ? 1 / 0 : NaN);\r\n if (x.isZero()) return one;\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n len = x.d.length;\r\n\r\n // Argument reduction: cos(4x) = 1 - 8cos^2(x) + 8cos^4(x) + 1\r\n // i.e. cos(x) = 1 - cos^2(x/4)(8 - 8cos^2(x/4))\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n // TODO? Estimation reused from cosine() and may not be optimal here.\r\n if (len < 32) {\r\n k = Math.ceil(len / 3);\r\n n = (1 / tinyPow(4, k)).toString();\r\n } else {\r\n k = 16;\r\n n = '2.3283064365386962890625e-10';\r\n }\r\n\r\n x = taylorSeries(Ctor, 1, x.times(n), new Ctor(1), true);\r\n\r\n // Reverse argument reduction\r\n var cosh2_x,\r\n i = k,\r\n d8 = new Ctor(8);\r\n for (; i--;) {\r\n cosh2_x = x.times(x);\r\n x = one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8))));\r\n }\r\n\r\n return finalise(x, Ctor.precision = pr, Ctor.rounding = rm, true);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic sine of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * sinh(x) = x + x^3/3! + x^5/5! + x^7/7! + ...\r\n *\r\n * sinh(0) = 0\r\n * sinh(-0) = -0\r\n * sinh(Infinity) = Infinity\r\n * sinh(-Infinity) = -Infinity\r\n * sinh(NaN) = NaN\r\n *\r\n * x time taken (ms)\r\n * 10 2 ms\r\n * 100 5 ms\r\n * 1000 14 ms\r\n * 10000 82 ms\r\n * 100000 886 ms 1.4033316802130615897e+43429\r\n * 200000 2613 ms\r\n * 300000 5407 ms\r\n * 400000 8824 ms\r\n * 500000 13026 ms 8.7080643612718084129e+217146\r\n * 1000000 48543 ms\r\n *\r\n * TODO? Compare performance of sinh(x) = 0.5 * (exp(x) - exp(-x))\r\n *\r\n */\r\n P.hyperbolicSine = P.sinh = function () {\r\n var k, pr, rm, len,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n len = x.d.length;\r\n\r\n if (len < 3) {\r\n x = taylorSeries(Ctor, 2, x, x, true);\r\n } else {\r\n\r\n // Alternative argument reduction: sinh(3x) = sinh(x)(3 + 4sinh^2(x))\r\n // i.e. sinh(x) = sinh(x/3)(3 + 4sinh^2(x/3))\r\n // 3 multiplications and 1 addition\r\n\r\n // Argument reduction: sinh(5x) = sinh(x)(5 + sinh^2(x)(20 + 16sinh^2(x)))\r\n // i.e. sinh(x) = sinh(x/5)(5 + sinh^2(x/5)(20 + 16sinh^2(x/5)))\r\n // 4 multiplications and 2 additions\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n k = 1.4 * Math.sqrt(len);\r\n k = k > 16 ? 16 : k | 0;\r\n\r\n x = x.times(1 / tinyPow(5, k));\r\n x = taylorSeries(Ctor, 2, x, x, true);\r\n\r\n // Reverse argument reduction\r\n var sinh2_x,\r\n d5 = new Ctor(5),\r\n d16 = new Ctor(16),\r\n d20 = new Ctor(20);\r\n for (; k--;) {\r\n sinh2_x = x.times(x);\r\n x = x.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20))));\r\n }\r\n }\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(x, pr, rm, true);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic tangent of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * tanh(x) = sinh(x) / cosh(x)\r\n *\r\n * tanh(0) = 0\r\n * tanh(-0) = -0\r\n * tanh(Infinity) = 1\r\n * tanh(-Infinity) = -1\r\n * tanh(NaN) = NaN\r\n *\r\n */\r\n P.hyperbolicTangent = P.tanh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(x.s);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 7;\r\n Ctor.rounding = 1;\r\n\r\n return divide(x.sinh(), x.cosh(), Ctor.precision = pr, Ctor.rounding = rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arccosine (inverse cosine) in radians of the value of\r\n * this Decimal.\r\n *\r\n * Domain: [-1, 1]\r\n * Range: [0, pi]\r\n *\r\n * acos(x) = pi/2 - asin(x)\r\n *\r\n * acos(0) = pi/2\r\n * acos(-0) = pi/2\r\n * acos(1) = 0\r\n * acos(-1) = pi\r\n * acos(1/2) = pi/3\r\n * acos(-1/2) = 2*pi/3\r\n * acos(|x| > 1) = NaN\r\n * acos(NaN) = NaN\r\n *\r\n */\r\n P.inverseCosine = P.acos = function () {\r\n var halfPi,\r\n x = this,\r\n Ctor = x.constructor,\r\n k = x.abs().cmp(1),\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding;\r\n\r\n if (k !== -1) {\r\n return k === 0\r\n // |x| is 1\r\n ? x.isNeg() ? getPi(Ctor, pr, rm) : new Ctor(0)\r\n // |x| > 1 or x is NaN\r\n : new Ctor(NaN);\r\n }\r\n\r\n if (x.isZero()) return getPi(Ctor, pr + 4, rm).times(0.5);\r\n\r\n // TODO? Special case acos(0.5) = pi/3 and acos(-0.5) = 2*pi/3\r\n\r\n Ctor.precision = pr + 6;\r\n Ctor.rounding = 1;\r\n\r\n x = x.asin();\r\n halfPi = getPi(Ctor, pr + 4, rm).times(0.5);\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return halfPi.minus(x);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic cosine in radians of the\r\n * value of this Decimal.\r\n *\r\n * Domain: [1, Infinity]\r\n * Range: [0, Infinity]\r\n *\r\n * acosh(x) = ln(x + sqrt(x^2 - 1))\r\n *\r\n * acosh(x < 1) = NaN\r\n * acosh(NaN) = NaN\r\n * acosh(Infinity) = Infinity\r\n * acosh(-Infinity) = NaN\r\n * acosh(0) = NaN\r\n * acosh(-0) = NaN\r\n * acosh(1) = 0\r\n * acosh(-1) = NaN\r\n *\r\n */\r\n P.inverseHyperbolicCosine = P.acosh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (x.lte(1)) return new Ctor(x.eq(1) ? 0 : NaN);\r\n if (!x.isFinite()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(Math.abs(x.e), x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n external = false;\r\n\r\n x = x.times(x).minus(1).sqrt().plus(x);\r\n\r\n external = true;\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.ln();\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic sine in radians of the value\r\n * of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * asinh(x) = ln(x + sqrt(x^2 + 1))\r\n *\r\n * asinh(NaN) = NaN\r\n * asinh(Infinity) = Infinity\r\n * asinh(-Infinity) = -Infinity\r\n * asinh(0) = 0\r\n * asinh(-0) = -0\r\n *\r\n */\r\n P.inverseHyperbolicSine = P.asinh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 2 * Math.max(Math.abs(x.e), x.sd()) + 6;\r\n Ctor.rounding = 1;\r\n external = false;\r\n\r\n x = x.times(x).plus(1).sqrt().plus(x);\r\n\r\n external = true;\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.ln();\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic tangent in radians of the\r\n * value of this Decimal.\r\n *\r\n * Domain: [-1, 1]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * atanh(x) = 0.5 * ln((1 + x) / (1 - x))\r\n *\r\n * atanh(|x| > 1) = NaN\r\n * atanh(NaN) = NaN\r\n * atanh(Infinity) = NaN\r\n * atanh(-Infinity) = NaN\r\n * atanh(0) = 0\r\n * atanh(-0) = -0\r\n * atanh(1) = Infinity\r\n * atanh(-1) = -Infinity\r\n *\r\n */\r\n P.inverseHyperbolicTangent = P.atanh = function () {\r\n var pr, rm, wpr, xsd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.e >= 0) return new Ctor(x.abs().eq(1) ? x.s / 0 : x.isZero() ? x : NaN);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n xsd = x.sd();\r\n\r\n if (Math.max(xsd, pr) < 2 * -x.e - 1) return finalise(new Ctor(x), pr, rm, true);\r\n\r\n Ctor.precision = wpr = xsd - x.e;\r\n\r\n x = divide(x.plus(1), new Ctor(1).minus(x), wpr + pr, 1);\r\n\r\n Ctor.precision = pr + 4;\r\n Ctor.rounding = 1;\r\n\r\n x = x.ln();\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.times(0.5);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arcsine (inverse sine) in radians of the value of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi/2, pi/2]\r\n *\r\n * asin(x) = 2*atan(x/(1 + sqrt(1 - x^2)))\r\n *\r\n * asin(0) = 0\r\n * asin(-0) = -0\r\n * asin(1/2) = pi/6\r\n * asin(-1/2) = -pi/6\r\n * asin(1) = pi/2\r\n * asin(-1) = -pi/2\r\n * asin(|x| > 1) = NaN\r\n * asin(NaN) = NaN\r\n *\r\n * TODO? Compare performance of Taylor series.\r\n *\r\n */\r\n P.inverseSine = P.asin = function () {\r\n var halfPi, k,\r\n pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n k = x.abs().cmp(1);\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n if (k !== -1) {\r\n\r\n // |x| is 1\r\n if (k === 0) {\r\n halfPi = getPi(Ctor, pr + 4, rm).times(0.5);\r\n halfPi.s = x.s;\r\n return halfPi;\r\n }\r\n\r\n // |x| > 1 or x is NaN\r\n return new Ctor(NaN);\r\n }\r\n\r\n // TODO? Special case asin(1/2) = pi/6 and asin(-1/2) = -pi/6\r\n\r\n Ctor.precision = pr + 6;\r\n Ctor.rounding = 1;\r\n\r\n x = x.div(new Ctor(1).minus(x.times(x)).sqrt().plus(1)).atan();\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.times(2);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arctangent (inverse tangent) in radians of the value\r\n * of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi/2, pi/2]\r\n *\r\n * atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ...\r\n *\r\n * atan(0) = 0\r\n * atan(-0) = -0\r\n * atan(1) = pi/4\r\n * atan(-1) = -pi/4\r\n * atan(Infinity) = pi/2\r\n * atan(-Infinity) = -pi/2\r\n * atan(NaN) = NaN\r\n *\r\n */\r\n P.inverseTangent = P.atan = function () {\r\n var i, j, k, n, px, t, r, wpr, x2,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding;\r\n\r\n if (!x.isFinite()) {\r\n if (!x.s) return new Ctor(NaN);\r\n if (pr + 4 <= PI_PRECISION) {\r\n r = getPi(Ctor, pr + 4, rm).times(0.5);\r\n r.s = x.s;\r\n return r;\r\n }\r\n } else if (x.isZero()) {\r\n return new Ctor(x);\r\n } else if (x.abs().eq(1) && pr + 4 <= PI_PRECISION) {\r\n r = getPi(Ctor, pr + 4, rm).times(0.25);\r\n r.s = x.s;\r\n return r;\r\n }\r\n\r\n Ctor.precision = wpr = pr + 10;\r\n Ctor.rounding = 1;\r\n\r\n // TODO? if (x >= 1 && pr <= PI_PRECISION) atan(x) = halfPi * x.s - atan(1 / x);\r\n\r\n // Argument reduction\r\n // Ensure |x| < 0.42\r\n // atan(x) = 2 * atan(x / (1 + sqrt(1 + x^2)))\r\n\r\n k = Math.min(28, wpr / LOG_BASE + 2 | 0);\r\n\r\n for (i = k; i; --i) x = x.div(x.times(x).plus(1).sqrt().plus(1));\r\n\r\n external = false;\r\n\r\n j = Math.ceil(wpr / LOG_BASE);\r\n n = 1;\r\n x2 = x.times(x);\r\n r = new Ctor(x);\r\n px = x;\r\n\r\n // atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ...\r\n for (; i !== -1;) {\r\n px = px.times(x2);\r\n t = r.minus(px.div(n += 2));\r\n\r\n px = px.times(x2);\r\n r = t.plus(px.div(n += 2));\r\n\r\n if (r.d[j] !== void 0) for (i = j; r.d[i] === t.d[i] && i--;);\r\n }\r\n\r\n if (k) r = r.times(2 << (k - 1));\r\n\r\n external = true;\r\n\r\n return finalise(r, Ctor.precision = pr, Ctor.rounding = rm, true);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is a finite number, otherwise return false.\r\n *\r\n */\r\n P.isFinite = function () {\r\n return !!this.d;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\n P.isInteger = P.isInt = function () {\r\n return !!this.d && mathfloor(this.e / LOG_BASE) > this.d.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is NaN, otherwise return false.\r\n *\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\n P.isNegative = P.isNeg = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\n P.isPositive = P.isPos = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is 0 or -0, otherwise return false.\r\n *\r\n */\r\n P.isZero = function () {\r\n return !!this.d && this.d[0] === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * If no base is specified, return log[10](arg).\r\n *\r\n * log[base](arg) = ln(arg) / ln(base)\r\n *\r\n * The result will always be correctly rounded if the base of the log is 10, and 'almost always'\r\n * otherwise:\r\n *\r\n * Depending on the rounding mode, the result may be incorrectly rounded if the first fifteen\r\n * rounding digits are [49]99999999999999 or [50]00000000000000. In that case, the maximum error\r\n * between the result and the correctly rounded result will be one ulp (unit in the last place).\r\n *\r\n * log[-b](a) = NaN\r\n * log[0](a) = NaN\r\n * log[1](a) = NaN\r\n * log[NaN](a) = NaN\r\n * log[Infinity](a) = NaN\r\n * log[b](0) = -Infinity\r\n * log[b](-0) = -Infinity\r\n * log[b](-a) = NaN\r\n * log[b](1) = 0\r\n * log[b](Infinity) = Infinity\r\n * log[b](NaN) = NaN\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n P.logarithm = P.log = function (base) {\r\n var isBase10, d, denominator, k, inf, num, sd, r,\r\n arg = this,\r\n Ctor = arg.constructor,\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding,\r\n guard = 5;\r\n\r\n // Default base is 10.\r\n if (base == null) {\r\n base = new Ctor(10);\r\n isBase10 = true;\r\n } else {\r\n base = new Ctor(base);\r\n d = base.d;\r\n\r\n // Return NaN if base is negative, or non-finite, or is 0 or 1.\r\n if (base.s < 0 || !d || !d[0] || base.eq(1)) return new Ctor(NaN);\r\n\r\n isBase10 = base.eq(10);\r\n }\r\n\r\n d = arg.d;\r\n\r\n // Is arg negative, non-finite, 0 or 1?\r\n if (arg.s < 0 || !d || !d[0] || arg.eq(1)) {\r\n return new Ctor(d && !d[0] ? -1 / 0 : arg.s != 1 ? NaN : d ? 0 : 1 / 0);\r\n }\r\n\r\n // The result will have a non-terminating decimal expansion if base is 10 and arg is not an\r\n // integer power of 10.\r\n if (isBase10) {\r\n if (d.length > 1) {\r\n inf = true;\r\n } else {\r\n for (k = d[0]; k % 10 === 0;) k /= 10;\r\n inf = k !== 1;\r\n }\r\n }\r\n\r\n external = false;\r\n sd = pr + guard;\r\n num = naturalLogarithm(arg, sd);\r\n denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);\r\n\r\n // The result will have 5 rounding digits.\r\n r = divide(num, denominator, sd, 1);\r\n\r\n // If at a rounding boundary, i.e. the result's rounding digits are [49]9999 or [50]0000,\r\n // calculate 10 further digits.\r\n //\r\n // If the result is known to have an infinite decimal expansion, repeat this until it is clear\r\n // that the result is above or below the boundary. Otherwise, if after calculating the 10\r\n // further digits, the last 14 are nines, round up and assume the result is exact.\r\n // Also assume the result is exact if the last 14 are zero.\r\n //\r\n // Example of a result that will be incorrectly rounded:\r\n // log[1048576](4503599627370502) = 2.60000000000000009610279511444746...\r\n // The above result correctly rounded using ROUND_CEIL to 1 decimal place should be 2.7, but it\r\n // will be given as 2.6 as there are 15 zeros immediately after the requested decimal place, so\r\n // the exact result would be assumed to be 2.6, which rounded using ROUND_CEIL to 1 decimal\r\n // place is still 2.6.\r\n if (checkRoundingDigits(r.d, k = pr, rm)) {\r\n\r\n do {\r\n sd += 10;\r\n num = naturalLogarithm(arg, sd);\r\n denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);\r\n r = divide(num, denominator, sd, 1);\r\n\r\n if (!inf) {\r\n\r\n // Check for 14 nines from the 2nd rounding digit, as the first may be 4.\r\n if (+digitsToString(r.d).slice(k + 1, k + 15) + 1 == 1e14) {\r\n r = finalise(r, pr + 1, 0);\r\n }\r\n\r\n break;\r\n }\r\n } while (checkRoundingDigits(r.d, k += 10, rm));\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, pr, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the maximum of the arguments and the value of this Decimal.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n P.max = function () {\r\n Array.prototype.push.call(arguments, this);\r\n return maxOrMin(this.constructor, arguments, 'lt');\r\n };\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the minimum of the arguments and the value of this Decimal.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n P.min = function () {\r\n Array.prototype.push.call(arguments, this);\r\n return maxOrMin(this.constructor, arguments, 'gt');\r\n };\r\n */\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var d, e, i, j, k, len, pr, rm, xd, xe, xLTy, yd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // If either is not finite...\r\n if (!x.d || !y.d) {\r\n\r\n // Return NaN if either is NaN.\r\n if (!x.s || !y.s) y = new Ctor(NaN);\r\n\r\n // Return y negated if x is finite and y is ±Infinity.\r\n else if (x.d) y.s = -y.s;\r\n\r\n // Return x if y is finite and x is ±Infinity.\r\n // Return x if both are ±Infinity with different signs.\r\n // Return NaN if both are ±Infinity with the same sign.\r\n else y = new Ctor(y.d || x.s !== y.s ? x : NaN);\r\n\r\n return y;\r\n }\r\n\r\n // If signs differ...\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.plus(y);\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n // If either is zero...\r\n if (!xd[0] || !yd[0]) {\r\n\r\n // Return y negated if x is zero and y is non-zero.\r\n if (yd[0]) y.s = -y.s;\r\n\r\n // Return x if y is zero and x is non-zero.\r\n else if (xd[0]) y = new Ctor(x);\r\n\r\n // Return zero if both are zero.\r\n // From IEEE 754 (2008) 6.3: 0 - 0 = -0 - -0 = -0 when rounding to -Infinity.\r\n else return new Ctor(rm === 3 ? -0 : 0);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n }\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n // Calculate base 1e7 exponents.\r\n e = mathfloor(y.e / LOG_BASE);\r\n xe = mathfloor(x.e / LOG_BASE);\r\n\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of\r\n // zeros needing to be prepended, but this can be avoided while still ensuring correct\r\n // rounding by limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to `xd` if shorter.\r\n // Don't add zeros to `yd` if shorter as subtraction only needs to start at `yd` length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(rm === 3 ? -0 : 0);\r\n\r\n y.d = xd;\r\n y.e = getBase10Exponent(xd, e);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * The result depends on the modulo mode.\r\n *\r\n */\r\n P.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // Return NaN if x is ±Infinity or NaN, or y is NaN or ±0.\r\n if (!x.d || !y.s || y.d && !y.d[0]) return new Ctor(NaN);\r\n\r\n // Return x if y is ±Infinity or x is ±0.\r\n if (!y.d || x.d && !x.d[0]) {\r\n return finalise(new Ctor(x), Ctor.precision, Ctor.rounding);\r\n }\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n\r\n if (Ctor.modulo == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // result = x - q * y where 0 <= result < abs(y)\r\n q = divide(x, y.abs(), 0, 3, 1);\r\n q.s *= y.s;\r\n } else {\r\n q = divide(x, y, 0, Ctor.modulo, 1);\r\n }\r\n\r\n q = q.times(y);\r\n\r\n external = true;\r\n\r\n return x.minus(q);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return naturalExponential(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return naturalLogarithm(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\n P.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s;\r\n return finalise(x);\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var carry, d, e, i, k, len, pr, rm, xd, yd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // If either is not finite...\r\n if (!x.d || !y.d) {\r\n\r\n // Return NaN if either is NaN.\r\n if (!x.s || !y.s) y = new Ctor(NaN);\r\n\r\n // Return x if y is finite and x is ±Infinity.\r\n // Return x if both are ±Infinity with the same sign.\r\n // Return NaN if both are ±Infinity with different signs.\r\n // Return y if x is finite and y is ±Infinity.\r\n else if (!x.d) y = new Ctor(y.d || x.s === y.s ? x : NaN);\r\n\r\n return y;\r\n }\r\n\r\n // If signs differ...\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.minus(y);\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n // If either is zero...\r\n if (!xd[0] || !yd[0]) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!yd[0]) y = new Ctor(x);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n }\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n // Calculate base 1e7 exponents.\r\n k = mathfloor(x.e / LOG_BASE);\r\n e = mathfloor(y.e / LOG_BASE);\r\n\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = getBase10Exponent(xd, e);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\n P.precision = P.sd = function (z) {\r\n var k,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n if (x.d) {\r\n k = getPrecision(x.d);\r\n if (z && x.e + 1 > k) k = x.e + 1;\r\n } else {\r\n k = NaN;\r\n }\r\n\r\n return k;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\n P.round = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n return finalise(new Ctor(x), x.e + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the sine of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * sin(x) = x - x^3/3! + x^5/5! - ...\r\n *\r\n * sin(0) = 0\r\n * sin(-0) = -0\r\n * sin(Infinity) = NaN\r\n * sin(-Infinity) = NaN\r\n * sin(NaN) = NaN\r\n *\r\n */\r\n P.sine = P.sin = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;\r\n Ctor.rounding = 1;\r\n\r\n x = sine(Ctor, toLessThanHalfPi(Ctor, x));\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant > 2 ? x.neg() : x, pr, rm, true);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, sd, r, rep, t,\r\n x = this,\r\n d = x.d,\r\n e = x.e,\r\n s = x.s,\r\n Ctor = x.constructor;\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !d || !d[0]) {\r\n return new Ctor(!s || s < 0 && (!d || d[0]) ? NaN : d ? x : 1 / 0);\r\n }\r\n\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(d);\r\n\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '1e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n sd = (e = Ctor.precision) + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, sd + 2, 1)).times(0.5);\r\n\r\n // TODO? Replace with for-loop and checkRoundingDigits.\r\n if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {\r\n n = n.slice(sd - 3, sd + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n if (!rep) {\r\n finalise(t, e + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n sd += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result.\r\n // If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n finalise(r, e + 1, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, e, Ctor.rounding, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the tangent of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * tan(0) = 0\r\n * tan(-0) = -0\r\n * tan(Infinity) = NaN\r\n * tan(-Infinity) = NaN\r\n * tan(NaN) = NaN\r\n *\r\n */\r\n P.tangent = P.tan = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 10;\r\n Ctor.rounding = 1;\r\n\r\n x = x.sin();\r\n x.s = 1;\r\n x = divide(x, new Ctor(1).minus(x.times(x)).sqrt(), pr + 10, 0);\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant == 2 || quadrant == 4 ? x.neg() : x, pr, rm, true);\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new Decimal whose value is this Decimal times `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n */\r\n P.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n y.s *= x.s;\r\n\r\n // If either is NaN, ±Infinity or ±0...\r\n if (!xd || !xd[0] || !yd || !yd[0]) {\r\n\r\n return new Ctor(!y.s || xd && !xd[0] && !yd || yd && !yd[0] && !xd\r\n\r\n // Return NaN if either is NaN.\r\n // Return NaN if x is ±0 and y is ±Infinity, or y is ±0 and x is ±Infinity.\r\n ? NaN\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n // Return ±0 if either is ±0.\r\n : !xd || !yd ? y.s / 0 : y.s * 0);\r\n }\r\n\r\n e = mathfloor(x.e / LOG_BASE) + mathfloor(y.e / LOG_BASE);\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = getBase10Exponent(r, e);\r\n\r\n return external ? finalise(y, Ctor.precision, Ctor.rounding) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in base 2, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toBinary = function (sd, rm) {\r\n return toStringBinary(this, 2, sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toDecimalPlaces = P.toDP = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return finalise(x, dp + x.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = finiteToString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = finalise(new Ctor(x), dp + 1, rm);\r\n str = finiteToString(x, true, dp + 1);\r\n }\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\n P.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = finiteToString(x);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = finalise(new Ctor(x), dp + x.e + 1, rm);\r\n str = finiteToString(y, false, dp + y.e + 1);\r\n }\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return an array representing the value of this Decimal as a simple fraction with an integer\r\n * numerator and an integer denominator.\r\n *\r\n * The denominator will be a positive non-zero value less than or equal to the specified maximum\r\n * denominator. If a maximum denominator is not specified, the denominator will be the lowest\r\n * value necessary to represent the number exactly.\r\n *\r\n * [maxD] {number|string|Decimal} Maximum denominator. Integer >= 1 and < Infinity.\r\n *\r\n */\r\n P.toFraction = function (maxD) {\r\n var d, d0, d1, d2, e, k, n, n0, n1, pr, q, r,\r\n x = this,\r\n xd = x.d,\r\n Ctor = x.constructor;\r\n\r\n if (!xd) return new Ctor(x);\r\n\r\n n1 = d0 = new Ctor(1);\r\n d1 = n0 = new Ctor(0);\r\n\r\n d = new Ctor(d1);\r\n e = d.e = getPrecision(xd) - x.e - 1;\r\n k = e % LOG_BASE;\r\n d.d[0] = mathpow(10, k < 0 ? LOG_BASE + k : k);\r\n\r\n if (maxD == null) {\r\n\r\n // d is 10**e, the minimum max-denominator needed.\r\n maxD = e > 0 ? d : n1;\r\n } else {\r\n n = new Ctor(maxD);\r\n if (!n.isInt() || n.lt(n1)) throw Error(invalidArgument + n);\r\n maxD = n.gt(d) ? (e > 0 ? d : n1) : n;\r\n }\r\n\r\n external = false;\r\n n = new Ctor(digitsToString(xd));\r\n pr = Ctor.precision;\r\n Ctor.precision = e = xd.length * LOG_BASE * 2;\r\n\r\n for (;;) {\r\n q = divide(n, d, 0, 1, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.cmp(maxD) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n d2 = n1;\r\n n1 = n0.plus(q.times(d2));\r\n n0 = d2;\r\n d2 = d;\r\n d = n.minus(q.times(d2));\r\n n = d2;\r\n }\r\n\r\n d2 = divide(maxD.minus(d0), d1, 0, 1, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1?\r\n r = divide(n1, d1, e, 1).minus(x).abs().cmp(divide(n0, d0, e, 1).minus(x).abs()) < 1\r\n ? [n1, d1] : [n0, d0];\r\n\r\n Ctor.precision = pr;\r\n external = true;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in base 16, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toHexadecimal = P.toHex = function (sd, rm) {\r\n return toStringBinary(this, 16, sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Returns a new Decimal whose value is the nearest multiple of `y` in the direction of rounding\r\n * mode `rm`, or `Decimal.rounding` if `rm` is omitted, to the value of this Decimal.\r\n *\r\n * The return value will always have the same sign as this Decimal, unless either this Decimal\r\n * or `y` is NaN, in which case the return value will be also be NaN.\r\n *\r\n * The return value is not affected by the value of `precision`.\r\n *\r\n * y {number|string|Decimal} The magnitude to round to a multiple of.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * 'toNearest() rounding mode not an integer: {rm}'\r\n * 'toNearest() rounding mode out of range: {rm}'\r\n *\r\n */\r\n P.toNearest = function (y, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n\r\n if (y == null) {\r\n\r\n // If x is not finite, return x.\r\n if (!x.d) return x;\r\n\r\n y = new Ctor(1);\r\n rm = Ctor.rounding;\r\n } else {\r\n y = new Ctor(y);\r\n if (rm === void 0) {\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(rm, 0, 8);\r\n }\r\n\r\n // If x is not finite, return x if y is not NaN, else NaN.\r\n if (!x.d) return y.s ? x : y;\r\n\r\n // If y is not finite, return Infinity with the sign of x if y is Infinity, else NaN.\r\n if (!y.d) {\r\n if (y.s) y.s = x.s;\r\n return y;\r\n }\r\n }\r\n\r\n // If y is not zero, calculate the nearest multiple of y to x.\r\n if (y.d[0]) {\r\n external = false;\r\n x = divide(x, y, 0, rm, 1).times(y);\r\n external = true;\r\n finalise(x);\r\n\r\n // If y is zero, return zero with the sign of x.\r\n } else {\r\n y.s = x.s;\r\n x = y;\r\n }\r\n\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n * Zero keeps its sign.\r\n *\r\n */\r\n P.toNumber = function () {\r\n return +this;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in base 8, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toOctal = function (sd, rm) {\r\n return toStringBinary(this, 8, sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`, rounded\r\n * to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * ECMAScript compliant.\r\n *\r\n * pow(x, NaN) = NaN\r\n * pow(x, ±0) = 1\r\n\r\n * pow(NaN, non-zero) = NaN\r\n * pow(abs(x) > 1, +Infinity) = +Infinity\r\n * pow(abs(x) > 1, -Infinity) = +0\r\n * pow(abs(x) == 1, ±Infinity) = NaN\r\n * pow(abs(x) < 1, +Infinity) = +0\r\n * pow(abs(x) < 1, -Infinity) = +Infinity\r\n * pow(+Infinity, y > 0) = +Infinity\r\n * pow(+Infinity, y < 0) = +0\r\n * pow(-Infinity, odd integer > 0) = -Infinity\r\n * pow(-Infinity, even integer > 0) = +Infinity\r\n * pow(-Infinity, odd integer < 0) = -0\r\n * pow(-Infinity, even integer < 0) = +0\r\n * pow(+0, y > 0) = +0\r\n * pow(+0, y < 0) = +Infinity\r\n * pow(-0, odd integer > 0) = -0\r\n * pow(-0, even integer > 0) = +0\r\n * pow(-0, odd integer < 0) = -Infinity\r\n * pow(-0, even integer < 0) = +Infinity\r\n * pow(finite x < 0, finite non-integer) = NaN\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * Assuming the first 15 rounding digits are each equally likely to be any digit 0-9, the\r\n * probability of an incorrectly rounded result\r\n * P([49]9{14} | [50]0{14}) = 2 * 0.2 * 10^-14 = 4e-15 = 1/2.5e+14\r\n * i.e. 1 in 250,000,000,000,000\r\n *\r\n * If a result is incorrectly rounded the maximum error will be 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\n P.toPower = P.pow = function (y) {\r\n var e, k, pr, r, rm, s,\r\n x = this,\r\n Ctor = x.constructor,\r\n yn = +(y = new Ctor(y));\r\n\r\n // Either ±Infinity, NaN or ±0?\r\n if (!x.d || !y.d || !x.d[0] || !y.d[0]) return new Ctor(mathpow(+x, yn));\r\n\r\n x = new Ctor(x);\r\n\r\n if (x.eq(1)) return x;\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n if (y.eq(1)) return finalise(x, pr, rm);\r\n\r\n // y exponent\r\n e = mathfloor(y.e / LOG_BASE);\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n if (e >= y.d.length - 1 && (k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = intPow(Ctor, x, k, pr);\r\n return y.s < 0 ? new Ctor(1).div(r) : finalise(r, pr, rm);\r\n }\r\n\r\n s = x.s;\r\n\r\n // if x is negative\r\n if (s < 0) {\r\n\r\n // if y is not an integer\r\n if (e < y.d.length - 1) return new Ctor(NaN);\r\n\r\n // Result is positive if x is negative and the last digit of integer y is even.\r\n if ((y.d[e] & 1) == 0) s = 1;\r\n\r\n // if x.eq(-1)\r\n if (x.e == 0 && x.d[0] == 1 && x.d.length == 1) {\r\n x.s = s;\r\n return x;\r\n }\r\n }\r\n\r\n // Estimate result exponent.\r\n // x^y = 10^e, where e = y * log10(x)\r\n // log10(x) = log10(x_significand) + x_exponent\r\n // log10(x_significand) = ln(x_significand) / ln(10)\r\n k = mathpow(+x, yn);\r\n e = k == 0 || !isFinite(k)\r\n ? mathfloor(yn * (Math.log('0.' + digitsToString(x.d)) / Math.LN10 + x.e + 1))\r\n : new Ctor(k + '').e;\r\n\r\n // Exponent estimate may be incorrect e.g. x: 0.999999999999999999, y: 2.29, e: 0, r.e: -1.\r\n\r\n // Overflow/underflow?\r\n if (e > Ctor.maxE + 1 || e < Ctor.minE - 1) return new Ctor(e > 0 ? s / 0 : 0);\r\n\r\n external = false;\r\n Ctor.rounding = x.s = 1;\r\n\r\n // Estimate the extra guard digits needed to ensure five correct rounding digits from\r\n // naturalLogarithm(x). Example of failure without these extra digits (precision: 10):\r\n // new Decimal(2.32456).pow('2087987436534566.46411')\r\n // should be 1.162377823e+764914905173815, but is 1.162355823e+764914905173815\r\n k = Math.min(12, (e + '').length);\r\n\r\n // r = x^y = exp(y*ln(x))\r\n r = naturalExponential(y.times(naturalLogarithm(x, pr + k)), pr);\r\n\r\n // r may be Infinity, e.g. (0.9999999999999999).pow(-1e+40)\r\n if (r.d) {\r\n\r\n // Truncate to the required precision plus five rounding digits.\r\n r = finalise(r, pr + 5, 1);\r\n\r\n // If the rounding digits are [49]9999 or [50]0000 increase the precision by 10 and recalculate\r\n // the result.\r\n if (checkRoundingDigits(r.d, pr, rm)) {\r\n e = pr + 10;\r\n\r\n // Truncate to the increased precision plus five rounding digits.\r\n r = finalise(naturalExponential(y.times(naturalLogarithm(x, e + k)), e), e + 5, 1);\r\n\r\n // Check for 14 nines from the 2nd rounding digit (the first rounding digit may be 4 or 9).\r\n if (+digitsToString(r.d).slice(pr + 1, pr + 15) + 1 == 1e14) {\r\n r = finalise(r, pr + 1, 0);\r\n }\r\n }\r\n }\r\n\r\n r.s = s;\r\n external = true;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(r, pr, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = finalise(new Ctor(x), sd, rm);\r\n str = finiteToString(x, sd <= x.e || x.e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * 'toSD() digits out of range: {sd}'\r\n * 'toSD() digits not an integer: {sd}'\r\n * 'toSD() rounding mode not an integer: {rm}'\r\n * 'toSD() rounding mode out of range: {rm}'\r\n *\r\n */\r\n P.toSignificantDigits = P.toSD = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return finalise(new Ctor(x), sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\n P.toString = function () {\r\n var x = this,\r\n Ctor = x.constructor,\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal truncated to a whole number.\r\n *\r\n */\r\n P.truncated = P.trunc = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n * Unlike `toString`, negative zero will include the minus sign.\r\n *\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n var x = this,\r\n Ctor = x.constructor,\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n\r\n return x.isNeg() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n // Add aliases to match BigDecimal method names.\r\n // P.add = P.plus;\r\n P.subtract = P.minus;\r\n P.multiply = P.times;\r\n P.divide = P.div;\r\n P.remainder = P.mod;\r\n P.compareTo = P.cmp;\r\n P.negate = P.neg;\r\n */\r\n\r\n\r\n // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n /*\r\n * digitsToString P.cubeRoot, P.logarithm, P.squareRoot, P.toFraction, P.toPower,\r\n * finiteToString, naturalExponential, naturalLogarithm\r\n * checkInt32 P.toDecimalPlaces, P.toExponential, P.toFixed, P.toNearest,\r\n * P.toPrecision, P.toSignificantDigits, toStringBinary, random\r\n * checkRoundingDigits P.logarithm, P.toPower, naturalExponential, naturalLogarithm\r\n * convertBase toStringBinary, parseOther\r\n * cos P.cos\r\n * divide P.atanh, P.cubeRoot, P.dividedBy, P.dividedToIntegerBy,\r\n * P.logarithm, P.modulo, P.squareRoot, P.tan, P.tanh, P.toFraction,\r\n * P.toNearest, toStringBinary, naturalExponential, naturalLogarithm,\r\n * taylorSeries, atan2, parseOther\r\n * finalise P.absoluteValue, P.atan, P.atanh, P.ceil, P.cos, P.cosh,\r\n * P.cubeRoot, P.dividedToIntegerBy, P.floor, P.logarithm, P.minus,\r\n * P.modulo, P.negated, P.plus, P.round, P.sin, P.sinh, P.squareRoot,\r\n * P.tan, P.times, P.toDecimalPlaces, P.toExponential, P.toFixed,\r\n * P.toNearest, P.toPower, P.toPrecision, P.toSignificantDigits,\r\n * P.truncated, divide, getLn10, getPi, naturalExponential,\r\n * naturalLogarithm, ceil, floor, round, trunc\r\n * finiteToString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf,\r\n * toStringBinary\r\n * getBase10Exponent P.minus, P.plus, P.times, parseOther\r\n * getLn10 P.logarithm, naturalLogarithm\r\n * getPi P.acos, P.asin, P.atan, toLessThanHalfPi, atan2\r\n * getPrecision P.precision, P.toFraction\r\n * getZeroString digitsToString, finiteToString\r\n * intPow P.toPower, parseOther\r\n * isOdd toLessThanHalfPi\r\n * maxOrMin max, min\r\n * naturalExponential P.naturalExponential, P.toPower\r\n * naturalLogarithm P.acosh, P.asinh, P.atanh, P.logarithm, P.naturalLogarithm,\r\n * P.toPower, naturalExponential\r\n * nonFiniteToString finiteToString, toStringBinary\r\n * parseDecimal Decimal\r\n * parseOther Decimal\r\n * sin P.sin\r\n * taylorSeries P.cosh, P.sinh, cos, sin\r\n * toLessThanHalfPi P.cos, P.sin\r\n * toStringBinary P.toBinary, P.toHexadecimal, P.toOctal\r\n * truncate intPow\r\n *\r\n * Throws: P.logarithm, P.precision, P.toFraction, checkInt32, getLn10, getPi,\r\n * naturalLogarithm, config, parseOther, random, Decimal\r\n */\r\n\r\n\r\n function digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n }\r\n\r\n\r\n function checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Check 5 rounding digits if `repeating` is null, 4 otherwise.\r\n * `repeating == null` if caller is `log` or `pow`,\r\n * `repeating != null` if caller is `naturalLogarithm` or `naturalExponential`.\r\n */\r\n function checkRoundingDigits(d, i, rm, repeating) {\r\n var di, k, r, rd;\r\n\r\n // Get the length of the first word of the array d.\r\n for (k = d[0]; k >= 10; k /= 10) --i;\r\n\r\n // Is the rounding digit in the first word of d?\r\n if (--i < 0) {\r\n i += LOG_BASE;\r\n di = 0;\r\n } else {\r\n di = Math.ceil((i + 1) / LOG_BASE);\r\n i %= LOG_BASE;\r\n }\r\n\r\n // i is the index (0 - 6) of the rounding digit.\r\n // E.g. if within the word 3487563 the first rounding digit is 5,\r\n // then i = 4, k = 1000, rd = 3487563 % 1000 = 563\r\n k = mathpow(10, LOG_BASE - i);\r\n rd = d[di] % k | 0;\r\n\r\n if (repeating == null) {\r\n if (i < 3) {\r\n if (i == 0) rd = rd / 100 | 0;\r\n else if (i == 1) rd = rd / 10 | 0;\r\n r = rm < 4 && rd == 99999 || rm > 3 && rd == 49999 || rd == 50000 || rd == 0;\r\n } else {\r\n r = (rm < 4 && rd + 1 == k || rm > 3 && rd + 1 == k / 2) &&\r\n (d[di + 1] / k / 100 | 0) == mathpow(10, i - 2) - 1 ||\r\n (rd == k / 2 || rd == 0) && (d[di + 1] / k / 100 | 0) == 0;\r\n }\r\n } else {\r\n if (i < 4) {\r\n if (i == 0) rd = rd / 1000 | 0;\r\n else if (i == 1) rd = rd / 100 | 0;\r\n else if (i == 2) rd = rd / 10 | 0;\r\n r = (repeating || rm < 4) && rd == 9999 || !repeating && rm > 3 && rd == 4999;\r\n } else {\r\n r = ((repeating || rm < 4) && rd + 1 == k ||\r\n (!repeating && rm > 3) && rd + 1 == k / 2) &&\r\n (d[di + 1] / k / 1000 | 0) == mathpow(10, i - 3) - 1;\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n\r\n // Convert string of `baseIn` to an array of numbers of `baseOut`.\r\n // Eg. convertBase('255', 10, 16) returns [15, 15].\r\n // Eg. convertBase('ff', 16, 10) returns [2, 5, 5].\r\n function convertBase(str, baseIn, baseOut) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n strL = str.length;\r\n\r\n for (; i < strL;) {\r\n for (arrL = arr.length; arrL--;) arr[arrL] *= baseIn;\r\n arr[0] += NUMERALS.indexOf(str.charAt(i++));\r\n for (j = 0; j < arr.length; j++) {\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] === void 0) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n\r\n /*\r\n * cos(x) = 1 - x^2/2! + x^4/4! - ...\r\n * |x| < pi/2\r\n *\r\n */\r\n function cosine(Ctor, x) {\r\n var k, y,\r\n len = x.d.length;\r\n\r\n // Argument reduction: cos(4x) = 8*(cos^4(x) - cos^2(x)) + 1\r\n // i.e. cos(x) = 8*(cos^4(x/4) - cos^2(x/4)) + 1\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n if (len < 32) {\r\n k = Math.ceil(len / 3);\r\n y = (1 / tinyPow(4, k)).toString();\r\n } else {\r\n k = 16;\r\n y = '2.3283064365386962890625e-10';\r\n }\r\n\r\n Ctor.precision += k;\r\n\r\n x = taylorSeries(Ctor, 1, x.times(y), new Ctor(1));\r\n\r\n // Reverse argument reduction\r\n for (var i = k; i--;) {\r\n var cos2x = x.times(x);\r\n x = cos2x.times(cos2x).minus(cos2x).times(8).plus(1);\r\n }\r\n\r\n Ctor.precision -= k;\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Perform division in the specified base.\r\n */\r\n var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k, base) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % base | 0;\r\n carry = temp / base | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, rm, dp, base) {\r\n var cmp, e, i, k, logBase, more, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0,\r\n yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xd || !xd[0] || !yd || !yd[0]) {\r\n\r\n return new Ctor(// Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xd ? yd && xd[0] == yd[0] : !yd) ? NaN :\r\n\r\n // Return ±0 if x is 0 or y is ±Infinity, or return ±Infinity as y is 0.\r\n xd && xd[0] == 0 || !yd ? sign * 0 : sign / 0);\r\n }\r\n\r\n if (base) {\r\n logBase = 1;\r\n e = x.e - y.e;\r\n } else {\r\n base = BASE;\r\n logBase = LOG_BASE;\r\n e = mathfloor(x.e / logBase) - mathfloor(y.e / logBase);\r\n }\r\n\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n // The digit array of a Decimal from toStringBinary may have trailing zeros.\r\n for (i = 0; yd[i] == (xd[i] || 0); i++);\r\n\r\n if (yd[i] > (xd[i] || 0)) e--;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else if (dp) {\r\n sd = pr + (x.e - y.e) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) {\r\n qd.push(1);\r\n more = true;\r\n } else {\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / logBase + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * base + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n more = k || i < xL;\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= base/2\r\n k = base / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k, base);\r\n xd = multiplyInteger(xd, k, base);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= base / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= base) k = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL, base);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL, base);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n\r\n more = rem[0] !== void 0;\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n }\r\n\r\n // logBase is 1 when divide is being used for base conversion.\r\n if (logBase == 1) {\r\n q.e = e;\r\n inexact = more;\r\n } else {\r\n\r\n // To calculate q.e, first get the number of digits of qd[0].\r\n for (i = 1, k = qd[0]; k >= 10; k /= 10) i++;\r\n q.e = i + e * logBase - 1;\r\n\r\n finalise(q, dp ? pr + q.e + 1 : pr, rm, more);\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Round `x` to `sd` significant digits using rounding mode `rm`.\r\n * Check for over/under-flow.\r\n */\r\n function finalise(x, sd, rm, isTruncated) {\r\n var digits, i, j, k, rd, roundUp, w, xd, xdi,\r\n Ctor = x.constructor;\r\n\r\n // Don't round if sd is null or undefined.\r\n out: if (sd != null) {\r\n xd = x.d;\r\n\r\n // Infinity/NaN.\r\n if (!xd) return x;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd containing rd, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // digits: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (digits = 1, k = xd[0]; k >= 10; k /= 10) digits++;\r\n i = sd - digits;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / mathpow(10, digits - j - 1) % 10 | 0;\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) {\r\n if (isTruncated) {\r\n\r\n // Needed by `naturalExponential`, `naturalLogarithm` and `squareRoot`.\r\n for (; k++ <= xdi;) xd.push(0);\r\n w = rd = 0;\r\n digits = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (digits = 1; k >= 10; k /= 10) digits++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - digits.\r\n j = i - LOG_BASE + digits;\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = j < 0 ? 0 : w / mathpow(10, digits - j - 1) % 10 | 0;\r\n }\r\n }\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n isTruncated = isTruncated || sd < 0 ||\r\n xd[xdi + 1] !== void 0 || (j < 0 ? w : w % mathpow(10, digits - j - 1));\r\n\r\n // The expression `w % mathpow(10, digits - j - 1)` returns all the digits of w to the right\r\n // of the digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression\r\n // will give 714.\r\n\r\n roundUp = rm < 4\r\n ? (rd || isTruncated) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || isTruncated || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, digits - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xd[0]) {\r\n xd.length = 0;\r\n if (roundUp) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xd[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, digits - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (roundUp) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n\r\n // i will be the length of xd[0] before k is added.\r\n for (i = 1, j = xd[0]; j >= 10; j /= 10) i++;\r\n j = xd[0] += k;\r\n for (k = 1; j >= 10; j /= 10) k++;\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xd[0] == BASE) xd[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n }\r\n\r\n if (external) {\r\n\r\n // Overflow?\r\n if (x.e > Ctor.maxE) {\r\n\r\n // Infinity.\r\n x.d = null;\r\n x.e = NaN;\r\n\r\n // Underflow?\r\n } else if (x.e < Ctor.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n // Ctor.underflow = true;\r\n } // else Ctor.underflow = false;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function finiteToString(x, isExp, sd) {\r\n if (!x.isFinite()) return nonFiniteToString(x);\r\n var k,\r\n e = x.e,\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (x.e < 0 ? 'e' : 'e+') + x.e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return str;\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(digits, e) {\r\n var w = digits[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for ( e *= LOG_BASE; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n if (sd > LN10_PRECISION) {\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(precisionLimitExceeded);\r\n }\r\n return finalise(new Ctor(LN10), sd, 1, true);\r\n }\r\n\r\n\r\n function getPi(Ctor, sd, rm) {\r\n if (sd > PI_PRECISION) throw Error(precisionLimitExceeded);\r\n return finalise(new Ctor(PI), sd, rm, true);\r\n }\r\n\r\n\r\n function getPrecision(digits) {\r\n var w = digits.length - 1,\r\n len = w * LOG_BASE + 1;\r\n\r\n w = digits[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) len--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = digits[0]; w >= 10; w /= 10) len++;\r\n }\r\n\r\n return len;\r\n }\r\n\r\n\r\n function getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of Decimal `x` to the power `n`, where `n` is an\r\n * integer of type number.\r\n *\r\n * Implements 'exponentiation by squaring'. Called by `pow` and `parseOther`.\r\n *\r\n */\r\n function intPow(Ctor, x, n, pr) {\r\n var isTruncated,\r\n r = new Ctor(1),\r\n\r\n // Max n of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n k = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (n % 2) {\r\n r = r.times(x);\r\n if (truncate(r.d, k)) isTruncated = true;\r\n }\r\n\r\n n = mathfloor(n / 2);\r\n if (n === 0) {\r\n\r\n // To ensure correct rounding when r.d is truncated, increment the last word if it is zero.\r\n n = r.d.length - 1;\r\n if (isTruncated && r.d[n] === 0) ++r.d[n];\r\n break;\r\n }\r\n\r\n x = x.times(x);\r\n truncate(x.d, k);\r\n }\r\n\r\n external = true;\r\n\r\n return r;\r\n }\r\n\r\n\r\n function isOdd(n) {\r\n return n.d[n.d.length - 1] & 1;\r\n }\r\n\r\n\r\n /*\r\n * Handle `max` and `min`. `ltgt` is 'lt' or 'gt'.\r\n */\r\n function maxOrMin(Ctor, args, ltgt) {\r\n var y,\r\n x = new Ctor(args[0]),\r\n i = 0;\r\n\r\n for (; ++i < args.length;) {\r\n y = new Ctor(args[i]);\r\n if (!y.s) {\r\n x = y;\r\n break;\r\n } else if (x[ltgt](y)) {\r\n x = y;\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` rounded to `sd` significant\r\n * digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * Max integer argument: exp('20723265836946413') = 6.3e+9000000000000000\r\n * Min integer argument: exp('-20723265836946411') = 1.2e-9000000000000000\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(Infinity) = Infinity\r\n * exp(-Infinity) = 0\r\n * exp(NaN) = NaN\r\n * exp(±0) = 1\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n * The result will always be correctly rounded.\r\n *\r\n */\r\n function naturalExponential(x, sd) {\r\n var denominator, guard, j, pow, sum, t, wpr,\r\n rep = 0,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n rm = Ctor.rounding,\r\n pr = Ctor.precision;\r\n\r\n // 0/NaN/Infinity?\r\n if (!x.d || !x.d[0] || x.e > 17) {\r\n\r\n return new Ctor(x.d\r\n ? !x.d[0] ? 1 : x.s < 0 ? 0 : 1 / 0\r\n : x.s ? x.s < 0 ? 0 : x : 0 / 0);\r\n }\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n // while abs(x) >= 0.1\r\n while (x.e > -2) {\r\n\r\n // x = x / 2^5\r\n x = x.times(t);\r\n k += 5;\r\n }\r\n\r\n // Use 2 * log10(2^k) + 5 (empirically derived) to estimate the increase in precision\r\n // necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(1);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = finalise(pow.times(x), wpr, 1);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr, 1));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n j = k;\r\n while (j--) sum = finalise(sum.times(sum), wpr, 1);\r\n\r\n // Check to see if the first 4 rounding digits are [49]999.\r\n // If so, repeat the summation with a higher precision, otherwise\r\n // e.g. with precision: 18, rounding: 1\r\n // exp(18.404272462595034083567793919843761) = 98372560.1229999999 (should be 98372560.123)\r\n // `wpr - guard` is the index of first rounding digit.\r\n if (sd == null) {\r\n\r\n if (rep < 3 && checkRoundingDigits(sum.d, wpr - guard, rm, rep)) {\r\n Ctor.precision = wpr += 10;\r\n denominator = pow = t = new Ctor(1);\r\n i = 0;\r\n rep++;\r\n } else {\r\n return finalise(sum, Ctor.precision = pr, rm, external = true);\r\n }\r\n } else {\r\n Ctor.precision = pr;\r\n return sum;\r\n }\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` rounded to `sd` significant\r\n * digits.\r\n *\r\n * ln(-n) = NaN\r\n * ln(0) = -Infinity\r\n * ln(-0) = -Infinity\r\n * ln(1) = 0\r\n * ln(Infinity) = Infinity\r\n * ln(-Infinity) = NaN\r\n * ln(NaN) = NaN\r\n *\r\n * ln(n) (n != 1) is non-terminating.\r\n *\r\n */\r\n function naturalLogarithm(y, sd) {\r\n var c, c0, denominator, e, numerator, rep, sum, t, wpr, x1, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n rm = Ctor.rounding,\r\n pr = Ctor.precision;\r\n\r\n // Is x negative or Infinity, NaN, 0 or 1?\r\n if (x.s < 0 || !xd || !xd[0] || !x.e && xd[0] == 1 && xd.length == 1) {\r\n return new Ctor(xd && !xd[0] ? -1 / 0 : x.s != 1 ? NaN : xd ? 0 : x);\r\n }\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n Ctor.precision = wpr += guard;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n\r\n if (Math.abs(e = x.e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = x.e;\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = naturalLogarithm(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n Ctor.precision = pr;\r\n\r\n return sd == null ? finalise(x, pr, rm, external = true) : x;\r\n }\r\n\r\n // x1 is x reduced to a value near 1.\r\n x1 = x;\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(1), x.plus(1), wpr, 1);\r\n x2 = finalise(x.times(x), wpr, 1);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = finalise(numerator.times(x2), wpr, 1);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr, 1));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction. Check that e is not 0 because, besides preventing an\r\n // unnecessary calculation, -0 + 0 = +0 and to ensure correct rounding -0 needs to stay -0.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr, 1);\r\n\r\n // Is rm > 3 and the first 4 rounding digits 4999, or rm < 4 (or the summation has\r\n // been repeated previously) and the first 4 rounding digits 9999?\r\n // If so, restart the summation with a higher precision, otherwise\r\n // e.g. with precision: 12, rounding: 1\r\n // ln(135520028.6126091714265381533) = 18.7246299999 when it should be 18.72463.\r\n // `wpr - guard` is the index of first rounding digit.\r\n if (sd == null) {\r\n if (checkRoundingDigits(sum.d, wpr - guard, rm, rep)) {\r\n Ctor.precision = wpr += guard;\r\n t = numerator = x = divide(x1.minus(1), x1.plus(1), wpr, 1);\r\n x2 = finalise(x.times(x), wpr, 1);\r\n denominator = rep = 1;\r\n } else {\r\n return finalise(sum, Ctor.precision = pr, rm, external = true);\r\n }\r\n } else {\r\n Ctor.precision = pr;\r\n return sum;\r\n }\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n }\r\n\r\n\r\n // ±Infinity, NaN.\r\n function nonFiniteToString(x) {\r\n // Unsigned.\r\n return String(x.s * x.s / 0);\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\n function parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48; --len);\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n x.e = e = e - i - 1;\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external) {\r\n\r\n // Overflow?\r\n if (x.e > x.constructor.maxE) {\r\n\r\n // Infinity.\r\n x.d = null;\r\n x.e = NaN;\r\n\r\n // Underflow?\r\n } else if (x.e < x.constructor.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n // x.constructor.underflow = true;\r\n } // else x.constructor.underflow = false;\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from a string `str`, which is not a decimal value.\r\n */\r\n function parseOther(x, str) {\r\n var base, Ctor, divisor, i, isFloat, len, p, xd, xe;\r\n\r\n if (str === 'Infinity' || str === 'NaN') {\r\n if (!+str) x.s = NaN;\r\n x.e = NaN;\r\n x.d = null;\r\n return x;\r\n }\r\n\r\n if (isHex.test(str)) {\r\n base = 16;\r\n str = str.toLowerCase();\r\n } else if (isBinary.test(str)) {\r\n base = 2;\r\n } else if (isOctal.test(str)) {\r\n base = 8;\r\n } else {\r\n throw Error(invalidArgument + str);\r\n }\r\n\r\n // Is there a binary exponent part?\r\n i = str.search(/p/i);\r\n\r\n if (i > 0) {\r\n p = +str.slice(i + 1);\r\n str = str.substring(2, i);\r\n } else {\r\n str = str.slice(2);\r\n }\r\n\r\n // Convert `str` as an integer then divide the result by `base` raised to a power such that the\r\n // fraction part will be restored.\r\n i = str.indexOf('.');\r\n isFloat = i >= 0;\r\n Ctor = x.constructor;\r\n\r\n if (isFloat) {\r\n str = str.replace('.', '');\r\n len = str.length;\r\n i = len - i;\r\n\r\n // log[10](16) = 1.2041... , log[10](88) = 1.9444....\r\n divisor = intPow(Ctor, new Ctor(base), i, i * 2);\r\n }\r\n\r\n xd = convertBase(str, base, BASE);\r\n xe = xd.length - 1;\r\n\r\n // Remove trailing zeros.\r\n for (i = xe; xd[i] === 0; --i) xd.pop();\r\n if (i < 0) return new Ctor(x.s * 0);\r\n x.e = getBase10Exponent(xd, xe);\r\n x.d = xd;\r\n external = false;\r\n\r\n // At what precision to perform the division to ensure exact conversion?\r\n // maxDecimalIntegerPartDigitCount = ceil(log[10](b) * otherBaseIntegerPartDigitCount)\r\n // log[10](2) = 0.30103, log[10](8) = 0.90309, log[10](16) = 1.20412\r\n // E.g. ceil(1.2 * 3) = 4, so up to 4 decimal digits are needed to represent 3 hex int digits.\r\n // maxDecimalFractionPartDigitCount = {Hex:4|Oct:3|Bin:1} * otherBaseFractionPartDigitCount\r\n // Therefore using 4 * the number of digits of str will always be enough.\r\n if (isFloat) x = divide(x, divisor, len * 4);\r\n\r\n // Multiply by the binary exponent part if present.\r\n if (p) x = x.times(Math.abs(p) < 54 ? mathpow(2, p) : Decimal.pow(2, p));\r\n external = true;\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * sin(x) = x - x^3/3! + x^5/5! - ...\r\n * |x| < pi/2\r\n *\r\n */\r\n function sine(Ctor, x) {\r\n var k,\r\n len = x.d.length;\r\n\r\n if (len < 3) return taylorSeries(Ctor, 2, x, x);\r\n\r\n // Argument reduction: sin(5x) = 16*sin^5(x) - 20*sin^3(x) + 5*sin(x)\r\n // i.e. sin(x) = 16*sin^5(x/5) - 20*sin^3(x/5) + 5*sin(x/5)\r\n // and sin(x) = sin(x/5)(5 + sin^2(x/5)(16sin^2(x/5) - 20))\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n k = 1.4 * Math.sqrt(len);\r\n k = k > 16 ? 16 : k | 0;\r\n\r\n x = x.times(1 / tinyPow(5, k));\r\n x = taylorSeries(Ctor, 2, x, x);\r\n\r\n // Reverse argument reduction\r\n var sin2_x,\r\n d5 = new Ctor(5),\r\n d16 = new Ctor(16),\r\n d20 = new Ctor(20);\r\n for (; k--;) {\r\n sin2_x = x.times(x);\r\n x = x.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20))));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n // Calculate Taylor series for `cos`, `cosh`, `sin` and `sinh`.\r\n function taylorSeries(Ctor, n, x, y, isHyperbolic) {\r\n var j, t, u, x2,\r\n i = 1,\r\n pr = Ctor.precision,\r\n k = Math.ceil(pr / LOG_BASE);\r\n\r\n external = false;\r\n x2 = x.times(x);\r\n u = new Ctor(y);\r\n\r\n for (;;) {\r\n t = divide(u.times(x2), new Ctor(n++ * n++), pr, 1);\r\n u = isHyperbolic ? y.plus(t) : y.minus(t);\r\n y = divide(t.times(x2), new Ctor(n++ * n++), pr, 1);\r\n t = u.plus(y);\r\n\r\n if (t.d[k] !== void 0) {\r\n for (j = k; t.d[j] === u.d[j] && j--;);\r\n if (j == -1) break;\r\n }\r\n\r\n j = u;\r\n u = y;\r\n y = t;\r\n t = j;\r\n i++;\r\n }\r\n\r\n external = true;\r\n t.d.length = k + 1;\r\n\r\n return t;\r\n }\r\n\r\n\r\n // Exponent e must be positive and non-zero.\r\n function tinyPow(b, e) {\r\n var n = b;\r\n while (--e) n *= b;\r\n return n;\r\n }\r\n\r\n\r\n // Return the absolute value of `x` reduced to less than or equal to half pi.\r\n function toLessThanHalfPi(Ctor, x) {\r\n var t,\r\n isNeg = x.s < 0,\r\n pi = getPi(Ctor, Ctor.precision, 1),\r\n halfPi = pi.times(0.5);\r\n\r\n x = x.abs();\r\n\r\n if (x.lte(halfPi)) {\r\n quadrant = isNeg ? 4 : 1;\r\n return x;\r\n }\r\n\r\n t = x.divToInt(pi);\r\n\r\n if (t.isZero()) {\r\n quadrant = isNeg ? 3 : 2;\r\n } else {\r\n x = x.minus(t.times(pi));\r\n\r\n // 0 <= x < pi\r\n if (x.lte(halfPi)) {\r\n quadrant = isOdd(t) ? (isNeg ? 2 : 3) : (isNeg ? 4 : 1);\r\n return x;\r\n }\r\n\r\n quadrant = isOdd(t) ? (isNeg ? 1 : 4) : (isNeg ? 3 : 2);\r\n }\r\n\r\n return x.minus(pi).abs();\r\n }\r\n\r\n\r\n /*\r\n * Return the value of Decimal `x` as a string in base `baseOut`.\r\n *\r\n * If the optional `sd` argument is present include a binary exponent suffix.\r\n */\r\n function toStringBinary(x, baseOut, sd, rm) {\r\n var base, e, i, k, len, roundUp, str, xd, y,\r\n Ctor = x.constructor,\r\n isExp = sd !== void 0;\r\n\r\n if (isExp) {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n } else {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n }\r\n\r\n if (!x.isFinite()) {\r\n str = nonFiniteToString(x);\r\n } else {\r\n str = finiteToString(x);\r\n i = str.indexOf('.');\r\n\r\n // Use exponential notation according to `toExpPos` and `toExpNeg`? No, but if required:\r\n // maxBinaryExponent = floor((decimalExponent + 1) * log[2](10))\r\n // minBinaryExponent = floor(decimalExponent * log[2](10))\r\n // log[2](10) = 3.321928094887362347870319429489390175864\r\n\r\n if (isExp) {\r\n base = 2;\r\n if (baseOut == 16) {\r\n sd = sd * 4 - 3;\r\n } else if (baseOut == 8) {\r\n sd = sd * 3 - 2;\r\n }\r\n } else {\r\n base = baseOut;\r\n }\r\n\r\n // Convert the number as an integer then divide the result by its base raised to a power such\r\n // that the fraction part will be restored.\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n str = str.replace('.', '');\r\n y = new Ctor(1);\r\n y.e = str.length - i;\r\n y.d = convertBase(finiteToString(y), 10, base);\r\n y.e = y.d.length;\r\n }\r\n\r\n xd = convertBase(str, 10, base);\r\n e = len = xd.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] == 0;) xd.pop();\r\n\r\n if (!xd[0]) {\r\n str = isExp ? '0p+0' : '0';\r\n } else {\r\n if (i < 0) {\r\n e--;\r\n } else {\r\n x = new Ctor(x);\r\n x.d = xd;\r\n x.e = e;\r\n x = divide(x, y, sd, rm, 0, base);\r\n xd = x.d;\r\n e = x.e;\r\n roundUp = inexact;\r\n }\r\n\r\n // The rounding digit, i.e. the digit after the digit that may be rounded up.\r\n i = xd[sd];\r\n k = base / 2;\r\n roundUp = roundUp || xd[sd + 1] !== void 0;\r\n\r\n roundUp = rm < 4\r\n ? (i !== void 0 || roundUp) && (rm === 0 || rm === (x.s < 0 ? 3 : 2))\r\n : i > k || i === k && (rm === 4 || roundUp || rm === 6 && xd[sd - 1] & 1 ||\r\n rm === (x.s < 0 ? 8 : 7));\r\n\r\n xd.length = sd;\r\n\r\n if (roundUp) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (; ++xd[--sd] > base - 1;) {\r\n xd[sd] = 0;\r\n if (!sd) {\r\n ++e;\r\n xd.unshift(1);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (len = xd.length; !xd[len - 1]; --len);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i < len; i++) str += NUMERALS.charAt(xd[i]);\r\n\r\n // Add binary exponent suffix?\r\n if (isExp) {\r\n if (len > 1) {\r\n if (baseOut == 16 || baseOut == 8) {\r\n i = baseOut == 16 ? 4 : 3;\r\n for (--len; len % i; len++) str += '0';\r\n xd = convertBase(str, base, baseOut);\r\n for (len = xd.length; !xd[len - 1]; --len);\r\n\r\n // xd[0] will always be be 1\r\n for (i = 1, str = '1.'; i < len; i++) str += NUMERALS.charAt(xd[i]);\r\n } else {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n }\r\n\r\n str = str + (e < 0 ? 'p' : 'p+') + e;\r\n } else if (e < 0) {\r\n for (; ++e;) str = '0' + str;\r\n str = '0.' + str;\r\n } else {\r\n if (++e > len) for (e -= len; e-- ;) str += '0';\r\n else if (e < len) str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n str = (baseOut == 16 ? '0x' : baseOut == 2 ? '0b' : baseOut == 8 ? '0o' : '') + str;\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Does not strip trailing zeros.\r\n function truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n }\r\n\r\n\r\n // Decimal methods\r\n\r\n\r\n /*\r\n * abs\r\n * acos\r\n * acosh\r\n * add\r\n * asin\r\n * asinh\r\n * atan\r\n * atanh\r\n * atan2\r\n * cbrt\r\n * ceil\r\n * clone\r\n * config\r\n * cos\r\n * cosh\r\n * div\r\n * exp\r\n * floor\r\n * hypot\r\n * ln\r\n * log\r\n * log2\r\n * log10\r\n * max\r\n * min\r\n * mod\r\n * mul\r\n * pow\r\n * random\r\n * round\r\n * set\r\n * sign\r\n * sin\r\n * sinh\r\n * sqrt\r\n * sub\r\n * tan\r\n * tanh\r\n * trunc\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of `x`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function abs(x) {\r\n return new this(x).abs();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arccosine in radians of `x`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function acos(x) {\r\n return new this(x).acos();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic cosine of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function acosh(x) {\r\n return new this(x).acosh();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the sum of `x` and `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\n function add(x, y) {\r\n return new this(x).plus(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arcsine in radians of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function asin(x) {\r\n return new this(x).asin();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic sine of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function asinh(x) {\r\n return new this(x).asinh();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arctangent in radians of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function atan(x) {\r\n return new this(x).atan();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic tangent of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function atanh(x) {\r\n return new this(x).atanh();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the arctangent in radians of `y/x` in the range -pi to pi\r\n * (inclusive), rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi, pi]\r\n *\r\n * y {number|string|Decimal} The y-coordinate.\r\n * x {number|string|Decimal} The x-coordinate.\r\n *\r\n * atan2(±0, -0) = ±pi\r\n * atan2(±0, +0) = ±0\r\n * atan2(±0, -x) = ±pi for x > 0\r\n * atan2(±0, x) = ±0 for x > 0\r\n * atan2(-y, ±0) = -pi/2 for y > 0\r\n * atan2(y, ±0) = pi/2 for y > 0\r\n * atan2(±y, -Infinity) = ±pi for finite y > 0\r\n * atan2(±y, +Infinity) = ±0 for finite y > 0\r\n * atan2(±Infinity, x) = ±pi/2 for finite x\r\n * atan2(±Infinity, -Infinity) = ±3*pi/4\r\n * atan2(±Infinity, +Infinity) = ±pi/4\r\n * atan2(NaN, x) = NaN\r\n * atan2(y, NaN) = NaN\r\n *\r\n */\r\n function atan2(y, x) {\r\n y = new this(y);\r\n x = new this(x);\r\n var r,\r\n pr = this.precision,\r\n rm = this.rounding,\r\n wpr = pr + 4;\r\n\r\n // Either NaN\r\n if (!y.s || !x.s) {\r\n r = new this(NaN);\r\n\r\n // Both ±Infinity\r\n } else if (!y.d && !x.d) {\r\n r = getPi(this, wpr, 1).times(x.s > 0 ? 0.25 : 0.75);\r\n r.s = y.s;\r\n\r\n // x is ±Infinity or y is ±0\r\n } else if (!x.d || y.isZero()) {\r\n r = x.s < 0 ? getPi(this, pr, rm) : new this(0);\r\n r.s = y.s;\r\n\r\n // y is ±Infinity or x is ±0\r\n } else if (!y.d || x.isZero()) {\r\n r = getPi(this, wpr, 1).times(0.5);\r\n r.s = y.s;\r\n\r\n // Both non-zero and finite\r\n } else if (x.s < 0) {\r\n this.precision = wpr;\r\n this.rounding = 1;\r\n r = this.atan(divide(y, x, wpr, 1));\r\n x = getPi(this, wpr, 1);\r\n this.precision = pr;\r\n this.rounding = rm;\r\n r = y.s < 0 ? r.minus(x) : r.plus(x);\r\n } else {\r\n r = this.atan(divide(y, x, wpr, 1));\r\n }\r\n\r\n return r;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the cube root of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function cbrt(x) {\r\n return new this(x).cbrt();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` rounded to an integer using `ROUND_CEIL`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function ceil(x) {\r\n return finalise(x = new this(x), x.e + 1, 2);\r\n }\r\n\r\n\r\n /*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n * maxE {number}\r\n * minE {number}\r\n * modulo {number}\r\n * crypto {boolean|number}\r\n * defaults {true}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\n function config(obj) {\r\n if (!obj || typeof obj !== 'object') throw Error(decimalError + 'Object expected');\r\n var i, p, v,\r\n useDefaults = obj.defaults === true,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -EXP_LIMIT, 0,\r\n 'toExpPos', 0, EXP_LIMIT,\r\n 'maxE', 0, EXP_LIMIT,\r\n 'minE', -EXP_LIMIT, 0,\r\n 'modulo', 0, 9\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if (p = ps[i], useDefaults) this[p] = DEFAULTS[p];\r\n if ((v = obj[p]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if (p = 'crypto', useDefaults) this[p] = DEFAULTS[p];\r\n if ((v = obj[p]) !== void 0) {\r\n if (v === true || v === false || v === 0 || v === 1) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n this[p] = true;\r\n } else {\r\n throw Error(cryptoUnavailable);\r\n }\r\n } else {\r\n this[p] = false;\r\n }\r\n } else {\r\n throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the cosine of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function cos(x) {\r\n return new this(x).cos();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic cosine of `x`, rounded to precision\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function cosh(x) {\r\n return new this(x).cosh();\r\n }\r\n\r\n\r\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\n function clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * v {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(v) {\r\n var e, i, t,\r\n x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(v);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (v instanceof Decimal) {\r\n x.s = v.s;\r\n\r\n if (external) {\r\n if (!v.d || v.e > Decimal.maxE) {\r\n\r\n // Infinity.\r\n x.e = NaN;\r\n x.d = null;\r\n } else if (v.e < Decimal.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n } else {\r\n x.e = v.e;\r\n x.d = v.d.slice();\r\n }\r\n } else {\r\n x.e = v.e;\r\n x.d = v.d ? v.d.slice() : v.d;\r\n }\r\n\r\n return;\r\n }\r\n\r\n t = typeof v;\r\n\r\n if (t === 'number') {\r\n if (v === 0) {\r\n x.s = 1 / v < 0 ? -1 : 1;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n if (v < 0) {\r\n v = -v;\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (v === ~~v && v < 1e7) {\r\n for (e = 0, i = v; i >= 10; i /= 10) e++;\r\n\r\n if (external) {\r\n if (e > Decimal.maxE) {\r\n x.e = NaN;\r\n x.d = null;\r\n } else if (e < Decimal.minE) {\r\n x.e = 0;\r\n x.d = [0];\r\n } else {\r\n x.e = e;\r\n x.d = [v];\r\n }\r\n } else {\r\n x.e = e;\r\n x.d = [v];\r\n }\r\n\r\n return;\r\n\r\n // Infinity, NaN.\r\n } else if (v * 0 !== 0) {\r\n if (!v) x.s = NaN;\r\n x.e = NaN;\r\n x.d = null;\r\n return;\r\n }\r\n\r\n return parseDecimal(x, v.toString());\r\n\r\n } else if (t !== 'string') {\r\n throw Error(invalidArgument + v);\r\n }\r\n\r\n // Minus sign?\r\n if ((i = v.charCodeAt(0)) === 45) {\r\n v = v.slice(1);\r\n x.s = -1;\r\n } else {\r\n // Plus sign?\r\n if (i === 43) v = v.slice(1);\r\n x.s = 1;\r\n }\r\n\r\n return isDecimal.test(v) ? parseDecimal(x, v) : parseOther(x, v);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n Decimal.EUCLID = 9;\r\n\r\n Decimal.config = Decimal.set = config;\r\n Decimal.clone = clone;\r\n Decimal.isDecimal = isDecimalInstance;\r\n\r\n Decimal.abs = abs;\r\n Decimal.acos = acos;\r\n Decimal.acosh = acosh; // ES6\r\n Decimal.add = add;\r\n Decimal.asin = asin;\r\n Decimal.asinh = asinh; // ES6\r\n Decimal.atan = atan;\r\n Decimal.atanh = atanh; // ES6\r\n Decimal.atan2 = atan2;\r\n Decimal.cbrt = cbrt; // ES6\r\n Decimal.ceil = ceil;\r\n Decimal.cos = cos;\r\n Decimal.cosh = cosh; // ES6\r\n Decimal.div = div;\r\n Decimal.exp = exp;\r\n Decimal.floor = floor;\r\n Decimal.hypot = hypot; // ES6\r\n Decimal.ln = ln;\r\n Decimal.log = log;\r\n Decimal.log10 = log10; // ES6\r\n Decimal.log2 = log2; // ES6\r\n Decimal.max = max;\r\n Decimal.min = min;\r\n Decimal.mod = mod;\r\n Decimal.mul = mul;\r\n Decimal.pow = pow;\r\n Decimal.random = random;\r\n Decimal.round = round;\r\n Decimal.sign = sign; // ES6\r\n Decimal.sin = sin;\r\n Decimal.sinh = sinh; // ES6\r\n Decimal.sqrt = sqrt;\r\n Decimal.sub = sub;\r\n Decimal.tan = tan;\r\n Decimal.tanh = tanh; // ES6\r\n Decimal.trunc = trunc; // ES6\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n if (obj.defaults !== true) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'maxE', 'minE', 'modulo', 'crypto'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` divided by `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\n function div(x, y) {\r\n return new this(x).div(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} The power to which to raise the base of the natural log.\r\n *\r\n */\r\n function exp(x) {\r\n return new this(x).exp();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` round to an integer using `ROUND_FLOOR`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function floor(x) {\r\n return finalise(x = new this(x), x.e + 1, 3);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of the sum of the squares of the arguments,\r\n * rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * hypot(a, b, ...) = sqrt(a^2 + b^2 + ...)\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\n function hypot() {\r\n var i, n,\r\n t = new this(0);\r\n\r\n external = false;\r\n\r\n for (i = 0; i < arguments.length;) {\r\n n = new this(arguments[i++]);\r\n if (!n.d) {\r\n if (n.s) {\r\n external = true;\r\n return new this(1 / 0);\r\n }\r\n t = n;\r\n } else if (t.d) {\r\n t = t.plus(n.times(n));\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return t.sqrt();\r\n }\r\n\r\n\r\n /*\r\n * Return true if object is a Decimal instance (where Decimal is any Decimal constructor),\r\n * otherwise return false.\r\n *\r\n */\r\n function isDecimalInstance(obj) {\r\n return obj instanceof Decimal || obj && obj.name === '[object Decimal]' || false;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function ln(x) {\r\n return new this(x).ln();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the log of `x` to the base `y`, or to base 10 if no base\r\n * is specified, rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * log[y](x)\r\n *\r\n * x {number|string|Decimal} The argument of the logarithm.\r\n * y {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n function log(x, y) {\r\n return new this(x).log(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the base 2 logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function log2(x) {\r\n return new this(x).log(2);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the base 10 logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function log10(x) {\r\n return new this(x).log(10);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\n function max() {\r\n return maxOrMin(this, arguments, 'lt');\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|Decimal}\r\n *\r\n */\r\n function min() {\r\n return maxOrMin(this, arguments, 'gt');\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` modulo `y`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\n function mod(x, y) {\r\n return new this(x).mod(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` multiplied by `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\n function mul(x, y) {\r\n return new this(x).mul(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` raised to the power `y`, rounded to precision\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} The base.\r\n * y {number|string|Decimal} The exponent.\r\n *\r\n */\r\n function pow(x, y) {\r\n return new this(x).pow(y);\r\n }\r\n\r\n\r\n /*\r\n * Returns a new Decimal with a random value equal to or greater than 0 and less than 1, and with\r\n * `sd`, or `Decimal.precision` if `sd` is omitted, significant digits (or less if trailing zeros\r\n * are produced).\r\n *\r\n * [sd] {number} Significant digits. Integer, 0 to MAX_DIGITS inclusive.\r\n *\r\n */\r\n function random(sd) {\r\n var d, e, k, n,\r\n i = 0,\r\n r = new this(1),\r\n rd = [];\r\n\r\n if (sd === void 0) sd = this.precision;\r\n else checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n k = Math.ceil(sd / LOG_BASE);\r\n\r\n if (!this.crypto) {\r\n for (; i < k;) rd[i++] = Math.random() * 1e7 | 0;\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n } else if (crypto.getRandomValues) {\r\n d = crypto.getRandomValues(new Uint32Array(k));\r\n\r\n for (; i < k;) {\r\n n = d[i];\r\n\r\n // 0 <= n < 4294967296\r\n // Probability n >= 4.29e9, is 4967296 / 4294967296 = 0.00116 (1 in 865).\r\n if (n >= 4.29e9) {\r\n d[i] = crypto.getRandomValues(new Uint32Array(1))[0];\r\n } else {\r\n\r\n // 0 <= n <= 4289999999\r\n // 0 <= (n % 1e7) <= 9999999\r\n rd[i++] = n % 1e7;\r\n }\r\n }\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n d = crypto.randomBytes(k *= 4);\r\n\r\n for (; i < k;) {\r\n\r\n // 0 <= n < 2147483648\r\n n = d[i] + (d[i + 1] << 8) + (d[i + 2] << 16) + ((d[i + 3] & 0x7f) << 24);\r\n\r\n // Probability n >= 2.14e9, is 7483648 / 2147483648 = 0.0035 (1 in 286).\r\n if (n >= 2.14e9) {\r\n crypto.randomBytes(4).copy(d, i);\r\n } else {\r\n\r\n // 0 <= n <= 2139999999\r\n // 0 <= (n % 1e7) <= 9999999\r\n rd.push(n % 1e7);\r\n i += 4;\r\n }\r\n }\r\n\r\n i = k / 4;\r\n } else {\r\n throw Error(cryptoUnavailable);\r\n }\r\n\r\n k = rd[--i];\r\n sd %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to sd.\r\n if (k && sd) {\r\n n = mathpow(10, LOG_BASE - sd);\r\n rd[i] = (k / n | 0) * n;\r\n }\r\n\r\n // Remove trailing words which are zero.\r\n for (; rd[i] === 0; i--) rd.pop();\r\n\r\n // Zero?\r\n if (i < 0) {\r\n e = 0;\r\n rd = [0];\r\n } else {\r\n e = -1;\r\n\r\n // Remove leading words which are zero and adjust exponent accordingly.\r\n for (; rd[0] === 0; e -= LOG_BASE) rd.shift();\r\n\r\n // Count the digits of the first word of rd to determine leading zeros.\r\n for (k = 1, n = rd[0]; n >= 10; n /= 10) k++;\r\n\r\n // Adjust the exponent for leading zeros of the first word of rd.\r\n if (k < LOG_BASE) e -= LOG_BASE - k;\r\n }\r\n\r\n r.e = e;\r\n r.d = rd;\r\n\r\n return r;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` rounded to an integer using rounding mode `rounding`.\r\n *\r\n * To emulate `Math.round`, set rounding to 7 (ROUND_HALF_CEIL).\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function round(x) {\r\n return finalise(x = new this(x), x.e + 1, this.rounding);\r\n }\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if x > 0,\r\n * -1 if x < 0,\r\n * 0 if x is 0,\r\n * -0 if x is -0,\r\n * NaN otherwise\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function sign(x) {\r\n x = new this(x);\r\n return x.d ? (x.d[0] ? x.s : 0 * x.s) : x.s || NaN;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the sine of `x`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function sin(x) {\r\n return new this(x).sin();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic sine of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function sinh(x) {\r\n return new this(x).sinh();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function sqrt(x) {\r\n return new this(x).sqrt();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` minus `y`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal}\r\n * y {number|string|Decimal}\r\n *\r\n */\r\n function sub(x, y) {\r\n return new this(x).sub(y);\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the tangent of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function tan(x) {\r\n return new this(x).tan();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the hyperbolic tangent of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|Decimal} A value in radians.\r\n *\r\n */\r\n function tanh(x) {\r\n return new this(x).tanh();\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is `x` truncated to an integer.\r\n *\r\n * x {number|string|Decimal}\r\n *\r\n */\r\n function trunc(x) {\r\n return finalise(x = new this(x), x.e + 1, 1);\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(DEFAULTS);\r\n\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Create the internal constants from their string values.\r\n LN10 = new Decimal(LN10);\r\n PI = new Decimal(PI);\r\n\r\n\r\n // Export.\r\n\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () {\r\n return Decimal;\r\n });\r\n\r\n // Node and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n if (typeof Symbol == 'function' && typeof Symbol.iterator == 'symbol') {\r\n P[Symbol.for('nodejs.util.inspect.custom')] = P.toString;\r\n P[Symbol.toStringTag] = 'Decimal';\r\n }\r\n\r\n module.exports = Decimal;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalScope) {\r\n globalScope = typeof self != 'undefined' && self && self.self == self ? self : window;\r\n }\r\n\r\n noConflict = globalScope.Decimal;\r\n Decimal.noConflict = function () {\r\n globalScope.Decimal = noConflict;\r\n return Decimal;\r\n };\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n","import Decimal from \"decimal.js\";\nimport { DateRange } from \"./date_range\";\n\ntype BaseProduct = {\n SKU: string;\n name: string;\n description: string;\n category?: string;\n gratuity?: boolean;\n};\n\ntype TokenProduct = BaseProduct & {\n fees: TokenFee[];\n fee_label?: string;\n options?: TokenOption[];\n shipping?: string;\n no_shipping?: boolean;\n lead_time?: number;\n availability?: DateRange[];\n};\n\nexport type Product = BaseProduct & {\n token: string;\n fees: Fee[];\n feeLabel?: string;\n options?: Option[];\n shipping?: Decimal;\n noShipping: boolean;\n leadTime?: number;\n availability?: DateRange[];\n};\n\nexport type TokenOption = {\n SKU: string;\n name: string;\n fees?: TokenFee[];\n};\n\ntype TokenFee = {\n description: string;\n price: string;\n tax: string;\n hidden?: boolean;\n};\n\nexport type Fee = {\n description: string;\n price: Decimal;\n tax?: Decimal;\n hidden?: boolean;\n};\n\nexport type Option = {\n SKU: string;\n name: string;\n fees?: Fee[];\n};\n\n// productFromToken returns a product structure loaded from a token. A token encodes\n// product details for inclusion on a page.\nexport function productFromToken(token: string): Product {\n const product = JSON.parse(atob(token).slice(32)) as TokenProduct;\n return {\n token: token,\n SKU: product.SKU,\n name: product.name,\n description: product.description,\n options: product.options?.map((option) => optionFromToken(option)),\n fees: product.fees.map((fee) => feeFromTokenFee(fee)),\n feeLabel: product.fee_label,\n shipping: product.shipping ? new Decimal(product.shipping) : undefined,\n noShipping: product.no_shipping || false,\n gratuity: product.gratuity || false,\n leadTime: product.lead_time,\n availability: product.availability,\n };\n}\n\n// optionFromToken returns an Option structure from the serialized token option.\nexport function optionFromToken(option: TokenOption): Option {\n return {\n ...option,\n fees: option.fees?.map((fee) => feeFromTokenFee(fee)),\n };\n}\n\n// feeFromTokenFee returns a Fee structure from the serialized fee.\nfunction feeFromTokenFee(fee: TokenFee): Fee {\n return {\n description: fee.description,\n price: new Decimal(fee.price),\n tax: fee.tax !== \"0\" ? new Decimal(fee.tax) : undefined,\n hidden: fee.hidden,\n };\n}\n\n// visibleFeeSubtotal returns the price of the product, taxes and hidden fees excluded. Hidden fees may include fees\n// such as deposits. This function is intended for showing the initial price before adding to the cart.\nexport function visibleFeeSubtotal(fees: Fee[]): Decimal {\n let sum = new Decimal(0);\n for (const fee of fees) {\n if (fee.hidden) {\n continue;\n }\n sum = sum.add(fee.price);\n }\n return sum;\n}\n\n// productSubtotal returns the price of the product, taxes excluded.\nexport function feeSubtotal(fees: Fee[]): Decimal {\n let sum = new Decimal(0);\n for (const fee of fees) {\n sum = sum.add(fee.price);\n }\n return sum;\n}\n\n// productTax returns the tax owing for the product.\nexport function feeTax(fees: Fee[]): Decimal {\n let sum = new Decimal(0);\n for (const fee of fees) {\n if (fee.tax) {\n sum = sum.add(fee.price.mul(fee.tax));\n }\n }\n return sum;\n}\n\n// productSubtotal returns the price of the product including taxes.\nexport function feeTotal(fees: Fee[]): Decimal {\n return feeSubtotal(fees).add(feeTax(fees));\n}\n","import { Decimal } from \"decimal.js\";\n\n// formatAmount returns the amount as a currency.\nexport function formatAmount(amount: Decimal): string {\n return `$${amount.toFixed(2)}`;\n}\n","import * as React from \"react\";\n\nimport { Option, Product, visibleFeeSubtotal } from \"../../models/product\";\nimport { formatAmount } from \"../../util/currency\";\n\ninterface AddButtonProps {\n product: Product;\n option?: Option;\n onChangeOption(option: Option): void;\n onClick(): void;\n}\n\n// ButtonState identifies the possible states a button may be in.\nexport enum ButtonState {\n Normal,\n Added,\n}\n\n// AddButton adds an add to cart button.\nexport function AddButton({ product, onChangeOption, onClick }: AddButtonProps): JSX.Element {\n const [state, setState] = React.useState(ButtonState.Normal);\n\n function onHandleOptionChange(event: React.ChangeEvent) {\n const option = product.options?.find((option) => option.SKU === event.target.value);\n if (option) {\n onChangeOption(option);\n }\n }\n\n function onHandleClick() {\n if (state === ButtonState.Added) {\n return;\n }\n setState(ButtonState.Added);\n onClick();\n }\n\n React.useEffect(() => {\n if (state === ButtonState.Added) {\n const timer = setTimeout(() => setState(ButtonState.Normal), 1000);\n return () => clearTimeout(timer);\n }\n }, [state]);\n\n return (\n <>\n {product.options && (\n

\n )}\n \n \n );\n}\n\ninterface ButtonLabelProps {\n product: Product;\n option?: Option;\n state: ButtonState;\n}\n\n// ButtonLabel renders the button label for the supplied product.\nfunction ButtonLabel({ product, option, state }: ButtonLabelProps): JSX.Element {\n if (state === ButtonState.Added) {\n return <>Added...;\n }\n if (product.feeLabel) {\n return (\n \n \n {product.feeLabel}\n \n );\n }\n\n const fees = option?.fees || product.fees;\n return (\n \n {formatAmount(visibleFeeSubtotal(fees))}{\" \"}\n ea.\n \n );\n}\n","import Decimal from \"decimal.js\";\n\nimport { defaultShipAmount } from \"./order\";\nimport { Fee, Option, Product, feeSubtotal, feeTax, feeTotal } from \"./product\";\n\n// OrderItem identifies an item selected to be purchased.\nexport type OrderItem = {\n product: Product;\n option?: Option;\n quantity: number;\n instructions?: string;\n};\n\n// itemFees returns the fees applicable to the order item. A product option fee set is used, when available, otherwise\n// the product fees are applied.\nexport function itemFees(item: OrderItem): Fee[] {\n if (item.option && item.option.fees && item.option.fees.length > 0) {\n return item.option.fees;\n }\n return item.product.fees;\n}\n\n// subtotal returns the price of the order item.\nexport function itemSubtotal(item: OrderItem): Decimal {\n const fees = itemFees(item);\n return feeSubtotal(fees).mul(item.quantity);\n}\n\n// itemShipping returns the shipping cost for the item.\nexport function itemShipping(item: OrderItem): Decimal {\n if (!item.product.shipping) {\n return defaultShipAmount;\n }\n return item.product.shipping;\n}\n\n// itemTax returns the tax due for the order item.\nexport function itemTax(item: OrderItem): Decimal {\n const fees = itemFees(item);\n return feeTax(fees).mul(item.quantity);\n}\n\n// subtotal returns the price of the order item with taxes.\nexport function itemTotal(item: OrderItem): Decimal {\n const fees = itemFees(item);\n return feeTotal(fees).mul(item.quantity);\n}\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long.default(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n","module.exports = Long;\r\n\r\n/**\r\n * wasm optimizations, to do native i64 multiplication and divide\r\n */\r\nvar wasm = null;\r\n\r\ntry {\r\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\r\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11\r\n ])), {}).exports;\r\n} catch (e) {\r\n // no wasm support :(\r\n}\r\n\r\n/**\r\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\r\n * See the from* functions below for more convenient ways of constructing Longs.\r\n * @exports Long\r\n * @class A Long class for representing a 64 bit two's-complement integer value.\r\n * @param {number} low The low (signed) 32 bits of the long\r\n * @param {number} high The high (signed) 32 bits of the long\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @constructor\r\n */\r\nfunction Long(low, high, unsigned) {\r\n\r\n /**\r\n * The low 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.low = low | 0;\r\n\r\n /**\r\n * The high 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.high = high | 0;\r\n\r\n /**\r\n * Whether unsigned or not.\r\n * @type {boolean}\r\n */\r\n this.unsigned = !!unsigned;\r\n}\r\n\r\n// The internal representation of a long is the two given signed, 32-bit values.\r\n// We use 32-bit pieces because these are the size of integers on which\r\n// Javascript performs bit-operations. For operations like addition and\r\n// multiplication, we split each number into 16 bit pieces, which can easily be\r\n// multiplied within Javascript's floating-point representation without overflow\r\n// or change in sign.\r\n//\r\n// In the algorithms below, we frequently reduce the negative case to the\r\n// positive case by negating the input(s) and then post-processing the result.\r\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\r\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\r\n// a positive number, it overflows back into a negative). Not handling this\r\n// case would often result in infinite recursion.\r\n//\r\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\r\n// methods on which they depend.\r\n\r\n/**\r\n * An indicator used to reliably determine if an object is a Long or not.\r\n * @type {boolean}\r\n * @const\r\n * @private\r\n */\r\nLong.prototype.__isLong__;\r\n\r\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\r\n\r\n/**\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n * @inner\r\n */\r\nfunction isLong(obj) {\r\n return (obj && obj[\"__isLong__\"]) === true;\r\n}\r\n\r\n/**\r\n * Tests if the specified object is a Long.\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n */\r\nLong.isLong = isLong;\r\n\r\n/**\r\n * A cache of the Long representations of small integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar INT_CACHE = {};\r\n\r\n/**\r\n * A cache of the Long representations of small unsigned integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar UINT_CACHE = {};\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromInt(value, unsigned) {\r\n var obj, cachedObj, cache;\r\n if (unsigned) {\r\n value >>>= 0;\r\n if (cache = (0 <= value && value < 256)) {\r\n cachedObj = UINT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\r\n if (cache)\r\n UINT_CACHE[value] = obj;\r\n return obj;\r\n } else {\r\n value |= 0;\r\n if (cache = (-128 <= value && value < 128)) {\r\n cachedObj = INT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, value < 0 ? -1 : 0, false);\r\n if (cache)\r\n INT_CACHE[value] = obj;\r\n return obj;\r\n }\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given 32 bit integer value.\r\n * @function\r\n * @param {number} value The 32 bit integer in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromInt = fromInt;\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromNumber(value, unsigned) {\r\n if (isNaN(value))\r\n return unsigned ? UZERO : ZERO;\r\n if (unsigned) {\r\n if (value < 0)\r\n return UZERO;\r\n if (value >= TWO_PWR_64_DBL)\r\n return MAX_UNSIGNED_VALUE;\r\n } else {\r\n if (value <= -TWO_PWR_63_DBL)\r\n return MIN_VALUE;\r\n if (value + 1 >= TWO_PWR_63_DBL)\r\n return MAX_VALUE;\r\n }\r\n if (value < 0)\r\n return fromNumber(-value, unsigned).neg();\r\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\r\n * @function\r\n * @param {number} value The number in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromNumber = fromNumber;\r\n\r\n/**\r\n * @param {number} lowBits\r\n * @param {number} highBits\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromBits(lowBits, highBits, unsigned) {\r\n return new Long(lowBits, highBits, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\r\n * assumed to use 32 bits.\r\n * @function\r\n * @param {number} lowBits The low 32 bits\r\n * @param {number} highBits The high 32 bits\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromBits = fromBits;\r\n\r\n/**\r\n * @function\r\n * @param {number} base\r\n * @param {number} exponent\r\n * @returns {number}\r\n * @inner\r\n */\r\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\r\n\r\n/**\r\n * @param {string} str\r\n * @param {(boolean|number)=} unsigned\r\n * @param {number=} radix\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromString(str, unsigned, radix) {\r\n if (str.length === 0)\r\n throw Error('empty string');\r\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\r\n return ZERO;\r\n if (typeof unsigned === 'number') {\r\n // For goog.math.long compatibility\r\n radix = unsigned,\r\n unsigned = false;\r\n } else {\r\n unsigned = !! unsigned;\r\n }\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n\r\n var p;\r\n if ((p = str.indexOf('-')) > 0)\r\n throw Error('interior hyphen');\r\n else if (p === 0) {\r\n return fromString(str.substring(1), unsigned, radix).neg();\r\n }\r\n\r\n // Do several (8) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 8));\r\n\r\n var result = ZERO;\r\n for (var i = 0; i < str.length; i += 8) {\r\n var size = Math.min(8, str.length - i),\r\n value = parseInt(str.substring(i, i + size), radix);\r\n if (size < 8) {\r\n var power = fromNumber(pow_dbl(radix, size));\r\n result = result.mul(power).add(fromNumber(value));\r\n } else {\r\n result = result.mul(radixToPower);\r\n result = result.add(fromNumber(value));\r\n }\r\n }\r\n result.unsigned = unsigned;\r\n return result;\r\n}\r\n\r\n/**\r\n * Returns a Long representation of the given string, written using the specified radix.\r\n * @function\r\n * @param {string} str The textual representation of the Long\r\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromString = fromString;\r\n\r\n/**\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromValue(val, unsigned) {\r\n if (typeof val === 'number')\r\n return fromNumber(val, unsigned);\r\n if (typeof val === 'string')\r\n return fromString(val, unsigned);\r\n // Throws for non-objects, converts non-instanceof Long:\r\n return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\r\n}\r\n\r\n/**\r\n * Converts the specified value to a Long using the appropriate from* function for its type.\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long}\r\n */\r\nLong.fromValue = fromValue;\r\n\r\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\r\n// no runtime penalty for these.\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_16_DBL = 1 << 16;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24_DBL = 1 << 24;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\r\n\r\n/**\r\n * @type {!Long}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ZERO = fromInt(0);\r\n\r\n/**\r\n * Signed zero.\r\n * @type {!Long}\r\n */\r\nLong.ZERO = ZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UZERO = fromInt(0, true);\r\n\r\n/**\r\n * Unsigned zero.\r\n * @type {!Long}\r\n */\r\nLong.UZERO = UZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ONE = fromInt(1);\r\n\r\n/**\r\n * Signed one.\r\n * @type {!Long}\r\n */\r\nLong.ONE = ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UONE = fromInt(1, true);\r\n\r\n/**\r\n * Unsigned one.\r\n * @type {!Long}\r\n */\r\nLong.UONE = UONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar NEG_ONE = fromInt(-1);\r\n\r\n/**\r\n * Signed negative one.\r\n * @type {!Long}\r\n */\r\nLong.NEG_ONE = NEG_ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_VALUE = fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false);\r\n\r\n/**\r\n * Maximum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_VALUE = MAX_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true);\r\n\r\n/**\r\n * Maximum unsigned value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MIN_VALUE = fromBits(0, 0x80000000|0, false);\r\n\r\n/**\r\n * Minimum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MIN_VALUE = MIN_VALUE;\r\n\r\n/**\r\n * @alias Long.prototype\r\n * @inner\r\n */\r\nvar LongPrototype = Long.prototype;\r\n\r\n/**\r\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\r\n * @returns {number}\r\n */\r\nLongPrototype.toInt = function toInt() {\r\n return this.unsigned ? this.low >>> 0 : this.low;\r\n};\r\n\r\n/**\r\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\r\n * @returns {number}\r\n */\r\nLongPrototype.toNumber = function toNumber() {\r\n if (this.unsigned)\r\n return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\r\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\r\n};\r\n\r\n/**\r\n * Converts the Long to a string written in the specified radix.\r\n * @param {number=} radix Radix (2-36), defaults to 10\r\n * @returns {string}\r\n * @override\r\n * @throws {RangeError} If `radix` is out of range\r\n */\r\nLongPrototype.toString = function toString(radix) {\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n if (this.isZero())\r\n return '0';\r\n if (this.isNegative()) { // Unsigned Longs are never negative\r\n if (this.eq(MIN_VALUE)) {\r\n // We need to change the Long value before it can be negated, so we remove\r\n // the bottom-most digit in this base and then recurse to do the rest.\r\n var radixLong = fromNumber(radix),\r\n div = this.div(radixLong),\r\n rem1 = div.mul(radixLong).sub(this);\r\n return div.toString(radix) + rem1.toInt().toString(radix);\r\n } else\r\n return '-' + this.neg().toString(radix);\r\n }\r\n\r\n // Do several (6) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\r\n rem = this;\r\n var result = '';\r\n while (true) {\r\n var remDiv = rem.div(radixToPower),\r\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\r\n digits = intval.toString(radix);\r\n rem = remDiv;\r\n if (rem.isZero())\r\n return digits + result;\r\n else {\r\n while (digits.length < 6)\r\n digits = '0' + digits;\r\n result = '' + digits + result;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as a signed integer.\r\n * @returns {number} Signed high bits\r\n */\r\nLongPrototype.getHighBits = function getHighBits() {\r\n return this.high;\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned high bits\r\n */\r\nLongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\r\n return this.high >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as a signed integer.\r\n * @returns {number} Signed low bits\r\n */\r\nLongPrototype.getLowBits = function getLowBits() {\r\n return this.low;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned low bits\r\n */\r\nLongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\r\n return this.low >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the number of bits needed to represent the absolute value of this Long.\r\n * @returns {number}\r\n */\r\nLongPrototype.getNumBitsAbs = function getNumBitsAbs() {\r\n if (this.isNegative()) // Unsigned Longs are never negative\r\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\r\n var val = this.high != 0 ? this.high : this.low;\r\n for (var bit = 31; bit > 0; bit--)\r\n if ((val & (1 << bit)) != 0)\r\n break;\r\n return this.high != 0 ? bit + 33 : bit + 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isZero = function isZero() {\r\n return this.high === 0 && this.low === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eqz = LongPrototype.isZero;\r\n\r\n/**\r\n * Tests if this Long's value is negative.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isNegative = function isNegative() {\r\n return !this.unsigned && this.high < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is positive.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isPositive = function isPositive() {\r\n return this.unsigned || this.high >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is odd.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isOdd = function isOdd() {\r\n return (this.low & 1) === 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is even.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isEven = function isEven() {\r\n return (this.low & 1) === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.equals = function equals(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\r\n return false;\r\n return this.high === other.high && this.low === other.low;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eq = LongPrototype.equals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.notEquals = function notEquals(other) {\r\n return !this.eq(/* validates */ other);\r\n};\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.neq = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ne = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThan = function lessThan(other) {\r\n return this.comp(/* validates */ other) < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lt = LongPrototype.lessThan;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\r\n return this.comp(/* validates */ other) <= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lte = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.le = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThan = function greaterThan(other) {\r\n return this.comp(/* validates */ other) > 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gt = LongPrototype.greaterThan;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\r\n return this.comp(/* validates */ other) >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gte = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ge = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Compares this Long's value with the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.compare = function compare(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.eq(other))\r\n return 0;\r\n var thisNeg = this.isNegative(),\r\n otherNeg = other.isNegative();\r\n if (thisNeg && !otherNeg)\r\n return -1;\r\n if (!thisNeg && otherNeg)\r\n return 1;\r\n // At this point the sign bits are the same\r\n if (!this.unsigned)\r\n return this.sub(other).isNegative() ? -1 : 1;\r\n // Both are positive if at least one is unsigned\r\n return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\r\n};\r\n\r\n/**\r\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.comp = LongPrototype.compare;\r\n\r\n/**\r\n * Negates this Long's value.\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.negate = function negate() {\r\n if (!this.unsigned && this.eq(MIN_VALUE))\r\n return MIN_VALUE;\r\n return this.not().add(ONE);\r\n};\r\n\r\n/**\r\n * Negates this Long's value. This is an alias of {@link Long#negate}.\r\n * @function\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.neg = LongPrototype.negate;\r\n\r\n/**\r\n * Returns the sum of this and the specified Long.\r\n * @param {!Long|number|string} addend Addend\r\n * @returns {!Long} Sum\r\n */\r\nLongPrototype.add = function add(addend) {\r\n if (!isLong(addend))\r\n addend = fromValue(addend);\r\n\r\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = addend.high >>> 16;\r\n var b32 = addend.high & 0xFFFF;\r\n var b16 = addend.low >>> 16;\r\n var b00 = addend.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 + b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 + b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 + b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 + b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long.\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.subtract = function subtract(subtrahend) {\r\n if (!isLong(subtrahend))\r\n subtrahend = fromValue(subtrahend);\r\n return this.add(subtrahend.neg());\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\r\n * @function\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.sub = LongPrototype.subtract;\r\n\r\n/**\r\n * Returns the product of this and the specified Long.\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.multiply = function multiply(multiplier) {\r\n if (this.isZero())\r\n return ZERO;\r\n if (!isLong(multiplier))\r\n multiplier = fromValue(multiplier);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = wasm.mul(this.low,\r\n this.high,\r\n multiplier.low,\r\n multiplier.high);\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (multiplier.isZero())\r\n return ZERO;\r\n if (this.eq(MIN_VALUE))\r\n return multiplier.isOdd() ? MIN_VALUE : ZERO;\r\n if (multiplier.eq(MIN_VALUE))\r\n return this.isOdd() ? MIN_VALUE : ZERO;\r\n\r\n if (this.isNegative()) {\r\n if (multiplier.isNegative())\r\n return this.neg().mul(multiplier.neg());\r\n else\r\n return this.neg().mul(multiplier).neg();\r\n } else if (multiplier.isNegative())\r\n return this.mul(multiplier.neg()).neg();\r\n\r\n // If both longs are small, use float multiplication\r\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\r\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\r\n\r\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\r\n // We can skip products that would overflow.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = multiplier.high >>> 16;\r\n var b32 = multiplier.high & 0xFFFF;\r\n var b16 = multiplier.low >>> 16;\r\n var b00 = multiplier.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 * b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 * b00;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c16 += a00 * b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 * b00;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a16 * b16;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a00 * b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\r\n * @function\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.mul = LongPrototype.multiply;\r\n\r\n/**\r\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\r\n * unsigned if this Long is unsigned.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.divide = function divide(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n if (divisor.isZero())\r\n throw Error('division by zero');\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n // guard against signed division overflow: the largest\r\n // negative number / -1 would be 1 larger than the largest\r\n // positive number, due to two's complement.\r\n if (!this.unsigned &&\r\n this.high === -0x80000000 &&\r\n divisor.low === -1 && divisor.high === -1) {\r\n // be consistent with non-wasm code path\r\n return this;\r\n }\r\n var low = (this.unsigned ? wasm.div_u : wasm.div_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (this.isZero())\r\n return this.unsigned ? UZERO : ZERO;\r\n var approx, rem, res;\r\n if (!this.unsigned) {\r\n // This section is only relevant for signed longs and is derived from the\r\n // closure library as a whole.\r\n if (this.eq(MIN_VALUE)) {\r\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\r\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\r\n else if (divisor.eq(MIN_VALUE))\r\n return ONE;\r\n else {\r\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\r\n var halfThis = this.shr(1);\r\n approx = halfThis.div(divisor).shl(1);\r\n if (approx.eq(ZERO)) {\r\n return divisor.isNegative() ? ONE : NEG_ONE;\r\n } else {\r\n rem = this.sub(divisor.mul(approx));\r\n res = approx.add(rem.div(divisor));\r\n return res;\r\n }\r\n }\r\n } else if (divisor.eq(MIN_VALUE))\r\n return this.unsigned ? UZERO : ZERO;\r\n if (this.isNegative()) {\r\n if (divisor.isNegative())\r\n return this.neg().div(divisor.neg());\r\n return this.neg().div(divisor).neg();\r\n } else if (divisor.isNegative())\r\n return this.div(divisor.neg()).neg();\r\n res = ZERO;\r\n } else {\r\n // The algorithm below has not been made for unsigned longs. It's therefore\r\n // required to take special care of the MSB prior to running it.\r\n if (!divisor.unsigned)\r\n divisor = divisor.toUnsigned();\r\n if (divisor.gt(this))\r\n return UZERO;\r\n if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\r\n return UONE;\r\n res = UZERO;\r\n }\r\n\r\n // Repeat the following until the remainder is less than other: find a\r\n // floating-point that approximates remainder / other *from below*, add this\r\n // into the result, and subtract it from the remainder. It is critical that\r\n // the approximate value is less than or equal to the real value so that the\r\n // remainder never becomes negative.\r\n rem = this;\r\n while (rem.gte(divisor)) {\r\n // Approximate the result of division. This may be a little greater or\r\n // smaller than the actual value.\r\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\r\n\r\n // We will tweak the approximate result by changing it in the 48-th digit or\r\n // the smallest non-fractional digit, whichever is larger.\r\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\r\n delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),\r\n\r\n // Decrease the approximation until it is smaller than the remainder. Note\r\n // that if it is too large, the product overflows and is negative.\r\n approxRes = fromNumber(approx),\r\n approxRem = approxRes.mul(divisor);\r\n while (approxRem.isNegative() || approxRem.gt(rem)) {\r\n approx -= delta;\r\n approxRes = fromNumber(approx, this.unsigned);\r\n approxRem = approxRes.mul(divisor);\r\n }\r\n\r\n // We know the answer can't be zero... and actually, zero would cause\r\n // infinite recursion since we would make no progress.\r\n if (approxRes.isZero())\r\n approxRes = ONE;\r\n\r\n res = res.add(approxRes);\r\n rem = rem.sub(approxRem);\r\n }\r\n return res;\r\n};\r\n\r\n/**\r\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.div = LongPrototype.divide;\r\n\r\n/**\r\n * Returns this Long modulo the specified.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.modulo = function modulo(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = (this.unsigned ? wasm.rem_u : wasm.rem_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n return this.sub(this.div(divisor).mul(divisor));\r\n};\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.mod = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.rem = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns the bitwise NOT of this Long.\r\n * @returns {!Long}\r\n */\r\nLongPrototype.not = function not() {\r\n return fromBits(~this.low, ~this.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise AND of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.and = function and(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise OR of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.or = function or(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise XOR of this Long and the given one.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.xor = function xor(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftLeft = function shiftLeft(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\r\n else\r\n return fromBits(0, this.low << (numBits - 32), this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shl = LongPrototype.shiftLeft;\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRight = function shiftRight(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\r\n else\r\n return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr = LongPrototype.shiftRight;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n numBits &= 63;\r\n if (numBits === 0)\r\n return this;\r\n else {\r\n var high = this.high;\r\n if (numBits < 32) {\r\n var low = this.low;\r\n return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);\r\n } else if (numBits === 32)\r\n return fromBits(high, 0, this.unsigned);\r\n else\r\n return fromBits(high >>> (numBits - 32), 0, this.unsigned);\r\n }\r\n};\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shru = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Converts this Long to signed.\r\n * @returns {!Long} Signed long\r\n */\r\nLongPrototype.toSigned = function toSigned() {\r\n if (!this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, false);\r\n};\r\n\r\n/**\r\n * Converts this Long to unsigned.\r\n * @returns {!Long} Unsigned long\r\n */\r\nLongPrototype.toUnsigned = function toUnsigned() {\r\n if (this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, true);\r\n};\r\n\r\n/**\r\n * Converts this Long to its byte representation.\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {!Array.} Byte representation\r\n */\r\nLongPrototype.toBytes = function toBytes(le) {\r\n return le ? this.toBytesLE() : this.toBytesBE();\r\n};\r\n\r\n/**\r\n * Converts this Long to its little endian byte representation.\r\n * @returns {!Array.} Little endian byte representation\r\n */\r\nLongPrototype.toBytesLE = function toBytesLE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n lo & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo >>> 16 & 0xff,\r\n lo >>> 24 ,\r\n hi & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi >>> 16 & 0xff,\r\n hi >>> 24\r\n ];\r\n};\r\n\r\n/**\r\n * Converts this Long to its big endian byte representation.\r\n * @returns {!Array.} Big endian byte representation\r\n */\r\nLongPrototype.toBytesBE = function toBytesBE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n hi >>> 24 ,\r\n hi >>> 16 & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi & 0xff,\r\n lo >>> 24 ,\r\n lo >>> 16 & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo & 0xff\r\n ];\r\n};\r\n\r\n/**\r\n * Creates a Long from its byte representation.\r\n * @param {!Array.} bytes Byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytes = function fromBytes(bytes, unsigned, le) {\r\n return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);\r\n};\r\n\r\n/**\r\n * Creates a Long from its little endian byte representation.\r\n * @param {!Array.} bytes Little endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesLE = function fromBytesLE(bytes, unsigned) {\r\n return new Long(\r\n bytes[0] |\r\n bytes[1] << 8 |\r\n bytes[2] << 16 |\r\n bytes[3] << 24,\r\n bytes[4] |\r\n bytes[5] << 8 |\r\n bytes[6] << 16 |\r\n bytes[7] << 24,\r\n unsigned\r\n );\r\n};\r\n\r\n/**\r\n * Creates a Long from its big endian byte representation.\r\n * @param {!Array.} bytes Big endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesBE = function fromBytesBE(bytes, unsigned) {\r\n return new Long(\r\n bytes[4] << 24 |\r\n bytes[5] << 16 |\r\n bytes[6] << 8 |\r\n bytes[7],\r\n bytes[0] << 24 |\r\n bytes[1] << 16 |\r\n bytes[2] << 8 |\r\n bytes[3],\r\n unsigned\r\n );\r\n};\r\n","/* eslint-disable */\nimport * as Long from \"long\";\nimport { util, configure, Writer, Reader } from \"protobufjs/minimal\";\n\nexport const protobufPackage = \"google.protobuf\";\n\n/**\n * A Timestamp represents a point in time independent of any time zone or local\n * calendar, encoded as a count of seconds and fractions of seconds at\n * nanosecond resolution. The count is relative to an epoch at UTC midnight on\n * January 1, 1970, in the proleptic Gregorian calendar which extends the\n * Gregorian calendar backwards to year one.\n *\n * All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n * second table is needed for interpretation, using a [24-hour linear\n * smear](https://developers.google.com/time/smear).\n *\n * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n * restricting to that range, we ensure that we can convert to and from [RFC\n * 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n *\n * # Examples\n *\n * Example 1: Compute Timestamp from POSIX `time()`.\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(time(NULL));\n * timestamp.set_nanos(0);\n *\n * Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n *\n * struct timeval tv;\n * gettimeofday(&tv, NULL);\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(tv.tv_sec);\n * timestamp.set_nanos(tv.tv_usec * 1000);\n *\n * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n *\n * FILETIME ft;\n * GetSystemTimeAsFileTime(&ft);\n * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n *\n * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n * Timestamp timestamp;\n * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n *\n * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n *\n * long millis = System.currentTimeMillis();\n *\n * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n * .setNanos((int) ((millis % 1000) * 1000000)).build();\n *\n *\n * Example 5: Compute Timestamp from current time in Python.\n *\n * timestamp = Timestamp()\n * timestamp.GetCurrentTime()\n *\n * # JSON Mapping\n *\n * In JSON format, the Timestamp type is encoded as a string in the\n * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n * format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n * where {year} is always expressed using four digits while {month}, {day},\n * {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n * seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n * are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n * is required. A proto3 JSON serializer should always use UTC (as indicated by\n * \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n * able to accept both UTC and other timezones (as indicated by an offset).\n *\n * For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n * 01:30 UTC on January 15, 2017.\n *\n * In JavaScript, one can convert a Date object to this format using the\n * standard\n * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n * method. In Python, a standard `datetime.datetime` object can be converted\n * to this format using\n * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n * the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n * the Joda Time's [`ISODateTimeFormat.dateTime()`](\n * http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D\n * ) to obtain a formatter capable of generating timestamps in this format.\n */\nexport interface Timestamp {\n /**\n * Represents seconds of UTC time since Unix epoch\n * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n * 9999-12-31T23:59:59Z inclusive.\n */\n seconds: number;\n /**\n * Non-negative fractions of a second at nanosecond resolution. Negative\n * second values with fractions must still have non-negative nanos values\n * that count forward in time. Must be from 0 to 999,999,999\n * inclusive.\n */\n nanos: number;\n}\n\nconst baseTimestamp: object = { seconds: 0, nanos: 0 };\n\nexport const Timestamp = {\n encode(message: Timestamp, writer: Writer = Writer.create()): Writer {\n if (message.seconds !== 0) {\n writer.uint32(8).int64(message.seconds);\n }\n if (message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos);\n }\n return writer;\n },\n\n decode(input: Reader | Uint8Array, length?: number): Timestamp {\n const reader = input instanceof Uint8Array ? new Reader(input) : input;\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = { ...baseTimestamp } as Timestamp;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.seconds = longToNumber(reader.int64() as Long);\n break;\n case 2:\n message.nanos = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Timestamp {\n const message = { ...baseTimestamp } as Timestamp;\n if (object.seconds !== undefined && object.seconds !== null) {\n message.seconds = Number(object.seconds);\n } else {\n message.seconds = 0;\n }\n if (object.nanos !== undefined && object.nanos !== null) {\n message.nanos = Number(object.nanos);\n } else {\n message.nanos = 0;\n }\n return message;\n },\n\n toJSON(message: Timestamp): unknown {\n const obj: any = {};\n message.seconds !== undefined && (obj.seconds = message.seconds);\n message.nanos !== undefined && (obj.nanos = message.nanos);\n return obj;\n },\n\n fromPartial(object: DeepPartial): Timestamp {\n const message = { ...baseTimestamp } as Timestamp;\n if (object.seconds !== undefined && object.seconds !== null) {\n message.seconds = object.seconds;\n } else {\n message.seconds = 0;\n }\n if (object.nanos !== undefined && object.nanos !== null) {\n message.nanos = object.nanos;\n } else {\n message.nanos = 0;\n }\n return message;\n },\n};\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\ntype Builtin = Date | Function | Uint8Array | string | number | undefined;\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\nfunction longToNumber(long: Long): number {\n if (long.gt(Number.MAX_SAFE_INTEGER)) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n return long.toNumber();\n}\n\nif (util.Long !== Long) {\n util.Long = Long as any;\n configure();\n}\n","/* eslint-disable */\nimport * as Long from \"long\";\nimport { util, configure, Writer, Reader } from \"protobufjs/minimal\";\n\nexport const protobufPackage = \"google.protobuf\";\n\n/**\n * A Duration represents a signed, fixed-length span of time represented\n * as a count of seconds and fractions of seconds at nanosecond\n * resolution. It is independent of any calendar and concepts like \"day\"\n * or \"month\". It is related to Timestamp in that the difference between\n * two Timestamp values is a Duration and it can be added or subtracted\n * from a Timestamp. Range is approximately +-10,000 years.\n *\n * # Examples\n *\n * Example 1: Compute Duration from two Timestamps in pseudo code.\n *\n * Timestamp start = ...;\n * Timestamp end = ...;\n * Duration duration = ...;\n *\n * duration.seconds = end.seconds - start.seconds;\n * duration.nanos = end.nanos - start.nanos;\n *\n * if (duration.seconds < 0 && duration.nanos > 0) {\n * duration.seconds += 1;\n * duration.nanos -= 1000000000;\n * } else if (duration.seconds > 0 && duration.nanos < 0) {\n * duration.seconds -= 1;\n * duration.nanos += 1000000000;\n * }\n *\n * Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.\n *\n * Timestamp start = ...;\n * Duration duration = ...;\n * Timestamp end = ...;\n *\n * end.seconds = start.seconds + duration.seconds;\n * end.nanos = start.nanos + duration.nanos;\n *\n * if (end.nanos < 0) {\n * end.seconds -= 1;\n * end.nanos += 1000000000;\n * } else if (end.nanos >= 1000000000) {\n * end.seconds += 1;\n * end.nanos -= 1000000000;\n * }\n *\n * Example 3: Compute Duration from datetime.timedelta in Python.\n *\n * td = datetime.timedelta(days=3, minutes=10)\n * duration = Duration()\n * duration.FromTimedelta(td)\n *\n * # JSON Mapping\n *\n * In JSON format, the Duration type is encoded as a string rather than an\n * object, where the string ends in the suffix \"s\" (indicating seconds) and\n * is preceded by the number of seconds, with nanoseconds expressed as\n * fractional seconds. For example, 3 seconds with 0 nanoseconds should be\n * encoded in JSON format as \"3s\", while 3 seconds and 1 nanosecond should\n * be expressed in JSON format as \"3.000000001s\", and 3 seconds and 1\n * microsecond should be expressed in JSON format as \"3.000001s\".\n */\nexport interface Duration {\n /**\n * Signed seconds of the span of time. Must be from -315,576,000,000\n * to +315,576,000,000 inclusive. Note: these bounds are computed from:\n * 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n */\n seconds: number;\n /**\n * Signed fractions of a second at nanosecond resolution of the span\n * of time. Durations less than one second are represented with a 0\n * `seconds` field and a positive or negative `nanos` field. For durations\n * of one second or more, a non-zero value for the `nanos` field must be\n * of the same sign as the `seconds` field. Must be from -999,999,999\n * to +999,999,999 inclusive.\n */\n nanos: number;\n}\n\nconst baseDuration: object = { seconds: 0, nanos: 0 };\n\nexport const Duration = {\n encode(message: Duration, writer: Writer = Writer.create()): Writer {\n if (message.seconds !== 0) {\n writer.uint32(8).int64(message.seconds);\n }\n if (message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos);\n }\n return writer;\n },\n\n decode(input: Reader | Uint8Array, length?: number): Duration {\n const reader = input instanceof Uint8Array ? new Reader(input) : input;\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = { ...baseDuration } as Duration;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.seconds = longToNumber(reader.int64() as Long);\n break;\n case 2:\n message.nanos = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Duration {\n const message = { ...baseDuration } as Duration;\n if (object.seconds !== undefined && object.seconds !== null) {\n message.seconds = Number(object.seconds);\n } else {\n message.seconds = 0;\n }\n if (object.nanos !== undefined && object.nanos !== null) {\n message.nanos = Number(object.nanos);\n } else {\n message.nanos = 0;\n }\n return message;\n },\n\n toJSON(message: Duration): unknown {\n const obj: any = {};\n message.seconds !== undefined && (obj.seconds = message.seconds);\n message.nanos !== undefined && (obj.nanos = message.nanos);\n return obj;\n },\n\n fromPartial(object: DeepPartial): Duration {\n const message = { ...baseDuration } as Duration;\n if (object.seconds !== undefined && object.seconds !== null) {\n message.seconds = object.seconds;\n } else {\n message.seconds = 0;\n }\n if (object.nanos !== undefined && object.nanos !== null) {\n message.nanos = object.nanos;\n } else {\n message.nanos = 0;\n }\n return message;\n },\n};\n\ndeclare var self: any | undefined;\ndeclare var window: any | undefined;\nvar globalThis: any = (() => {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n throw \"Unable to locate global object\";\n})();\n\ntype Builtin = Date | Function | Uint8Array | string | number | undefined;\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\nfunction longToNumber(long: Long): number {\n if (long.gt(Number.MAX_SAFE_INTEGER)) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n return long.toNumber();\n}\n\nif (util.Long !== Long) {\n util.Long = Long as any;\n configure();\n}\n","/* eslint-disable */\nimport { Reader, Writer } from \"protobufjs/minimal\";\nimport { Timestamp } from \"./google/protobuf/timestamp\";\nimport { Duration } from \"./google/protobuf/duration\";\n\nexport const protobufPackage = \"shopaholic.service.v1\";\n\n/**\n * Shopaholic is the online marketplace for Bayfield Brewing Co.\n * The proto defintions define the interface for client/server\n * interaction.\n */\n\n/** OrderRequest provides a request to purchase an order. */\nexport interface OrderRequest {\n /** The type of payment selected. */\n paymentType: OrderRequest_PaymentType;\n conveyanceType: OrderRequest_ConveyanceType;\n /** An optional card token returned by the payment processor. */\n card: string;\n /** An optional note supplied by the customer. */\n message: string;\n /** An optional amount applied to the bill as a tip. The */\n gratuity: string;\n /** Information about the customer. */\n customer: OrderRequest_Customer | undefined;\n /** The customer's shipping address. */\n shippingAddress: OrderRequest_Address | undefined;\n /** A collection of items selected for purchase. */\n items: OrderRequest_Item[];\n /** The time when the order should be fulfilled. */\n fulfillment: Date | undefined;\n /** The ID of the event that provided the fulfillment time. */\n eventID: string;\n}\n\nexport enum OrderRequest_PaymentType {\n PAYMENT_TYPE_NONE = 0,\n PAYMENT_TYPE_OFFLINE = 1,\n PAYMENT_TYPE_CARD = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function orderRequest_PaymentTypeFromJSON(\n object: any\n): OrderRequest_PaymentType {\n switch (object) {\n case 0:\n case \"PAYMENT_TYPE_NONE\":\n return OrderRequest_PaymentType.PAYMENT_TYPE_NONE;\n case 1:\n case \"PAYMENT_TYPE_OFFLINE\":\n return OrderRequest_PaymentType.PAYMENT_TYPE_OFFLINE;\n case 2:\n case \"PAYMENT_TYPE_CARD\":\n return OrderRequest_PaymentType.PAYMENT_TYPE_CARD;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return OrderRequest_PaymentType.UNRECOGNIZED;\n }\n}\n\nexport function orderRequest_PaymentTypeToJSON(\n object: OrderRequest_PaymentType\n): string {\n switch (object) {\n case OrderRequest_PaymentType.PAYMENT_TYPE_NONE:\n return \"PAYMENT_TYPE_NONE\";\n case OrderRequest_PaymentType.PAYMENT_TYPE_OFFLINE:\n return \"PAYMENT_TYPE_OFFLINE\";\n case OrderRequest_PaymentType.PAYMENT_TYPE_CARD:\n return \"PAYMENT_TYPE_CARD\";\n default:\n return \"UNKNOWN\";\n }\n}\n\nexport enum OrderRequest_ConveyanceType {\n CONVEYANCE_TYPE_NONE = 0,\n CONVEYANCE_TYPE_PICKUP = 1,\n CONVEYANCE_TYPE_SHIP = 2,\n CONVEYANCE_TYPE_LOCAL_DELIVERY = 3,\n CONVEYANCE_TYPE_DINE_IN = 4,\n UNRECOGNIZED = -1,\n}\n\nexport function orderRequest_ConveyanceTypeFromJSON(\n object: any\n): OrderRequest_ConveyanceType {\n switch (object) {\n case 0:\n case \"CONVEYANCE_TYPE_NONE\":\n return OrderRequest_ConveyanceType.CONVEYANCE_TYPE_NONE;\n case 1:\n case \"CONVEYANCE_TYPE_PICKUP\":\n return OrderRequest_ConveyanceType.CONVEYANCE_TYPE_PICKUP;\n case 2:\n case \"CONVEYANCE_TYPE_SHIP\":\n return OrderRequest_ConveyanceType.CONVEYANCE_TYPE_SHIP;\n case 3:\n case \"CONVEYANCE_TYPE_LOCAL_DELIVERY\":\n return OrderRequest_ConveyanceType.CONVEYANCE_TYPE_LOCAL_DELIVERY;\n case 4:\n case \"CONVEYANCE_TYPE_DINE_IN\":\n return OrderRequest_ConveyanceType.CONVEYANCE_TYPE_DINE_IN;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return OrderRequest_ConveyanceType.UNRECOGNIZED;\n }\n}\n\nexport function orderRequest_ConveyanceTypeToJSON(\n object: OrderRequest_ConveyanceType\n): string {\n switch (object) {\n case OrderRequest_ConveyanceType.CONVEYANCE_TYPE_NONE:\n return \"CONVEYANCE_TYPE_NONE\";\n case OrderRequest_ConveyanceType.CONVEYANCE_TYPE_PICKUP:\n return \"CONVEYANCE_TYPE_PICKUP\";\n case OrderRequest_ConveyanceType.CONVEYANCE_TYPE_SHIP:\n return \"CONVEYANCE_TYPE_SHIP\";\n case OrderRequest_ConveyanceType.CONVEYANCE_TYPE_LOCAL_DELIVERY:\n return \"CONVEYANCE_TYPE_LOCAL_DELIVERY\";\n case OrderRequest_ConveyanceType.CONVEYANCE_TYPE_DINE_IN:\n return \"CONVEYANCE_TYPE_DINE_IN\";\n default:\n return \"UNKNOWN\";\n }\n}\n\nexport interface OrderRequest_Customer {\n /** The first name of the customer. */\n firstName: string;\n /** The last name of the customer. */\n lastName: string;\n /** The customer's email address. */\n email: string;\n /** The customer's phone number. */\n phone: string;\n}\n\nexport interface OrderRequest_Address {\n street1: string;\n street2: string;\n city: string;\n postalCode: string;\n}\n\nexport interface OrderRequest_Item {\n /** The product token. */\n token: string;\n /** The quanity of a product selected for purchase. */\n quantity: number;\n /** Additional instructions for the item. */\n instructions: string;\n /** Optional product options. */\n option: OrderRequest_Item_Option | undefined;\n}\n\nexport interface OrderRequest_Item_Option {\n sku: string;\n}\n\n/** OrderResponse is provded in response to placing an order. */\nexport interface OrderResponse {\n error: Error | undefined;\n id: string;\n}\n\nexport interface Error {\n validationErrors: string[];\n}\n\nexport interface EventCreateRequest {\n /** The ID given from previous create request responses. Not */\n id: string;\n /** required for first request. */\n time: Date | undefined;\n duration: Duration | undefined;\n units: number;\n /** The base URL of the requesting site. */\n origin: string;\n /** The product tokens for the event. Not necessary, but can be used to */\n productTokens: string[];\n}\n\nexport interface EventCreateResponse {\n id: string;\n time: Date | undefined;\n /** TODO: Consider making this an enum. */\n reason: string;\n}\n\nexport interface EventCommitRequest {\n id: string;\n}\n\nexport interface EventCommitResponse {}\n\nexport interface EventCancelRequest {\n id: string;\n}\n\nexport interface EventCancelResponse {}\n\nexport interface BusinessHoursListRequest {\n /** The base URL of the requesting site. */\n origin: string;\n}\n\nexport interface BusinessHoursListResponse {\n hours: BusinessHoursListResponse_Hours[];\n}\n\nexport interface BusinessHoursListResponse_Hours {\n weekday: number;\n open: BusinessHoursListResponse_Hours_Time | undefined;\n close: BusinessHoursListResponse_Hours_Time | undefined;\n validFrom: Date | undefined;\n validThrough: Date | undefined;\n}\n\nexport interface BusinessHoursListResponse_Hours_Time {\n hour: number;\n minute: number;\n}\n\nexport interface FindProductTokenRequest {\n /** The SKU of the desired product. */\n sku: string;\n /** The base URL of the requesting site. */\n origin: string;\n}\n\nexport interface FindProductTokenResponse {\n token: string;\n}\n\nconst baseOrderRequest: object = {\n paymentType: 0,\n conveyanceType: 0,\n card: \"\",\n message: \"\",\n gratuity: \"\",\n eventID: \"\",\n};\n\nexport const OrderRequest = {\n encode(message: OrderRequest, writer: Writer = Writer.create()): Writer {\n if (message.paymentType !== 0) {\n writer.uint32(24).int32(message.paymentType);\n }\n if (message.conveyanceType !== 0) {\n writer.uint32(56).int32(message.conveyanceType);\n }\n if (message.card !== \"\") {\n writer.uint32(10).string(message.card);\n }\n if (message.message !== \"\") {\n writer.uint32(66).string(message.message);\n }\n if (message.gratuity !== \"\") {\n writer.uint32(90).string(message.gratuity);\n }\n if (message.customer !== undefined) {\n OrderRequest_Customer.encode(\n message.customer,\n writer.uint32(34).fork()\n ).ldelim();\n }\n if (message.shippingAddress !== undefined) {\n OrderRequest_Address.encode(\n message.shippingAddress,\n writer.uint32(50).fork()\n ).ldelim();\n }\n for (const v of message.items) {\n OrderRequest_Item.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n if (message.fulfillment !== undefined) {\n Timestamp.encode(\n toTimestamp(message.fulfillment),\n writer.uint32(74).fork()\n ).ldelim();\n }\n if (message.eventID !== \"\") {\n writer.uint32(82).string(message.eventID);\n }\n return writer;\n },\n\n decode(input: Reader | Uint8Array, length?: number): OrderRequest {\n const reader = input instanceof Uint8Array ? new Reader(input) : input;\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = { ...baseOrderRequest } as OrderRequest;\n message.items = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 3:\n message.paymentType = reader.int32() as any;\n break;\n case 7:\n message.conveyanceType = reader.int32() as any;\n break;\n case 1:\n message.card = reader.string();\n break;\n case 8:\n message.message = reader.string();\n break;\n case 11:\n message.gratuity = reader.string();\n break;\n case 4:\n message.customer = OrderRequest_Customer.decode(\n reader,\n reader.uint32()\n );\n break;\n case 6:\n message.shippingAddress = OrderRequest_Address.decode(\n reader,\n reader.uint32()\n );\n break;\n case 2:\n message.items.push(OrderRequest_Item.decode(reader, reader.uint32()));\n break;\n case 9:\n message.fulfillment = fromTimestamp(\n Timestamp.decode(reader, reader.uint32())\n );\n break;\n case 10:\n message.eventID = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): OrderRequest {\n const message = { ...baseOrderRequest } as OrderRequest;\n message.items = [];\n if (object.paymentType !== undefined && object.paymentType !== null) {\n message.paymentType = orderRequest_PaymentTypeFromJSON(\n object.paymentType\n );\n } else {\n message.paymentType = 0;\n }\n if (object.conveyanceType !== undefined && object.conveyanceType !== null) {\n message.conveyanceType = orderRequest_ConveyanceTypeFromJSON(\n object.conveyanceType\n );\n } else {\n message.conveyanceType = 0;\n }\n if (object.card !== undefined && object.card !== null) {\n message.card = String(object.card);\n } else {\n message.card = \"\";\n }\n if (object.message !== undefined && object.message !== null) {\n message.message = String(object.message);\n } else {\n message.message = \"\";\n }\n if (object.gratuity !== undefined && object.gratuity !== null) {\n message.gratuity = String(object.gratuity);\n } else {\n message.gratuity = \"\";\n }\n if (object.customer !== undefined && object.customer !== null) {\n message.customer = OrderRequest_Customer.fromJSON(object.customer);\n } else {\n message.customer = undefined;\n }\n if (\n object.shippingAddress !== undefined &&\n object.shippingAddress !== null\n ) {\n message.shippingAddress = OrderRequest_Address.fromJSON(\n object.shippingAddress\n );\n } else {\n message.shippingAddress = undefined;\n }\n if (object.items !== undefined && object.items !== null) {\n for (const e of object.items) {\n message.items.push(OrderRequest_Item.fromJSON(e));\n }\n }\n if (object.fulfillment !== undefined && object.fulfillment !== null) {\n message.fulfillment = fromJsonTimestamp(object.fulfillment);\n } else {\n message.fulfillment = undefined;\n }\n if (object.eventID !== undefined && object.eventID !== null) {\n message.eventID = String(object.eventID);\n } else {\n message.eventID = \"\";\n }\n return message;\n },\n\n toJSON(message: OrderRequest): unknown {\n const obj: any = {};\n message.paymentType !== undefined &&\n (obj.paymentType = orderRequest_PaymentTypeToJSON(message.paymentType));\n message.conveyanceType !== undefined &&\n (obj.conveyanceType = orderRequest_ConveyanceTypeToJSON(\n message.conveyanceType\n ));\n message.card !== undefined && (obj.card = message.card);\n message.message !== undefined && (obj.message = message.message);\n message.gratuity !== undefined && (obj.gratuity = message.gratuity);\n message.customer !== undefined &&\n (obj.customer = message.customer\n ? OrderRequest_Customer.toJSON(message.customer)\n : undefined);\n message.shippingAddress !== undefined &&\n (obj.shippingAddress = message.shippingAddress\n ? OrderRequest_Address.toJSON(message.shippingAddress)\n : undefined);\n if (message.items) {\n obj.items = message.items.map((e) =>\n e ? OrderRequest_Item.toJSON(e) : undefined\n );\n } else {\n obj.items = [];\n }\n message.fulfillment !== undefined &&\n (obj.fulfillment =\n message.fulfillment !== undefined\n ? message.fulfillment.toISOString()\n : null);\n message.eventID !== undefined && (obj.eventID = message.eventID);\n return obj;\n },\n\n fromPartial(object: DeepPartial): OrderRequest {\n const message = { ...baseOrderRequest } as OrderRequest;\n message.items = [];\n if (object.paymentType !== undefined && object.paymentType !== null) {\n message.paymentType = object.paymentType;\n } else {\n message.paymentType = 0;\n }\n if (object.conveyanceType !== undefined && object.conveyanceType !== null) {\n message.conveyanceType = object.conveyanceType;\n } else {\n message.conveyanceType = 0;\n }\n if (object.card !== undefined && object.card !== null) {\n message.card = object.card;\n } else {\n message.card = \"\";\n }\n if (object.message !== undefined && object.message !== null) {\n message.message = object.message;\n } else {\n message.message = \"\";\n }\n if (object.gratuity !== undefined && object.gratuity !== null) {\n message.gratuity = object.gratuity;\n } else {\n message.gratuity = \"\";\n }\n if (object.customer !== undefined && object.customer !== null) {\n message.customer = OrderRequest_Customer.fromPartial(object.customer);\n } else {\n message.customer = undefined;\n }\n if (\n object.shippingAddress !== undefined &&\n object.shippingAddress !== null\n ) {\n message.shippingAddress = OrderRequest_Address.fromPartial(\n object.shippingAddress\n );\n } else {\n message.shippingAddress = undefined;\n }\n if (object.items !== undefined && object.items !== null) {\n for (const e of object.items) {\n message.items.push(OrderRequest_Item.fromPartial(e));\n }\n }\n if (object.fulfillment !== undefined && object.fulfillment !== null) {\n message.fulfillment = object.fulfillment;\n } else {\n message.fulfillment = undefined;\n }\n if (object.eventID !== undefined && object.eventID !== null) {\n message.eventID = object.eventID;\n } else {\n message.eventID = \"\";\n }\n return message;\n },\n};\n\nconst baseOrderRequest_Customer: object = {\n firstName: \"\",\n lastName: \"\",\n email: \"\",\n phone: \"\",\n};\n\nexport const OrderRequest_Customer = {\n encode(\n message: OrderRequest_Customer,\n writer: Writer = Writer.create()\n ): Writer {\n if (message.firstName !== \"\") {\n writer.uint32(10).string(message.firstName);\n }\n if (message.lastName !== \"\") {\n writer.uint32(18).string(message.lastName);\n }\n if (message.email !== \"\") {\n writer.uint32(26).string(message.email);\n }\n if (message.phone !== \"\") {\n writer.uint32(34).string(message.phone);\n }\n return writer;\n },\n\n decode(input: Reader | Uint8Array, length?: number): OrderRequest_Customer {\n const reader = input instanceof Uint8Array ? new Reader(input) : input;\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = { ...baseOrderRequest_Customer } as OrderRequest_Customer;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.firstName = reader.string();\n break;\n case 2:\n message.lastName = reader.string();\n break;\n case 3:\n message.email = reader.string();\n break;\n case 4:\n message.phone = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): OrderRequest_Customer {\n const message = { ...baseOrderRequest_Customer } as OrderRequest_Customer;\n if (object.firstName !== undefined && object.firstName !== null) {\n message.firstName = String(object.firstName);\n } else {\n message.firstName = \"\";\n }\n if (object.lastName !== undefined && object.lastName !== null) {\n message.lastName = String(object.lastName);\n } else {\n message.lastName = \"\";\n }\n if (object.email !== undefined && object.email !== null) {\n message.email = String(object.email);\n } else {\n message.email = \"\";\n }\n if (object.phone !== undefined && object.phone !== null) {\n message.phone = String(object.phone);\n } else {\n message.phone = \"\";\n }\n return message;\n },\n\n toJSON(message: OrderRequest_Customer): unknown {\n const obj: any = {};\n message.firstName !== undefined && (obj.firstName = message.firstName);\n message.lastName !== undefined && (obj.lastName = message.lastName);\n message.email !== undefined && (obj.email = message.email);\n message.phone !== undefined && (obj.phone = message.phone);\n return obj;\n },\n\n fromPartial(\n object: DeepPartial\n ): OrderRequest_Customer {\n const message = { ...baseOrderRequest_Customer } as OrderRequest_Customer;\n if (object.firstName !== undefined && object.firstName !== null) {\n message.firstName = object.firstName;\n } else {\n message.firstName = \"\";\n }\n if (object.lastName !== undefined && object.lastName !== null) {\n message.lastName = object.lastName;\n } else {\n message.lastName = \"\";\n }\n if (object.email !== undefined && object.email !== null) {\n message.email = object.email;\n } else {\n message.email = \"\";\n }\n if (object.phone !== undefined && object.phone !== null) {\n message.phone = object.phone;\n } else {\n message.phone = \"\";\n }\n return message;\n },\n};\n\nconst baseOrderRequest_Address: object = {\n street1: \"\",\n street2: \"\",\n city: \"\",\n postalCode: \"\",\n};\n\nexport const OrderRequest_Address = {\n encode(\n message: OrderRequest_Address,\n writer: Writer = Writer.create()\n ): Writer {\n if (message.street1 !== \"\") {\n writer.uint32(10).string(message.street1);\n }\n if (message.street2 !== \"\") {\n writer.uint32(18).string(message.street2);\n }\n if (message.city !== \"\") {\n writer.uint32(26).string(message.city);\n }\n if (message.postalCode !== \"\") {\n writer.uint32(34).string(message.postalCode);\n }\n return writer;\n },\n\n decode(input: Reader | Uint8Array, length?: number): OrderRequest_Address {\n const reader = input instanceof Uint8Array ? new Reader(input) : input;\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = { ...baseOrderRequest_Address } as OrderRequest_Address;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.street1 = reader.string();\n break;\n case 2:\n message.street2 = reader.string();\n break;\n case 3:\n message.city = reader.string();\n break;\n case 4:\n message.postalCode = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): OrderRequest_Address {\n const message = { ...baseOrderRequest_Address } as OrderRequest_Address;\n if (object.street1 !== undefined && object.street1 !== null) {\n message.street1 = String(object.street1);\n } else {\n message.street1 = \"\";\n }\n if (object.street2 !== undefined && object.street2 !== null) {\n message.street2 = String(object.street2);\n } else {\n message.street2 = \"\";\n }\n if (object.city !== undefined && object.city !== null) {\n message.city = String(object.city);\n } else {\n message.city = \"\";\n }\n if (object.postalCode !== undefined && object.postalCode !== null) {\n message.postalCode = String(object.postalCode);\n } else {\n message.postalCode = \"\";\n }\n return message;\n },\n\n toJSON(message: OrderRequest_Address): unknown {\n const obj: any = {};\n message.street1 !== undefined && (obj.street1 = message.street1);\n message.street2 !== undefined && (obj.street2 = message.street2);\n message.city !== undefined && (obj.city = message.city);\n message.postalCode !== undefined && (obj.postalCode = message.postalCode);\n return obj;\n },\n\n fromPartial(object: DeepPartial): OrderRequest_Address {\n const message = { ...baseOrderRequest_Address } as OrderRequest_Address;\n if (object.street1 !== undefined && object.street1 !== null) {\n message.street1 = object.street1;\n } else {\n message.street1 = \"\";\n }\n if (object.street2 !== undefined && object.street2 !== null) {\n message.street2 = object.street2;\n } else {\n message.street2 = \"\";\n }\n if (object.city !== undefined && object.city !== null) {\n message.city = object.city;\n } else {\n message.city = \"\";\n }\n if (object.postalCode !== undefined && object.postalCode !== null) {\n message.postalCode = object.postalCode;\n } else {\n message.postalCode = \"\";\n }\n return message;\n },\n};\n\nconst baseOrderRequest_Item: object = {\n token: \"\",\n quantity: 0,\n instructions: \"\",\n};\n\nexport const OrderRequest_Item = {\n encode(message: OrderRequest_Item, writer: Writer = Writer.create()): Writer {\n if (message.token !== \"\") {\n writer.uint32(10).string(message.token);\n }\n if (message.quantity !== 0) {\n writer.uint32(16).int32(message.quantity);\n }\n if (message.instructions !== \"\") {\n writer.uint32(26).string(message.instructions);\n }\n if (message.option !== undefined) {\n OrderRequest_Item_Option.encode(\n message.option,\n writer.uint32(34).fork()\n ).ldelim();\n }\n return writer;\n },\n\n decode(input: Reader | Uint8Array, length?: number): OrderRequest_Item {\n const reader = input instanceof Uint8Array ? new Reader(input) : input;\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = { ...baseOrderRequest_Item } as OrderRequest_Item;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.token = reader.string();\n break;\n case 2:\n message.quantity = reader.int32();\n break;\n case 3:\n message.instructions = reader.string();\n break;\n case 4:\n message.option = OrderRequest_Item_Option.decode(\n reader,\n reader.uint32()\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): OrderRequest_Item {\n const message = { ...baseOrderRequest_Item } as OrderRequest_Item;\n if (object.token !== undefined && object.token !== null) {\n message.token = String(object.token);\n } else {\n message.token = \"\";\n }\n if (object.quantity !== undefined && object.quantity !== null) {\n message.quantity = Number(object.quantity);\n } else {\n message.quantity = 0;\n }\n if (object.instructions !== undefined && object.instructions !== null) {\n message.instructions = String(object.instructions);\n } else {\n message.instructions = \"\";\n }\n if (object.option !== undefined && object.option !== null) {\n message.option = OrderRequest_Item_Option.fromJSON(object.option);\n } else {\n message.option = undefined;\n }\n return message;\n },\n\n toJSON(message: OrderRequest_Item): unknown {\n const obj: any = {};\n message.token !== undefined && (obj.token = message.token);\n message.quantity !== undefined && (obj.quantity = message.quantity);\n message.instructions !== undefined &&\n (obj.instructions = message.instructions);\n message.option !== undefined &&\n (obj.option = message.option\n ? OrderRequest_Item_Option.toJSON(message.option)\n : undefined);\n return obj;\n },\n\n fromPartial(object: DeepPartial): OrderRequest_Item {\n const message = { ...baseOrderRequest_Item } as OrderRequest_Item;\n if (object.token !== undefined && object.token !== null) {\n message.token = object.token;\n } else {\n message.token = \"\";\n }\n if (object.quantity !== undefined && object.quantity !== null) {\n message.quantity = object.quantity;\n } else {\n message.quantity = 0;\n }\n if (object.instructions !== undefined && object.instructions !== null) {\n message.instructions = object.instructions;\n } else {\n message.instructions = \"\";\n }\n if (object.option !== undefined && object.option !== null) {\n message.option = OrderRequest_Item_Option.fromPartial(object.option);\n } else {\n message.option = undefined;\n }\n return message;\n },\n};\n\nconst baseOrderRequest_Item_Option: object = { sku: \"\" };\n\nexport const OrderRequest_Item_Option = {\n encode(\n message: OrderRequest_Item_Option,\n writer: Writer = Writer.create()\n ): Writer {\n if (message.sku !== \"\") {\n writer.uint32(10).string(message.sku);\n }\n return writer;\n },\n\n decode(\n input: Reader | Uint8Array,\n length?: number\n ): OrderRequest_Item_Option {\n const reader = input instanceof Uint8Array ? new Reader(input) : input;\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = {\n ...baseOrderRequest_Item_Option,\n } as OrderRequest_Item_Option;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sku = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): OrderRequest_Item_Option {\n const message = {\n ...baseOrderRequest_Item_Option,\n } as OrderRequest_Item_Option;\n if (object.sku !== undefined && object.sku !== null) {\n message.sku = String(object.sku);\n } else {\n message.sku = \"\";\n }\n return message;\n },\n\n toJSON(message: OrderRequest_Item_Option): unknown {\n const obj: any = {};\n message.sku !== undefined && (obj.sku = message.sku);\n return obj;\n },\n\n fromPartial(\n object: DeepPartial\n ): OrderRequest_Item_Option {\n const message = {\n ...baseOrderRequest_Item_Option,\n } as OrderRequest_Item_Option;\n if (object.sku !== undefined && object.sku !== null) {\n message.sku = object.sku;\n } else {\n message.sku = \"\";\n }\n return message;\n },\n};\n\nconst baseOrderResponse: object = { id: \"\" };\n\nexport const OrderResponse = {\n encode(message: OrderResponse, writer: Writer = Writer.create()): Writer {\n if (message.error !== undefined) {\n Error.encode(message.error, writer.uint32(10).fork()).ldelim();\n }\n if (message.id !== \"\") {\n writer.uint32(18).string(message.id);\n }\n return writer;\n },\n\n decode(input: Reader | Uint8Array, length?: number): OrderResponse {\n const reader = input instanceof Uint8Array ? new Reader(input) : input;\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = { ...baseOrderResponse } as OrderResponse;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.error = Error.decode(reader, reader.uint32());\n break;\n case 2:\n message.id = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): OrderResponse {\n const message = { ...baseOrderResponse } as OrderResponse;\n if (object.error !== undefined && object.error !== null) {\n message.error = Error.fromJSON(object.error);\n } else {\n message.error = undefined;\n }\n if (object.id !== undefined && object.id !== null) {\n message.id = String(object.id);\n } else {\n message.id = \"\";\n }\n return message;\n },\n\n toJSON(message: OrderResponse): unknown {\n const obj: any = {};\n message.error !== undefined &&\n (obj.error = message.error ? Error.toJSON(message.error) : undefined);\n message.id !== undefined && (obj.id = message.id);\n return obj;\n },\n\n fromPartial(object: DeepPartial): OrderResponse {\n const message = { ...baseOrderResponse } as OrderResponse;\n if (object.error !== undefined && object.error !== null) {\n message.error = Error.fromPartial(object.error);\n } else {\n message.error = undefined;\n }\n if (object.id !== undefined && object.id !== null) {\n message.id = object.id;\n } else {\n message.id = \"\";\n }\n return message;\n },\n};\n\nconst baseError: object = { validationErrors: \"\" };\n\nexport const Error = {\n encode(message: Error, writer: Writer = Writer.create()): Writer {\n for (const v of message.validationErrors) {\n writer.uint32(10).string(v!);\n }\n return writer;\n },\n\n decode(input: Reader | Uint8Array, length?: number): Error {\n const reader = input instanceof Uint8Array ? new Reader(input) : input;\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = { ...baseError } as Error;\n message.validationErrors = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.validationErrors.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): Error {\n const message = { ...baseError } as Error;\n message.validationErrors = [];\n if (\n object.validationErrors !== undefined &&\n object.validationErrors !== null\n ) {\n for (const e of object.validationErrors) {\n message.validationErrors.push(String(e));\n }\n }\n return message;\n },\n\n toJSON(message: Error): unknown {\n const obj: any = {};\n if (message.validationErrors) {\n obj.validationErrors = message.validationErrors.map((e) => e);\n } else {\n obj.validationErrors = [];\n }\n return obj;\n },\n\n fromPartial(object: DeepPartial): Error {\n const message = { ...baseError } as Error;\n message.validationErrors = [];\n if (\n object.validationErrors !== undefined &&\n object.validationErrors !== null\n ) {\n for (const e of object.validationErrors) {\n message.validationErrors.push(e);\n }\n }\n return message;\n },\n};\n\nconst baseEventCreateRequest: object = {\n id: \"\",\n units: 0,\n origin: \"\",\n productTokens: \"\",\n};\n\nexport const EventCreateRequest = {\n encode(\n message: EventCreateRequest,\n writer: Writer = Writer.create()\n ): Writer {\n if (message.id !== \"\") {\n writer.uint32(34).string(message.id);\n }\n if (message.time !== undefined) {\n Timestamp.encode(\n toTimestamp(message.time),\n writer.uint32(10).fork()\n ).ldelim();\n }\n if (message.duration !== undefined) {\n Duration.encode(message.duration, writer.uint32(18).fork()).ldelim();\n }\n if (message.units !== 0) {\n writer.uint32(24).int32(message.units);\n }\n if (message.origin !== \"\") {\n writer.uint32(42).string(message.origin);\n }\n for (const v of message.productTokens) {\n writer.uint32(50).string(v!);\n }\n return writer;\n },\n\n decode(input: Reader | Uint8Array, length?: number): EventCreateRequest {\n const reader = input instanceof Uint8Array ? new Reader(input) : input;\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = { ...baseEventCreateRequest } as EventCreateRequest;\n message.productTokens = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 4:\n message.id = reader.string();\n break;\n case 1:\n message.time = fromTimestamp(\n Timestamp.decode(reader, reader.uint32())\n );\n break;\n case 2:\n message.duration = Duration.decode(reader, reader.uint32());\n break;\n case 3:\n message.units = reader.int32();\n break;\n case 5:\n message.origin = reader.string();\n break;\n case 6:\n message.productTokens.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): EventCreateRequest {\n const message = { ...baseEventCreateRequest } as EventCreateRequest;\n message.productTokens = [];\n if (object.id !== undefined && object.id !== null) {\n message.id = String(object.id);\n } else {\n message.id = \"\";\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = fromJsonTimestamp(object.time);\n } else {\n message.time = undefined;\n }\n if (object.duration !== undefined && object.duration !== null) {\n message.duration = Duration.fromJSON(object.duration);\n } else {\n message.duration = undefined;\n }\n if (object.units !== undefined && object.units !== null) {\n message.units = Number(object.units);\n } else {\n message.units = 0;\n }\n if (object.origin !== undefined && object.origin !== null) {\n message.origin = String(object.origin);\n } else {\n message.origin = \"\";\n }\n if (object.productTokens !== undefined && object.productTokens !== null) {\n for (const e of object.productTokens) {\n message.productTokens.push(String(e));\n }\n }\n return message;\n },\n\n toJSON(message: EventCreateRequest): unknown {\n const obj: any = {};\n message.id !== undefined && (obj.id = message.id);\n message.time !== undefined &&\n (obj.time =\n message.time !== undefined ? message.time.toISOString() : null);\n message.duration !== undefined &&\n (obj.duration = message.duration\n ? Duration.toJSON(message.duration)\n : undefined);\n message.units !== undefined && (obj.units = message.units);\n message.origin !== undefined && (obj.origin = message.origin);\n if (message.productTokens) {\n obj.productTokens = message.productTokens.map((e) => e);\n } else {\n obj.productTokens = [];\n }\n return obj;\n },\n\n fromPartial(object: DeepPartial): EventCreateRequest {\n const message = { ...baseEventCreateRequest } as EventCreateRequest;\n message.productTokens = [];\n if (object.id !== undefined && object.id !== null) {\n message.id = object.id;\n } else {\n message.id = \"\";\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = object.time;\n } else {\n message.time = undefined;\n }\n if (object.duration !== undefined && object.duration !== null) {\n message.duration = Duration.fromPartial(object.duration);\n } else {\n message.duration = undefined;\n }\n if (object.units !== undefined && object.units !== null) {\n message.units = object.units;\n } else {\n message.units = 0;\n }\n if (object.origin !== undefined && object.origin !== null) {\n message.origin = object.origin;\n } else {\n message.origin = \"\";\n }\n if (object.productTokens !== undefined && object.productTokens !== null) {\n for (const e of object.productTokens) {\n message.productTokens.push(e);\n }\n }\n return message;\n },\n};\n\nconst baseEventCreateResponse: object = { id: \"\", reason: \"\" };\n\nexport const EventCreateResponse = {\n encode(\n message: EventCreateResponse,\n writer: Writer = Writer.create()\n ): Writer {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.time !== undefined) {\n Timestamp.encode(\n toTimestamp(message.time),\n writer.uint32(18).fork()\n ).ldelim();\n }\n if (message.reason !== \"\") {\n writer.uint32(26).string(message.reason);\n }\n return writer;\n },\n\n decode(input: Reader | Uint8Array, length?: number): EventCreateResponse {\n const reader = input instanceof Uint8Array ? new Reader(input) : input;\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = { ...baseEventCreateResponse } as EventCreateResponse;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.string();\n break;\n case 2:\n message.time = fromTimestamp(\n Timestamp.decode(reader, reader.uint32())\n );\n break;\n case 3:\n message.reason = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): EventCreateResponse {\n const message = { ...baseEventCreateResponse } as EventCreateResponse;\n if (object.id !== undefined && object.id !== null) {\n message.id = String(object.id);\n } else {\n message.id = \"\";\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = fromJsonTimestamp(object.time);\n } else {\n message.time = undefined;\n }\n if (object.reason !== undefined && object.reason !== null) {\n message.reason = String(object.reason);\n } else {\n message.reason = \"\";\n }\n return message;\n },\n\n toJSON(message: EventCreateResponse): unknown {\n const obj: any = {};\n message.id !== undefined && (obj.id = message.id);\n message.time !== undefined &&\n (obj.time =\n message.time !== undefined ? message.time.toISOString() : null);\n message.reason !== undefined && (obj.reason = message.reason);\n return obj;\n },\n\n fromPartial(object: DeepPartial): EventCreateResponse {\n const message = { ...baseEventCreateResponse } as EventCreateResponse;\n if (object.id !== undefined && object.id !== null) {\n message.id = object.id;\n } else {\n message.id = \"\";\n }\n if (object.time !== undefined && object.time !== null) {\n message.time = object.time;\n } else {\n message.time = undefined;\n }\n if (object.reason !== undefined && object.reason !== null) {\n message.reason = object.reason;\n } else {\n message.reason = \"\";\n }\n return message;\n },\n};\n\nconst baseEventCommitRequest: object = { id: \"\" };\n\nexport const EventCommitRequest = {\n encode(\n message: EventCommitRequest,\n writer: Writer = Writer.create()\n ): Writer {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n return writer;\n },\n\n decode(input: Reader | Uint8Array, length?: number): EventCommitRequest {\n const reader = input instanceof Uint8Array ? new Reader(input) : input;\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = { ...baseEventCommitRequest } as EventCommitRequest;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): EventCommitRequest {\n const message = { ...baseEventCommitRequest } as EventCommitRequest;\n if (object.id !== undefined && object.id !== null) {\n message.id = String(object.id);\n } else {\n message.id = \"\";\n }\n return message;\n },\n\n toJSON(message: EventCommitRequest): unknown {\n const obj: any = {};\n message.id !== undefined && (obj.id = message.id);\n return obj;\n },\n\n fromPartial(object: DeepPartial): EventCommitRequest {\n const message = { ...baseEventCommitRequest } as EventCommitRequest;\n if (object.id !== undefined && object.id !== null) {\n message.id = object.id;\n } else {\n message.id = \"\";\n }\n return message;\n },\n};\n\nconst baseEventCommitResponse: object = {};\n\nexport const EventCommitResponse = {\n encode(_: EventCommitResponse, writer: Writer = Writer.create()): Writer {\n return writer;\n },\n\n decode(input: Reader | Uint8Array, length?: number): EventCommitResponse {\n const reader = input instanceof Uint8Array ? new Reader(input) : input;\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = { ...baseEventCommitResponse } as EventCommitResponse;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): EventCommitResponse {\n const message = { ...baseEventCommitResponse } as EventCommitResponse;\n return message;\n },\n\n toJSON(_: EventCommitResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial(_: DeepPartial): EventCommitResponse {\n const message = { ...baseEventCommitResponse } as EventCommitResponse;\n return message;\n },\n};\n\nconst baseEventCancelRequest: object = { id: \"\" };\n\nexport const EventCancelRequest = {\n encode(\n message: EventCancelRequest,\n writer: Writer = Writer.create()\n ): Writer {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n return writer;\n },\n\n decode(input: Reader | Uint8Array, length?: number): EventCancelRequest {\n const reader = input instanceof Uint8Array ? new Reader(input) : input;\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = { ...baseEventCancelRequest } as EventCancelRequest;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): EventCancelRequest {\n const message = { ...baseEventCancelRequest } as EventCancelRequest;\n if (object.id !== undefined && object.id !== null) {\n message.id = String(object.id);\n } else {\n message.id = \"\";\n }\n return message;\n },\n\n toJSON(message: EventCancelRequest): unknown {\n const obj: any = {};\n message.id !== undefined && (obj.id = message.id);\n return obj;\n },\n\n fromPartial(object: DeepPartial): EventCancelRequest {\n const message = { ...baseEventCancelRequest } as EventCancelRequest;\n if (object.id !== undefined && object.id !== null) {\n message.id = object.id;\n } else {\n message.id = \"\";\n }\n return message;\n },\n};\n\nconst baseEventCancelResponse: object = {};\n\nexport const EventCancelResponse = {\n encode(_: EventCancelResponse, writer: Writer = Writer.create()): Writer {\n return writer;\n },\n\n decode(input: Reader | Uint8Array, length?: number): EventCancelResponse {\n const reader = input instanceof Uint8Array ? new Reader(input) : input;\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = { ...baseEventCancelResponse } as EventCancelResponse;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(_: any): EventCancelResponse {\n const message = { ...baseEventCancelResponse } as EventCancelResponse;\n return message;\n },\n\n toJSON(_: EventCancelResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n fromPartial(_: DeepPartial): EventCancelResponse {\n const message = { ...baseEventCancelResponse } as EventCancelResponse;\n return message;\n },\n};\n\nconst baseBusinessHoursListRequest: object = { origin: \"\" };\n\nexport const BusinessHoursListRequest = {\n encode(\n message: BusinessHoursListRequest,\n writer: Writer = Writer.create()\n ): Writer {\n if (message.origin !== \"\") {\n writer.uint32(10).string(message.origin);\n }\n return writer;\n },\n\n decode(\n input: Reader | Uint8Array,\n length?: number\n ): BusinessHoursListRequest {\n const reader = input instanceof Uint8Array ? new Reader(input) : input;\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = {\n ...baseBusinessHoursListRequest,\n } as BusinessHoursListRequest;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.origin = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): BusinessHoursListRequest {\n const message = {\n ...baseBusinessHoursListRequest,\n } as BusinessHoursListRequest;\n if (object.origin !== undefined && object.origin !== null) {\n message.origin = String(object.origin);\n } else {\n message.origin = \"\";\n }\n return message;\n },\n\n toJSON(message: BusinessHoursListRequest): unknown {\n const obj: any = {};\n message.origin !== undefined && (obj.origin = message.origin);\n return obj;\n },\n\n fromPartial(\n object: DeepPartial\n ): BusinessHoursListRequest {\n const message = {\n ...baseBusinessHoursListRequest,\n } as BusinessHoursListRequest;\n if (object.origin !== undefined && object.origin !== null) {\n message.origin = object.origin;\n } else {\n message.origin = \"\";\n }\n return message;\n },\n};\n\nconst baseBusinessHoursListResponse: object = {};\n\nexport const BusinessHoursListResponse = {\n encode(\n message: BusinessHoursListResponse,\n writer: Writer = Writer.create()\n ): Writer {\n for (const v of message.hours) {\n BusinessHoursListResponse_Hours.encode(\n v!,\n writer.uint32(10).fork()\n ).ldelim();\n }\n return writer;\n },\n\n decode(\n input: Reader | Uint8Array,\n length?: number\n ): BusinessHoursListResponse {\n const reader = input instanceof Uint8Array ? new Reader(input) : input;\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = {\n ...baseBusinessHoursListResponse,\n } as BusinessHoursListResponse;\n message.hours = [];\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hours.push(\n BusinessHoursListResponse_Hours.decode(reader, reader.uint32())\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): BusinessHoursListResponse {\n const message = {\n ...baseBusinessHoursListResponse,\n } as BusinessHoursListResponse;\n message.hours = [];\n if (object.hours !== undefined && object.hours !== null) {\n for (const e of object.hours) {\n message.hours.push(BusinessHoursListResponse_Hours.fromJSON(e));\n }\n }\n return message;\n },\n\n toJSON(message: BusinessHoursListResponse): unknown {\n const obj: any = {};\n if (message.hours) {\n obj.hours = message.hours.map((e) =>\n e ? BusinessHoursListResponse_Hours.toJSON(e) : undefined\n );\n } else {\n obj.hours = [];\n }\n return obj;\n },\n\n fromPartial(\n object: DeepPartial\n ): BusinessHoursListResponse {\n const message = {\n ...baseBusinessHoursListResponse,\n } as BusinessHoursListResponse;\n message.hours = [];\n if (object.hours !== undefined && object.hours !== null) {\n for (const e of object.hours) {\n message.hours.push(BusinessHoursListResponse_Hours.fromPartial(e));\n }\n }\n return message;\n },\n};\n\nconst baseBusinessHoursListResponse_Hours: object = { weekday: 0 };\n\nexport const BusinessHoursListResponse_Hours = {\n encode(\n message: BusinessHoursListResponse_Hours,\n writer: Writer = Writer.create()\n ): Writer {\n if (message.weekday !== 0) {\n writer.uint32(8).int32(message.weekday);\n }\n if (message.open !== undefined) {\n BusinessHoursListResponse_Hours_Time.encode(\n message.open,\n writer.uint32(18).fork()\n ).ldelim();\n }\n if (message.close !== undefined) {\n BusinessHoursListResponse_Hours_Time.encode(\n message.close,\n writer.uint32(26).fork()\n ).ldelim();\n }\n if (message.validFrom !== undefined) {\n Timestamp.encode(\n toTimestamp(message.validFrom),\n writer.uint32(34).fork()\n ).ldelim();\n }\n if (message.validThrough !== undefined) {\n Timestamp.encode(\n toTimestamp(message.validThrough),\n writer.uint32(42).fork()\n ).ldelim();\n }\n return writer;\n },\n\n decode(\n input: Reader | Uint8Array,\n length?: number\n ): BusinessHoursListResponse_Hours {\n const reader = input instanceof Uint8Array ? new Reader(input) : input;\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = {\n ...baseBusinessHoursListResponse_Hours,\n } as BusinessHoursListResponse_Hours;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.weekday = reader.int32();\n break;\n case 2:\n message.open = BusinessHoursListResponse_Hours_Time.decode(\n reader,\n reader.uint32()\n );\n break;\n case 3:\n message.close = BusinessHoursListResponse_Hours_Time.decode(\n reader,\n reader.uint32()\n );\n break;\n case 4:\n message.validFrom = fromTimestamp(\n Timestamp.decode(reader, reader.uint32())\n );\n break;\n case 5:\n message.validThrough = fromTimestamp(\n Timestamp.decode(reader, reader.uint32())\n );\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): BusinessHoursListResponse_Hours {\n const message = {\n ...baseBusinessHoursListResponse_Hours,\n } as BusinessHoursListResponse_Hours;\n if (object.weekday !== undefined && object.weekday !== null) {\n message.weekday = Number(object.weekday);\n } else {\n message.weekday = 0;\n }\n if (object.open !== undefined && object.open !== null) {\n message.open = BusinessHoursListResponse_Hours_Time.fromJSON(object.open);\n } else {\n message.open = undefined;\n }\n if (object.close !== undefined && object.close !== null) {\n message.close = BusinessHoursListResponse_Hours_Time.fromJSON(\n object.close\n );\n } else {\n message.close = undefined;\n }\n if (object.validFrom !== undefined && object.validFrom !== null) {\n message.validFrom = fromJsonTimestamp(object.validFrom);\n } else {\n message.validFrom = undefined;\n }\n if (object.validThrough !== undefined && object.validThrough !== null) {\n message.validThrough = fromJsonTimestamp(object.validThrough);\n } else {\n message.validThrough = undefined;\n }\n return message;\n },\n\n toJSON(message: BusinessHoursListResponse_Hours): unknown {\n const obj: any = {};\n message.weekday !== undefined && (obj.weekday = message.weekday);\n message.open !== undefined &&\n (obj.open = message.open\n ? BusinessHoursListResponse_Hours_Time.toJSON(message.open)\n : undefined);\n message.close !== undefined &&\n (obj.close = message.close\n ? BusinessHoursListResponse_Hours_Time.toJSON(message.close)\n : undefined);\n message.validFrom !== undefined &&\n (obj.validFrom =\n message.validFrom !== undefined\n ? message.validFrom.toISOString()\n : null);\n message.validThrough !== undefined &&\n (obj.validThrough =\n message.validThrough !== undefined\n ? message.validThrough.toISOString()\n : null);\n return obj;\n },\n\n fromPartial(\n object: DeepPartial\n ): BusinessHoursListResponse_Hours {\n const message = {\n ...baseBusinessHoursListResponse_Hours,\n } as BusinessHoursListResponse_Hours;\n if (object.weekday !== undefined && object.weekday !== null) {\n message.weekday = object.weekday;\n } else {\n message.weekday = 0;\n }\n if (object.open !== undefined && object.open !== null) {\n message.open = BusinessHoursListResponse_Hours_Time.fromPartial(\n object.open\n );\n } else {\n message.open = undefined;\n }\n if (object.close !== undefined && object.close !== null) {\n message.close = BusinessHoursListResponse_Hours_Time.fromPartial(\n object.close\n );\n } else {\n message.close = undefined;\n }\n if (object.validFrom !== undefined && object.validFrom !== null) {\n message.validFrom = object.validFrom;\n } else {\n message.validFrom = undefined;\n }\n if (object.validThrough !== undefined && object.validThrough !== null) {\n message.validThrough = object.validThrough;\n } else {\n message.validThrough = undefined;\n }\n return message;\n },\n};\n\nconst baseBusinessHoursListResponse_Hours_Time: object = { hour: 0, minute: 0 };\n\nexport const BusinessHoursListResponse_Hours_Time = {\n encode(\n message: BusinessHoursListResponse_Hours_Time,\n writer: Writer = Writer.create()\n ): Writer {\n if (message.hour !== 0) {\n writer.uint32(8).int32(message.hour);\n }\n if (message.minute !== 0) {\n writer.uint32(16).int32(message.minute);\n }\n return writer;\n },\n\n decode(\n input: Reader | Uint8Array,\n length?: number\n ): BusinessHoursListResponse_Hours_Time {\n const reader = input instanceof Uint8Array ? new Reader(input) : input;\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = {\n ...baseBusinessHoursListResponse_Hours_Time,\n } as BusinessHoursListResponse_Hours_Time;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hour = reader.int32();\n break;\n case 2:\n message.minute = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): BusinessHoursListResponse_Hours_Time {\n const message = {\n ...baseBusinessHoursListResponse_Hours_Time,\n } as BusinessHoursListResponse_Hours_Time;\n if (object.hour !== undefined && object.hour !== null) {\n message.hour = Number(object.hour);\n } else {\n message.hour = 0;\n }\n if (object.minute !== undefined && object.minute !== null) {\n message.minute = Number(object.minute);\n } else {\n message.minute = 0;\n }\n return message;\n },\n\n toJSON(message: BusinessHoursListResponse_Hours_Time): unknown {\n const obj: any = {};\n message.hour !== undefined && (obj.hour = message.hour);\n message.minute !== undefined && (obj.minute = message.minute);\n return obj;\n },\n\n fromPartial(\n object: DeepPartial\n ): BusinessHoursListResponse_Hours_Time {\n const message = {\n ...baseBusinessHoursListResponse_Hours_Time,\n } as BusinessHoursListResponse_Hours_Time;\n if (object.hour !== undefined && object.hour !== null) {\n message.hour = object.hour;\n } else {\n message.hour = 0;\n }\n if (object.minute !== undefined && object.minute !== null) {\n message.minute = object.minute;\n } else {\n message.minute = 0;\n }\n return message;\n },\n};\n\nconst baseFindProductTokenRequest: object = { sku: \"\", origin: \"\" };\n\nexport const FindProductTokenRequest = {\n encode(\n message: FindProductTokenRequest,\n writer: Writer = Writer.create()\n ): Writer {\n if (message.sku !== \"\") {\n writer.uint32(10).string(message.sku);\n }\n if (message.origin !== \"\") {\n writer.uint32(18).string(message.origin);\n }\n return writer;\n },\n\n decode(input: Reader | Uint8Array, length?: number): FindProductTokenRequest {\n const reader = input instanceof Uint8Array ? new Reader(input) : input;\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = {\n ...baseFindProductTokenRequest,\n } as FindProductTokenRequest;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sku = reader.string();\n break;\n case 2:\n message.origin = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): FindProductTokenRequest {\n const message = {\n ...baseFindProductTokenRequest,\n } as FindProductTokenRequest;\n if (object.sku !== undefined && object.sku !== null) {\n message.sku = String(object.sku);\n } else {\n message.sku = \"\";\n }\n if (object.origin !== undefined && object.origin !== null) {\n message.origin = String(object.origin);\n } else {\n message.origin = \"\";\n }\n return message;\n },\n\n toJSON(message: FindProductTokenRequest): unknown {\n const obj: any = {};\n message.sku !== undefined && (obj.sku = message.sku);\n message.origin !== undefined && (obj.origin = message.origin);\n return obj;\n },\n\n fromPartial(\n object: DeepPartial\n ): FindProductTokenRequest {\n const message = {\n ...baseFindProductTokenRequest,\n } as FindProductTokenRequest;\n if (object.sku !== undefined && object.sku !== null) {\n message.sku = object.sku;\n } else {\n message.sku = \"\";\n }\n if (object.origin !== undefined && object.origin !== null) {\n message.origin = object.origin;\n } else {\n message.origin = \"\";\n }\n return message;\n },\n};\n\nconst baseFindProductTokenResponse: object = { token: \"\" };\n\nexport const FindProductTokenResponse = {\n encode(\n message: FindProductTokenResponse,\n writer: Writer = Writer.create()\n ): Writer {\n if (message.token !== \"\") {\n writer.uint32(10).string(message.token);\n }\n return writer;\n },\n\n decode(\n input: Reader | Uint8Array,\n length?: number\n ): FindProductTokenResponse {\n const reader = input instanceof Uint8Array ? new Reader(input) : input;\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = {\n ...baseFindProductTokenResponse,\n } as FindProductTokenResponse;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.token = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n },\n\n fromJSON(object: any): FindProductTokenResponse {\n const message = {\n ...baseFindProductTokenResponse,\n } as FindProductTokenResponse;\n if (object.token !== undefined && object.token !== null) {\n message.token = String(object.token);\n } else {\n message.token = \"\";\n }\n return message;\n },\n\n toJSON(message: FindProductTokenResponse): unknown {\n const obj: any = {};\n message.token !== undefined && (obj.token = message.token);\n return obj;\n },\n\n fromPartial(\n object: DeepPartial\n ): FindProductTokenResponse {\n const message = {\n ...baseFindProductTokenResponse,\n } as FindProductTokenResponse;\n if (object.token !== undefined && object.token !== null) {\n message.token = object.token;\n } else {\n message.token = \"\";\n }\n return message;\n },\n};\n\nexport interface Order {\n Place(request: OrderRequest): Promise;\n}\n\nexport class OrderClientImpl implements Order {\n private readonly rpc: Rpc;\n constructor(rpc: Rpc) {\n this.rpc = rpc;\n }\n Place(request: OrderRequest): Promise {\n const data = OrderRequest.encode(request).finish();\n const promise = this.rpc.request(\n \"shopaholic.service.v1.Order\",\n \"Place\",\n data\n );\n return promise.then((data) => OrderResponse.decode(new Reader(data)));\n }\n}\n\nexport interface Timetable {\n Request(request: EventCreateRequest): Promise;\n Commit(request: EventCommitRequest): Promise;\n Cancel(request: EventCancelRequest): Promise;\n BusinessHours(\n request: BusinessHoursListRequest\n ): Promise;\n}\n\nexport class TimetableClientImpl implements Timetable {\n private readonly rpc: Rpc;\n constructor(rpc: Rpc) {\n this.rpc = rpc;\n }\n Request(request: EventCreateRequest): Promise {\n const data = EventCreateRequest.encode(request).finish();\n const promise = this.rpc.request(\n \"shopaholic.service.v1.Timetable\",\n \"Request\",\n data\n );\n return promise.then((data) => EventCreateResponse.decode(new Reader(data)));\n }\n\n Commit(request: EventCommitRequest): Promise {\n const data = EventCommitRequest.encode(request).finish();\n const promise = this.rpc.request(\n \"shopaholic.service.v1.Timetable\",\n \"Commit\",\n data\n );\n return promise.then((data) => EventCommitResponse.decode(new Reader(data)));\n }\n\n Cancel(request: EventCancelRequest): Promise {\n const data = EventCancelRequest.encode(request).finish();\n const promise = this.rpc.request(\n \"shopaholic.service.v1.Timetable\",\n \"Cancel\",\n data\n );\n return promise.then((data) => EventCancelResponse.decode(new Reader(data)));\n }\n\n BusinessHours(\n request: BusinessHoursListRequest\n ): Promise {\n const data = BusinessHoursListRequest.encode(request).finish();\n const promise = this.rpc.request(\n \"shopaholic.service.v1.Timetable\",\n \"BusinessHours\",\n data\n );\n return promise.then((data) =>\n BusinessHoursListResponse.decode(new Reader(data))\n );\n }\n}\n\nexport interface Products {\n FindProductToken(\n request: FindProductTokenRequest\n ): Promise;\n}\n\nexport class ProductsClientImpl implements Products {\n private readonly rpc: Rpc;\n constructor(rpc: Rpc) {\n this.rpc = rpc;\n }\n FindProductToken(\n request: FindProductTokenRequest\n ): Promise {\n const data = FindProductTokenRequest.encode(request).finish();\n const promise = this.rpc.request(\n \"shopaholic.service.v1.Products\",\n \"FindProductToken\",\n data\n );\n return promise.then((data) =>\n FindProductTokenResponse.decode(new Reader(data))\n );\n }\n}\n\ninterface Rpc {\n request(\n service: string,\n method: string,\n data: Uint8Array\n ): Promise;\n}\n\ntype Builtin = Date | Function | Uint8Array | string | number | undefined;\nexport type DeepPartial = T extends Builtin\n ? T\n : T extends Array\n ? Array>\n : T extends ReadonlyArray\n ? ReadonlyArray>\n : T extends {}\n ? { [K in keyof T]?: DeepPartial }\n : Partial;\n\nfunction toTimestamp(date: Date): Timestamp {\n const seconds = date.getTime() / 1_000;\n const nanos = (date.getTime() % 1_000) * 1_000_000;\n return { seconds, nanos };\n}\n\nfunction fromTimestamp(t: Timestamp): Date {\n let millis = t.seconds * 1_000;\n millis += t.nanos / 1_000_000;\n return new Date(millis);\n}\n\nfunction fromJsonTimestamp(o: any): Date {\n if (o instanceof Date) {\n return o;\n } else if (typeof o === \"string\") {\n return new Date(o);\n } else {\n return fromTimestamp(Timestamp.fromJSON(o));\n }\n}\n","import { OrderItem, itemShipping, itemSubtotal, itemTax, itemTotal } from \"./orderItem\";\n\nimport { Decimal } from \"decimal.js\";\nimport { OrderRequest_ConveyanceType } from \"../rpc/shopaholic/shopaholic\";\nimport { Timeslot } from \"./timeslot\";\nimport { Product } from \"./product\";\n\nexport enum ConveyanceType {\n Pickup = OrderRequest_ConveyanceType.CONVEYANCE_TYPE_PICKUP,\n Ship = OrderRequest_ConveyanceType.CONVEYANCE_TYPE_SHIP,\n LocalDelivery = OrderRequest_ConveyanceType.CONVEYANCE_TYPE_LOCAL_DELIVERY,\n}\n\n// Order identifies the order the customer has prepared for submission.\nexport type Order = {\n id?: string;\n conveyanceType: ConveyanceType;\n items: OrderItem[];\n gratuity?: Decimal;\n timeslot?: Timeslot;\n};\n\n// orderAllowsShipping returns true if the order can be shipped.\nexport function orderAllowsShipping(order: Order): boolean {\n for (const item of order.items) {\n if (item.product.noShipping) {\n return false;\n }\n }\n return !orderIsTimeSensitive(order);\n}\n\n// orderIsTimeSensitive returns true if the order has time sensitive products.\nexport function orderIsTimeSensitive(order: Order): boolean {\n for (const item of order.items) {\n if (item.product.leadTime && item.product.leadTime > 0) {\n return true;\n }\n if (item.product.availability && item.product.availability.length > 0) {\n return true;\n }\n }\n\n return false;\n}\n\n// orderLeadTime returns how much lead time is necessary to fulfill the order.\nexport function orderLeadTime(order: Order): number {\n let du = 0;\n for (const item of order.items) {\n if (item.product.leadTime && du < item.product.leadTime) {\n du = item.product.leadTime;\n }\n }\n return du;\n}\n\n// orderProducts returns the products in the order that have availability constraints.\nexport function orderProductsAvailability(order: Order): Product[] {\n const products = [];\n for (const item of order.items) {\n if (item.product.availability && item.product.availability.length > 0) {\n products.push(item.product);\n }\n }\n\n return products;\n}\n\n// itemCount returns the sum of products selected for purchase in the order.\nexport function itemCount(order: Order): number {\n let sum = 0;\n for (const item of order.items) {\n sum += item.quantity;\n }\n return sum;\n}\n\n// acceptsGratuity identifies an order that accepts gratuities. Acceptance of gratuities is determined by the order\n// being time sensitive.\n//\n// TODO: This was originally determined by a model flag. That methodology should be considered again.\nexport function acceptsGratuity(order: Order): boolean {\n return orderIsTimeSensitive(order);\n}\n\n// orderSubtotal returns the subtotal of the entire order.\nexport function orderSubtotal(order: Order): Decimal {\n let sum = new Decimal(0);\n for (const item of order.items) {\n sum = sum.add(itemSubtotal(item));\n }\n if (acceptsGratuity(order) && order.gratuity) {\n sum = sum.add(order.gratuity);\n }\n return sum;\n}\n\nexport const defaultShipAmount = new Decimal(13.5);\nexport const freeShipThreshold = new Decimal(80);\nconst shipTaxRate = new Decimal(0.13);\n\n// orderHasFreeShipping returns true if the supplied order qualifies for free shipping.\nexport function orderHasFreeShipping(order: Order): boolean {\n if (order.conveyanceType === ConveyanceType.Ship) {\n return orderSubtotal(order).greaterThan(freeShipThreshold);\n } else {\n return true;\n }\n}\n\n// orderRemainingForFreeShipping returns the amount remaining to qualify for free shipping.\nexport function orderRemainingForFreeShipping(order: Order): Decimal {\n return freeShipThreshold.sub(orderSubtotal(order));\n}\n\n// orderShippingTotal returns the shipping cost for the order for the selected conveyance. The shipping cost is the\n// maximum shipping cost of an individual item. Free shipping is applied when the order subtotal exceeds the free\n// shipping threshold.\nexport function orderShippingTotal(order: Order): Decimal {\n if (orderHasFreeShipping(order)) {\n return new Decimal(0);\n }\n return orderShippingCost(order);\n}\n\n// orderShippingCost returns the shipping cost when the order. This function differs from orderShippingCost total\n// in that the result does not depend on the conveyance type.\nexport function orderShippingCost(order: Order): Decimal {\n let result = new Decimal(0);\n for (const item of order.items) {\n const amount = itemShipping(item);\n if (amount.greaterThan(result)) {\n result = amount;\n }\n }\n return result;\n}\n\n// orderTax returns the amount of the tax on the order.\nexport function orderTax(order: Order): Decimal {\n let sum = new Decimal(0);\n for (const item of order.items) {\n sum = sum.add(itemTax(item));\n }\n\n if (order.conveyanceType === ConveyanceType.Ship) {\n sum = sum.add(orderShippingTotal(order).mul(shipTaxRate));\n }\n\n return sum;\n}\n\n// orderTotal returns the amount of the order, including taxes.\nexport function orderTotal(order: Order): Decimal {\n let sum = new Decimal(0);\n for (const item of order.items) {\n sum = sum.add(itemTotal(item));\n }\n\n if (acceptsGratuity(order) && order.gratuity) {\n sum = sum.add(order.gratuity);\n }\n if (order.conveyanceType === ConveyanceType.Ship) {\n const shipping = orderShippingTotal(order).mul(shipTaxRate.add(new Decimal(1)));\n sum = sum.add(shipping);\n }\n\n return sum;\n}\n\n// orderTotalForGratuity returns the amount of the order for calculating a percentage tip.\nexport function orderTotalForGratuity(order: Order): Decimal {\n let sum = new Decimal(0);\n for (const item of order.items) {\n sum = sum.add(itemTotal(item));\n }\n return sum;\n}\n\n// orderTimeslot returns the time for the order. If the order does not have a timeslot, the first available\n// product availability is returned. If no product availability is available, the current time is returned.\nexport function orderTimeslot(order: Order): Date {\n if (order.timeslot) {\n return order.timeslot.time;\n }\n\n for (const item of order.items) {\n if (item.product.availability && item.product.availability.length > 0) {\n return new Date(item.product.availability[0].start);\n }\n }\n\n return new Date();\n}\n","import { ConveyanceType, Order } from \"../models/order\";\nimport { OrderItem } from \"../models/orderItem\";\nimport { optionFromToken, productFromToken } from \"../models/product\";\n\nconst localStorageOrderKey = \"shopaholic_order\";\nexport const defaultOrder: Order = {\n id: undefined,\n conveyanceType: ConveyanceType.Ship,\n items: [],\n};\n\n// load returns the order stored in localStorage.\nexport function load(): Order {\n try {\n const data = localStorage.getItem(localStorageOrderKey);\n if (!data) {\n throw \"Data empty\";\n }\n\n const [order, date] = deserialize(data);\n date.setDate(date.getDate() + 2); // Cart valid for two days.\n if (date < new Date()) {\n return { ...defaultOrder };\n }\n return order;\n } catch (err) {\n return { ...defaultOrder };\n }\n}\n\n// store persists the supplied order to localStorage.\nexport function store(order: Order) {\n localStorage.setItem(localStorageOrderKey, serialize(order));\n}\n\n// SerializedOrder identifies the structure of the serialized object stored in local storage.\ntype SerializedOrder = {\n timestamp?: number;\n order?: Partial;\n};\n\n// serialize returns a string representation of the order for storage.\nfunction serialize(order: Order): string {\n const timestamp = new Date().getTime() / 1000;\n return JSON.stringify({ order, timestamp });\n}\n\n// deserialize returns the object representation from a serialized string.\nfunction deserialize(data: string): [Order, Date] {\n const { order, timestamp } = JSON.parse(data) as SerializedOrder;\n\n if (!order) {\n return [{ ...defaultOrder }, new Date(0)];\n }\n\n let items: OrderItem[] = [];\n if (order.items) {\n items = order.items.map((item: any) => ({\n product: productFromToken(item.product.token),\n option: item.option ? optionFromToken(item.option) : undefined,\n quantity: item.quantity,\n instructions: item.instructions,\n }));\n }\n\n return [\n {\n id: order.id,\n conveyanceType: order.conveyanceType || defaultOrder.conveyanceType,\n items,\n },\n new Date((timestamp || 0) * 1000),\n ];\n}\n","import Decimal from \"decimal.js\";\nimport * as React from \"react\";\n\nimport { ConveyanceType, Order, orderAllowsShipping } from \"../models/order\";\nimport { OrderItem } from \"../models/orderItem\";\nimport { Option, Product } from \"../models/product\";\nimport { Timeslot } from \"../models/timeslot\";\nimport { defaultOrder, load, store } from \"./localStorage\";\n\nlet order: Order = load();\nconst OrderContext = React.createContext<[Order, number]>([order, 0]);\n\nexport function useOrder(): Order {\n const [order, _] = React.useContext(OrderContext);\n return order;\n}\n\nexport function useOrderVersion(): number {\n const [_, version] = React.useContext(OrderContext);\n return version;\n}\n\n// OrderProvider is a wrapper that propigates changes to the order down to\n// any child components that subscribe to the order context.\nexport function OrderProvider({ children }: React.PropsWithChildren<{}>) {\n const [counter, setCounter] = React.useState(0);\n\n React.useEffect(() => {\n listener = () => setCounter(counter + 1);\n return () => (listener = undefined);\n }, [counter]);\n\n return {children};\n}\n\nlet listener: (() => void) | undefined;\nfunction commit() {\n store(order);\n listener && listener();\n}\n\n// setItem updates the order item matching the supplied product with the number\n// of quantity items.\nexport function setItem(product: Product, option: Option | undefined, quantity: number) {\n const item = order.items.find((item) => isSameItem(item, product, option));\n if (quantity < 1) {\n order.items = order.items.filter((item) => !isSameItem(item, product, option));\n } else if (item) {\n item.quantity = quantity;\n } else {\n order.items = [\n ...order.items,\n {\n product: product,\n quantity: quantity,\n option: option,\n },\n ];\n }\n\n commit();\n}\n\n// addItem adds one more item to the cart for the supplied product.\nexport function addItem(product: Product, option: Option | undefined) {\n const item = order.items.find((item) => isSameItem(item, product, option));\n if (item) {\n setItem(product, option, item.quantity + 1);\n } else {\n setItem(product, option, 1);\n }\n\n // Pick the pickup conveyance type if the order does not accept shipping and the order is set to ship.\n if (!orderAllowsShipping(order) && order.conveyanceType == ConveyanceType.Ship) {\n setConveyanceType(ConveyanceType.Pickup);\n }\n}\n\n// isSameItem returns true if the supplied order item matches the selected product/option.\nfunction isSameItem(item: OrderItem, product: Product, option: Option | undefined): boolean {\n if (!option) {\n return item.product.SKU === product.SKU && !item.option;\n }\n return item.product.SKU === product.SKU && !!item.option && item.option.SKU === option.SKU;\n}\n\nexport function setOrderID(id: string) {\n order.id = id;\n commit();\n}\n\nexport function setConveyanceType(type: ConveyanceType) {\n order.conveyanceType = type;\n commit();\n}\n\n// setGratuity assigns a tip amount to the order.\nexport function setGratuity(amount: Decimal) {\n order.gratuity = amount;\n commit();\n}\n\n// setFulfillment time assigns the fulfillment time to the active order.\nexport function setFulfillmentEvent(timeslot: Timeslot) {\n order.timeslot = timeslot;\n commit();\n}\n\n// resetOrder resets an order to its initial state.\nexport function resetOrder() {\n order = { ...defaultOrder };\n commit();\n}\n","// Action identifies types of user interaction.\nexport enum Action {\n // Custom actions.\n // TODO: Add custom actions.\n\n // Suggested actions from gtag.js.\n add_payment_info = \"add_payment_info\",\n add_to_cart = \"add_to_cart\",\n add_to_wishlist = \"add_to_wishlist\",\n begin_checkout = \"begin_checkout\",\n checkout_progress = \"checkout_progress\",\n exception = \"exception\",\n generate_lead = \"generate_lead\",\n login = \"login\",\n page_view = \"page_view\",\n purchase = \"purchase\",\n refund = \"refund\",\n remove_from_cart = \"remove_from_cart\",\n screen_view = \"screen_view\",\n search = \"search\",\n select_content = \"select_content\",\n set_checkout_option = \"set_checkout_option\",\n share = \"share\",\n sign_up = \"sign_up\",\n timing_complete = \"timing_complete\",\n view_item = \"view_item\",\n view_item_list = \"view_item_list\",\n view_promotion = \"view_promotion\",\n view_search_results = \"view_search_results\",\n}\n\nexport type EventParams = Gtag.EventParams;\n","import { Action, EventParams } from \"./../models/action\";\n\n// trackAction sends the action to the analytics service.\nexport function trackAction(category: string, action: Action, params?: EventParams) {\n if (gtag) {\n gtag(\"event\", \"action\", { ...params, event_category: category, event_label: action });\n }\n}\n\n// trackOrderAction calls trackAction with an order scope. To be used for order-related events.\nexport function trackOrderAction(action: Action, params?: EventParams) {\n trackAction(\"orders\", action, params);\n}\n","import * as React from \"react\";\nimport { AddButton } from \"../../components/orders/AddButton\";\n\nimport { addItem } from \"../../hooks/Order\";\nimport { Action } from \"../../models/action\";\nimport { Option, feeSubtotal, productFromToken, visibleFeeSubtotal } from \"../../models/product\";\nimport { trackOrderAction } from \"../../service/analytics\";\nimport { formatAmount } from \"../../util/currency\";\n\ninterface AddControllerProps {\n token: string;\n}\n\n// AddController provides a buy button.\nexport default function AddController({ token }: AddControllerProps) {\n const product = productFromToken(token);\n const [option, setOption] = React.useState\n );\n }\n\n return (\n \n \n

Checkout

\n\n

\n We need just a little more information in order to complete the transaction. Please fill out the information\n below.\n

\n
\n\n
\n {error && (\n \n {errors()}\n \n )}\n\n
\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n\n {acceptsGratuity(order) && (\n <>\n \n

If you would like, you may add an optional tip for your server.

\n \n\n \n \n \n
\n\n \n \n )}\n\n \n \n Your total comes to {formatAmount(orderTotal(order))}\n {order.timeslot && (\n <>\n
\n Scheduled for {formatDateTime(order.timeslot.time)}\n \n )}\n
\n \n \n \n
\n\n \n\n \n \n \n\n {order.conveyanceType !== ConveyanceType.Pickup && (\n <>\n \n Delivery Address\n\n \n \n \n \n\n \n \n \n \n \n\n \n \n {cityInput}\n\n \n
Ontario
\n
\n
\n\n \n \n \n
\n \n )}\n\n \n\n \n Message\n\n \n \n

Let us know if there is anything else we should know about your order.

\n
\n \n
\n
\n \n
\n\n \n \n \n \n
\n );\n}\n","// getErrorMessage attempts to extract a human-readable error message from the result of a catch block.\n// If a message was unable to be determined an unknown error message will be given.\nexport function getErrorMessage(error: any): string | string[] {\n if (!error) {\n return \"No error\";\n }\n\n if (typeof error === \"string\" || Array.isArray(error)) {\n return error;\n }\n if (\"message\" in error) {\n return error.message;\n }\n if (\"toString\" in error) {\n return error.toString();\n }\n\n return \"An unknown error occurred\";\n}\n","import { Token } from \"@stripe/stripe-js\";\n\nimport { ConveyanceType, Order } from \"../models/order\";\nimport { PaymentInfo } from \"../models/payment\";\nimport * as pb from \"../rpc/shopaholic/shopaholic\";\nimport { OrderRequest } from \"../rpc/shopaholic/shopaholic\";\nimport { twirpClient } from \"./client\";\n\n// ANCHOR: Service.\n\n// placeOrder submits an order to the server.\nexport async function placeOrder(order: Order, paymentInfo: PaymentInfo, stripeToken: Token): Promise<{ id: string }> {\n const request = makeOrderRequest(order, paymentInfo, stripeToken);\n const client = new pb.OrderClientImpl(twirpClient);\n const response = await client.Place(request);\n const { error: requestError, id } = response;\n if (requestError) {\n throw requestError.validationErrors;\n }\n return { id };\n}\n\n// ANCHOR: Protobuf Serialization\n\nconst conveyanceTypeMap = {\n [ConveyanceType.Ship]: pb.OrderRequest_ConveyanceType.CONVEYANCE_TYPE_SHIP,\n [ConveyanceType.LocalDelivery]: pb.OrderRequest_ConveyanceType.CONVEYANCE_TYPE_LOCAL_DELIVERY,\n [ConveyanceType.Pickup]: pb.OrderRequest_ConveyanceType.CONVEYANCE_TYPE_PICKUP,\n};\n\n// makeOrderRequest returns a OrderRequest protobuf object.\nexport function makeOrderRequest(order: Order, paymentInfo: PaymentInfo, stripeToken: Token): OrderRequest {\n return {\n conveyanceType: conveyanceTypeMap[order.conveyanceType],\n card: stripeToken.id,\n items: order.items.map((orderItem) => ({\n token: orderItem.product.token,\n option: orderItem.option && { sku: orderItem.option.SKU },\n quantity: orderItem.quantity,\n instructions: orderItem.instructions ?? \"\",\n })),\n paymentType: pb.OrderRequest_PaymentType.PAYMENT_TYPE_CARD,\n message: paymentInfo.message ?? \"\",\n customer: {\n firstName: paymentInfo.first_name ?? \"\",\n lastName: paymentInfo.last_name ?? \"\",\n email: paymentInfo.email ?? \"\",\n phone: paymentInfo.phone ?? \"\",\n },\n shippingAddress: {\n street1: paymentInfo.shipping_street_1 ?? \"\",\n street2: paymentInfo.shipping_street_2 ?? \"\",\n city: paymentInfo.shipping_city ?? \"\",\n postalCode: paymentInfo.shipping_postal_code ?? \"\",\n },\n gratuity: order.gratuity?.toString() ?? \"\",\n fulfillment: order.timeslot?.time,\n eventID: order.timeslot?.id ?? \"\",\n };\n}\n","import * as React from \"react\";\n\nimport { OrderProviderProps, Step } from \"./OrderController\";\nimport { orderIsTimeSensitive, orderShippingTotal, orderTax } from \"../../models/order\";\n\nimport { Action } from \"../../models/action\";\nimport Pay from \"../../components/orders/Pay\";\nimport { PaymentInfo } from \"../../models/payment\";\nimport { StripeCardElement } from \"@stripe/stripe-js\";\nimport { commitTimeslot } from \"../../service/timetable\";\nimport { getErrorMessage } from \"../../util/errors\";\nimport { itemSubtotal } from \"../../models/orderItem\";\nimport { placeOrder } from \"../../service/order\";\nimport { setOrderID } from \"../../hooks/Order\";\nimport { trackOrderAction } from \"../../service/analytics\";\nimport { useStripe } from \"@stripe/react-stripe-js\";\n\ninterface PaymentControllerProps extends OrderProviderProps {}\n\n// PaymentController provides payment functionality.\nexport default function PaymentController({ order, onNavigate }: PaymentControllerProps) {\n const stripe = useStripe();\n const [error, setError] = React.useState(undefined);\n\n function onBack() {\n if (orderIsTimeSensitive(order)) {\n onNavigate(Step.FindTime);\n } else {\n onNavigate(Step.Cart);\n }\n }\n\n async function onSubmit(paymentInfo: PaymentInfo, cardElement: StripeCardElement, onFinished: () => void) {\n function setErrorFinished(err: Error | string | string[]) {\n const message = getErrorMessage(err);\n setError(message);\n onFinished();\n }\n\n try {\n if (!stripe) {\n throw new Error(\"Payment processor not configured\");\n }\n\n const { error, token } = await stripe.createToken(cardElement, {\n name: `${paymentInfo.first_name} ${paymentInfo.last_name}`,\n address_line1: paymentInfo.shipping_street_1,\n address_line2: paymentInfo.shipping_street_2,\n address_city: paymentInfo.shipping_city,\n address_state: \"Ontario\",\n address_zip: paymentInfo.shipping_postal_code,\n address_country: \"CA\",\n });\n if (error) {\n throw error;\n }\n if (!token) {\n throw new Error(\"Payment token not found\");\n }\n\n // If the order has an associated timetable event we need to commit to the reservation.\n if (order.timeslot) {\n await commitTimeslot(order.timeslot);\n }\n\n const { id } = await placeOrder(order, paymentInfo, token);\n if (!id || id === \"\") {\n throw new Error(\"Unable to place order. Please try again later.\");\n }\n setOrderID(id);\n onNavigate(Step.Finish);\n\n trackOrderAction(Action.purchase, {\n shipping: orderShippingTotal(order).toDecimalPlaces(2).toString(),\n tax: orderTax(order).toDecimalPlaces(2).toString(),\n items: order.items.map((item) => ({\n id: item.product.SKU,\n name: item.product.name,\n price: itemSubtotal(item).toDecimalPlaces(2).toString(),\n quantity: item.quantity,\n })),\n });\n } catch (err) {\n setErrorFinished(getErrorMessage(err));\n }\n }\n\n return ;\n}\n","import * as React from \"react\";\nimport * as classes from \"./Ship.css\";\n\ninterface ShipProps {}\n\n// Ship renders a shipping icon.\nexport default function Ship(props: ShipProps) {\n return (\n
\n \n
\n );\n}\n","import * as React from \"react\";\n\nimport { ConveyanceType, orderIsTimeSensitive } from \"../../models/order\";\nimport { OrderProviderProps, Step } from \"./OrderController\";\n\nimport Button from \"../../components/core/Button\";\nimport ButtonGroup from \"../../components/core/ButtonGroup\";\nimport Padded from \"../../components/core/Padded\";\nimport Screen from \"../../components/core/Screen\";\nimport Ship from \"../../components/orders/Ship\";\nimport { formatDateTime } from \"../../util/date\";\n\ninterface ThanksControllerProps extends OrderProviderProps {}\n\n// ThanksController gives thanks for the order.\nexport default function ThanksController({ order, onNavigate }: ThanksControllerProps) {\n function onNext() {\n onNavigate(Step.Shop);\n }\n\n let message: React.ReactNode;\n switch (order.conveyanceType) {\n case ConveyanceType.LocalDelivery:\n if (orderIsTimeSensitive(order) && order.timeslot) {\n message = (\n <>\n Your order is scheduled for delivery at {formatDateTime(order.timeslot?.time)}. Reference order:{\" \"}\n {order.id}.\n \n );\n break;\n }\n // fallthrough\n\n case ConveyanceType.Ship:\n message = (\n <>\n Your order will be shipped in one to three business days. Your order reference is: {order.id}\n .\n \n );\n break;\n\n case ConveyanceType.Pickup:\n if (orderIsTimeSensitive(order) && order.timeslot) {\n message = (\n <>\n Your order is scheduled for {formatDateTime(order.timeslot?.time)}. Reference order:{\" \"}\n {order.id}.\n \n );\n } else {\n message = (\n <>\n Your order will be available for pickup during regular business hours. Reference order:{\" \"}\n {order.id}.\n \n );\n }\n break;\n }\n\n return (\n \n \n

Thank You!

\n

Thank you for your order. {message}

\n
\n\n \n\n \n \n \n
\n );\n}\n","import * as React from \"react\";\n\nimport { Order, itemCount } from \"../../models/order\";\nimport { resetOrder, useOrder, useOrderVersion } from \"../../hooks/Order\";\n\nimport { Action } from \"../../models/action\";\nimport CartButton from \"../../components/orders/CartButton\";\nimport CartController from \"./CartController\";\nimport ConfirmTimeController from \"./ConfirmTimeController\";\nimport FindTimeController from \"./FindTimeController\";\nimport Overlay from \"../../components/core/Overlay\";\nimport PaymentController from \"./PaymentController\";\nimport ThanksController from \"./ThanksController\";\nimport { trackOrderAction } from \"../../service/analytics\";\n\ninterface CartControllerProps {}\n\n// OrderProviderProps identifies the propers that are to be used by order provider controllers.\nexport interface OrderProviderProps {\n order: Order;\n onNavigate(step: Step): void;\n}\n\n// Step identifies the steps the user works through during the order checkout process.\nexport enum Step {\n Shop = 0,\n FindTime,\n ConfirmTime,\n Cart,\n Pay,\n Finish,\n}\n\n// Setup of the screens available.\nconst providers: {\n [key in Step]: undefined | ((props: OrderProviderProps) => JSX.Element);\n} = {\n [Step.Shop]: undefined,\n [Step.FindTime]: FindTimeController,\n [Step.ConfirmTime]: ConfirmTimeController,\n [Step.Cart]: CartController,\n [Step.Pay]: PaymentController,\n [Step.Finish]: ThanksController,\n};\n\n// CartController provides shopping cart functionality.\nexport default function OrderController(props: CartControllerProps) {\n const order = useOrder();\n const version = useOrderVersion();\n const [step, setStep] = React.useState(Step.Shop);\n const [lastOrder, setLastOrder] = React.useState();\n\n // showCart is called when the user activates the cart. Activation can happen by pressing on the cart icon\n // or adding a product to the cart.\n function showCart() {\n setStep(Step.Cart);\n }\n\n // Present the user with the cart when the cart changes. When the user returns to a cart after a page reload\n // the cart will not appear before user action. The actions are ignored when in the finish step state.\n const count = itemCount(order);\n React.useEffect(() => {\n if (version === 0 || step === Step.Finish) {\n return;\n }\n\n if (count === 0) {\n setStep(Step.Shop);\n } else {\n showCart();\n }\n }, [count]);\n\n // React to step state changes. The cart is reset when the user enters the finish step.\n React.useEffect(() => {\n trackOrderAction(Action.checkout_progress, { checkout_step: step });\n\n if (step === Step.Finish) {\n setLastOrder({ ...order });\n resetOrder();\n } else if (lastOrder) {\n setLastOrder(undefined);\n }\n }, [step]);\n\n // Render with the previous order object when the order is finished. The active order is reset when the state\n // changes and this allows the provider to display information from the previously submitted order.\n let renderOrder = order;\n if (step === Step.Finish && lastOrder) {\n renderOrder = lastOrder;\n }\n\n const Provider = providers[step];\n return (\n
\n {Provider && (\n \n \n \n )}\n {count && }\n
\n );\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nvar V3_URL = 'https://js.stripe.com/v3';\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\nvar findScript = function findScript() {\n var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(V3_URL, \"\\\"]\"));\n\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i];\n\n if (!V3_URL_REGEX.test(script.src)) {\n continue;\n }\n\n return script;\n }\n\n return null;\n};\n\nvar injectScript = function injectScript(params) {\n var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n var script = document.createElement('script');\n script.src = \"\".concat(V3_URL).concat(queryString);\n var headOrBody = document.head || document.body;\n\n if (!headOrBody) {\n throw new Error('Expected document.body not to be null. Stripe.js requires a element.');\n }\n\n headOrBody.appendChild(script);\n return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe, startTime) {\n if (!stripe || !stripe._registerWrapper) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'stripe-js',\n version: \"1.27.0\",\n startTime: startTime\n });\n};\n\nvar stripePromise = null;\nvar loadScript = function loadScript(params) {\n // Ensure that we only attempt to load Stripe.js at most once\n if (stripePromise !== null) {\n return stripePromise;\n }\n\n stripePromise = new Promise(function (resolve, reject) {\n if (typeof window === 'undefined') {\n // Resolve to null when imported server side. This makes the module\n // safe to import in an isomorphic code base.\n resolve(null);\n return;\n }\n\n if (window.Stripe && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n }\n\n if (window.Stripe) {\n resolve(window.Stripe);\n return;\n }\n\n try {\n var script = findScript();\n\n if (script && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n } else if (!script) {\n script = injectScript(params);\n }\n\n script.addEventListener('load', function () {\n if (window.Stripe) {\n resolve(window.Stripe);\n } else {\n reject(new Error('Stripe.js not available'));\n }\n });\n script.addEventListener('error', function () {\n reject(new Error('Failed to load Stripe.js'));\n });\n } catch (error) {\n reject(error);\n return;\n }\n });\n return stripePromise;\n};\nvar initStripe = function initStripe(maybeStripe, args, startTime) {\n if (maybeStripe === null) {\n return null;\n }\n\n var stripe = maybeStripe.apply(undefined, args);\n registerWrapper(stripe, startTime);\n return stripe;\n}; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\nvar validateLoadParams = function validateLoadParams(params) {\n var errorMessage = \"invalid load parameters; expected object of shape\\n\\n {advancedFraudSignals: boolean}\\n\\nbut received\\n\\n \".concat(JSON.stringify(params), \"\\n\");\n\n if (params === null || _typeof(params) !== 'object') {\n throw new Error(errorMessage);\n }\n\n if (Object.keys(params).length === 1 && typeof params.advancedFraudSignals === 'boolean') {\n return params;\n }\n\n throw new Error(errorMessage);\n};\n\nvar loadParams;\nvar loadStripeCalled = false;\nvar loadStripe = function loadStripe() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n loadStripeCalled = true;\n var startTime = Date.now();\n return loadScript(loadParams).then(function (maybeStripe) {\n return initStripe(maybeStripe, args, startTime);\n });\n};\n\nloadStripe.setLoadParameters = function (params) {\n if (loadStripeCalled) {\n throw new Error('You cannot change load parameters after calling loadStripe');\n }\n\n loadParams = validateLoadParams(params);\n};\n\nexports.loadStripe = loadStripe;\n","module.exports = require('./dist/pure.js');\n","// TODO: The following should potentially be configuration variables.\n// See: https://github.com/keysolutions/shopaholic/issues/11\nexport var stripePublicKey = \"pk_live_eWgJbHmN0KlC8PGdpGVD4apb00tnNJmEPX\";\nexport var environment = \"live\";\nif (location && [\"localhost\", \"beta.bayfieldbrewingco.com\"].includes(location.hostname)) {\n stripePublicKey = \"pk_test_wROG9jUOf1birJ2BpClmY05z00uX1Y5KhY\";\n environment = \"dev\";\n}\n","import * as pb from \"../rpc/shopaholic/shopaholic\";\nimport { twirpClient } from \"./client\";\n\n// findProductToken returns a token that contains information about the product matching the supplied SKU.\nexport async function findProductToken(origin: string, sku: string): Promise {\n const client = new pb.ProductsClientImpl(twirpClient);\n const { token } = await client.FindProductToken({ sku, origin });\n return token;\n}\n","import * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport * as Sentry from \"@sentry/react\";\nimport { BrowserTracing } from \"@sentry/tracing\";\nimport { backOff } from \"exponential-backoff\";\n\nimport AddController from \"./src/controllers/orders/AddController\";\nimport { Elements } from \"@stripe/react-stripe-js\";\nimport OrderController from \"./src/controllers/orders/OrderController\";\nimport { OrderProvider } from \"./src/hooks/Order\";\nimport { loadStripe } from \"@stripe/stripe-js/pure\";\nimport { stripePublicKey, environment } from \"./config\";\nimport { findProductToken } from \"./src/service/products\";\n\nSentry.init({\n dsn: \"https://4f5c697616874f478b2e35eb6ce42010@o1196307.ingest.sentry.io/6320929\",\n integrations: [new BrowserTracing()],\n environment,\n\n // Set tracesSampleRate to 1.0 to capture 100%\n // of transactions for performance monitoring.\n // We recommend adjusting this value in production\n tracesSampleRate: 1.0,\n});\n\nconst fontScript = document.createElement(\"script\");\nfontScript.src = \"https://kit.fontawesome.com/8a697c07b3.js\";\nfontScript.crossOrigin = \"anonymous\";\ndocument.body.append(fontScript);\n\n// Start the main application and insert it into the document.\nconst stripePromise = backOff(() => loadStripe(stripePublicKey));\nconst app = document.createElement(\"div\");\ndocument.body.append(app);\nReactDOM.render(\n \n \n \n \n ,\n app\n);\n\n// Search for product elements in the HTML document. These elements contain the information to construct the shop\n// button and provide the product information to the cart.\nconst products = document.querySelectorAll(\"[data-product]\");\nfor (const product of Object.values(products)) {\n (async () => {\n const data = product.getAttribute(\"data-product\");\n if (!data) {\n return;\n }\n\n try {\n let token = data;\n if (token.startsWith(\"sku:\")) {\n token = await findProductToken(location.origin, token.slice(4));\n }\n\n ReactDOM.render(, product);\n } catch (err) {}\n })();\n}\n"]}

= (props: P) => (\n \n \n \n );\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n Wrapped.displayName = `errorBoundary(${componentDisplayName})`;\n\n // Copy over static methods from Wrapped component to Profiler HOC\n // See: https://reactjs.org/docs/higher-order-components.html#static-methods-must-be-copied-over\n hoistNonReactStatics(Wrapped, WrappedComponent);\n return Wrapped;\n}\n\nexport { ErrorBoundary, withErrorBoundary };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { configureScope } from '@sentry/minimal';\nimport { Scope } from '@sentry/types';\n\ninterface Action {\n type: T;\n}\n\ninterface AnyAction extends Action {\n [extraProps: string]: any;\n}\n\ntype Reducer = (state: S | undefined, action: A) => S;\n\ntype Dispatch = (action: T, ...extraArgs: any[]) => T;\n\ntype ExtendState = [Extension] extends [never] ? State : State & Extension;\n\ntype Unsubscribe = () => void;\n\ninterface Store> {\n dispatch: Dispatch;\n getState(): S;\n subscribe(listener: () => void): Unsubscribe;\n replaceReducer(\n nextReducer: Reducer,\n ): Store, NewActions, StateExt, Ext> & Ext;\n}\n\ndeclare const $CombinedState: unique symbol;\n\ntype CombinedState = { readonly [$CombinedState]?: undefined } & S;\n\ntype PreloadedState = Required extends {\n [$CombinedState]: undefined;\n}\n ? S extends CombinedState\n ? { [K in keyof S1]?: S1[K] extends Record ? PreloadedState : S1[K] }\n : never\n : { [K in keyof S]: S[K] extends string | number | boolean | symbol ? S[K] : PreloadedState };\n\ntype StoreEnhancerStoreCreator, StateExt = never> = <\n S = any,\n A extends Action = AnyAction,\n>(\n reducer: Reducer,\n preloadedState?: PreloadedState,\n) => Store, A, StateExt, Ext> & Ext;\n\nexport interface SentryEnhancerOptions {\n /**\n * Transforms the state before attaching it to an event.\n * Use this to remove any private data before sending it to Sentry.\n * Return null to not attach the state.\n */\n stateTransformer(state: S | undefined): (S & any) | null;\n /**\n * Transforms the action before sending it as a breadcrumb.\n * Use this to remove any private data before sending it to Sentry.\n * Return null to not send the breadcrumb.\n */\n actionTransformer(action: AnyAction): AnyAction | null;\n /**\n * Called on every state update, configure the Sentry Scope with the redux state.\n */\n configureScopeWithState?(scope: Scope, state: S): void;\n}\n\nconst ACTION_BREADCRUMB_CATEGORY = 'redux.action';\nconst ACTION_BREADCRUMB_TYPE = 'info';\nconst STATE_CONTEXT_KEY = 'redux.state';\n\nconst defaultOptions: SentryEnhancerOptions = {\n actionTransformer: action => action,\n stateTransformer: state => state || null,\n};\n\n/**\n * Creates an enhancer that would be passed to Redux's createStore to log actions and the latest state to Sentry.\n *\n * @param enhancerOptions Options to pass to the enhancer\n */\nfunction createReduxEnhancer(enhancerOptions?: Partial): any {\n // Note: We return an any type as to not have type conflicts.\n const options = {\n ...defaultOptions,\n ...enhancerOptions,\n };\n\n return (next: StoreEnhancerStoreCreator): StoreEnhancerStoreCreator =>\n (reducer: Reducer, initialState?: PreloadedState) => {\n const sentryReducer: Reducer = (state, action): S => {\n const newState = reducer(state, action);\n\n configureScope(scope => {\n /* Action breadcrumbs */\n const transformedAction = options.actionTransformer(action);\n if (typeof transformedAction !== 'undefined' && transformedAction !== null) {\n scope.addBreadcrumb({\n category: ACTION_BREADCRUMB_CATEGORY,\n data: transformedAction,\n type: ACTION_BREADCRUMB_TYPE,\n });\n }\n\n /* Set latest state to scope */\n const transformedState = options.stateTransformer(newState);\n if (typeof transformedState !== 'undefined' && transformedState !== null) {\n scope.setContext(STATE_CONTEXT_KEY, transformedState);\n } else {\n scope.setContext(STATE_CONTEXT_KEY, null);\n }\n\n /* Allow user to configure scope with latest state */\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { configureScopeWithState } = options;\n if (typeof configureScopeWithState === 'function') {\n configureScopeWithState(scope, newState);\n }\n });\n\n return newState;\n };\n\n return next(sentryReducer, initialState);\n };\n}\n\nexport { createReduxEnhancer };\n","import { Primitive, Transaction, TransactionContext } from '@sentry/types';\nimport { getGlobalObject } from '@sentry/utils';\n\nimport { Location, ReactRouterInstrumentation } from './types';\n\n// Many of the types below had to be mocked out to prevent typescript issues\n// these types are required for correct functionality.\n\ntype HistoryV3 = {\n location?: Location;\n listen?(cb: (location: Location) => void): void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n} & Record;\n\nexport type Route = { path?: string; childRoutes?: Route[] };\n\nexport type Match = (\n props: { location: Location; routes: Route[] },\n cb: (error?: Error, _redirectLocation?: Location, renderProps?: { routes?: Route[] }) => void,\n) => void;\n\nconst global = getGlobalObject();\n\n/**\n * Creates routing instrumentation for React Router v3\n * Works for React Router >= 3.2.0 and < 4.0.0\n *\n * @param history object from the `history` library\n * @param routes a list of all routes, should be\n * @param match `Router.match` utility\n */\nexport function reactRouterV3Instrumentation(\n history: HistoryV3,\n routes: Route[],\n match: Match,\n): ReactRouterInstrumentation {\n return (\n startTransaction: (context: TransactionContext) => Transaction | undefined,\n startTransactionOnPageLoad: boolean = true,\n startTransactionOnLocationChange: boolean = true,\n ) => {\n let activeTransaction: Transaction | undefined;\n let prevName: string | undefined;\n\n // Have to use global.location because history.location might not be defined.\n if (startTransactionOnPageLoad && global && global.location) {\n normalizeTransactionName(routes, global.location as unknown as Location, match, (localName: string) => {\n prevName = localName;\n activeTransaction = startTransaction({\n name: prevName,\n op: 'pageload',\n tags: {\n 'routing.instrumentation': 'react-router-v3',\n },\n });\n });\n }\n\n if (startTransactionOnLocationChange && history.listen) {\n history.listen(location => {\n if (location.action === 'PUSH' || location.action === 'POP') {\n if (activeTransaction) {\n activeTransaction.finish();\n }\n const tags: Record = {\n 'routing.instrumentation': 'react-router-v3',\n };\n if (prevName) {\n tags.from = prevName;\n }\n normalizeTransactionName(routes, location, match, (localName: string) => {\n prevName = localName;\n activeTransaction = startTransaction({\n name: prevName,\n op: 'navigation',\n tags,\n });\n });\n }\n });\n }\n };\n}\n\n/**\n * Normalize transaction names using `Router.match`\n */\nfunction normalizeTransactionName(\n appRoutes: Route[],\n location: Location,\n match: Match,\n callback: (pathname: string) => void,\n): void {\n let name = location.pathname;\n match(\n {\n location,\n routes: appRoutes,\n },\n (error, _redirectLocation, renderProps) => {\n if (error || !renderProps) {\n return callback(name);\n }\n\n const routePath = getRouteStringFromRoutes(renderProps.routes || []);\n if (routePath.length === 0 || routePath === '/*') {\n return callback(name);\n }\n\n name = routePath;\n return callback(name);\n },\n );\n}\n\n/**\n * Generate route name from array of routes\n */\nfunction getRouteStringFromRoutes(routes: Route[]): string {\n if (!Array.isArray(routes) || routes.length === 0) {\n return '';\n }\n\n const routesWithPaths: Route[] = routes.filter((route: Route) => !!route.path);\n\n let index = -1;\n for (let x = routesWithPaths.length - 1; x >= 0; x--) {\n const route = routesWithPaths[x];\n if (route.path && route.path.startsWith('/')) {\n index = x;\n break;\n }\n }\n\n return routesWithPaths\n .slice(index)\n .filter(({ path }) => !!path)\n .map(({ path }) => path)\n .join('');\n}\n","import { Transaction } from '@sentry/types';\nimport { getGlobalObject } from '@sentry/utils';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\n\nimport { Action, Location, ReactRouterInstrumentation } from './types';\n\n// We need to disable eslint no-explict-any because any is required for the\n// react-router typings.\n/* eslint-disable @typescript-eslint/no-explicit-any */\ntype Match = { path: string; url: string; params: Record; isExact: boolean };\n\nexport type RouterHistory = {\n location?: Location;\n listen?(cb: (location: Location, action: Action) => void): void;\n} & Record;\n\nexport type RouteConfig = {\n [propName: string]: any;\n path?: string | string[];\n exact?: boolean;\n component?: JSX.Element;\n routes?: RouteConfig[];\n};\n\ntype MatchPath = (pathname: string, props: string | string[] | any, parent?: Match | null) => Match | null;\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst global = getGlobalObject();\n\nlet activeTransaction: Transaction | undefined;\n\nexport function reactRouterV4Instrumentation(\n history: RouterHistory,\n routes?: RouteConfig[],\n matchPath?: MatchPath,\n): ReactRouterInstrumentation {\n return createReactRouterInstrumentation(history, 'react-router-v4', routes, matchPath);\n}\n\nexport function reactRouterV5Instrumentation(\n history: RouterHistory,\n routes?: RouteConfig[],\n matchPath?: MatchPath,\n): ReactRouterInstrumentation {\n return createReactRouterInstrumentation(history, 'react-router-v5', routes, matchPath);\n}\n\nfunction createReactRouterInstrumentation(\n history: RouterHistory,\n name: string,\n allRoutes: RouteConfig[] = [],\n matchPath?: MatchPath,\n): ReactRouterInstrumentation {\n function getInitPathName(): string | undefined {\n if (history && history.location) {\n return history.location.pathname;\n }\n\n if (global && global.location) {\n return global.location.pathname;\n }\n\n return undefined;\n }\n\n function getTransactionName(pathname: string): string {\n if (allRoutes.length === 0 || !matchPath) {\n return pathname;\n }\n\n const branches = matchRoutes(allRoutes, pathname, matchPath);\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let x = 0; x < branches.length; x++) {\n if (branches[x].match.isExact) {\n return branches[x].match.path;\n }\n }\n\n return pathname;\n }\n\n return (customStartTransaction, startTransactionOnPageLoad = true, startTransactionOnLocationChange = true): void => {\n const initPathName = getInitPathName();\n if (startTransactionOnPageLoad && initPathName) {\n activeTransaction = customStartTransaction({\n name: getTransactionName(initPathName),\n op: 'pageload',\n tags: {\n 'routing.instrumentation': name,\n },\n });\n }\n\n if (startTransactionOnLocationChange && history.listen) {\n history.listen((location, action) => {\n if (action && (action === 'PUSH' || action === 'POP')) {\n if (activeTransaction) {\n activeTransaction.finish();\n }\n const tags = {\n 'routing.instrumentation': name,\n };\n\n activeTransaction = customStartTransaction({\n name: getTransactionName(location.pathname),\n op: 'navigation',\n tags,\n });\n }\n });\n }\n };\n}\n\n/**\n * Matches a set of routes to a pathname\n * Based on implementation from\n */\nfunction matchRoutes(\n routes: RouteConfig[],\n pathname: string,\n matchPath: MatchPath,\n branch: Array<{ route: RouteConfig; match: Match }> = [],\n): Array<{ route: RouteConfig; match: Match }> {\n routes.some(route => {\n const match = route.path\n ? matchPath(pathname, route)\n : branch.length\n ? branch[branch.length - 1].match // use parent match\n : computeRootMatch(pathname); // use default \"root\" match\n\n if (match) {\n branch.push({ route, match });\n\n if (route.routes) {\n matchRoutes(route.routes, pathname, matchPath, branch);\n }\n }\n\n return !!match;\n });\n\n return branch;\n}\n\nfunction computeRootMatch(pathname: string): Match {\n return { path: '/', url: '/', params: {}, isExact: pathname === '/' };\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\nexport function withSentryRouting