@adtrackify/at-service-common 1.2.10 → 1.2.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/__tests__/helpers/subscription-helper.spec.d.ts +1 -1
  2. package/dist/__tests__/helpers/subscription-helper.spec.js +27 -27
  3. package/dist/clients/generic/cognito-client.d.ts +19 -19
  4. package/dist/clients/generic/cognito-client.js +139 -139
  5. package/dist/clients/generic/dynamodb-client.d.ts +15 -15
  6. package/dist/clients/generic/dynamodb-client.js +122 -122
  7. package/dist/clients/generic/eventbridge-client.d.ts +14 -14
  8. package/dist/clients/generic/eventbridge-client.js +45 -45
  9. package/dist/clients/generic/http-client.d.ts +30 -30
  10. package/dist/clients/generic/http-client.js +28 -28
  11. package/dist/clients/generic/http-client.js.map +1 -1
  12. package/dist/clients/generic/index.d.ts +6 -6
  13. package/dist/clients/generic/index.js +6 -6
  14. package/dist/clients/generic/s3-client.d.ts +6 -6
  15. package/dist/clients/generic/s3-client.js +24 -24
  16. package/dist/clients/generic/sqs-client.d.ts +14 -14
  17. package/dist/clients/generic/sqs-client.js +34 -34
  18. package/dist/clients/index.d.ts +3 -3
  19. package/dist/clients/index.js +3 -3
  20. package/dist/clients/internal-api/accounts-client.d.ts +82 -82
  21. package/dist/clients/internal-api/accounts-client.js +78 -78
  22. package/dist/clients/internal-api/destinations-client.d.ts +54 -54
  23. package/dist/clients/internal-api/destinations-client.js +36 -36
  24. package/dist/clients/internal-api/index.d.ts +4 -4
  25. package/dist/clients/internal-api/index.js +4 -4
  26. package/dist/clients/internal-api/shopify-app-install-client.d.ts +57 -57
  27. package/dist/clients/internal-api/shopify-app-install-client.js +42 -42
  28. package/dist/clients/internal-api/users-auth-client.d.ts +61 -61
  29. package/dist/clients/internal-api/users-auth-client.js +73 -73
  30. package/dist/clients/third-party/index.d.ts +1 -1
  31. package/dist/clients/third-party/index.js +1 -1
  32. package/dist/clients/third-party/shopify-client.d.ts +90 -90
  33. package/dist/clients/third-party/shopify-client.js +121 -121
  34. package/dist/helpers/index.d.ts +5 -7
  35. package/dist/helpers/index.js +5 -7
  36. package/dist/helpers/index.js.map +1 -1
  37. package/dist/helpers/input-validation-helper.d.ts +2 -2
  38. package/dist/helpers/input-validation-helper.js +18 -18
  39. package/dist/helpers/logging-helper.d.ts +1 -1
  40. package/dist/helpers/logging-helper.js +9 -9
  41. package/dist/helpers/response-helper.d.ts +36 -36
  42. package/dist/helpers/response-helper.js +35 -35
  43. package/dist/helpers/shopify-helper.d.ts +9 -9
  44. package/dist/helpers/shopify-helper.js +23 -23
  45. package/dist/helpers/subscription-helper.d.ts +8 -8
  46. package/dist/helpers/subscription-helper.js +181 -181
  47. package/dist/index.d.ts +5 -5
  48. package/dist/index.esm.js +5 -3116
  49. package/dist/index.esm.js.map +4 -4
  50. package/dist/index.js +5 -5
  51. package/dist/libs/crypto.d.ts +1 -1
  52. package/dist/libs/crypto.js +5 -5
  53. package/dist/libs/dates.d.ts +3 -3
  54. package/dist/libs/dates.js +10 -10
  55. package/dist/libs/http-error.d.ts +21 -21
  56. package/dist/libs/http-error.js +55 -55
  57. package/dist/libs/http-status-codes.d.ts +58 -58
  58. package/dist/libs/http-status-codes.js +59 -59
  59. package/dist/libs/index.d.ts +6 -6
  60. package/dist/libs/index.js +6 -6
  61. package/dist/libs/url.d.ts +1 -1
  62. package/dist/libs/url.js +9 -9
  63. package/dist/services/eventbridge-integration-service.d.ts +9 -9
  64. package/dist/services/eventbridge-integration-service.js +24 -24
  65. package/dist/services/index.d.ts +1 -1
  66. package/dist/services/index.js +1 -1
  67. package/dist/types/api-response.d.ts +6 -6
  68. package/dist/types/api-response.js +1 -1
  69. package/dist/types/index.d.ts +1 -1
  70. package/dist/types/index.js +1 -1
  71. package/dist/types/internal-events/event-detail-types.d.ts +20 -20
  72. package/dist/types/internal-events/event-detail-types.js +24 -24
  73. package/dist/types/internal-events/index.d.ts +1 -1
  74. package/dist/types/internal-events/index.js +1 -1
  75. package/package.json +3 -7
  76. package/dist/helpers/traits-helper.d.ts +0 -2
  77. package/dist/helpers/traits-helper.js +0 -5
  78. package/dist/helpers/traits-helper.js.map +0 -1
  79. package/dist/helpers/utils.d.ts +0 -1
  80. package/dist/helpers/utils.js +0 -11
  81. package/dist/helpers/utils.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../node_modules/object-keys/isArguments.js", "../node_modules/object-keys/implementation.js", "../node_modules/object-keys/index.js", "../node_modules/has-symbols/shams.js", "../node_modules/has-symbols/index.js", "../node_modules/function-bind/implementation.js", "../node_modules/function-bind/index.js", "../node_modules/has/src/index.js", "../node_modules/get-intrinsic/index.js", "../node_modules/has-property-descriptors/index.js", "../node_modules/define-properties/index.js", "../node_modules/call-bind/index.js", "../node_modules/call-bind/callBound.js", "../node_modules/object.assign/implementation.js", "../node_modules/object.assign/polyfill.js", "../node_modules/object.assign/shim.js", "../node_modules/object.assign/index.js", "../node_modules/functions-have-names/index.js", "../node_modules/regexp.prototype.flags/implementation.js", "../node_modules/regexp.prototype.flags/polyfill.js", "../node_modules/regexp.prototype.flags/shim.js", "../node_modules/regexp.prototype.flags/index.js", "../node_modules/es-get-iterator/node.js", "../node_modules/object-inspect/util.inspect.js", "../node_modules/object-inspect/index.js", "../node_modules/side-channel/index.js", "../node_modules/object-is/implementation.js", "../node_modules/object-is/polyfill.js", "../node_modules/object-is/shim.js", "../node_modules/object-is/index.js", "../node_modules/has-tostringtag/shams.js", "../node_modules/is-arguments/index.js", "../node_modules/deep-equal/node_modules/isarray/index.js", "../node_modules/is-callable/index.js", "../node_modules/for-each/index.js", "../node_modules/available-typed-arrays/index.js", "../node_modules/gopd/index.js", "../node_modules/is-typed-array/index.js", "../node_modules/is-array-buffer/index.js", "../node_modules/is-date-object/index.js", "../node_modules/is-regex/index.js", "../node_modules/is-shared-array-buffer/index.js", "../node_modules/is-string/index.js", "../node_modules/is-number-object/index.js", "../node_modules/is-boolean-object/index.js", "../node_modules/is-symbol/index.js", "../node_modules/has-bigints/index.js", "../node_modules/is-bigint/index.js", "../node_modules/which-boxed-primitive/index.js", "../node_modules/is-map/index.js", "../node_modules/is-set/index.js", "../node_modules/is-weakmap/index.js", "../node_modules/is-weakset/index.js", "../node_modules/which-collection/index.js", "../node_modules/which-typed-array/index.js", "../node_modules/deep-equal/index.js", "../src/clients/generic/dynamodb-client.ts", "../src/clients/generic/eventbridge-client.ts", "../src/libs/dates.ts", "../src/clients/generic/http-client.ts", "../src/clients/generic/s3-client.ts", "../src/clients/generic/cognito-client.ts", "../src/clients/generic/sqs-client.ts", "../src/clients/internal-api/destinations-client.ts", "../src/clients/internal-api/accounts-client.ts", "../src/clients/internal-api/users-auth-client.ts", "../src/libs/http-error.ts", "../src/libs/http-status-codes.ts", "../src/clients/internal-api/shopify-app-install-client.ts", "../src/clients/third-party/shopify-client.ts", "../src/helpers/input-validation-helper.ts", "../src/helpers/logging-helper.ts", "../src/helpers/response-helper.ts", "../src/helpers/shopify-helper.ts", "../src/libs/url.ts", "../node_modules/@adtrackify/at-tracking-event-types/src/types/api/account.ts", "../node_modules/@adtrackify/at-tracking-event-types/src/types/api/destinations/destinations.ts", "../node_modules/@adtrackify/at-tracking-event-types/src/types/api/destinations/third-party-destination-configs.ts", "../node_modules/@adtrackify/at-tracking-event-types/src/types/api/shopify-app-install.ts", "../node_modules/@adtrackify/at-tracking-event-types/src/types/api/subscription.ts", "../node_modules/@adtrackify/at-tracking-event-types/src/types/adtrackify-standard-events.ts", "../node_modules/@adtrackify/at-tracking-event-types/src/types/tracking-events/tracking-event-type.ts", "../node_modules/@adtrackify/at-tracking-event-types/src/types/adtrackify-event-types.ts", "../src/helpers/subscription-helper.ts", "../src/helpers/traits-helper.ts", "../src/helpers/utils.ts", "../src/libs/crypto.ts", "../src/types/internal-events/event-detail-types.ts", "../src/services/eventbridge-integration-service.ts"],
4
- "sourcesContent": ["'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n", "'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n", "'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n", "'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n", "'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n", "'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n", "'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n", "'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n", "'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\ntry {\n\tnull.error; // eslint-disable-line no-unused-expressions\n} catch (e) {\n\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\tvar errorProto = getProto(getProto(e));\n\tINTRINSICS['%Error.prototype%'] = errorProto;\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n", "'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar supportsDescriptors = origDefineProperty && hasPropertyDescriptors;\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value; // eslint-disable-line no-param-reassign\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n", "'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n", "'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar objectKeys = require('object-keys');\nvar hasSymbols = require('has-symbols/shams')();\nvar callBound = require('call-bind/callBound');\nvar toObject = Object;\nvar $push = callBound('Array.prototype.push');\nvar $propIsEnumerable = callBound('Object.prototype.propertyIsEnumerable');\nvar originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null;\n\n// eslint-disable-next-line no-unused-vars\nmodule.exports = function assign(target, source1) {\n\tif (target == null) { throw new TypeError('target must be an object'); }\n\tvar to = toObject(target); // step 1\n\tif (arguments.length === 1) {\n\t\treturn to; // step 2\n\t}\n\tfor (var s = 1; s < arguments.length; ++s) {\n\t\tvar from = toObject(arguments[s]); // step 3.a.i\n\n\t\t// step 3.a.ii:\n\t\tvar keys = objectKeys(from);\n\t\tvar getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols);\n\t\tif (getSymbols) {\n\t\t\tvar syms = getSymbols(from);\n\t\t\tfor (var j = 0; j < syms.length; ++j) {\n\t\t\t\tvar key = syms[j];\n\t\t\t\tif ($propIsEnumerable(from, key)) {\n\t\t\t\t\t$push(keys, key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// step 3.a.iii:\n\t\tfor (var i = 0; i < keys.length; ++i) {\n\t\t\tvar nextKey = keys[i];\n\t\t\tif ($propIsEnumerable(from, nextKey)) { // step 3.a.iii.2\n\t\t\t\tvar propValue = from[nextKey]; // step 3.a.iii.2.a\n\t\t\t\tto[nextKey] = propValue; // step 3.a.iii.2.b\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to; // step 4\n};\n", "'use strict';\n\nvar implementation = require('./implementation');\n\nvar lacksProperEnumerationOrder = function () {\n\tif (!Object.assign) {\n\t\treturn false;\n\t}\n\t/*\n\t * v8, specifically in node 4.x, has a bug with incorrect property enumeration order\n\t * note: this does not detect the bug unless there's 20 characters\n\t */\n\tvar str = 'abcdefghijklmnopqrst';\n\tvar letters = str.split('');\n\tvar map = {};\n\tfor (var i = 0; i < letters.length; ++i) {\n\t\tmap[letters[i]] = letters[i];\n\t}\n\tvar obj = Object.assign({}, map);\n\tvar actual = '';\n\tfor (var k in obj) {\n\t\tactual += k;\n\t}\n\treturn str !== actual;\n};\n\nvar assignHasPendingExceptions = function () {\n\tif (!Object.assign || !Object.preventExtensions) {\n\t\treturn false;\n\t}\n\t/*\n\t * Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t * which is 72% slower than our shim, and Firefox 40's native implementation.\n\t */\n\tvar thrower = Object.preventExtensions({ 1: 2 });\n\ttry {\n\t\tObject.assign(thrower, 'xy');\n\t} catch (e) {\n\t\treturn thrower[1] === 'y';\n\t}\n\treturn false;\n};\n\nmodule.exports = function getPolyfill() {\n\tif (!Object.assign) {\n\t\treturn implementation;\n\t}\n\tif (lacksProperEnumerationOrder()) {\n\t\treturn implementation;\n\t}\n\tif (assignHasPendingExceptions()) {\n\t\treturn implementation;\n\t}\n\treturn Object.assign;\n};\n", "'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimAssign() {\n\tvar polyfill = getPolyfill();\n\tdefine(\n\t\tObject,\n\t\t{ assign: polyfill },\n\t\t{ assign: function () { return Object.assign !== polyfill; } }\n\t);\n\treturn polyfill;\n};\n", "'use strict';\n\nvar defineProperties = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind.apply(getPolyfill());\n// eslint-disable-next-line no-unused-vars\nvar bound = function assign(target, source1) {\n\treturn polyfill(Object, arguments);\n};\n\ndefineProperties(bound, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = bound;\n", "'use strict';\n\nvar functionsHaveNames = function functionsHaveNames() {\n\treturn typeof function f() {}.name === 'string';\n};\n\nvar gOPD = Object.getOwnPropertyDescriptor;\nif (gOPD) {\n\ttry {\n\t\tgOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\tgOPD = null;\n\t}\n}\n\nfunctionsHaveNames.functionsHaveConfigurableNames = function functionsHaveConfigurableNames() {\n\tif (!functionsHaveNames() || !gOPD) {\n\t\treturn false;\n\t}\n\tvar desc = gOPD(function () {}, 'name');\n\treturn !!desc && !!desc.configurable;\n};\n\nvar $bind = Function.prototype.bind;\n\nfunctionsHaveNames.boundFunctionsHaveNames = function boundFunctionsHaveNames() {\n\treturn functionsHaveNames() && typeof $bind === 'function' && function f() {}.bind().name !== '';\n};\n\nmodule.exports = functionsHaveNames;\n", "'use strict';\n\nvar functionsHaveConfigurableNames = require('functions-have-names').functionsHaveConfigurableNames();\n\nvar $Object = Object;\nvar $TypeError = TypeError;\n\nmodule.exports = function flags() {\n\tif (this != null && this !== $Object(this)) {\n\t\tthrow new $TypeError('RegExp.prototype.flags getter called on non-object');\n\t}\n\tvar result = '';\n\tif (this.hasIndices) {\n\t\tresult += 'd';\n\t}\n\tif (this.global) {\n\t\tresult += 'g';\n\t}\n\tif (this.ignoreCase) {\n\t\tresult += 'i';\n\t}\n\tif (this.multiline) {\n\t\tresult += 'm';\n\t}\n\tif (this.dotAll) {\n\t\tresult += 's';\n\t}\n\tif (this.unicode) {\n\t\tresult += 'u';\n\t}\n\tif (this.sticky) {\n\t\tresult += 'y';\n\t}\n\treturn result;\n};\n\nif (functionsHaveConfigurableNames && Object.defineProperty) {\n\tObject.defineProperty(module.exports, 'name', { value: 'get flags' });\n}\n", "'use strict';\n\nvar implementation = require('./implementation');\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar $gOPD = Object.getOwnPropertyDescriptor;\n\nmodule.exports = function getPolyfill() {\n\tif (supportsDescriptors && (/a/mig).flags === 'gim') {\n\t\tvar descriptor = $gOPD(RegExp.prototype, 'flags');\n\t\tif (\n\t\t\tdescriptor\n\t\t\t&& typeof descriptor.get === 'function'\n\t\t\t&& typeof RegExp.prototype.dotAll === 'boolean'\n\t\t\t&& typeof RegExp.prototype.hasIndices === 'boolean'\n\t\t) {\n\t\t\t/* eslint getter-return: 0 */\n\t\t\tvar calls = '';\n\t\t\tvar o = {};\n\t\t\tObject.defineProperty(o, 'hasIndices', {\n\t\t\t\tget: function () {\n\t\t\t\t\tcalls += 'd';\n\t\t\t\t}\n\t\t\t});\n\t\t\tObject.defineProperty(o, 'sticky', {\n\t\t\t\tget: function () {\n\t\t\t\t\tcalls += 'y';\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (calls === 'dy') {\n\t\t\t\treturn descriptor.get;\n\t\t\t}\n\t\t}\n\t}\n\treturn implementation;\n};\n", "'use strict';\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar getPolyfill = require('./polyfill');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar TypeErr = TypeError;\nvar getProto = Object.getPrototypeOf;\nvar regex = /a/;\n\nmodule.exports = function shimFlags() {\n\tif (!supportsDescriptors || !getProto) {\n\t\tthrow new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tvar polyfill = getPolyfill();\n\tvar proto = getProto(regex);\n\tvar descriptor = gOPD(proto, 'flags');\n\tif (!descriptor || descriptor.get !== polyfill) {\n\t\tdefineProperty(proto, 'flags', {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tget: polyfill\n\t\t});\n\t}\n\treturn polyfill;\n};\n", "'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar flagsBound = callBind(getPolyfill());\n\ndefine(flagsBound, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = flagsBound;\n", "'use strict';\n\n// this should only run in node >= 13.2, so it\n// does not need any of the intense fallbacks that old node/browsers do\n\nvar $iterator = Symbol.iterator;\nmodule.exports = function getIterator(iterable) {\n\t// alternatively, `iterable[$iterator]?.()`\n\tif (iterable != null && typeof iterable[$iterator] !== 'undefined') {\n\t\treturn iterable[$iterator]();\n\t}\n};\n", "module.exports = require('util').inspect;\n", "var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n if (mapForEach) {\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n }\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n if (setForEach) {\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n }\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '&quot;');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n", "'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n", "'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n", "'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n", "'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n", "'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n", "'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n", "var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n", "'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n", "'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n", "'use strict';\n\nvar possibleNames = [\n\t'BigInt64Array',\n\t'BigUint64Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Int8Array',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray'\n];\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\nmodule.exports = function availableTypedArrays() {\n\tvar out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n", "'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar gOPD = require('gopd');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar anyTrue = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!anyTrue) {\n\t\t\ttry {\n\t\t\t\tanyTrue = getter.call(value) === typedArray;\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn anyTrue;\n};\n\nmodule.exports = function isTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag || !(Symbol.toStringTag in value)) {\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\treturn $indexOf(typedArrays, tag) > -1;\n\t}\n\tif (!gOPD) { return false; }\n\treturn tryTypedArrays(value);\n};\n", "'use strict';\n\nvar callBind = require('call-bind');\nvar callBound = require('call-bind/callBound');\nvar GetIntrinsic = require('get-intrinsic');\nvar isTypedArray = require('is-typed-array');\n\nvar $ArrayBuffer = GetIntrinsic('ArrayBuffer', true);\nvar $Float32Array = GetIntrinsic('Float32Array', true);\nvar $byteLength = callBound('ArrayBuffer.prototype.byteLength', true);\n\n// in node 0.10, ArrayBuffers have no prototype methods, but have an own slot-checking `slice` method\nvar abSlice = $ArrayBuffer && !$byteLength && new $ArrayBuffer().slice;\nvar $abSlice = abSlice && callBind(abSlice);\n\nmodule.exports = $byteLength || $abSlice\n\t? function isArrayBuffer(obj) {\n\t\tif (!obj || typeof obj !== 'object') {\n\t\t\treturn false;\n\t\t}\n\t\ttry {\n\t\t\tif ($byteLength) {\n\t\t\t\t$byteLength(obj);\n\t\t\t} else {\n\t\t\t\t$abSlice(obj, 0);\n\t\t\t}\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t: $Float32Array\n\t\t// in node 0.8, ArrayBuffers have no prototype or own methods\n\t\t? function IsArrayBuffer(obj) {\n\t\t\ttry {\n\t\t\t\treturn (new $Float32Array(obj)).buffer === obj && !isTypedArray(obj);\n\t\t\t} catch (e) {\n\t\t\t\treturn typeof obj === 'object' && e.name === 'RangeError';\n\t\t\t}\n\t\t}\n\t\t: function isArrayBuffer(obj) { // eslint-disable-line no-unused-vars\n\t\t\treturn false;\n\t\t};\n", "'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateGetDayCall(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n", "'use strict';\n\nvar callBound = require('call-bind/callBound');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar has;\nvar $exec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n\thas = callBound('Object.prototype.hasOwnProperty');\n\t$exec = callBound('RegExp.prototype.exec');\n\tisRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\tbadStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n}\n\nvar $toString = callBound('Object.prototype.toString');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\n\nmodule.exports = hasToStringTag\n\t// eslint-disable-next-line consistent-return\n\t? function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar descriptor = gOPD(value, 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t$exec(value, badStringifier);\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t}\n\t: function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n", "'use strict';\n\nvar callBound = require('call-bind/callBound');\n\nvar $byteLength = callBound('SharedArrayBuffer.prototype.byteLength', true);\n\nmodule.exports = $byteLength\n\t? function isSharedArrayBuffer(obj) {\n\t\tif (!obj || typeof obj !== 'object') {\n\t\t\treturn false;\n\t\t}\n\t\ttry {\n\t\t\t$byteLength(obj);\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t: function isSharedArrayBuffer(obj) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t};\n", "'use strict';\n\nvar strValue = String.prototype.valueOf;\nvar tryStringObject = function tryStringObject(value) {\n\ttry {\n\t\tstrValue.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar strClass = '[object String]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isString(value) {\n\tif (typeof value === 'string') {\n\t\treturn true;\n\t}\n\tif (typeof value !== 'object') {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryStringObject(value) : toStr.call(value) === strClass;\n};\n", "'use strict';\n\nvar numToStr = Number.prototype.toString;\nvar tryNumberObject = function tryNumberObject(value) {\n\ttry {\n\t\tnumToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar numClass = '[object Number]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isNumberObject(value) {\n\tif (typeof value === 'number') {\n\t\treturn true;\n\t}\n\tif (typeof value !== 'object') {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryNumberObject(value) : toStr.call(value) === numClass;\n};\n", "'use strict';\n\nvar callBound = require('call-bind/callBound');\nvar $boolToStr = callBound('Boolean.prototype.toString');\nvar $toString = callBound('Object.prototype.toString');\n\nvar tryBooleanObject = function booleanBrandCheck(value) {\n\ttry {\n\t\t$boolToStr(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar boolClass = '[object Boolean]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isBoolean(value) {\n\tif (typeof value === 'boolean') {\n\t\treturn true;\n\t}\n\tif (value === null || typeof value !== 'object') {\n\t\treturn false;\n\t}\n\treturn hasToStringTag && Symbol.toStringTag in value ? tryBooleanObject(value) : $toString(value) === boolClass;\n};\n", "'use strict';\n\nvar toStr = Object.prototype.toString;\nvar hasSymbols = require('has-symbols')();\n\nif (hasSymbols) {\n\tvar symToStr = Symbol.prototype.toString;\n\tvar symStringRegex = /^Symbol\\(.*\\)$/;\n\tvar isSymbolObject = function isRealSymbolObject(value) {\n\t\tif (typeof value.valueOf() !== 'symbol') {\n\t\t\treturn false;\n\t\t}\n\t\treturn symStringRegex.test(symToStr.call(value));\n\t};\n\n\tmodule.exports = function isSymbol(value) {\n\t\tif (typeof value === 'symbol') {\n\t\t\treturn true;\n\t\t}\n\t\tif (toStr.call(value) !== '[object Symbol]') {\n\t\t\treturn false;\n\t\t}\n\t\ttry {\n\t\t\treturn isSymbolObject(value);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n} else {\n\n\tmodule.exports = function isSymbol(value) {\n\t\t// this environment does not support Symbols.\n\t\treturn false && value;\n\t};\n}\n", "'use strict';\n\nvar $BigInt = typeof BigInt !== 'undefined' && BigInt;\n\nmodule.exports = function hasNativeBigInts() {\n\treturn typeof $BigInt === 'function'\n\t\t&& typeof BigInt === 'function'\n\t\t&& typeof $BigInt(42) === 'bigint' // eslint-disable-line no-magic-numbers\n\t\t&& typeof BigInt(42) === 'bigint'; // eslint-disable-line no-magic-numbers\n};\n", "'use strict';\n\nvar hasBigInts = require('has-bigints')();\n\nif (hasBigInts) {\n\tvar bigIntValueOf = BigInt.prototype.valueOf;\n\tvar tryBigInt = function tryBigIntObject(value) {\n\t\ttry {\n\t\t\tbigIntValueOf.call(value);\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t}\n\t\treturn false;\n\t};\n\n\tmodule.exports = function isBigInt(value) {\n\t\tif (\n\t\t\tvalue === null\n\t\t\t|| typeof value === 'undefined'\n\t\t\t|| typeof value === 'boolean'\n\t\t\t|| typeof value === 'string'\n\t\t\t|| typeof value === 'number'\n\t\t\t|| typeof value === 'symbol'\n\t\t\t|| typeof value === 'function'\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\tif (typeof value === 'bigint') {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn tryBigInt(value);\n\t};\n} else {\n\tmodule.exports = function isBigInt(value) {\n\t\treturn false && value;\n\t};\n}\n", "'use strict';\n\nvar isString = require('is-string');\nvar isNumber = require('is-number-object');\nvar isBoolean = require('is-boolean-object');\nvar isSymbol = require('is-symbol');\nvar isBigInt = require('is-bigint');\n\n// eslint-disable-next-line consistent-return\nmodule.exports = function whichBoxedPrimitive(value) {\n\t// eslint-disable-next-line eqeqeq\n\tif (value == null || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\treturn null;\n\t}\n\tif (isString(value)) {\n\t\treturn 'String';\n\t}\n\tif (isNumber(value)) {\n\t\treturn 'Number';\n\t}\n\tif (isBoolean(value)) {\n\t\treturn 'Boolean';\n\t}\n\tif (isSymbol(value)) {\n\t\treturn 'Symbol';\n\t}\n\tif (isBigInt(value)) {\n\t\treturn 'BigInt';\n\t}\n};\n", "'use strict';\n\nvar $Map = typeof Map === 'function' && Map.prototype ? Map : null;\nvar $Set = typeof Set === 'function' && Set.prototype ? Set : null;\n\nvar exported;\n\nif (!$Map) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isMap(x) {\n\t\t// `Map` is not present in this environment.\n\t\treturn false;\n\t};\n}\n\nvar $mapHas = $Map ? Map.prototype.has : null;\nvar $setHas = $Set ? Set.prototype.has : null;\nif (!exported && !$mapHas) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isMap(x) {\n\t\t// `Map` does not have a `has` method\n\t\treturn false;\n\t};\n}\n\nmodule.exports = exported || function isMap(x) {\n\tif (!x || typeof x !== 'object') {\n\t\treturn false;\n\t}\n\ttry {\n\t\t$mapHas.call(x);\n\t\tif ($setHas) {\n\t\t\ttry {\n\t\t\t\t$setHas.call(x);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn x instanceof $Map; // core-js workaround, pre-v2.5.0\n\t} catch (e) {}\n\treturn false;\n};\n", "'use strict';\n\nvar $Map = typeof Map === 'function' && Map.prototype ? Map : null;\nvar $Set = typeof Set === 'function' && Set.prototype ? Set : null;\n\nvar exported;\n\nif (!$Set) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isSet(x) {\n\t\t// `Set` is not present in this environment.\n\t\treturn false;\n\t};\n}\n\nvar $mapHas = $Map ? Map.prototype.has : null;\nvar $setHas = $Set ? Set.prototype.has : null;\nif (!exported && !$setHas) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isSet(x) {\n\t\t// `Set` does not have a `has` method\n\t\treturn false;\n\t};\n}\n\nmodule.exports = exported || function isSet(x) {\n\tif (!x || typeof x !== 'object') {\n\t\treturn false;\n\t}\n\ttry {\n\t\t$setHas.call(x);\n\t\tif ($mapHas) {\n\t\t\ttry {\n\t\t\t\t$mapHas.call(x);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn x instanceof $Set; // core-js workaround, pre-v2.5.0\n\t} catch (e) {}\n\treturn false;\n};\n", "'use strict';\n\nvar $WeakMap = typeof WeakMap === 'function' && WeakMap.prototype ? WeakMap : null;\nvar $WeakSet = typeof WeakSet === 'function' && WeakSet.prototype ? WeakSet : null;\n\nvar exported;\n\nif (!$WeakMap) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isWeakMap(x) {\n\t\t// `WeakMap` is not present in this environment.\n\t\treturn false;\n\t};\n}\n\nvar $mapHas = $WeakMap ? $WeakMap.prototype.has : null;\nvar $setHas = $WeakSet ? $WeakSet.prototype.has : null;\nif (!exported && !$mapHas) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isWeakMap(x) {\n\t\t// `WeakMap` does not have a `has` method\n\t\treturn false;\n\t};\n}\n\nmodule.exports = exported || function isWeakMap(x) {\n\tif (!x || typeof x !== 'object') {\n\t\treturn false;\n\t}\n\ttry {\n\t\t$mapHas.call(x, $mapHas);\n\t\tif ($setHas) {\n\t\t\ttry {\n\t\t\t\t$setHas.call(x, $setHas);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn x instanceof $WeakMap; // core-js workaround, pre-v3\n\t} catch (e) {}\n\treturn false;\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\n\nvar $WeakSet = GetIntrinsic('%WeakSet%', true);\n\nvar $setHas = callBound('WeakSet.prototype.has', true);\n\nif ($setHas) {\n\tvar $mapHas = callBound('WeakMap.prototype.has', true);\n\n\tmodule.exports = function isWeakSet(x) {\n\t\tif (!x || typeof x !== 'object') {\n\t\t\treturn false;\n\t\t}\n\t\ttry {\n\t\t\t$setHas(x, $setHas);\n\t\t\tif ($mapHas) {\n\t\t\t\ttry {\n\t\t\t\t\t$mapHas(x, $mapHas);\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn x instanceof $WeakSet; // core-js workaround, pre-v3\n\t\t} catch (e) {}\n\t\treturn false;\n\t};\n} else {\n\t// eslint-disable-next-line no-unused-vars\n\tmodule.exports = function isWeakSet(x) {\n\t\t// `WeakSet` does not exist, or does not have a `has` method\n\t\treturn false;\n\t};\n}\n", "'use strict';\n\nvar isMap = require('is-map');\nvar isSet = require('is-set');\nvar isWeakMap = require('is-weakmap');\nvar isWeakSet = require('is-weakset');\n\nmodule.exports = function whichCollection(value) {\n\tif (value && typeof value === 'object') {\n\t\tif (isMap(value)) {\n\t\t\treturn 'Map';\n\t\t}\n\t\tif (isSet(value)) {\n\t\t\treturn 'Set';\n\t\t}\n\t\tif (isWeakMap(value)) {\n\t\t\treturn 'WeakMap';\n\t\t}\n\t\tif (isWeakSet(value)) {\n\t\t\treturn 'WeakSet';\n\t\t}\n\t}\n\treturn false;\n};\n", "'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('call-bind/callBound');\nvar gOPD = require('gopd');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tif (typeof g[typedArray] === 'function') {\n\t\t\tvar arr = new g[typedArray]();\n\t\t\tif (Symbol.toStringTag in arr) {\n\t\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\t\tif (!descriptor) {\n\t\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t\t}\n\t\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t\t}\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar foundName = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!foundName) {\n\t\t\ttry {\n\t\t\t\tvar name = getter.call(value);\n\t\t\t\tif (name === typedArray) {\n\t\t\t\t\tfoundName = name;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\t\t}\n\t});\n\treturn foundName;\n};\n\nvar isTypedArray = require('is-typed-array');\n\nmodule.exports = function whichTypedArray(value) {\n\tif (!isTypedArray(value)) { return false; }\n\tif (!hasToStringTag || !(Symbol.toStringTag in value)) { return $slice($toString(value), 8, -1); }\n\treturn tryTypedArrays(value);\n};\n", "'use strict';\n\nvar assign = require('object.assign');\nvar callBound = require('call-bind/callBound');\nvar flags = require('regexp.prototype.flags');\nvar GetIntrinsic = require('get-intrinsic');\nvar getIterator = require('es-get-iterator');\nvar getSideChannel = require('side-channel');\nvar is = require('object-is');\nvar isArguments = require('is-arguments');\nvar isArray = require('isarray');\nvar isArrayBuffer = require('is-array-buffer');\nvar isDate = require('is-date-object');\nvar isRegex = require('is-regex');\nvar isSharedArrayBuffer = require('is-shared-array-buffer');\nvar objectKeys = require('object-keys');\nvar whichBoxedPrimitive = require('which-boxed-primitive');\nvar whichCollection = require('which-collection');\nvar whichTypedArray = require('which-typed-array');\n\nvar byteLength = callBound('ArrayBuffer.prototype.byteLength', true)\n\t|| function byteLength(ab) { return ab.byteLength; }; // in node < 0.11, byteLength is an own nonconfigurable property\nvar sabByteLength = callBound('SharedArrayBuffer.prototype.byteLength', true);\n\nvar $getTime = callBound('Date.prototype.getTime');\nvar gPO = Object.getPrototypeOf;\nvar $objToString = callBound('Object.prototype.toString');\n\nvar $Set = GetIntrinsic('%Set%', true);\nvar $mapHas = callBound('Map.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSize = callBound('Map.prototype.size', true);\nvar $setAdd = callBound('Set.prototype.add', true);\nvar $setDelete = callBound('Set.prototype.delete', true);\nvar $setHas = callBound('Set.prototype.has', true);\nvar $setSize = callBound('Set.prototype.size', true);\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L401-L414\nfunction setHasEqualElement(set, val1, opts, channel) {\n var i = getIterator(set);\n var result;\n while ((result = i.next()) && !result.done) {\n if (internalDeepEqual(val1, result.value, opts, channel)) { // eslint-disable-line no-use-before-define\n // Remove the matching element to make sure we do not check that again.\n $setDelete(set, result.value);\n return true;\n }\n }\n\n return false;\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L416-L439\nfunction findLooseMatchingPrimitives(prim) {\n if (typeof prim === 'undefined') {\n return null;\n }\n if (typeof prim === 'object') { // Only pass in null as object!\n return void 0;\n }\n if (typeof prim === 'symbol') {\n return false;\n }\n if (typeof prim === 'string' || typeof prim === 'number') {\n // Loose equal entries exist only if the string is possible to convert to a regular number and not NaN.\n return +prim === +prim; // eslint-disable-line no-implicit-coercion\n }\n return true;\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L449-L460\nfunction mapMightHaveLoosePrim(a, b, prim, item, opts, channel) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) {\n return altValue;\n }\n var curB = $mapGet(b, altValue);\n var looseOpts = assign({}, opts, { strict: false });\n if (\n (typeof curB === 'undefined' && !$mapHas(b, altValue))\n // eslint-disable-next-line no-use-before-define\n || !internalDeepEqual(item, curB, looseOpts, channel)\n ) {\n return false;\n }\n // eslint-disable-next-line no-use-before-define\n return !$mapHas(a, altValue) && internalDeepEqual(item, curB, looseOpts, channel);\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L441-L447\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) {\n return altValue;\n }\n\n return $setHas(b, altValue) && !$setHas(a, altValue);\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L518-L533\nfunction mapHasEqualEntry(set, map, key1, item1, opts, channel) {\n var i = getIterator(set);\n var result;\n var key2;\n while ((result = i.next()) && !result.done) {\n key2 = result.value;\n if (\n // eslint-disable-next-line no-use-before-define\n internalDeepEqual(key1, key2, opts, channel)\n // eslint-disable-next-line no-use-before-define\n && internalDeepEqual(item1, $mapGet(map, key2), opts, channel)\n ) {\n $setDelete(set, key2);\n return true;\n }\n }\n\n return false;\n}\n\nfunction internalDeepEqual(actual, expected, options, channel) {\n var opts = options || {};\n\n // 7.1. All identical values are equivalent, as determined by ===.\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n }\n\n var actualBoxed = whichBoxedPrimitive(actual);\n var expectedBoxed = whichBoxedPrimitive(expected);\n if (actualBoxed !== expectedBoxed) {\n return false;\n }\n\n // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n if (!actual || !expected || (typeof actual !== 'object' && typeof expected !== 'object')) {\n return opts.strict ? is(actual, expected) : actual == expected; // eslint-disable-line eqeqeq\n }\n\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // see https://github.com/nodejs/node/commit/d3aafd02efd3a403d646a3044adcf14e63a88d32 for memos/channel inspiration\n\n var hasActual = channel.has(actual);\n var hasExpected = channel.has(expected);\n var sentinel;\n if (hasActual && hasExpected) {\n if (channel.get(actual) === channel.get(expected)) {\n return true;\n }\n } else {\n sentinel = {};\n }\n if (!hasActual) { channel.set(actual, sentinel); }\n if (!hasExpected) { channel.set(expected, sentinel); }\n\n // eslint-disable-next-line no-use-before-define\n return objEquiv(actual, expected, opts, channel);\n}\n\nfunction isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n\n return !!(x.constructor && x.constructor.isBuffer && x.constructor.isBuffer(x));\n}\n\nfunction setEquiv(a, b, opts, channel) {\n if ($setSize(a) !== $setSize(b)) {\n return false;\n }\n var iA = getIterator(a);\n var iB = getIterator(b);\n var resultA;\n var resultB;\n var set;\n while ((resultA = iA.next()) && !resultA.done) {\n if (resultA.value && typeof resultA.value === 'object') {\n if (!set) { set = new $Set(); }\n $setAdd(set, resultA.value);\n } else if (!$setHas(b, resultA.value)) {\n if (opts.strict) { return false; }\n if (!setMightHaveLoosePrim(a, b, resultA.value)) {\n return false;\n }\n if (!set) { set = new $Set(); }\n $setAdd(set, resultA.value);\n }\n }\n if (set) {\n while ((resultB = iB.next()) && !resultB.done) {\n // We have to check if a primitive value is already matching and only if it's not, go hunting for it.\n if (resultB.value && typeof resultB.value === 'object') {\n if (!setHasEqualElement(set, resultB.value, opts.strict, channel)) {\n return false;\n }\n } else if (\n !opts.strict\n && !$setHas(a, resultB.value)\n && !setHasEqualElement(set, resultB.value, opts.strict, channel)\n ) {\n return false;\n }\n }\n return $setSize(set) === 0;\n }\n return true;\n}\n\nfunction mapEquiv(a, b, opts, channel) {\n if ($mapSize(a) !== $mapSize(b)) {\n return false;\n }\n var iA = getIterator(a);\n var iB = getIterator(b);\n var resultA;\n var resultB;\n var set;\n var key;\n var item1;\n var item2;\n while ((resultA = iA.next()) && !resultA.done) {\n key = resultA.value[0];\n item1 = resultA.value[1];\n if (key && typeof key === 'object') {\n if (!set) { set = new $Set(); }\n $setAdd(set, key);\n } else {\n item2 = $mapGet(b, key);\n if ((typeof item2 === 'undefined' && !$mapHas(b, key)) || !internalDeepEqual(item1, item2, opts, channel)) {\n if (opts.strict) {\n return false;\n }\n if (!mapMightHaveLoosePrim(a, b, key, item1, opts, channel)) {\n return false;\n }\n if (!set) { set = new $Set(); }\n $setAdd(set, key);\n }\n }\n }\n\n if (set) {\n while ((resultB = iB.next()) && !resultB.done) {\n key = resultB.value[0];\n item2 = resultB.value[1];\n if (key && typeof key === 'object') {\n if (!mapHasEqualEntry(set, a, key, item2, opts, channel)) {\n return false;\n }\n } else if (\n !opts.strict\n && (!a.has(key) || !internalDeepEqual($mapGet(a, key), item2, opts, channel))\n && !mapHasEqualEntry(set, a, key, item2, assign({}, opts, { strict: false }), channel)\n ) {\n return false;\n }\n }\n return $setSize(set) === 0;\n }\n return true;\n}\n\nfunction objEquiv(a, b, opts, channel) {\n /* eslint max-statements: [2, 100], max-lines-per-function: [2, 120], max-depth: [2, 5], max-lines: [2, 400] */\n var i, key;\n\n if (typeof a !== typeof b) { return false; }\n if (a == null || b == null) { return false; }\n\n if ($objToString(a) !== $objToString(b)) { return false; }\n\n if (isArguments(a) !== isArguments(b)) { return false; }\n\n var aIsArray = isArray(a);\n var bIsArray = isArray(b);\n if (aIsArray !== bIsArray) { return false; }\n\n // TODO: replace when a cross-realm brand check is available\n var aIsError = a instanceof Error;\n var bIsError = b instanceof Error;\n if (aIsError !== bIsError) { return false; }\n if (aIsError || bIsError) {\n if (a.name !== b.name || a.message !== b.message) { return false; }\n }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n if (aIsRegex !== bIsRegex) { return false; }\n if ((aIsRegex || bIsRegex) && (a.source !== b.source || flags(a) !== flags(b))) {\n return false;\n }\n\n var aIsDate = isDate(a);\n var bIsDate = isDate(b);\n if (aIsDate !== bIsDate) { return false; }\n if (aIsDate || bIsDate) { // && would work too, because both are true or both false here\n if ($getTime(a) !== $getTime(b)) { return false; }\n }\n if (opts.strict && gPO && gPO(a) !== gPO(b)) { return false; }\n\n var aWhich = whichTypedArray(a);\n var bWhich = whichTypedArray(b);\n if ((aWhich || bWhich) && aWhich !== bWhich) {\n return false;\n }\n\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n if (aIsBuffer !== bIsBuffer) { return false; }\n if (aIsBuffer || bIsBuffer) { // && would work too, because both are true or both false here\n if (a.length !== b.length) { return false; }\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) { return false; }\n }\n return true;\n }\n\n var aIsArrayBuffer = isArrayBuffer(a);\n var bIsArrayBuffer = isArrayBuffer(b);\n if (aIsArrayBuffer !== bIsArrayBuffer) { return false; }\n if (aIsArrayBuffer || bIsArrayBuffer) { // && would work too, because both are true or both false here\n if (byteLength(a) !== byteLength(b)) { return false; }\n return typeof Uint8Array === 'function' && internalDeepEqual(new Uint8Array(a), new Uint8Array(b), opts, channel);\n }\n\n var aIsSAB = isSharedArrayBuffer(a);\n var bIsSAB = isSharedArrayBuffer(b);\n if (aIsSAB !== bIsSAB) { return false; }\n if (aIsSAB || bIsSAB) { // && would work too, because both are true or both false here\n if (sabByteLength(a) !== sabByteLength(b)) { return false; }\n return typeof Uint8Array === 'function' && internalDeepEqual(new Uint8Array(a), new Uint8Array(b), opts, channel);\n }\n\n if (typeof a !== typeof b) { return false; }\n\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n // having the same number of owned properties (keys incorporates hasOwnProperty)\n if (ka.length !== kb.length) { return false; }\n\n // the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n // ~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) { return false; } // eslint-disable-line eqeqeq\n }\n\n // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!internalDeepEqual(a[key], b[key], opts, channel)) { return false; }\n }\n\n var aCollection = whichCollection(a);\n var bCollection = whichCollection(b);\n if (aCollection !== bCollection) {\n return false;\n }\n if (aCollection === 'Set' || bCollection === 'Set') { // aCollection === bCollection\n return setEquiv(a, b, opts, channel);\n }\n if (aCollection === 'Map') { // aCollection === bCollection\n return mapEquiv(a, b, opts, channel);\n }\n\n return true;\n}\n\nmodule.exports = function deepEqual(a, b, opts) {\n return internalDeepEqual(a, b, opts, getSideChannel());\n};\n", "import { DynamoDBClient, QueryOutput } from '@aws-sdk/client-dynamodb';\nimport { DynamoDBDocument } from '@aws-sdk/lib-dynamodb';\nimport * as log from 'lambda-log';\n\nconst marshallOptions = {\n convertEmptyValues: false,\n removeUndefinedValues: false,\n convertClassInstanceToMap: true\n};\n\nconst unmarshallOptions = {\n wrapNumbers: false,\n};\n\nconst translateConfig = { marshallOptions, unmarshallOptions };\nconst ddbClient = new DynamoDBClient({});\nconst client = DynamoDBDocument.from(ddbClient, translateConfig);\n\nexport class DynamoDbClient {\n static safeGet = async (tableName: string, keyName: string, keyValue: any) => {\n try {\n const params = {\n TableName: tableName,\n Key: {\n [ keyName ]: keyValue\n }\n };\n const res = await client.get(params);\n return res?.Item ?? null;\n } catch (e: any) {\n log.error(e, { message: 'Dynamo Client Get Failed' });\n return null;\n }\n };\n\n static safePut = async (tableName: string, data: any) => {\n try {\n const params = {\n TableName: tableName,\n Item: data\n };\n const res = await client.put(params);\n return res;\n } catch (e: any) {\n log.error(e, { message: 'Dynamo failed simplePut' });\n return null;\n }\n };\n\n static safeDelete = async (tableName: string, keyName: string, keyValue: any) => {\n try {\n const params = {\n TableName: tableName,\n Key: {\n [ keyName ]: keyValue\n }\n };\n const res = await client.delete(params);\n return res;\n } catch (e: any) {\n log.error(e, { message: 'Dynamo failed safeDelete' });\n return null;\n }\n };\n\n static safeQueryByGSI = async (tableName: string, gsiName: string, keyName: string, keyValue: any) => {\n const query = {\n TableName: tableName,\n IndexName: gsiName,\n KeyConditionExpression: `${keyName} = :value`,\n ExpressionAttributeValues: {\n ':value': keyValue\n }\n };\n const results = await DynamoDbClient.queryAll(query);\n return results;\n };\n\n static safeBatchGet = async (tableName: string, keys: any) => {\n try {\n const params: any = {\n RequestItems: {}\n };\n params.RequestItems[ tableName ] = {\n Keys: keys\n };\n const res = await client.batchGet(params);\n log.info('batchget res', { batchGetRes: res });\n if (res?.Responses?.[ tableName ]) {\n return res?.Responses?.[ tableName ];\n }\n return [];\n } catch (e: any) {\n log.error(e, { message: 'Dynamo failed safeBatchGet' });\n return [];\n }\n };\n\n static queryAll = async (params: any) => {\n try {\n log.info('Invoke Query All', { params });\n let currentResult: QueryOutput, exclusiveStartKey;\n let accumulatedResults: any[] = [];\n do {\n params.ExclusiveStartKey = exclusiveStartKey;\n params.Limit = 200;\n currentResult = await client.query(params);\n if (currentResult.Items) {\n exclusiveStartKey = currentResult.LastEvaluatedKey;\n accumulatedResults = [ ...accumulatedResults, ...currentResult.Items ];\n }\n } while (currentResult.Items && currentResult.Items.length > 0 && currentResult.LastEvaluatedKey);\n return accumulatedResults;\n } catch (e: any) {\n log.error(e, { message: 'Dynamo failed queryAll' });\n return null;\n }\n };\n\n static batchGet = (params: any) => client.batchGet(params);\n static get = (params: any) => client.get(params);\n static put = (params: any) => client.put(params);\n static query = (params: any) => client.query(params);\n static scan = (params: any) => client.scan(params);\n static update = (params: any) => client.update(params);\n static delete = (params: any) => client.delete(params);\n}", "import { EventBridgeClient as EventBridge, PutEventsCommand, PutEventsCommandInput } from '@aws-sdk/client-eventbridge';\nimport { v4 as uuidv4 } from 'uuid';\nimport { getCurrentTimestamp } from '../../libs/dates.js';\nimport * as log from 'lambda-log';\n\nexport class EventBridgeClient {\n public eventBridge: EventBridge;\n public EVENT_BUS_NAME: string;\n\n constructor (eventBusName: string) {\n this.eventBridge = new EventBridge({});\n this.EVENT_BUS_NAME = eventBusName;\n }\n\n public buildAndSendEvent = async (eventSource: string, eventType: string, eventData: any) => {\n const event = this.buildEvent(eventType, eventData);\n return await this.putEvent(eventSource, eventType, event);\n };\n\n public buildEvent = (eventType: string, eventData: any, eventId: string = uuidv4(), eventTime: string = getCurrentTimestamp()) => {\n return {\n eventId,\n eventType,\n eventTime,\n eventData\n };\n };\n\n public putEvent = async (source: string, detailType: string, data: any, headers: any = null) => {\n const params: PutEventsCommandInput = {\n Entries: [ {\n Detail: JSON.stringify({ headers, data }),\n DetailType: detailType,\n EventBusName: this.EVENT_BUS_NAME,\n Source: source,\n Time: new Date(),\n } ],\n };\n const putEventscommand = new PutEventsCommand(params);\n const response = await this.eventBridge.send(putEventscommand);\n log.debug('EventBus Event Published',\n {\n eventBusName: this.EVENT_BUS_NAME,\n eventSource: source,\n eventType: detailType,\n event: data,\n response\n });\n return response;\n };\n\n}\n\n", "\nimport { DateTime } from 'luxon';\n\nexport const getCurrentTimestamp = (): string => {\n return DateTime.utc().toJSDate().toISOString();\n}\n\nexport const getDateFromTimestamp = (timestamp: string) => {\n return timestamp.split('T')[0];\n}\n\nexport const getCurrentDate = (): string => {\n return getDateFromTimestamp(getCurrentTimestamp());\n}", "import axios, { CreateAxiosDefaults } from 'axios';\nimport https from 'https';\n\nconst httpResponse = (res: any = {}) => {\n return {\n headers: res?.header || {},\n data: res?.data || {},\n status: res?.status || 0,\n };\n};\n\nconst handleAxiosError = (error: any) => {\n if (!error?.response && !error?.request) throw error;\n return error.response ? httpResponse(error.response) : httpResponse({ status: 500, data: { error: error.request } });\n};\n\nexport const axiosHttpService = (config: CreateAxiosDefaults = {}) => {\n config.adapter = 'http';\n config.httpsAgent = new https.Agent({ keepAlive: true });\n const axiosService = axios.create(config);\n\n return {\n instance: () => axiosService,\n get: (url: string, config?: any) => axiosService.get(url, config).then(httpResponse, handleAxiosError),\n post: (url: string, data?: any, config?: any) => axiosService.post(url, data, config).then(httpResponse, handleAxiosError),\n delete: (url: string, config?: any) => axiosService.delete(url, config).then(httpResponse, handleAxiosError),\n put: (url: string, data?: any, config?: any) => axiosService.put(url, data, config).then(httpResponse, handleAxiosError),\n patch: (url: string, data?: any, config?: any) => axiosService.patch(url, data, config).then(httpResponse, handleAxiosError),\n setBaseUrl: (url: string) => !!(axiosService.defaults.baseURL = url)\n };\n};\n", "import { ObjectCannedACL, S3 } from '@aws-sdk/client-s3';\nimport * as log from 'lambda-log';\n\nexport class S3Client {\n s3: S3;\n\n constructor (region = 'us-west-2') {\n this.s3 = new S3({ region });\n }\n\n async uploadJson(path: string, bucket: string, jsonData: any, ACL: ObjectCannedACL | string = ObjectCannedACL.private) {\n try {\n const res = await this.s3.putObject({\n ACL,\n Bucket: bucket,\n ContentType: 'application/json; charset=utf-8',\n Body: JSON.stringify(jsonData),\n Key: path\n });\n\n return res;\n } catch (error) {\n log.error('Error in s3 upload json', { error });\n return error;\n }\n }\n}", "/* eslint-disable no-useless-escape */\nimport { AdminConfirmSignUpCommandInput, AdminDeleteUserCommandInput, AdminUpdateUserAttributesCommandInput, CognitoIdentityProvider, ConfirmSignUpCommandInput, ForgotPasswordCommandInput, ListUsersCommandInput, ResendConfirmationCodeCommandInput, SignUpCommandInput } from '@aws-sdk/client-cognito-identity-provider';\nimport * as log from 'lambda-log';\n\nexport function dictToAwsAttributes(input: any) {\n delete input.email;\n delete input.password;\n const output = [];\n for (const att in input) {\n if (Object.prototype.hasOwnProperty.call(input, att)) {\n output.push({ Name: att, Value: input[ att ] });\n }\n }\n return output;\n}\n\nconst buildAttributes = (data: any) => {\n const attributes = {\n name: data.givenName,\n family_name: data.familyName,\n };\n return dictToAwsAttributes(attributes);\n};\n\nexport class CognitoClient {\n public cognitoClient: any\n public USER_POOL_ID: string;\n public USER_POOL_NO_SECRET_CLIENT_ID: string;\n\n constructor(userPoolId: string, userPoolNoSecretClientId: string) {\n this.cognitoClient = new CognitoIdentityProvider({});\n this.USER_POOL_ID = userPoolId;\n this.USER_POOL_NO_SECRET_CLIENT_ID = userPoolNoSecretClientId;\n }\n\n public signupUser = async (data: any) => {\n const params: SignUpCommandInput = {\n ClientId: this.USER_POOL_NO_SECRET_CLIENT_ID,\n Password: data.password,\n Username: data.email,\n UserAttributes: buildAttributes(data),\n };\n const cognitoResponse = await this.cognitoClient.signUp(params);\n log.debug('Successfully Registered User', { cognitoResponse });\n return cognitoResponse;\n }\n\n public forgotPassword = async (email: string) => {\n await this.adminEmailVerify(email);\n const params: ForgotPasswordCommandInput = {\n ClientId: this.USER_POOL_NO_SECRET_CLIENT_ID,\n Username: email,\n };\n const cognitoResponse = await this.cognitoClient.forgotPassword(params);\n log.debug('Sent Forgot Password', { cognitoResponse });\n return cognitoResponse;\n }\n\n public adminEmailVerify = async (email: string) => {\n try {\n const user: any = await this.getUserByEmail(email);\n if (user && user?.UserStatus === 'CONFIRMED' && user?.email_verified !== 'true') {\n await this.forceValidateEmail(email);\n }\n } catch (error) {\n log.error('Failed admin email verify', { error });\n }\n }\n\n public forceValidateEmail = async (email: string) => {\n try {\n const params: AdminUpdateUserAttributesCommandInput = {\n UserPoolId: this.USER_POOL_ID,\n Username: email,\n UserAttributes: [\n {\n Name: 'email_verified',\n Value: 'true',\n },\n ],\n };\n await this.cognitoClient.adminUpdateUserAttributes(params);\n } catch (error) {\n log.error('Failed force validate email', { email, error });\n }\n }\n\n public adminConfirmUser = async (data: any) => {\n const params: AdminConfirmSignUpCommandInput = {\n UserPoolId: this.USER_POOL_ID,\n Username: data.email,\n };\n const cognitoResponse = await this.cognitoClient.adminConfirmSignUp(params);\n await this.forceValidateEmail(data.email);\n log.debug('Admin Successfully Confirmed User', { cognitoResponse });\n return cognitoResponse;\n }\n\n public confirmUser = async (data: any) => {\n const params: ConfirmSignUpCommandInput = {\n ClientId: this.USER_POOL_NO_SECRET_CLIENT_ID,\n ConfirmationCode: data.confirmationCode,\n Username: data.email,\n };\n const cognitoResponse = await this.cognitoClient.confirmSignUp(params);\n log.debug('Successfully Confirmed User', { cognitoResponse });\n return cognitoResponse;\n }\n\n public resendCode = async (email: string) => {\n const params: ResendConfirmationCodeCommandInput = {\n ClientId: this.USER_POOL_NO_SECRET_CLIENT_ID,\n Username: email,\n };\n await this.cognitoClient.resendConfirmationCode(params);\n log.debug('Successfully Resend Confirmation Code', { email });\n return;\n }\n\n public adminDeleteUser = async (userId: string) => {\n const params: AdminDeleteUserCommandInput = {\n UserPoolId: this.USER_POOL_ID,\n Username: userId,\n };\n await this.cognitoClient.adminDeleteUser(params);\n return true;\n }\n\n public getUserByEmail = async (email: string) => {\n const params: ListUsersCommandInput = {\n UserPoolId: this.USER_POOL_ID,\n Filter: `email=\\\"${email}\\\"`,\n Limit: 1,\n };\n const cognitoResponse: any = await this.cognitoClient.listUsers(params);\n log.debug('Get Users by Email', { cognitoResponse });\n\n if (cognitoResponse?.Users && cognitoResponse?.Users.length > 0) {\n const attributes = cognitoResponse.Users[ 0 ].Attributes;\n\n const user = {\n ...cognitoResponse.Users[ 0 ],\n Attributes: undefined,\n id: cognitoResponse.Users[ 0 ].sub,\n };\n\n attributes.forEach((attr: any) => {\n user[ attr.Name ] = attr?.Value;\n });\n return user;\n }\n return null;\n }\n}", "import { SQS, SendMessageCommandInput } from '@aws-sdk/client-sqs';\nimport { v4 as uuidv4 } from 'uuid';\nimport { getCurrentTimestamp } from '../../libs/dates.js';\nimport * as log from 'lambda-log';\n\nexport class SQSClient {\n public sqs: SQS;\n public queueUrl: string;\n\n constructor (region: string, accountId: string, queueName: string) {\n this.sqs = new SQS({ region });\n this.queueUrl = `https://sqs.${region}.amazonaws.com/${accountId}/${queueName}`;\n }\n\n public buildAndSendEvent = async (eventType: string, eventData: any, deplaySeconds = 0) => {\n const event = this.buildEvent(eventType, eventData);\n return await this.putEvent(event, deplaySeconds);\n };\n\n public buildEvent = (eventType: string, eventData: any, eventId: string = uuidv4(), eventTime: string = getCurrentTimestamp()) => {\n return {\n eventId,\n eventType,\n eventTime,\n eventData\n };\n };\n\n public putEvent = async (data: any, delaySeconds = 0) => {\n const params: SendMessageCommandInput = {\n QueueUrl: this.queueUrl,\n DelaySeconds: delaySeconds,\n MessageBody: JSON.stringify(data)\n };\n const response = await this.sqs.sendMessage(params)\n \n log.debug('SQS Event Published', { queueUrl: this.queueUrl, event: data });\n \n return response;\n };\n\n}\n\n", "import * as log from 'lambda-log';\n//const log = require('lambda-log');\nimport { ApiResponse } from '../../types/api-response.js';\nimport { axiosHttpService } from '../generic/http-client.js';\nimport { Destination } from '@adtrackify/at-tracking-event-types';\n//const BASE_API_URL = process.env.BASE_API_URL;\n//const DESTINATIONS_API_KEY = process.env.DESTINATIONS_API_KEY;\n\nexport interface GetDestinationsResponseData {\n destinations: Destination[];\n [ key: string ]: any;\n}\nexport interface CreateDestinationResponseData {\n destination: Destination;\n [ key: string ]: any;\n}\n\n\nexport class DestinationsClient {\n\n public BASE_API_URL: string;\n public DESTINATIONS_API_KEY: string;\n\n constructor (baseApiUrl: string, destinationsApiKey: string) {\n this.BASE_API_URL = baseApiUrl;\n this.DESTINATIONS_API_KEY = destinationsApiKey;\n }\n\n getConfig = () => {\n const SERVICE_API_ROOT_URL = `${this.BASE_API_URL}/destinations`;\n return {\n baseURL: SERVICE_API_ROOT_URL,\n headers: {\n common: {\n 'x-api-key': this.DESTINATIONS_API_KEY\n }\n }\n };\n };\n\n getClient = async () => {\n return axiosHttpService(this.getConfig());\n };\n\n createDestination = async (createDestinationRequest: any): Promise<ApiResponse<CreateDestinationResponseData>> => {\n const client = await this.getClient();\n const response = await client.post('/', createDestinationRequest);\n log.info('createDestinationResponse', { response });\n return response as ApiResponse<CreateDestinationResponseData>;\n };\n\n getPixelDestinations = async (pixelId: string): Promise<ApiResponse<GetDestinationsResponseData>> => {\n const client = await this.getClient();\n const response = await client.get(`/?pixelId=${pixelId}`);\n log.info('getPixelResponse', { response });\n return response as ApiResponse<GetDestinationsResponseData>;\n };\n}\n", "import * as log from 'lambda-log';\nimport { ApiResponse } from '../../types/api-response.js';\nimport { Account, ACCOUNT_STATUS, Destination } from '@adtrackify/at-tracking-event-types';\nimport { axiosHttpService } from '../generic/http-client.js';\n\n//const BASE_API_URL = process.env.BASE_API_URL;\n\n//const SERVICE_API_ROOT_URL = `${BASE_API_URL}/accounts`;\n//const ACCOUNTS_API_KEY = process.env.ACCOUNTS_API_KEY;\n\nexport interface AccountResponseData {\n account: Account;\n [ key: string ]: any;\n}\n\nexport interface IsAuthorizedUserResponseData {\n isAccountUser: boolean;\n [ key: string ]: any;\n}\nexport interface PixelConfigResponseData {\n id: string;\n destinations: Destination[];\n [ key: string ]: any;\n}\nexport interface AddUserToAccountResponseData {\n userId: string;\n accountId: string;\n}\n\nexport interface UpdateAccountRequest {\n accountName?: string,\n companyName?: string,\n primaryEmail?: string,\n ownerId?: string,\n subscriptionId?: string,\n accountStatus?: ACCOUNT_STATUS;\n}\n\nexport class AccountsClient {\n public BASE_API_URL: string;\n public ACCOUNTS_API_KEY?: string;\n\n constructor (baseApiUrl: string, accountsApiKey?: string) {\n this.BASE_API_URL = baseApiUrl;\n this.ACCOUNTS_API_KEY = accountsApiKey;\n }\n\n getConfig = () => {\n const SERVICE_API_ROOT_URL = `${this.BASE_API_URL}/accounts`;\n const params: any = {\n baseURL: SERVICE_API_ROOT_URL\n };\n if (this.ACCOUNTS_API_KEY) {\n params.headers = {\n common: {\n 'x-api-key': this.ACCOUNTS_API_KEY\n }\n };\n }\n return params;\n };\n\n getClient = async () => {\n return axiosHttpService(this.getConfig());\n };\n\n createAccount = async (createAccountRequest: any) => {\n const client = await this.getClient();\n const createAccountResponse = await client.post('', createAccountRequest);\n log.info('createAccountResponse', { createAccountResponse });\n return createAccountResponse;\n };\n updateAccount = async (accountId: string, body: any): Promise<ApiResponse<AccountResponseData>> => {\n const client = await this.getClient();\n const response = await client.patch(`/${accountId}/`, body);\n log.info('update Account response', { response });\n return response as ApiResponse<AccountResponseData>;\n };\n addOwner = async (accountId: string, userId: string) => {\n const client = await this.getClient();\n const addOwnerResponse = await client.post('/addOwner', { accountId, userId });\n log.info('addOwnerResponse', { addOwnerResponse });\n return addOwnerResponse;\n };\n isAuthorizedUser = async (userId: string, accountId: string, pixelId?: string): Promise<ApiResponse<IsAuthorizedUserResponseData>> => {\n const client = await this.getClient();\n const body = {\n userId, accountId, pixelId\n };\n const response = await client.post('/checkUserAuthorization', body);\n log.info('checkUserAuthorization', { response });\n return response as ApiResponse<IsAuthorizedUserResponseData>;\n };\n adminDeleteAccount = async (accountId: string) => {\n const client = await this.getClient();\n const success = await client.delete(`/${accountId}`);\n log.info('adminDeleteAccount');\n return success;\n };\n getPixelConfigById = async (pixelId: string): Promise<ApiResponse<PixelConfigResponseData>> => {\n const client = await this.getClient();\n const pixelResponse = await client.get(`/px/${pixelId}/config`);\n log.debug('get pixelResponse', { pixelResponse });\n return pixelResponse;\n };\n getAccount = async (accountId: string): Promise<ApiResponse<AccountResponseData>> => {\n const client = await this.getClient();\n const response = await client.get(`/${accountId}/`);\n log.info('get account response', { response });\n return response as ApiResponse<AccountResponseData>;\n };\n addUserToAccount = async (accountId: string, userId: string): Promise<ApiResponse<AddUserToAccountResponseData>> => {\n const client = await this.getClient();\n const response = await client.post('/addUser', { accountId, userId });\n log.info('add user account response', { response });\n return response as ApiResponse<AddUserToAccountResponseData>;\n };\n\n\n // setAccountSubscriptionId = async (accountId: string, subscriptionId: string): Promise<ApiResponse<any>> => {\n // const client = await this.getClient();\n // const pixelResponse = await client.get(`/px/${pixelId}/config`);\n // log.debug('pixelResponse', { pixelResponse });\n // return pixelResponse;\n // };\n}", "import { User } from '@adtrackify/at-tracking-event-types';\nimport * as log from 'lambda-log';\nimport { HttpError } from '../../libs/http-error.js';\nimport { HttpStatusCodes } from '../../libs/http-status-codes.js';\nimport { ApiResponse } from '../../types/api-response.js';\nimport { axiosHttpService } from '../generic/http-client.js';\n\nexport interface UserResponseData {\n user: User;\n [ key: string ]: any;\n}\n\nexport interface UserSignupRequest {\n email: string,\n password: string,\n givenName: string,\n familyName: string;\n}\n\nexport class UsersAuthClient {\n\n public SERVICE_API_ROOT_URL: string;\n public BASE_API_URL: string;\n public USERS_AUTH_API_KEY: string;\n constructor (baseApiUrl: string, usersAuthApiKey?: string) {\n this.BASE_API_URL = baseApiUrl;\n this.USERS_AUTH_API_KEY = usersAuthApiKey as string;\n this.SERVICE_API_ROOT_URL = `${this.BASE_API_URL}/auth`;\n }\n\n getConfig = () => {\n return {\n baseURL: this.SERVICE_API_ROOT_URL,\n headers: {\n common: {\n }\n }\n };\n };\n\n getClient = async () => {\n return axiosHttpService(this.getConfig());\n };\n\n signupAndConfirmUser = async (userSignupRequest: any): Promise<any> => {\n const user = await this.signupUser(userSignupRequest);\n await this.adminConfirmUser(user.email);\n // if fail - delete user and throw error\n return user;\n };\n\n signupUser = async (userSignupRequest: UserSignupRequest): Promise<any> => {\n log.info('Attempting to signup user', { email: userSignupRequest.email });\n\n const client = await this.getClient();\n const response = await client.post('/signup', userSignupRequest);\n\n // Check if Successful or throw error\n if (response.status !== 200 || !response?.data?.user) {\n const message = 'User Signup Failed';\n log.error(message, { response });\n throw new HttpError(HttpStatusCodes.INTERNAL_SERVER_ERROR, message);\n }\n\n log.info('User Signup Successful', { response });\n return response.data.user;\n };\n\n //userName is same as user id\n adminConfirmUser = async (email: string) => {\n //confirm user\n //@TODO update user auth service with admin confirm user endpoint\n log.info('Attempting to admin confirm user', { email });\n\n const client = await this.getClient();\n const response = await client.post('/admin/confirm',\n {\n email\n }, {\n headers: {\n 'x-api-key': this.USERS_AUTH_API_KEY\n }\n }\n );\n\n // Check if Successful or throw error\n if (response.status !== 200) {\n const message = 'Admin User Confirmation Failed';\n log.error(message, { response });\n throw new HttpError(HttpStatusCodes.INTERNAL_SERVER_ERROR, message);\n }\n\n log.info('Admin User Confirmation Successful', { response });\n return response;\n };\n\n getUserByEmail = async (email: string): Promise<ApiResponse<UserResponseData>> => {\n const client = await this.getClient();\n const getUserResponse = await client.get('/lookup', {\n headers: {\n 'x-api-key': this.USERS_AUTH_API_KEY\n },\n params: {\n email\n }\n });\n log.info('getUserResponse', { getUserResponse });\n return getUserResponse;\n };\n\n}\n\n", "/* eslint-disable no-dupe-class-members */\nimport { strict as assert } from 'assert';\n\nconst deepClone = (o = {}) => JSON.parse(JSON.stringify(o));\nconst containsStackTrace = (text = '') => /at.+\\.js:\\d+:\\d+/.test(text);\nconst objectContainsStackTrace = (obj: any) =>\n !obj ? false : containsStackTrace(JSON.stringify(obj));\n\n// may only be expanded by governance, never reduced\nconst supportedStatusCodes: any = {\n 400: 'Bad Request',\n 401: 'Unauthorized',\n 403: 'Forbidden',\n 404: 'Not Found',\n 405: 'Method Not Allowed',\n 409: 'Conflict',\n 412: 'Precondition Failed',\n 413: 'Payload Too Large',\n 415: 'Unsupported Media Type',\n 428: 'Precondition Required',\n 429: 'Too Many Requests',\n 500: 'Internal Server Error',\n 501: 'Not Implemented',\n 502: 'Bad Gateway',\n 503: 'Service Unavailable',\n 504: 'Gateway Timeout'\n};\n\nconst supportedStatusCodesMessage = `statusCode must be one of the following: ${JSON.stringify(Object.keys(supportedStatusCodes))}`;\n//const onlyStatusCodeMessage = 'Server errors may not specify any parameter except statusCode';\n\n//const isNullOrUndefined = (value: any) => value === null || value === undefined;\n\nexport class HttpError extends Error {\n body: {\n [ key: string ]: any;\n };\n headers: object[];\n statusCode: number;\n isServerError: boolean;\n\n constructor (statusCode: number,\n message?: string,\n body?: {\n [ key: string ]: any;\n },\n headers?: object[]) {\n assert(statusCode in supportedStatusCodes, supportedStatusCodesMessage);\n\n const isServerError = statusCode > 499;\n\n assert(\n body === undefined || typeof body === 'object',\n 'body must be an object or omitted'\n );\n assert(\n headers === undefined || typeof headers === 'object',\n 'headers must be an object or omitted'\n );\n\n message = message ?? supportedStatusCodes[ statusCode ];\n\n assert(\n !containsStackTrace(message) && !objectContainsStackTrace(body),\n 'the message or data parameters may not contain errors or stack traces'\n );\n\n super(message);\n\n this.body = deepClone(body);\n this.headers = deepClone(headers);\n this.statusCode = statusCode;\n this.isServerError = isServerError;\n if (!this?.body?.message) {\n this.body.message = this.message;\n }\n }\n\n\n static get supportedStatusCodes() { return supportedStatusCodes; }\n static badRequest = (message?: string, body?: object, headers?: object[]) => { return new HttpError(400, message, body, headers); };\n static unauthorized = (message?: string, body?: object, headers?: object[]) => new HttpError(401, message, body, headers);\n static forbidden = (message?: string, body?: object, headers?: object[]) => new HttpError(403, message, body, headers);\n static notFound = (message?: string, body?: object, headers?: object[]) => new HttpError(404, message, body, headers);\n static internal = (message?: string, body?: object, headers?: object[]) => new HttpError(500, message, body, headers);\n static notImplemented = () => new HttpError(501);\n static badGateway = () => new HttpError(502);\n static serviceUnavailable = (headers: object[]) => new HttpError(503, undefined, undefined, headers);\n static gatewayTimeout = () => new HttpError(504);\n}\n", "export enum HttpStatusCodes {\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.2.1\n *\n * This interim response indicates that everything so far is OK and that the client should continue with the request or ignore it if it is already finished.\n */\n CONTINUE = 100,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.2.2\n *\n * This code is sent in response to an Upgrade request header by the client, and indicates the protocol the server is switching too.\n */\n SWITCHING_PROTOCOLS = 101,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.1\n *\n * This code indicates that the server has received and is processing the request, but no response is available yet.\n */\n PROCESSING = 102,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.1\n *\n * The request has succeeded. The meaning of a success varies depending on the HTTP method:\n * GET: The resource has been fetched and is transmitted in the message body.\n * HEAD: The entity headers are in the message body.\n * POST: The resource describing the result of the action is transmitted in the message body.\n * TRACE: The message body contains the request message as received by the server\n */\n OK = 200,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.2\n *\n * The request has succeeded and a new resource has been created as a result of it. This is typically the response sent after a PUT request.\n */\n CREATED = 201,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.3\n *\n * The request has been received but not yet acted upon. It is non-committal, meaning that there is no way in HTTP to later send an asynchronous response indicating the outcome of processing the request. It is intended for cases where another process or server handles the request, or for batch processing.\n */\n ACCEPTED = 202,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.4\n *\n * This response code means returned meta-information set is not exact set as available from the origin server, but collected from a local or a third party copy. Except this condition, 200 OK response should be preferred instead of this response.\n */\n NON_AUTHORITATIVE_INFORMATION = 203,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.5\n *\n * There is no content to send for this request, but the headers may be useful. The user-agent may update its cached headers for this resource with the new ones.\n */\n NO_CONTENT = 204,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.6\n *\n * This response code is sent after accomplishing request to tell user agent reset document view which sent this request.\n */\n RESET_CONTENT = 205,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7233#section-4.1\n *\n * This response code is used because of range header sent by the client to separate download into multiple streams.\n */\n PARTIAL_CONTENT = 206,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.2\n *\n * A Multi-Status response conveys information about multiple resources in situations where multiple status codes might be appropriate.\n */\n MULTI_STATUS = 207,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.1\n *\n * The request has more than one possible responses. User-agent or user should choose one of them. There is no standardized way to choose one of the responses.\n */\n MULTIPLE_CHOICES = 300,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.2\n *\n * This response code means that URI of requested resource has been changed. Probably, new URI would be given in the response.\n */\n MOVED_PERMANENTLY = 301,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.3\n *\n * This response code means that URI of requested resource has been changed temporarily. New changes in the URI might be made in the future. Therefore, this same URI should be used by the client in future requests.\n */\n MOVED_TEMPORARILY = 302,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.4\n *\n * Server sent this response to directing client to get requested resource to another URI with an GET request.\n */\n SEE_OTHER = 303,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7232#section-4.1\n *\n * This is used for caching purposes. It is telling to client that response has not been modified. So, client can continue to use same cached version of response.\n */\n NOT_MODIFIED = 304,\n /**\n * @deprecated\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.6\n *\n * Was defined in a previous version of the HTTP specification to indicate that a requested response must be accessed by a proxy. It has been deprecated due to security concerns regarding in-band configuration of a proxy.\n */\n USE_PROXY = 305,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.7\n *\n * Server sent this response to directing client to get requested resource to another URI with same method that used prior request. This has the same semantic than the 302 Found HTTP response code, with the exception that the user agent must not change the HTTP method used: if a POST was used in the first request, a POST must be used in the second request.\n */\n TEMPORARY_REDIRECT = 307,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7538#section-3\n *\n * This means that the resource is now permanently located at another URI, specified by the Location: HTTP Response header. This has the same semantics as the 301 Moved Permanently HTTP response code, with the exception that the user agent must not change the HTTP method used: if a POST was used in the first request, a POST must be used in the second request.\n */\n PERMANENT_REDIRECT = 308,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.1\n *\n * This response means that server could not understand the request due to invalid syntax.\n */\n BAD_REQUEST = 400,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7235#section-3.1\n *\n * Although the HTTP standard specifies \"unauthorized\", semantically this response means \"unauthenticated\". That is, the client must authenticate itself to get the requested response.\n */\n UNAUTHORIZED = 401,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.2\n *\n * This response code is reserved for future use. Initial aim for creating this code was using it for digital payment systems however this is not used currently.\n */\n PAYMENT_REQUIRED = 402,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.3\n *\n * The client does not have access rights to the content, i.e. they are unauthorized, so server is rejecting to give proper response. Unlike 401, the client's identity is known to the server.\n */\n FORBIDDEN = 403,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.4\n *\n * The server can not find requested resource. In the browser, this means the URL is not recognized. In an API, this can also mean that the endpoint is valid but the resource itself does not exist. Servers may also send this response instead of 403 to hide the existence of a resource from an unauthorized client. This response code is probably the most famous one due to its frequent occurence on the web.\n */\n NOT_FOUND = 404,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.5\n *\n * The request method is known by the server but has been disabled and cannot be used. For example, an API may forbid DELETE-ing a resource. The two mandatory methods, GET and HEAD, must never be disabled and should not return this error code.\n */\n METHOD_NOT_ALLOWED = 405,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.6\n *\n * This response is sent when the web server, after performing server-driven content negotiation, doesn't find any content following the criteria given by the user agent.\n */\n NOT_ACCEPTABLE = 406,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7235#section-3.2\n *\n * This is similar to 401 but authentication is needed to be done by a proxy.\n */\n PROXY_AUTHENTICATION_REQUIRED = 407,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.7\n *\n * This response is sent on an idle connection by some servers, even without any previous request by the client. It means that the server would like to shut down this unused connection. This response is used much more since some browsers, like Chrome, Firefox 27+, or IE9, use HTTP pre-connection mechanisms to speed up surfing. Also note that some servers merely shut down the connection without sending this message.\n */\n REQUEST_TIMEOUT = 408,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.8\n *\n * This response is sent when a request conflicts with the current state of the server.\n */\n CONFLICT = 409,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.9\n *\n * This response would be sent when the requested content has been permenantly deleted from server, with no forwarding address. Clients are expected to remove their caches and links to the resource. The HTTP specification intends this status code to be used for \"limited-time, promotional services\". APIs should not feel compelled to indicate resources that have been deleted with this status code.\n */\n GONE = 410,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.10\n *\n * The server rejected the request because the Content-Length header field is not defined and the server requires it.\n */\n LENGTH_REQUIRED = 411,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7232#section-4.2\n *\n * The client has indicated preconditions in its headers which the server does not meet.\n */\n PRECONDITION_FAILED = 412,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.11\n *\n * Request entity is larger than limits defined by server; the server might close the connection or return an Retry-After header field.\n */\n REQUEST_TOO_LONG = 413,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.12\n *\n * The URI requested by the client is longer than the server is willing to interpret.\n */\n REQUEST_URI_TOO_LONG = 414,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.13\n *\n * The media format of the requested data is not supported by the server, so the server is rejecting the request.\n */\n UNSUPPORTED_MEDIA_TYPE = 415,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7233#section-4.4\n *\n * The range specified by the Range header field in the request can't be fulfilled; it's possible that the range is outside the size of the target URI's data.\n */\n REQUESTED_RANGE_NOT_SATISFIABLE = 416,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.14\n *\n * This response code means the expectation indicated by the Expect request header field can't be met by the server.\n */\n EXPECTATION_FAILED = 417,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2324#section-2.3.2\n *\n * Any attempt to brew coffee with a teapot should result in the error code \"418 I'm a teapot\". The resulting entity body MAY be short and stout.\n */\n IM_A_TEAPOT = 418,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.6\n *\n * The 507 (Insufficient Storage) status code means the method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request. This condition is considered to be temporary. If the request which received this status code was the result of a user action, the request MUST NOT be repeated until it is requested by a separate user action.\n */\n INSUFFICIENT_SPACE_ON_RESOURCE = 419,\n /**\n * @deprecated\n * Official Documentation @ https://tools.ietf.org/rfcdiff?difftype=--hwdiff&url2=draft-ietf-webdav-protocol-06.txt\n *\n * A deprecated response used by the Spring Framework when a method has failed.\n */\n METHOD_FAILURE = 420,\n /**\n * Official Documentation @ https://datatracker.ietf.org/doc/html/rfc7540#section-9.1.2\n *\n * Defined in the specification of HTTP/2 to indicate that a server is not able to produce a response for the combination of scheme and authority that are included in the request URI.\n */\n MISDIRECTED_REQUEST = 421,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.3\n *\n * The request was well-formed but was unable to be followed due to semantic errors.\n */\n UNPROCESSABLE_ENTITY = 422,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.4\n *\n * The resource that is being accessed is locked.\n */\n LOCKED = 423,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.5\n *\n * The request failed due to failure of a previous request.\n */\n FAILED_DEPENDENCY = 424,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc6585#section-3\n *\n * The origin server requires the request to be conditional. Intended to prevent the 'lost update' problem, where a client GETs a resource's state, modifies it, and PUTs it back to the server, when meanwhile a third party has modified the state on the server, leading to a conflict.\n */\n PRECONDITION_REQUIRED = 428,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc6585#section-4\n *\n * The user has sent too many requests in a given amount of time (\"rate limiting\").\n */\n TOO_MANY_REQUESTS = 429,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc6585#section-5\n *\n * The server is unwilling to process the request because its header fields are too large. The request MAY be resubmitted after reducing the size of the request header fields.\n */\n REQUEST_HEADER_FIELDS_TOO_LARGE = 431,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7725\n *\n * The user-agent requested a resource that cannot legally be provided, such as a web page censored by a government.\n */\n UNAVAILABLE_FOR_LEGAL_REASONS = 451,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.1\n *\n * The server encountered an unexpected condition that prevented it from fulfilling the request.\n */\n INTERNAL_SERVER_ERROR = 500,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.2\n *\n * The request method is not supported by the server and cannot be handled. The only methods that servers are required to support (and therefore that must not return this code) are GET and HEAD.\n */\n NOT_IMPLEMENTED = 501,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.3\n *\n * This error response means that the server, while working as a gateway to get a response needed to handle the request, got an invalid response.\n */\n BAD_GATEWAY = 502,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.4\n *\n * The server is not ready to handle the request. Common causes are a server that is down for maintenance or that is overloaded. Note that together with this response, a user-friendly page explaining the problem should be sent. This responses should be used for temporary conditions and the Retry-After: HTTP header should, if possible, contain the estimated time before the recovery of the service. The webmaster must also take care about the caching-related headers that are sent along with this response, as these temporary condition responses should usually not be cached.\n */\n SERVICE_UNAVAILABLE = 503,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.5\n *\n * This error response is given when the server is acting as a gateway and cannot get a response in time.\n */\n GATEWAY_TIMEOUT = 504,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.6\n *\n * The HTTP version used in the request is not supported by the server.\n */\n HTTP_VERSION_NOT_SUPPORTED = 505,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.6\n *\n * The server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process.\n */\n INSUFFICIENT_STORAGE = 507,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc6585#section-6\n *\n * The 511 status code indicates that the client needs to authenticate to gain network access.\n */\n NETWORK_AUTHENTICATION_REQUIRED = 511\n}", "import log from 'lambda-log';\nimport { ApiResponse } from '../../types/api-response.js';\nimport { axiosHttpService } from '../generic/http-client.js';\nimport { ShopifyAppInstall, ShopifyAppSubscriptionStatus } from '@adtrackify/at-tracking-event-types';\n//const BASE_API_URL = process.env.BASE_API_URL;\n//const DESTINATIONS_API_KEY = process.env.DESTINATIONS_API_KEY;\n\nexport interface ShopifyAppInstallResponseData {\n shopifyAppInstall: ShopifyAppInstall;\n [ key: string ]: any;\n}\n\nexport interface UpdateShopifyAppInstallRequest {\n appSubscriptionStatus?: ShopifyAppSubscriptionStatus,\n pixelId?: string,\n shopifyAppInstallId: string;\n isAppEnabled?: boolean;\n}\n\nexport class ShopifyAppInstallClient {\n\n public BASE_API_URL: string;\n public SHOPIFY_APP_INSTALL_API_KEY: string;\n\n constructor (baseApiUrl: string, shopifyAppInstallApiKey: string) {\n this.BASE_API_URL = baseApiUrl;\n this.SHOPIFY_APP_INSTALL_API_KEY = shopifyAppInstallApiKey;\n }\n\n getConfig = () => {\n const SERVICE_API_ROOT_URL = `${this.BASE_API_URL}/shopify-app-installs`;\n return {\n baseURL: SERVICE_API_ROOT_URL,\n headers: {\n common: {\n 'x-api-key': this.SHOPIFY_APP_INSTALL_API_KEY\n }\n }\n };\n };\n\n getClient = async () => {\n return axiosHttpService(this.getConfig());\n };\n\n updateShopifyAppInstall = async (shopifyAppInstallId: string, updateShopifyAppInstallRequest: UpdateShopifyAppInstallRequest): Promise<ApiResponse<ShopifyAppInstallResponseData>> => {\n const client = await this.getClient();\n const response = await client.put(`/${shopifyAppInstallId}`, updateShopifyAppInstallRequest);\n log.info('updateShopifyAppInstall', { response });\n return response as ApiResponse<ShopifyAppInstallResponseData>;\n };\n\n getShopifyAppInstall = async (shopifyAppInstallId: string): Promise<ApiResponse<ShopifyAppInstallResponseData>> => {\n const client = await this.getClient();\n const response = await client.get(`/${shopifyAppInstallId}`);\n log.info('getShopifyAppInstall', { response });\n return response as ApiResponse<ShopifyAppInstallResponseData>;\n };\n\n getShopifyAppInstallByShop = async (shop: string): Promise<ApiResponse<ShopifyAppInstallResponseData>> => {\n const client = await this.getClient();\n const response = await client.get(`/?shop=${shop}`);\n log.info('getShopifyAppInstallByShop', { response });\n return response as ApiResponse<ShopifyAppInstallResponseData>;\n };\n}\n", "import { axiosHttpService } from '../generic/http-client.js';\nimport * as log from 'lambda-log';\n\nexport class ShopifyClient {\n static _shopify_api_version = process.env.SHOPIFY_API_VERSION as string;\n static getConfig = (shopifyDomain: string, accessToken: string) => {\n const config = {\n baseURL: `https://${shopifyDomain}/admin/api/${this._shopify_api_version}`,\n headers: {\n common: {\n 'X-Shopify-Access-Token': accessToken,\n },\n },\n };\n return config;\n };\n\n static getClient = (shopifyDomain: string, accessToken: string) => {\n return axiosHttpService(\n this.getConfig(shopifyDomain, accessToken)\n );\n };\n\n static registerApp = async (shop: string, code: string, appKey: string, appSecret: string) => {\n const client = axiosHttpService();\n const url = 'https://' + shop + '/admin/oauth/access_token';\n const payload = {\n client_id: appKey,\n client_secret: appSecret,\n code\n };\n const res = await client.post(url, payload);\n return res;\n };\n\n static registerWebhookTopic = async (shop: string, accessToken: string, eventBridgeArn: string, topic: string) => {\n const client = axiosHttpService();\n const url = `https://${shop}/admin/api/${this._shopify_api_version}/webhooks.json`;\n const payload = {\n webhook: {\n topic,\n address: eventBridgeArn,\n format: 'json'\n }\n };\n const res = await client.post(url, payload, { headers: { 'X-Shopify-Access-Token': accessToken } });\n if (res.status >= 400) {\n log.error('Failed to register Webhook Topic', { shop, accessToken, eventBridgeArn, topic, url, payload });\n }\n log.debug('Shopify Client Webhook Registration Response', { registrationResponse: res });\n return res;\n };\n\n static updateShopifyAppMetafield = async (shop: string, accessToken: string, pixelId: string) => {\n const url = `https://${shop}/admin/api/${this._shopify_api_version}/metafields.json`;\n const payload = {\n metafield: {\n namespace: 'adtr',\n key: 'adtr.config',\n value: pixelId,\n type: 'single_line_text_field'\n }\n };\n const res = await this.genericShopifyPost(url, accessToken, payload);\n\n if (res.status >= 400) {\n log.error('Failed to update Shopify app Metafield ', { shop, accessToken, url, payload });\n }\n return res;\n };\n\n static getShopifyStoreProperties = async (shop: string, accessToken: string) => {\n const url = `https://${shop}/admin/api/${this._shopify_api_version}/shop.json`;\n const res = await this.genericShopifyGet(url, accessToken);\n\n if (res.status >= 400) {\n log.error('Failed to get Shopify Store Properties', { shop, accessToken, url });\n }\n return res;\n };\n\n static createAppSubscription = async (shop: string, accessToken: string,\n planName: string, price: number, returnUrl: string, trialDays: number, test?: boolean) => {\n const url = `https://${shop}/admin/api/${this._shopify_api_version}/recurring_application_charges.json`;\n const recurring_application_charge = {\n name: planName,\n price,\n return_url: returnUrl,\n trial_days: trialDays,\n test\n };\n const res = await this.genericShopifyPost(url, accessToken, { recurring_application_charge });\n if (res.status >= 400) {\n log.error('Failed to create App Subscription', { shop, accessToken, url });\n }\n return res;\n };\n\n static cancelAppSubscription = async (shop: string, accessToken: string, chargeId: string) => {\n const url = `https://${shop}/admin/api/${this._shopify_api_version}/recurring_application_charges/${chargeId}.json`;\n const client = axiosHttpService();\n const res = await client.delete(url, { headers: { 'X-Shopify-Access-Token': accessToken } });\n\n if (res.status !== 200) {\n log.error('Failed to cancel recurring App billing', { shop, accessToken, url });\n }\n return res;\n };\n\n static listAppSubscriptions = async (shop: string, accessToken: string) => {\n const url = `https://${shop}/admin/api/${this._shopify_api_version}/recurring_application_charges.json`;\n const res = await this.genericShopifyGet(url, accessToken);\n if (res.status >= 400) {\n log.error('Failed to get App Subscriptions', { shop, accessToken, url });\n }\n return res;\n };\n\n static genericShopifyPost = async (url: string, accessToken: string, payload: any) => {\n const client = axiosHttpService();\n const res = await client.post(url, payload, { headers: { 'X-Shopify-Access-Token': accessToken, 'Content-Type': 'application/json' } });\n log.debug('Shopify Client Response', { res });\n return res;\n };\n\n static genericShopifyGet = async (url: string, accessToken: string) => {\n const client = axiosHttpService();\n const res = await client.get(url, { headers: { 'X-Shopify-Access-Token': accessToken } });\n log.debug('Shopify Client Response', { res });\n return res;\n };\n\n static genericShopifyPut = async (url: string, accessToken: string, payload: any) => {\n const client = axiosHttpService();\n const res = await client.put(url, payload, { headers: { 'X-Shopify-Access-Token': accessToken } });\n log.debug('Shopify Client Response', { res });\n return res;\n };\n}\n", "import Joi from 'joi';\nimport * as log from 'lambda-log';\nimport { HttpError } from '../libs/http-error.js';\n\nexport const validateInput = (schema: Joi.ObjectSchema<any>, input: any) => {\n const { error, value } = schema.validate(input);\n if (error) {\n log.info('', { error });\n\n const httperr = HttpError.badRequest('Bad Request', {\n errors: error.details.map(detail => ({\n message: detail?.message,\n key: detail?.context?.key,\n path: detail?.path,\n }))\n });\n\n log.info('', { httperr });\n throw httperr;\n }\n return value;\n};", "import * as log from 'lambda-log';\nconst stage = process?.env?.STAGE;\n\nexport const configureLogger = (event: any, context: any, debug = true) => {\n log.options.meta.stage = stage;\n log.options.meta.source_name = context?.functionName || 'unknown';\n log.options.meta.awsRequestId = context?.awsRequestId || 'unknown';\n log.options.meta.lambdaEvent = event;\n log.options.debug = debug;\n}", "\nexport const success = (body: any) => {\n return buildResponse(200, body);\n}\n\nconst defaultError = {\n message: 'internalServerError'\n}\n\nexport const failure = (error: any, statusCode = 500) => {\n statusCode = error?.statusCode ?? statusCode;\n\n let body = defaultError;\n if (error?.body) {\n body = error.body;\n }\n else if (error?.message) {\n body = { message: error.message };\n } else if (statusCode === 500) {\n body = defaultError;\n }\n return buildResponse(statusCode, body);\n}\n\nexport const buildResponse = (statusCode: number, body: any = {}) => {\n delete body.stack;\n return {\n statusCode: statusCode,\n headers: {\n 'Access-Control-Allow-Origin': '*',\n 'Access-Control-Allow-Credentials': true,\n 'cache-control': 'max-age=86400',\n Date: new Date(),\n 'Last-Modified': new Date(),\n 'Access-Control-Allow-Headers':\n 'Content-Type, Content-Encoding'\n },\n body: JSON.stringify(body),\n };\n}\n", "import { createHmac } from 'crypto';\nimport * as log from 'lambda-log';\nimport { HttpError } from '../libs/http-error.js';\nimport { mapObjectToQueryString } from '../libs/url.js';\nexport interface ShopifyRequestValidationParameters {\n code: string,\n hmac?: string,\n shop: string,\n state: string,\n timestamp: string;\n}\n\nexport const isShopifyRequestValid = (validationParams: ShopifyRequestValidationParameters, validationHmac: string, shopifyAppApiSecret: string): boolean => {\n // remove hmac if it exists\n // map input to query string\n // generate hash using api secret key and validate it matches hmac\n delete validationParams.hmac;\n const hmacString = mapObjectToQueryString(validationParams);\n\n\n const generatedHash = createHmac('sha256', shopifyAppApiSecret)\n .update(hmacString)\n .digest('hex');\n\n return generatedHash === validationHmac;\n};\n\nexport const validateShopifyRequest = (validationParams: ShopifyRequestValidationParameters, validationHmac: string, shopifyAppApiSecret: string) => {\n log.info('Validating shopify request is authentic', { validationParams });\n const isValid = isShopifyRequestValid(validationParams, validationHmac as string, shopifyAppApiSecret);\n if (!isValid) {\n const message = 'Failed: Shopify Request hmac validation';\n log.error(message);\n throw HttpError.badRequest(message);\n }\n log.info('Sucess: Shopify Request hmac validation');\n return true;\n}\n\n", "// Record<string, string> is any object\r\nexport const mapObjectToQueryString = (inputObj: any): string => {\r\n const qsp = Object.entries(inputObj).sort((a, b) => a[ 0 ] < b[ 0 ] ? -1 : 1);\r\n const urlParams = new URLSearchParams();\r\n qsp.map(p => {\r\n urlParams.append(p[ 0 ], p[ 1 ] as string);\r\n });\r\n const qs = urlParams.toString();\r\n return qs;\r\n};", "import { Subscription } from './subscription';\n\nexport interface Account {\n id: string,\n accountName: string,\n companyName?: string,\n accountStatus: ACCOUNT_STATUS,\n primaryEmail: string,\n publicApiKey?: string,\n subscriptionId?: string,\n pixels?: Pixel[],\n subscription?: Subscription;\n ownerId?: string,\n createdAt: string,\n updatedAt: string;\n}\n\n\nexport interface Pixel {\n id: string;\n accountId: string;\n name: string;\n createdAt: string,\n updatedAt: string;\n}\n\nexport enum ACCOUNT_STATUS {\n PENDING = 'pending',\n ACTIVE = 'active',\n INACTIVE = 'inactive'\n}", "\r\nexport interface Destination {\r\n id: string,\r\n accountId: string,\r\n pixelId: string,\r\n destination: string;\r\n displayName?: string,\r\n enabled: boolean;\r\n configuration?: UserDestinationConfiguration,\r\n createdAt: string,\r\n updatedAt: string;\r\n}\r\n\r\nexport enum DESTINATIONS {\r\n FACEBOOK = 'facebook',\r\n TIKTOK = 'tiktok',\r\n GOOGLE_ADS = 'googleAds',\r\n GOOGLE_ANALYTICS_4 = 'googleAnalytics4',\r\n HUBSPOT = 'hubspot',\r\n WEBHOOK = 'webhook',\r\n CUSTOM_HTML = 'customHTML',\r\n CUSTOM_JS = 'customJS',\r\n SNAPCHAT = 'snapchat',\r\n TWITTER = 'twitter',\r\n REDDIT = 'reddit'\r\n}\r\n\r\nexport interface UserDestinationConfiguration {\r\n [ key: string ]: any;\r\n eventBlacklist?: string[];\r\n events?: EventConfiguration[];\r\n trigger?: DestinationTriggerConfiguration;\r\n}\r\n\r\nexport interface DestinationTriggerConfiguration {\r\n shopify?: ShopifyTriggerConfiguration;\r\n exludeDomains?: string[];\r\n excludePages?: string[];\r\n domains?: string[];\r\n pages?: string[];\r\n}\r\n\r\nexport interface ShopifyTriggerConfiguration {\r\n enabled: boolean;\r\n collections?: string[];\r\n tags?: string[];\r\n}\r\n\r\n\r\nexport interface EventConfiguration {\r\n sourceEventName: string;\r\n exclude?: boolean;\r\n sample: EventSampleConfiguration;\r\n transformations?: EventTransformation[];\r\n}\r\n\r\nexport interface EventTransformation {\r\n transformationEventName: string;\r\n enabled: boolean;\r\n}\r\n\r\nexport interface EventSampleConfiguration {\r\n enabled: boolean;\r\n rate: number;\r\n}\r\n\r\n", "import { Destination, UserDestinationConfiguration } from './destinations';\r\n\r\nexport interface AdTrackifyFacebookDestination extends Destination {\r\n configuration: FacebookPixelConfiguration;\r\n}\r\n\r\nexport interface AdTrackifyTikTokDestination extends Destination {\r\n configuration: TiktokPixelConfiguration;\r\n}\r\n\r\nexport interface AdTrackifyGoogleAnalytics4Destination extends Destination {\r\n configuration: GoogleAnalytics4Configuration;\r\n}\r\n\r\n// Destination Specific configurations below\r\nexport interface FacebookPixelConfiguration extends UserDestinationConfiguration {\r\n apiAccessToken?: string;\r\n enableConversionAPI: boolean;\r\n pixelId: string;\r\n}\r\n\r\nexport interface TiktokPixelConfiguration extends UserDestinationConfiguration {\r\n apiAccessToken?: string;\r\n enableConversionAPI: boolean;\r\n pixelId: string;\r\n}\r\n\r\nexport interface GoogleAnalytics4Configuration extends UserDestinationConfiguration {\r\n apiSecret: string;\r\n measurementId: string;\r\n}\r\n\r\nexport interface GoogleAdsConfiguration extends UserDestinationConfiguration {\r\n pixelId: string;\r\n conversionID: string;\r\n}\r\n\r\nexport interface HubspotPixelConfiguration extends UserDestinationConfiguration {\r\n hubspotId: string;\r\n}\r\n\r\nexport interface SnapchatPixelConfiguration extends UserDestinationConfiguration {\r\n snapchatPixelId: string;\r\n}\r\n\r\nexport interface TwitterPixelConfiguration extends UserDestinationConfiguration {\r\n twitterPixelId: string;\r\n}\r\n\r\nexport interface WebhookConfiguration extends UserDestinationConfiguration {\r\n webhookUrl: string;\r\n}\r\n\r\nexport interface CustomHTMLConfiguration extends UserDestinationConfiguration {\r\n html: string;\r\n location: CustomHTMLLocation;\r\n}\r\n\r\nexport interface CustomJSConfiguration extends UserDestinationConfiguration {\r\n script: string;\r\n async: boolean;\r\n defer: boolean;\r\n location: CustomHTMLLocation;\r\n}\r\n\r\nexport enum CustomHTMLLocation {\r\n HEADER = 'header',\r\n FOOTER = 'footer',\r\n BODY = 'body'\r\n}\r\n\r\n", "export interface ShopifyAppInstall {\n shopifyAppInstallId: string;\n shop: string;\n accessToken?: string;\n appStatus?: string;\n appSubscriptionStatus?: ShopifyAppSubscriptionStatus;\n code?: string;\n hmac?: string;\n host?: string;\n installRequest?: ShopifyInstallRequest;\n isAppEnabled?: boolean;\n pixelId?: string;\n shopInfo?: any;\n state?: string;\n timestamp?: number;\n createdAt: string;\n updatedAt: string;\n}\n\nexport enum ShopifyAppInstallStatus {\n STARTED = 'started',\n COMPLETED = 'completed',\n UNINSTALLED = 'uninstalled',\n FAILED = 'failed',\n NONE = 'none'\n}\nexport enum ShopifyAppSubscriptionStatus {\n ACTIVE = 'active', // approved and billed to shop\n CANCELLED = 'cancelled', // cancelled, uninstalled or cancellation\n DECLINED = 'declined', // subscription declined by merchant\n EXPIRED = 'expired', //wasn't approved within two days of being created\n FROZEN = 'frozen', //on hold due to not payment\n PENDING = 'pending', // pending approval\n NOT_SUBMITTED = 'na' // billing has not yet been attempted\n}\n\nexport interface ShopifyInstallRequest {\n shop?: string;\n session?: string;\n hmac?: string;\n host?: string;\n nonce?: string;\n timestamp?: string;\n status?: string;\n}\n\nexport interface ShopifyStoreInfo {\n // TBD based on shopify api\n [ key: string ]: any;\n}", "\nexport interface Subscription {\n id: string,\n accountId?: string,\n shopifyAppInstallId?: string,\n shopifyDomain?: string,\n stripeCustomerId?: string,\n stripeSubscriptionId?: string,\n stripeCompletedCheckoutSession?: any;\n shopifyChargeId?: string;\n subscriptionPlan?: SubscriptionPlan,\n status?: SUBSCRIPTION_STATUS,\n paymentStatus?: PAYMENT_STATUS,\n paymentGateway?: PAYMENT_GATEWAY,\n createdAt: string,\n updatedAt: string,\n\n}\nexport interface SubscriptionPlan {\n id: number;\n planName: string;\n displayName: string;\n description: string;\n sku: string;\n price: string;\n displayPrice: string;\n billingFrequency: PLAN_BILLING_FREQUENCY;\n trialLengthDays?: number;\n trialRequiresCreditCard?: boolean;\n planDesc?: string[];\n unitPriceText?: string;\n isHighlighted?: boolean;\n isBanner?: boolean;\n bannerText?: string;\n bannerColor?: string;\n stripePriceId?: string;\n stripeProductId?: string;\n}\n\nexport enum PLAN_BILLING_FREQUENCY {\n MONTHLY = 'monthly',\n YEARLY = 'yearly'\n}\n\nexport enum PAYMENT_STATUS {\n CURRENT = 'current',\n PAST_DUE = 'past_due',\n CANCELLED = 'cancelled',\n FAILED = 'failed'\n}\n\nexport enum SUBSCRIPTION_STATUS {\n ACTIVE = 'active', // approved and billed to shop\n CANCELLED = 'cancelled', // cancelled, uninstalled or cancellation\n DECLINED = 'declined', // subscription declined by merchant\n EXPIRED = 'expired', //wasn't approved within two days of being created\n FROZEN = 'frozen', //on hold due to not payment\n PENDING = 'pending', // pending approval\n NOT_SUBMITTED = 'na' // billing has not yet been attempted\n}\nexport enum PAYMENT_GATEWAY {\n STRIPE = 'stripe',\n PAYPAL = 'paypal',\n SHOPIFY = 'shopify'\n}\n", "export enum ADTRACKIFY_STANDARD_EVENT {\n ADD_PAYMENT_INFO = 'add_payment_info',\n ADD_SHIPPING_INFO = 'add_shipping_info',\n ADD_TO_CART = 'add_to_cart',\n ADD_TO_WISHLIST = 'add_to_wishlist',\n // COMPLETE_REGISTRATION: 'complete_registration',\n // CONTACT: 'contact',\n INITIATE_CHECKOUT = 'initiate_checkout',\n LEAD = 'lead',\n LOGIN = 'login',\n PAGE_VIEW = 'page_view',\n PURCHASE = 'purchase',\n REFUND = 'refund',\n SEARCH = 'search',\n // START_TRIAL: 'start_trial',\n // SUBMIT_APPLICATION: 'submit_application',\n // SUBSCRIBE: 'subscribe',\n SIGN_UP = 'sign_up',\n VIEW_CART = 'view_cart',\n VIEW_CONTENT = 'view_content',\n\n //\n SELECT_SHIPPING_METHOD = 'select_shipping_method',\n VIRTUALIZED_VIEWED_PAYMENT_FORM = 'virtualized_viewd_payment_form',\n\n METRIC = 'metric',\n WEB_VITAL = 'web_vital',\n}\n", "import { ADTRACKIFY_STANDARD_EVENT } from '../adtrackify-standard-events';\nimport { ADTRACKIFY_EVENT_TYPE } from '../adtrackify-event-types';\nimport { AddressInfo } from '../common/address';\nimport { TrackingEventContext } from './tracking-event-context';\nimport { TrackingEventIdentity } from './tracking-event-identity';\n\nexport interface Event {\n id: string;\n type: ADTRACKIFY_EVENT_TYPE;\n name: ADTRACKIFY_STANDARD_EVENT;\n pixelId: string;\n sentAtEpoch?: number;\n collectedAt?: string;\n version: string;\n context?: TrackingEventContext;\n}\n\nexport interface TrackingEvent extends Event {\n identity?: TrackingEventIdentity;\n data?: TrackingEventData;\n testCode?: string;\n}\n\nexport interface MetricEvent extends Event {\n data: MetricEventData;\n}\n\nexport interface TrackingEventData {\n [ key: string ]: any;\n firstName?: string;\n lastName?: string;\n email?: string;\n phone?: string;\n addresses?: AddressInfo[];\n cartId?: string;\n transactionId?: string;\n affiliation?: string;\n currency?: string;\n price?: number;\n subtotalPrice?: number;\n value?: number;\n tax?: number;\n shipping?: number;\n coupon?: string;\n paymentType?: string;\n shippingTier?: string;\n creativeName?: string;\n creativeSlot?: string;\n locationId?: string;\n promotionId?: string;\n promotionName?: string;\n items?: GenericContent[];\n}\n\nexport interface GenericContent {\n [ key: string ]: any;\n content_type?: string;\n id?: string;\n name?: string;\n sku?: string;\n brand?: string;\n variant?: string;\n coupon?: string;\n currency?: string;\n discount?: number;\n index?: number;\n value?: number;\n price?: number;\n quantity?: number;\n url?: string;\n locationId?: string;\n imageUrl?: string;\n category?: string;\n category2?: string;\n category3?: string;\n category4?: string;\n category5?: string;\n}\n\nexport interface MetricEventData {\n [ key: string ]: any;\n name: string;\n value: number;\n}\n\nexport const Currencies: string[] = [ 'AED', 'ARS', 'AUD', 'BDT', 'BIF', 'BOB', 'BRL', 'CAD', 'CHF', 'CLP', 'CNY', 'COP', 'CRC', 'CZK', 'DKK', 'DZD', 'EGP', 'EUR', 'GBP', 'GTQ', 'HKD', 'HNL', 'HUF', 'IDR', 'ILS', 'INR', 'ISK', 'JPY', 'KES', 'KRW', 'KWD', 'KZT', 'MAD', 'MOP', 'MXN', 'MYR', 'NGN', 'NIO', 'NOK', 'NZD', 'PEN', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR', 'RON', 'RUB', 'SAR', 'SEK', 'SGD', 'THB', 'TRY', 'TWD', 'USD', 'VES', 'VND', 'ZAR' ];", "export enum ADTRACKIFY_EVENT_TYPE {\n TRACKING = 'tracking',\n METRIC = 'metric',\n IDENTIFY = 'identify',\n LOG = 'log',\n}\n", "import { SubscriptionPlan, PLAN_BILLING_FREQUENCY } from '@adtrackify/at-tracking-event-types';\n\nexport const StripeBillingMap: any = {\n dev2: {\n 'free': 'price_1JzjbKK7krGh4037ezNbGJEm',\n 'starter_monthly': 'price_1JwzsGK7krGh4037Li0hPpsZ',\n 'starter_yearly': 'price_1JwzsGK7krGh4037Li0hPpsZ',\n 'scale_monthly': 'price_1JzjcSK7krGh4037yh34LPk3',\n 'scale_yearly': 'price_1JzjcSK7krGh4037QiBJYfnD',\n 'growth_monthly': 'price_1Jzje1K7krGh4037KErHBp5N',\n 'growth_yearly': 'price_1Jzje1K7krGh4037MhCUhTDh'\n },\n qa2: {\n 'free': 'price_1JzjbKK7krGh4037ezNbGJEm',\n 'starter_monthly': 'price_1JwzsGK7krGh4037Li0hPpsZ',\n 'starter_yearly': 'price_1JwzsGK7krGh4037Li0hPpsZ',\n 'scale_monthly': 'price_1JzjcSK7krGh4037yh34LPk3',\n 'scale_yearly': 'price_1JzjcSK7krGh4037QiBJYfnD',\n 'growth_monthly': 'price_1Jzje1K7krGh4037KErHBp5N',\n 'growth_yearly': 'price_1Jzje1K7krGh4037MhCUhTDh'\n },\n prod2: {\n 'free': 'price_1KAFsIK7krGh4037RsaAYMEl',\n 'starter_monthly': 'price_1KAFsMK7krGh4037Lz3P0ksU',\n 'starter_yearly': 'price_1KAFsMK7krGh4037Dj1WmSi8',\n 'scale_monthly': 'price_1KAFrxK7krGh4037zWCdaTly',\n 'scale_yearly': 'price_1KAFrxK7krGh40375fhymyWP',\n 'growth_monthly': 'price_1KAFs7K7krGh4037JChjz5Cr',\n 'growth_yearly': 'price_1KAFs7K7krGh4037rZElg12s'\n },\n dev: {\n 'free': 'price_1JzjbKK7krGh4037ezNbGJEm',\n 'starter_monthly': 'price_1JwzsGK7krGh4037Li0hPpsZ',\n 'starter_yearly': 'price_1JwzsGK7krGh4037Li0hPpsZ',\n 'scale_monthly': 'price_1JzjcSK7krGh4037yh34LPk3',\n 'scale_yearly': 'price_1JzjcSK7krGh4037QiBJYfnD',\n 'growth_monthly': 'price_1Jzje1K7krGh4037KErHBp5N',\n 'growth_yearly': 'price_1Jzje1K7krGh4037MhCUhTDh'\n },\n qa: {\n 'free': 'price_1JzjbKK7krGh4037ezNbGJEm',\n 'starter_monthly': 'price_1JwzsGK7krGh4037Li0hPpsZ',\n 'starter_yearly': 'price_1JwzsGK7krGh4037Li0hPpsZ',\n 'scale_monthly': 'price_1JzjcSK7krGh4037yh34LPk3',\n 'scale_yearly': 'price_1JzjcSK7krGh4037QiBJYfnD',\n 'growth_monthly': 'price_1Jzje1K7krGh4037KErHBp5N',\n 'growth_yearly': 'price_1Jzje1K7krGh4037MhCUhTDh'\n },\n prod: {\n 'free': 'price_1KAFsIK7krGh4037RsaAYMEl',\n 'starter_monthly': 'price_1KAFsMK7krGh4037Lz3P0ksU',\n 'starter_yearly': 'price_1KAFsMK7krGh4037Dj1WmSi8',\n 'scale_monthly': 'price_1KAFrxK7krGh4037zWCdaTly',\n 'scale_yearly': 'price_1KAFrxK7krGh40375fhymyWP',\n 'growth_monthly': 'price_1KAFs7K7krGh4037JChjz5Cr',\n 'growth_yearly': 'price_1KAFs7K7krGh4037rZElg12s'\n }\n};\n\nexport const CommonPlanInfo = [\n //'60-day Risk Free Trial',\n 'Free Server Side Tracking & Conversion API',\n 'MultiPixel Support (Multiple facebook, tiktok, etc)',\n 'Corrects Facebook Conversion Tracking post IOS14',\n 'Increase ROAS & Attribution Data',\n 'Enhanced Fingerprinting & Identity Resolution',\n 'Unlimited Integrations',\n 'Advanced Integrations (Webhooks, Custom JS/HTML, Hubspot)'\n];\n\nexport const SubscriptionPlanSeedItems: {\n items: SubscriptionPlan[];\n} = {\n items: [ {\n id: 1,\n planName: 'free',\n displayName: 'Free',\n sku: 'ADT-001',\n description: 'Free Plan - Monthly',\n price: '0',\n displayPrice: '$0',\n billingFrequency: PLAN_BILLING_FREQUENCY.MONTHLY,\n trialLengthDays: 0,\n trialRequiresCreditCard: false,\n planDesc: [\n ...CommonPlanInfo,\n 'Free Up to 500 orders/month (50,000 events)*'\n ],\n unitPriceText: 'try now - free forever',\n isHighlighted: false,\n isBanner: false\n },\n // STARTER PLANS\n {\n id: 2,\n planName: 'starter_monthly',\n displayName: 'Starter',\n sku: 'ADT-002',\n description: 'Starter Plan - Monthly',\n price: '79.99',\n displayPrice: '$79.99',\n billingFrequency: PLAN_BILLING_FREQUENCY.MONTHLY,\n trialLengthDays: 60,\n trialRequiresCreditCard: false,\n planDesc: [\n '60-day Risk Free Trial',\n ...CommonPlanInfo,\n 'Up to 2,000 orders/month (250,000 events)*'\n ],\n isHighlighted: true,\n isBanner: true,\n bannerColor: 'blue',\n bannerText: 'MOST POPULAR'\n }, {\n id: 3,\n planName: 'starter_yearly',\n displayName: 'Starter',\n sku: 'ADT-003',\n description: 'Starter Plan - Yearly',\n price: '767.90',\n displayPrice: '$63.99',\n billingFrequency: PLAN_BILLING_FREQUENCY.YEARLY,\n trialLengthDays: 30,\n trialRequiresCreditCard: false,\n planDesc: [\n '60-day Risk Free Trial',\n ...CommonPlanInfo,\n 'Up to 2,000 orders/month (250,000 events)*'\n ],\n unitPriceText: 'billed yearly ($767.90) - 20% savings',\n isHighlighted: true,\n isBanner: true,\n bannerColor: 'blue',\n bannerText: 'MOST POPULAR'\n },\n // SCALE PLANS\n {\n id: 4,\n planName: 'scale_monthly',\n displayName: 'Scale',\n sku: 'ADT-004',\n description: 'Scale Plan - Monthly',\n price: '199.99',\n displayPrice: '$199.99',\n billingFrequency: PLAN_BILLING_FREQUENCY.MONTHLY,\n trialLengthDays: 60,\n trialRequiresCreditCard: false,\n planDesc: [\n '60-day Risk Free Trial',\n ...CommonPlanInfo,\n 'Up to 7,500 orders/month (750,000 events)*'\n ],\n unitPriceText: '',\n isHighlighted: false,\n isBanner: false\n }, {\n id: 5,\n planName: 'scale_yearly',\n displayName: 'Scale',\n sku: 'ADT-005',\n description: 'Scale Plan - Yearly',\n price: '1823.91',\n displayPrice: '$151.99',\n billingFrequency: PLAN_BILLING_FREQUENCY.YEARLY,\n trialLengthDays: 60,\n trialRequiresCreditCard: false,\n planDesc: [\n '60-day Risk Free Trial',\n ...CommonPlanInfo,\n 'Up to 7,500 orders/month (750,000 events)*'\n ],\n unitPriceText: 'billed yearly ($1823.91) - 24% savings',\n isHighlighted: false,\n isBanner: false\n },\n // // GROWTH PLANS\n // {\n // id: 6,\n // planName: 'growth_monthly',\n // displayName: 'Growth',\n // sku: 'ADT-006',\n // description: 'Growth Plan - Monthly',\n // price: '199.99',\n // displayPrice: '$199.99',\n // billingFrequency: PLAN_BILLING_FREQUENCY.MONTHLY,\n // trialLengthDays: 60,\n // trialRequiresCreditCard: false,\n // planDesc: [\n // '60-day Risk Free Trial',\n // ...CommonPlanInfo,\n // '250,000 tracking events/mo'\n // ],\n // unitPriceText: 'billed yearly ($540) - 25% savings',\n // isHighlighted: false,\n // isBanner: true,\n // bannerColor: 'orange',\n // bannerText: 'BEST VALUE'\n // }, {\n // id: 7,\n // planName: 'growth_yearly',\n // displayName: 'Growth',\n // sku: 'ADT-007',\n // description: 'Growth Plan - Yearly',\n // price: '1799.91',\n // displayPrice: '$149.99',\n // billingFrequency: PLAN_BILLING_FREQUENCY.YEARLY,\n // trialLengthDays: 60,\n // trialRequiresCreditCard: false,\n // planDesc: [\n // '30-day Risk Free Trial',\n // 'Fixes IOS14.5 tracking',\n // 'Multi Pixel Support',\n // 'Enhanced Tracking / Attribution',\n // 'Unlimited Facebook Conversion API',\n // 'Unlimited Integrations',\n // 'Easy no code setup',\n // '100,000 tracking events/mo'\n // ],\n // unitPriceText: 'billed yearly ($1799.91) - 25% savings',\n // isHighlighted: false,\n // isBanner: true,\n // bannerColor: 'orange',\n // bannerText: 'BEST VALUE'\n // },\n ]\n};\n\n\nexport const getPlanDetails = (planId: number, stage: string) => {\n const plan = SubscriptionPlanSeedItems.items.filter(x => x.id === planId)[ 0 ] as any;\n plan.stripePriceId = StripeBillingMap[ stage ][ plan.planName ];\n return plan as SubscriptionPlan;\n};\n\nexport const getPlanByStripePriceId = (stripePriceId: string, stage: string) => {\n const stripePriceIds = StripeBillingMap[ stage ];\n const planName = Object.keys(stripePriceIds).find(key => stripePriceIds[ key ] === stripePriceId);\n\n const plan = SubscriptionPlanSeedItems.items.filter(x => x.planName === planName)[ 0 ] as any;\n plan.stripePriceId = stripePriceId;\n\n return plan as SubscriptionPlan;\n};", "import { TrackingEventIdentity } from '@adtrackify/at-tracking-event-types';\n\nexport const getEmailArrayFromIdentity = (identity: TrackingEventIdentity) => {\n\n const emails = [ identity?.traits?.email, ...(identity?.traits?.addresses?.map(x => x?.email) || []) ];\n return emails;\n};", "import deepEqual from 'deep-equal';\n\nexport const getUniqueList = (values: any[]): any[] => {\n const uniqueList = [];\n for (const val of values) {\n if (uniqueList.findIndex(x => deepEqual(val, x)) === -1) {\n uniqueList.push(val);\n }\n }\n return uniqueList;\n};\n", "import crypto from 'crypto';\n\nexport const generatePublicKey = (): string => {\n const publicKey = crypto.randomBytes(26);\n return publicKey.toString('utf8');\n};", "export enum ADTRACKIFY_EVENT_TYPES {\n NOTIFY_SHOPIFY_SUBSCRIPTION_CREATED = 'shopifySubscriptionCreated',\n NOTIFY_SUBSCRIPTION_SIGNUP_COMPLETED = 'subscription.signupCompleted',\n REQUEST_SET_ACCOUNT_OWNER = 'setAccountOwner',\n REQUEST_SET_ACCOUNT_SUBSCRIPTION_ID = 'setAccountSubscriptionId',\n}\n\nexport enum ADTRACKIFY_EVENT_SOURCES {\n SUBSCRIPTIONS = 'subscriptions',\n}\n\nexport const enum PostmarkRequestType {\n SINGLE_EMAIL = 'single_email',\n TEMPLATE_EMAIL = 'template_email'\n}\n\nexport enum ADTRACKIFY_EVENT_BRIDGE_EVENTS {\n SEND_POSTMARK_EMAIL = 'integration.sendPostmarkEmail',\n NOTIFY_SHOPIFY_SUBSCRIPTION_CREATED = 'shopifySubscriptionCreated',\n NOTIFY_SUBSCRIPTION_SIGNUP_COMPLETED = 'subscription.signupCompleted',\n REQUEST_SET_ACCOUNT_OWNER = 'setAccountOwner',\n REQUEST_SET_ACCOUNT_SUBSCRIPTION_ID = 'setAccountSubscriptionId',\n}", "import { EventBridgeClient } from '../clients/generic/eventbridge-client.js';\nimport { Message, TemplatedMessage } from 'postmark';\nimport { ADTRACKIFY_EVENT_BRIDGE_EVENTS, PostmarkRequestType } from '../types/internal-events/event-detail-types.js';\n\n\n\nexport class EventBridgeIntegrationService {\n public eventBridgeClient: EventBridgeClient;\n public EVENT_BUS_NAME: string;\n\n constructor (eventBusName: string) {\n this.eventBridgeClient = new EventBridgeClient(eventBusName);\n this.EVENT_BUS_NAME = eventBusName;\n }\n\n public sendPostmarkEmailEvent = async (eventSource: string, postmarkMessage: Message, postmarkServerToken: string) => {\n return await this.eventBridgeClient.buildAndSendEvent(\n eventSource,\n ADTRACKIFY_EVENT_BRIDGE_EVENTS.SEND_POSTMARK_EMAIL,\n {\n postmarkMessage,\n postmarkRequestType: PostmarkRequestType.SINGLE_EMAIL,\n postmarkServerToken\n });\n };\n\n public sendPostmarkTemplatedEmailEvent = async (eventSource: string, postmarkMessage: TemplatedMessage, postmarkServerToken: string) => {\n return await this.eventBridgeClient.buildAndSendEvent(\n eventSource,\n ADTRACKIFY_EVENT_BRIDGE_EVENTS.SEND_POSTMARK_EMAIL,\n {\n postmarkMessage,\n postmarkRequestType: PostmarkRequestType.TEMPLATE_EMAIL,\n postmarkServerToken\n });\n };\n\n}\n"],
5
- "mappings": "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",
6
- "names": ["require_implementation", "Empty", "undefined", "x", "doEval", "stringToPath", "getBaseIntrinsic", "hasPropertyDescriptors", "applyBind", "require_implementation", "s", "functionsHaveNames", "f", "require_implementation", "require_polyfill", "require_shim", "options", "s", "f", "m", "x", "l", "c", "require_implementation", "require_polyfill", "require_shim", "require_shams", "forEachArray", "forEachString", "forEachObject", "forEach", "g", "g", "tryStringObject", "tryNumberObject", "x", "x", "x", "x", "g", "byteLength", "options", "x", "deepEqual", "log", "error", "config", "log", "error", "log", "error", "uuidv4", "log", "uuidv4", "log", "client", "log", "client", "success", "log", "HttpStatusCodes", "client", "log", "client", "log", "log", "client", "log", "error", "log", "debug", "error", "log", "p", "ACCOUNT_STATUS", "DESTINATIONS", "CustomHTMLLocation", "ShopifyAppInstallStatus", "ShopifyAppSubscriptionStatus", "PLAN_BILLING_FREQUENCY", "PAYMENT_STATUS", "SUBSCRIPTION_STATUS", "PAYMENT_GATEWAY", "ADTRACKIFY_STANDARD_EVENT", "ADTRACKIFY_EVENT_TYPE", "stage", "x", "x", "x", "deepEqual", "ADTRACKIFY_EVENT_TYPES", "ADTRACKIFY_EVENT_SOURCES", "PostmarkRequestType", "ADTRACKIFY_EVENT_BRIDGE_EVENTS"]
3
+ "sources": ["../src/clients/generic/dynamodb-client.ts", "../src/clients/generic/eventbridge-client.ts", "../src/libs/dates.ts", "../src/clients/generic/http-client.ts", "../src/clients/generic/s3-client.ts", "../src/clients/generic/cognito-client.ts", "../src/clients/generic/sqs-client.ts", "../src/clients/internal-api/destinations-client.ts", "../src/clients/internal-api/accounts-client.ts", "../src/clients/internal-api/users-auth-client.ts", "../src/libs/http-error.ts", "../src/libs/http-status-codes.ts", "../src/clients/internal-api/shopify-app-install-client.ts", "../src/clients/third-party/shopify-client.ts", "../src/helpers/input-validation-helper.ts", "../src/helpers/logging-helper.ts", "../src/helpers/response-helper.ts", "../src/helpers/shopify-helper.ts", "../src/libs/url.ts", "../node_modules/@adtrackify/at-tracking-event-types/src/types/api/account.ts", "../node_modules/@adtrackify/at-tracking-event-types/src/types/api/destinations/destinations.ts", "../node_modules/@adtrackify/at-tracking-event-types/src/types/api/destinations/third-party-destination-configs.ts", "../node_modules/@adtrackify/at-tracking-event-types/src/types/api/shopify-app-install.ts", "../node_modules/@adtrackify/at-tracking-event-types/src/types/api/subscription.ts", "../node_modules/@adtrackify/at-tracking-event-types/src/types/adtrackify-standard-events.ts", "../node_modules/@adtrackify/at-tracking-event-types/src/types/tracking-events/tracking-event-type.ts", "../node_modules/@adtrackify/at-tracking-event-types/src/types/adtrackify-event-types.ts", "../src/helpers/subscription-helper.ts", "../src/libs/crypto.ts", "../src/types/internal-events/event-detail-types.ts", "../src/services/eventbridge-integration-service.ts"],
4
+ "sourcesContent": ["import { DynamoDBClient, QueryOutput } from '@aws-sdk/client-dynamodb';\nimport { DynamoDBDocument } from '@aws-sdk/lib-dynamodb';\nimport * as log from 'lambda-log';\n\nconst marshallOptions = {\n convertEmptyValues: false,\n removeUndefinedValues: false,\n convertClassInstanceToMap: true\n};\n\nconst unmarshallOptions = {\n wrapNumbers: false,\n};\n\nconst translateConfig = { marshallOptions, unmarshallOptions };\nconst ddbClient = new DynamoDBClient({});\nconst client = DynamoDBDocument.from(ddbClient, translateConfig);\n\nexport class DynamoDbClient {\n static safeGet = async (tableName: string, keyName: string, keyValue: any) => {\n try {\n const params = {\n TableName: tableName,\n Key: {\n [ keyName ]: keyValue\n }\n };\n const res = await client.get(params);\n return res?.Item ?? null;\n } catch (e: any) {\n log.error(e, { message: 'Dynamo Client Get Failed' });\n return null;\n }\n };\n\n static safePut = async (tableName: string, data: any) => {\n try {\n const params = {\n TableName: tableName,\n Item: data\n };\n const res = await client.put(params);\n return res;\n } catch (e: any) {\n log.error(e, { message: 'Dynamo failed simplePut' });\n return null;\n }\n };\n\n static safeDelete = async (tableName: string, keyName: string, keyValue: any) => {\n try {\n const params = {\n TableName: tableName,\n Key: {\n [ keyName ]: keyValue\n }\n };\n const res = await client.delete(params);\n return res;\n } catch (e: any) {\n log.error(e, { message: 'Dynamo failed safeDelete' });\n return null;\n }\n };\n\n static safeQueryByGSI = async (tableName: string, gsiName: string, keyName: string, keyValue: any) => {\n const query = {\n TableName: tableName,\n IndexName: gsiName,\n KeyConditionExpression: `${keyName} = :value`,\n ExpressionAttributeValues: {\n ':value': keyValue\n }\n };\n const results = await DynamoDbClient.queryAll(query);\n return results;\n };\n\n static safeBatchGet = async (tableName: string, keys: any) => {\n try {\n const params: any = {\n RequestItems: {}\n };\n params.RequestItems[ tableName ] = {\n Keys: keys\n };\n const res = await client.batchGet(params);\n log.info('batchget res', { batchGetRes: res });\n if (res?.Responses?.[ tableName ]) {\n return res?.Responses?.[ tableName ];\n }\n return [];\n } catch (e: any) {\n log.error(e, { message: 'Dynamo failed safeBatchGet' });\n return [];\n }\n };\n\n static queryAll = async (params: any) => {\n try {\n log.info('Invoke Query All', { params });\n let currentResult: QueryOutput, exclusiveStartKey;\n let accumulatedResults: any[] = [];\n do {\n params.ExclusiveStartKey = exclusiveStartKey;\n params.Limit = 200;\n currentResult = await client.query(params);\n if (currentResult.Items) {\n exclusiveStartKey = currentResult.LastEvaluatedKey;\n accumulatedResults = [ ...accumulatedResults, ...currentResult.Items ];\n }\n } while (currentResult.Items && currentResult.Items.length > 0 && currentResult.LastEvaluatedKey);\n return accumulatedResults;\n } catch (e: any) {\n log.error(e, { message: 'Dynamo failed queryAll' });\n return null;\n }\n };\n\n static batchGet = (params: any) => client.batchGet(params);\n static get = (params: any) => client.get(params);\n static put = (params: any) => client.put(params);\n static query = (params: any) => client.query(params);\n static scan = (params: any) => client.scan(params);\n static update = (params: any) => client.update(params);\n static delete = (params: any) => client.delete(params);\n}", "import { EventBridgeClient as EventBridge, PutEventsCommand, PutEventsCommandInput } from '@aws-sdk/client-eventbridge';\nimport { v4 as uuidv4 } from 'uuid';\nimport { getCurrentTimestamp } from '../../libs/dates.js';\nimport * as log from 'lambda-log';\n\nexport class EventBridgeClient {\n public eventBridge: EventBridge;\n public EVENT_BUS_NAME: string;\n\n constructor (eventBusName: string) {\n this.eventBridge = new EventBridge({});\n this.EVENT_BUS_NAME = eventBusName;\n }\n\n public buildAndSendEvent = async (eventSource: string, eventType: string, eventData: any) => {\n const event = this.buildEvent(eventType, eventData);\n return await this.putEvent(eventSource, eventType, event);\n };\n\n public buildEvent = (eventType: string, eventData: any, eventId: string = uuidv4(), eventTime: string = getCurrentTimestamp()) => {\n return {\n eventId,\n eventType,\n eventTime,\n eventData\n };\n };\n\n public putEvent = async (source: string, detailType: string, data: any, headers: any = null) => {\n const params: PutEventsCommandInput = {\n Entries: [ {\n Detail: JSON.stringify({ headers, data }),\n DetailType: detailType,\n EventBusName: this.EVENT_BUS_NAME,\n Source: source,\n Time: new Date(),\n } ],\n };\n const putEventscommand = new PutEventsCommand(params);\n const response = await this.eventBridge.send(putEventscommand);\n log.debug('EventBus Event Published',\n {\n eventBusName: this.EVENT_BUS_NAME,\n eventSource: source,\n eventType: detailType,\n event: data,\n response\n });\n return response;\n };\n\n}\n\n", "\nimport { DateTime } from 'luxon';\n\nexport const getCurrentTimestamp = (): string => {\n return DateTime.utc().toJSDate().toISOString();\n}\n\nexport const getDateFromTimestamp = (timestamp: string) => {\n return timestamp.split('T')[0];\n}\n\nexport const getCurrentDate = (): string => {\n return getDateFromTimestamp(getCurrentTimestamp());\n}", "import axios, { CreateAxiosDefaults } from 'axios';\nimport https from 'https';\n\nconst httpResponse = (res: any = {}) => {\n return {\n headers: res?.headers || {},\n data: res?.data || {},\n status: res?.status || 0,\n };\n};\n\nconst handleAxiosError = (error: any) => {\n if (!error?.response && !error?.request) throw error;\n return error.response ? httpResponse(error.response) : httpResponse({ status: 500, data: { error: error.request } });\n};\n\nexport const axiosHttpService = (config: CreateAxiosDefaults = {}) => {\n config.adapter = 'http';\n config.httpsAgent = new https.Agent({ keepAlive: true });\n const axiosService = axios.create(config);\n\n return {\n instance: () => axiosService,\n get: (url: string, config?: any) => axiosService.get(url, config).then(httpResponse, handleAxiosError),\n post: (url: string, data?: any, config?: any) => axiosService.post(url, data, config).then(httpResponse, handleAxiosError),\n delete: (url: string, config?: any) => axiosService.delete(url, config).then(httpResponse, handleAxiosError),\n put: (url: string, data?: any, config?: any) => axiosService.put(url, data, config).then(httpResponse, handleAxiosError),\n patch: (url: string, data?: any, config?: any) => axiosService.patch(url, data, config).then(httpResponse, handleAxiosError),\n setBaseUrl: (url: string) => !!(axiosService.defaults.baseURL = url)\n };\n};\n", "import { ObjectCannedACL, S3 } from '@aws-sdk/client-s3';\nimport * as log from 'lambda-log';\n\nexport class S3Client {\n s3: S3;\n\n constructor (region = 'us-west-2') {\n this.s3 = new S3({ region });\n }\n\n async uploadJson(path: string, bucket: string, jsonData: any, ACL: ObjectCannedACL | string = ObjectCannedACL.private) {\n try {\n const res = await this.s3.putObject({\n ACL,\n Bucket: bucket,\n ContentType: 'application/json; charset=utf-8',\n Body: JSON.stringify(jsonData),\n Key: path\n });\n\n return res;\n } catch (error) {\n log.error('Error in s3 upload json', { error });\n return error;\n }\n }\n}", "/* eslint-disable no-useless-escape */\nimport { AdminConfirmSignUpCommandInput, AdminDeleteUserCommandInput, AdminUpdateUserAttributesCommandInput, CognitoIdentityProvider, ConfirmSignUpCommandInput, ForgotPasswordCommandInput, ListUsersCommandInput, ResendConfirmationCodeCommandInput, SignUpCommandInput } from '@aws-sdk/client-cognito-identity-provider';\nimport * as log from 'lambda-log';\n\nexport function dictToAwsAttributes(input: any) {\n delete input.email;\n delete input.password;\n const output = [];\n for (const att in input) {\n if (Object.prototype.hasOwnProperty.call(input, att)) {\n output.push({ Name: att, Value: input[ att ] });\n }\n }\n return output;\n}\n\nconst buildAttributes = (data: any) => {\n const attributes = {\n name: data.givenName,\n family_name: data.familyName,\n };\n return dictToAwsAttributes(attributes);\n};\n\nexport class CognitoClient {\n public cognitoClient: any\n public USER_POOL_ID: string;\n public USER_POOL_NO_SECRET_CLIENT_ID: string;\n\n constructor(userPoolId: string, userPoolNoSecretClientId: string) {\n this.cognitoClient = new CognitoIdentityProvider({});\n this.USER_POOL_ID = userPoolId;\n this.USER_POOL_NO_SECRET_CLIENT_ID = userPoolNoSecretClientId;\n }\n\n public signupUser = async (data: any) => {\n const params: SignUpCommandInput = {\n ClientId: this.USER_POOL_NO_SECRET_CLIENT_ID,\n Password: data.password,\n Username: data.email,\n UserAttributes: buildAttributes(data),\n };\n const cognitoResponse = await this.cognitoClient.signUp(params);\n log.debug('Successfully Registered User', { cognitoResponse });\n return cognitoResponse;\n }\n\n public forgotPassword = async (email: string) => {\n await this.adminEmailVerify(email);\n const params: ForgotPasswordCommandInput = {\n ClientId: this.USER_POOL_NO_SECRET_CLIENT_ID,\n Username: email,\n };\n const cognitoResponse = await this.cognitoClient.forgotPassword(params);\n log.debug('Sent Forgot Password', { cognitoResponse });\n return cognitoResponse;\n }\n\n public adminEmailVerify = async (email: string) => {\n try {\n const user: any = await this.getUserByEmail(email);\n if (user && user?.UserStatus === 'CONFIRMED' && user?.email_verified !== 'true') {\n await this.forceValidateEmail(email);\n }\n } catch (error) {\n log.error('Failed admin email verify', { error });\n }\n }\n\n public forceValidateEmail = async (email: string) => {\n try {\n const params: AdminUpdateUserAttributesCommandInput = {\n UserPoolId: this.USER_POOL_ID,\n Username: email,\n UserAttributes: [\n {\n Name: 'email_verified',\n Value: 'true',\n },\n ],\n };\n await this.cognitoClient.adminUpdateUserAttributes(params);\n } catch (error) {\n log.error('Failed force validate email', { email, error });\n }\n }\n\n public adminConfirmUser = async (data: any) => {\n const params: AdminConfirmSignUpCommandInput = {\n UserPoolId: this.USER_POOL_ID,\n Username: data.email,\n };\n const cognitoResponse = await this.cognitoClient.adminConfirmSignUp(params);\n await this.forceValidateEmail(data.email);\n log.debug('Admin Successfully Confirmed User', { cognitoResponse });\n return cognitoResponse;\n }\n\n public confirmUser = async (data: any) => {\n const params: ConfirmSignUpCommandInput = {\n ClientId: this.USER_POOL_NO_SECRET_CLIENT_ID,\n ConfirmationCode: data.confirmationCode,\n Username: data.email,\n };\n const cognitoResponse = await this.cognitoClient.confirmSignUp(params);\n log.debug('Successfully Confirmed User', { cognitoResponse });\n return cognitoResponse;\n }\n\n public resendCode = async (email: string) => {\n const params: ResendConfirmationCodeCommandInput = {\n ClientId: this.USER_POOL_NO_SECRET_CLIENT_ID,\n Username: email,\n };\n await this.cognitoClient.resendConfirmationCode(params);\n log.debug('Successfully Resend Confirmation Code', { email });\n return;\n }\n\n public adminDeleteUser = async (userId: string) => {\n const params: AdminDeleteUserCommandInput = {\n UserPoolId: this.USER_POOL_ID,\n Username: userId,\n };\n await this.cognitoClient.adminDeleteUser(params);\n return true;\n }\n\n public getUserByEmail = async (email: string) => {\n const params: ListUsersCommandInput = {\n UserPoolId: this.USER_POOL_ID,\n Filter: `email=\\\"${email}\\\"`,\n Limit: 1,\n };\n const cognitoResponse: any = await this.cognitoClient.listUsers(params);\n log.debug('Get Users by Email', { cognitoResponse });\n\n if (cognitoResponse?.Users && cognitoResponse?.Users.length > 0) {\n const attributes = cognitoResponse.Users[ 0 ].Attributes;\n\n const user = {\n ...cognitoResponse.Users[ 0 ],\n Attributes: undefined,\n id: cognitoResponse.Users[ 0 ].sub,\n };\n\n attributes.forEach((attr: any) => {\n user[ attr.Name ] = attr?.Value;\n });\n return user;\n }\n return null;\n }\n}", "import { SQS, SendMessageCommandInput } from '@aws-sdk/client-sqs';\nimport { v4 as uuidv4 } from 'uuid';\nimport { getCurrentTimestamp } from '../../libs/dates.js';\nimport * as log from 'lambda-log';\n\nexport class SQSClient {\n public sqs: SQS;\n public queueUrl: string;\n\n constructor (region: string, accountId: string, queueName: string) {\n this.sqs = new SQS({ region });\n this.queueUrl = `https://sqs.${region}.amazonaws.com/${accountId}/${queueName}`;\n }\n\n public buildAndSendEvent = async (eventType: string, eventData: any, deplaySeconds = 0) => {\n const event = this.buildEvent(eventType, eventData);\n return await this.putEvent(event, deplaySeconds);\n };\n\n public buildEvent = (eventType: string, eventData: any, eventId: string = uuidv4(), eventTime: string = getCurrentTimestamp()) => {\n return {\n eventId,\n eventType,\n eventTime,\n eventData\n };\n };\n\n public putEvent = async (data: any, delaySeconds = 0) => {\n const params: SendMessageCommandInput = {\n QueueUrl: this.queueUrl,\n DelaySeconds: delaySeconds,\n MessageBody: JSON.stringify(data)\n };\n const response = await this.sqs.sendMessage(params)\n \n log.debug('SQS Event Published', { queueUrl: this.queueUrl, event: data });\n \n return response;\n };\n\n}\n\n", "import * as log from 'lambda-log';\n//const log = require('lambda-log');\nimport { ApiResponse } from '../../types/api-response.js';\nimport { axiosHttpService } from '../generic/http-client.js';\nimport { Destination } from '@adtrackify/at-tracking-event-types';\n//const BASE_API_URL = process.env.BASE_API_URL;\n//const DESTINATIONS_API_KEY = process.env.DESTINATIONS_API_KEY;\n\nexport interface GetDestinationsResponseData {\n destinations: Destination[];\n [ key: string ]: any;\n}\nexport interface CreateDestinationResponseData {\n destination: Destination;\n [ key: string ]: any;\n}\n\n\nexport class DestinationsClient {\n\n public BASE_API_URL: string;\n public DESTINATIONS_API_KEY: string;\n\n constructor (baseApiUrl: string, destinationsApiKey: string) {\n this.BASE_API_URL = baseApiUrl;\n this.DESTINATIONS_API_KEY = destinationsApiKey;\n }\n\n getConfig = () => {\n const SERVICE_API_ROOT_URL = `${this.BASE_API_URL}/destinations`;\n return {\n baseURL: SERVICE_API_ROOT_URL,\n headers: {\n common: {\n 'x-api-key': this.DESTINATIONS_API_KEY\n }\n }\n };\n };\n\n getClient = async () => {\n return axiosHttpService(this.getConfig());\n };\n\n createDestination = async (createDestinationRequest: any): Promise<ApiResponse<CreateDestinationResponseData>> => {\n const client = await this.getClient();\n const response = await client.post('/', createDestinationRequest);\n log.info('createDestinationResponse', { response });\n return response as ApiResponse<CreateDestinationResponseData>;\n };\n\n getPixelDestinations = async (pixelId: string): Promise<ApiResponse<GetDestinationsResponseData>> => {\n const client = await this.getClient();\n const response = await client.get(`/?pixelId=${pixelId}`);\n log.info('getPixelResponse', { response });\n return response as ApiResponse<GetDestinationsResponseData>;\n };\n}\n", "import * as log from 'lambda-log';\nimport { ApiResponse } from '../../types/api-response.js';\nimport { Account, ACCOUNT_STATUS, Destination } from '@adtrackify/at-tracking-event-types';\nimport { axiosHttpService } from '../generic/http-client.js';\n\n//const BASE_API_URL = process.env.BASE_API_URL;\n\n//const SERVICE_API_ROOT_URL = `${BASE_API_URL}/accounts`;\n//const ACCOUNTS_API_KEY = process.env.ACCOUNTS_API_KEY;\n\nexport interface AccountResponseData {\n account: Account;\n [ key: string ]: any;\n}\n\nexport interface IsAuthorizedUserResponseData {\n isAccountUser: boolean;\n [ key: string ]: any;\n}\nexport interface PixelConfigResponseData {\n id: string;\n destinations: Destination[];\n [ key: string ]: any;\n}\nexport interface AddUserToAccountResponseData {\n userId: string;\n accountId: string;\n}\n\nexport interface UpdateAccountRequest {\n accountName?: string,\n companyName?: string,\n primaryEmail?: string,\n ownerId?: string,\n subscriptionId?: string,\n accountStatus?: ACCOUNT_STATUS;\n}\n\nexport class AccountsClient {\n public BASE_API_URL: string;\n public ACCOUNTS_API_KEY?: string;\n\n constructor (baseApiUrl: string, accountsApiKey?: string) {\n this.BASE_API_URL = baseApiUrl;\n this.ACCOUNTS_API_KEY = accountsApiKey;\n }\n\n getConfig = () => {\n const SERVICE_API_ROOT_URL = `${this.BASE_API_URL}/accounts`;\n const params: any = {\n baseURL: SERVICE_API_ROOT_URL\n };\n if (this.ACCOUNTS_API_KEY) {\n params.headers = {\n common: {\n 'x-api-key': this.ACCOUNTS_API_KEY\n }\n };\n }\n return params;\n };\n\n getClient = async () => {\n return axiosHttpService(this.getConfig());\n };\n\n createAccount = async (createAccountRequest: any) => {\n const client = await this.getClient();\n const createAccountResponse = await client.post('', createAccountRequest);\n log.info('createAccountResponse', { createAccountResponse });\n return createAccountResponse;\n };\n updateAccount = async (accountId: string, body: any): Promise<ApiResponse<AccountResponseData>> => {\n const client = await this.getClient();\n const response = await client.patch(`/${accountId}/`, body);\n log.info('update Account response', { response });\n return response as ApiResponse<AccountResponseData>;\n };\n addOwner = async (accountId: string, userId: string) => {\n const client = await this.getClient();\n const addOwnerResponse = await client.post('/addOwner', { accountId, userId });\n log.info('addOwnerResponse', { addOwnerResponse });\n return addOwnerResponse;\n };\n isAuthorizedUser = async (userId: string, accountId: string, pixelId?: string): Promise<ApiResponse<IsAuthorizedUserResponseData>> => {\n const client = await this.getClient();\n const body = {\n userId, accountId, pixelId\n };\n const response = await client.post('/checkUserAuthorization', body);\n log.info('checkUserAuthorization', { response });\n return response as ApiResponse<IsAuthorizedUserResponseData>;\n };\n adminDeleteAccount = async (accountId: string) => {\n const client = await this.getClient();\n const success = await client.delete(`/${accountId}`);\n log.info('adminDeleteAccount');\n return success;\n };\n getPixelConfigById = async (pixelId: string): Promise<ApiResponse<PixelConfigResponseData>> => {\n const client = await this.getClient();\n const pixelResponse = await client.get(`/px/${pixelId}/config`);\n log.debug('get pixelResponse', { pixelResponse });\n return pixelResponse;\n };\n getAccount = async (accountId: string): Promise<ApiResponse<AccountResponseData>> => {\n const client = await this.getClient();\n const response = await client.get(`/${accountId}/`);\n log.info('get account response', { response });\n return response as ApiResponse<AccountResponseData>;\n };\n addUserToAccount = async (accountId: string, userId: string): Promise<ApiResponse<AddUserToAccountResponseData>> => {\n const client = await this.getClient();\n const response = await client.post('/addUser', { accountId, userId });\n log.info('add user account response', { response });\n return response as ApiResponse<AddUserToAccountResponseData>;\n };\n\n\n // setAccountSubscriptionId = async (accountId: string, subscriptionId: string): Promise<ApiResponse<any>> => {\n // const client = await this.getClient();\n // const pixelResponse = await client.get(`/px/${pixelId}/config`);\n // log.debug('pixelResponse', { pixelResponse });\n // return pixelResponse;\n // };\n}", "import { User } from '@adtrackify/at-tracking-event-types';\nimport * as log from 'lambda-log';\nimport { HttpError } from '../../libs/http-error.js';\nimport { HttpStatusCodes } from '../../libs/http-status-codes.js';\nimport { ApiResponse } from '../../types/api-response.js';\nimport { axiosHttpService } from '../generic/http-client.js';\n\nexport interface UserResponseData {\n user: User;\n [ key: string ]: any;\n}\n\nexport interface UserSignupRequest {\n email: string,\n password: string,\n givenName: string,\n familyName: string;\n}\n\nexport class UsersAuthClient {\n\n public SERVICE_API_ROOT_URL: string;\n public BASE_API_URL: string;\n public USERS_AUTH_API_KEY: string;\n constructor (baseApiUrl: string, usersAuthApiKey?: string) {\n this.BASE_API_URL = baseApiUrl;\n this.USERS_AUTH_API_KEY = usersAuthApiKey as string;\n this.SERVICE_API_ROOT_URL = `${this.BASE_API_URL}/auth`;\n }\n\n getConfig = () => {\n return {\n baseURL: this.SERVICE_API_ROOT_URL,\n headers: {\n common: {\n }\n }\n };\n };\n\n getClient = async () => {\n return axiosHttpService(this.getConfig());\n };\n\n signupAndConfirmUser = async (userSignupRequest: any): Promise<any> => {\n const user = await this.signupUser(userSignupRequest);\n await this.adminConfirmUser(user.email);\n // if fail - delete user and throw error\n return user;\n };\n\n signupUser = async (userSignupRequest: UserSignupRequest): Promise<any> => {\n log.info('Attempting to signup user', { email: userSignupRequest.email });\n\n const client = await this.getClient();\n const response = await client.post('/signup', userSignupRequest);\n\n // Check if Successful or throw error\n if (response.status !== 200 || !response?.data?.user) {\n const message = 'User Signup Failed';\n log.error(message, { response });\n throw new HttpError(HttpStatusCodes.INTERNAL_SERVER_ERROR, message);\n }\n\n log.info('User Signup Successful', { response });\n return response.data.user;\n };\n\n //userName is same as user id\n adminConfirmUser = async (email: string) => {\n //confirm user\n //@TODO update user auth service with admin confirm user endpoint\n log.info('Attempting to admin confirm user', { email });\n\n const client = await this.getClient();\n const response = await client.post('/admin/confirm',\n {\n email\n }, {\n headers: {\n 'x-api-key': this.USERS_AUTH_API_KEY\n }\n }\n );\n\n // Check if Successful or throw error\n if (response.status !== 200) {\n const message = 'Admin User Confirmation Failed';\n log.error(message, { response });\n throw new HttpError(HttpStatusCodes.INTERNAL_SERVER_ERROR, message);\n }\n\n log.info('Admin User Confirmation Successful', { response });\n return response;\n };\n\n getUserByEmail = async (email: string): Promise<ApiResponse<UserResponseData>> => {\n const client = await this.getClient();\n const getUserResponse = await client.get('/lookup', {\n headers: {\n 'x-api-key': this.USERS_AUTH_API_KEY\n },\n params: {\n email\n }\n });\n log.info('getUserResponse', { getUserResponse });\n return getUserResponse;\n };\n\n}\n\n", "/* eslint-disable no-dupe-class-members */\nimport { strict as assert } from 'assert';\n\nconst deepClone = (o = {}) => JSON.parse(JSON.stringify(o));\nconst containsStackTrace = (text = '') => /at.+\\.js:\\d+:\\d+/.test(text);\nconst objectContainsStackTrace = (obj: any) =>\n !obj ? false : containsStackTrace(JSON.stringify(obj));\n\n// may only be expanded by governance, never reduced\nconst supportedStatusCodes: any = {\n 400: 'Bad Request',\n 401: 'Unauthorized',\n 403: 'Forbidden',\n 404: 'Not Found',\n 405: 'Method Not Allowed',\n 409: 'Conflict',\n 412: 'Precondition Failed',\n 413: 'Payload Too Large',\n 415: 'Unsupported Media Type',\n 428: 'Precondition Required',\n 429: 'Too Many Requests',\n 500: 'Internal Server Error',\n 501: 'Not Implemented',\n 502: 'Bad Gateway',\n 503: 'Service Unavailable',\n 504: 'Gateway Timeout'\n};\n\nconst supportedStatusCodesMessage = `statusCode must be one of the following: ${JSON.stringify(Object.keys(supportedStatusCodes))}`;\n//const onlyStatusCodeMessage = 'Server errors may not specify any parameter except statusCode';\n\n//const isNullOrUndefined = (value: any) => value === null || value === undefined;\n\nexport class HttpError extends Error {\n body: {\n [ key: string ]: any;\n };\n headers: object[];\n statusCode: number;\n isServerError: boolean;\n\n constructor (statusCode: number,\n message?: string,\n body?: {\n [ key: string ]: any;\n },\n headers?: object[]) {\n assert(statusCode in supportedStatusCodes, supportedStatusCodesMessage);\n\n const isServerError = statusCode > 499;\n\n assert(\n body === undefined || typeof body === 'object',\n 'body must be an object or omitted'\n );\n assert(\n headers === undefined || typeof headers === 'object',\n 'headers must be an object or omitted'\n );\n\n message = message ?? supportedStatusCodes[ statusCode ];\n\n assert(\n !containsStackTrace(message) && !objectContainsStackTrace(body),\n 'the message or data parameters may not contain errors or stack traces'\n );\n\n super(message);\n\n this.body = deepClone(body);\n this.headers = deepClone(headers);\n this.statusCode = statusCode;\n this.isServerError = isServerError;\n if (!this?.body?.message) {\n this.body.message = this.message;\n }\n }\n\n\n static get supportedStatusCodes() { return supportedStatusCodes; }\n static badRequest = (message?: string, body?: object, headers?: object[]) => { return new HttpError(400, message, body, headers); };\n static unauthorized = (message?: string, body?: object, headers?: object[]) => new HttpError(401, message, body, headers);\n static forbidden = (message?: string, body?: object, headers?: object[]) => new HttpError(403, message, body, headers);\n static notFound = (message?: string, body?: object, headers?: object[]) => new HttpError(404, message, body, headers);\n static internal = (message?: string, body?: object, headers?: object[]) => new HttpError(500, message, body, headers);\n static notImplemented = () => new HttpError(501);\n static badGateway = () => new HttpError(502);\n static serviceUnavailable = (headers: object[]) => new HttpError(503, undefined, undefined, headers);\n static gatewayTimeout = () => new HttpError(504);\n}\n", "export enum HttpStatusCodes {\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.2.1\n *\n * This interim response indicates that everything so far is OK and that the client should continue with the request or ignore it if it is already finished.\n */\n CONTINUE = 100,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.2.2\n *\n * This code is sent in response to an Upgrade request header by the client, and indicates the protocol the server is switching too.\n */\n SWITCHING_PROTOCOLS = 101,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.1\n *\n * This code indicates that the server has received and is processing the request, but no response is available yet.\n */\n PROCESSING = 102,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.1\n *\n * The request has succeeded. The meaning of a success varies depending on the HTTP method:\n * GET: The resource has been fetched and is transmitted in the message body.\n * HEAD: The entity headers are in the message body.\n * POST: The resource describing the result of the action is transmitted in the message body.\n * TRACE: The message body contains the request message as received by the server\n */\n OK = 200,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.2\n *\n * The request has succeeded and a new resource has been created as a result of it. This is typically the response sent after a PUT request.\n */\n CREATED = 201,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.3\n *\n * The request has been received but not yet acted upon. It is non-committal, meaning that there is no way in HTTP to later send an asynchronous response indicating the outcome of processing the request. It is intended for cases where another process or server handles the request, or for batch processing.\n */\n ACCEPTED = 202,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.4\n *\n * This response code means returned meta-information set is not exact set as available from the origin server, but collected from a local or a third party copy. Except this condition, 200 OK response should be preferred instead of this response.\n */\n NON_AUTHORITATIVE_INFORMATION = 203,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.5\n *\n * There is no content to send for this request, but the headers may be useful. The user-agent may update its cached headers for this resource with the new ones.\n */\n NO_CONTENT = 204,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.3.6\n *\n * This response code is sent after accomplishing request to tell user agent reset document view which sent this request.\n */\n RESET_CONTENT = 205,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7233#section-4.1\n *\n * This response code is used because of range header sent by the client to separate download into multiple streams.\n */\n PARTIAL_CONTENT = 206,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.2\n *\n * A Multi-Status response conveys information about multiple resources in situations where multiple status codes might be appropriate.\n */\n MULTI_STATUS = 207,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.1\n *\n * The request has more than one possible responses. User-agent or user should choose one of them. There is no standardized way to choose one of the responses.\n */\n MULTIPLE_CHOICES = 300,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.2\n *\n * This response code means that URI of requested resource has been changed. Probably, new URI would be given in the response.\n */\n MOVED_PERMANENTLY = 301,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.3\n *\n * This response code means that URI of requested resource has been changed temporarily. New changes in the URI might be made in the future. Therefore, this same URI should be used by the client in future requests.\n */\n MOVED_TEMPORARILY = 302,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.4\n *\n * Server sent this response to directing client to get requested resource to another URI with an GET request.\n */\n SEE_OTHER = 303,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7232#section-4.1\n *\n * This is used for caching purposes. It is telling to client that response has not been modified. So, client can continue to use same cached version of response.\n */\n NOT_MODIFIED = 304,\n /**\n * @deprecated\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.6\n *\n * Was defined in a previous version of the HTTP specification to indicate that a requested response must be accessed by a proxy. It has been deprecated due to security concerns regarding in-band configuration of a proxy.\n */\n USE_PROXY = 305,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.7\n *\n * Server sent this response to directing client to get requested resource to another URI with same method that used prior request. This has the same semantic than the 302 Found HTTP response code, with the exception that the user agent must not change the HTTP method used: if a POST was used in the first request, a POST must be used in the second request.\n */\n TEMPORARY_REDIRECT = 307,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7538#section-3\n *\n * This means that the resource is now permanently located at another URI, specified by the Location: HTTP Response header. This has the same semantics as the 301 Moved Permanently HTTP response code, with the exception that the user agent must not change the HTTP method used: if a POST was used in the first request, a POST must be used in the second request.\n */\n PERMANENT_REDIRECT = 308,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.1\n *\n * This response means that server could not understand the request due to invalid syntax.\n */\n BAD_REQUEST = 400,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7235#section-3.1\n *\n * Although the HTTP standard specifies \"unauthorized\", semantically this response means \"unauthenticated\". That is, the client must authenticate itself to get the requested response.\n */\n UNAUTHORIZED = 401,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.2\n *\n * This response code is reserved for future use. Initial aim for creating this code was using it for digital payment systems however this is not used currently.\n */\n PAYMENT_REQUIRED = 402,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.3\n *\n * The client does not have access rights to the content, i.e. they are unauthorized, so server is rejecting to give proper response. Unlike 401, the client's identity is known to the server.\n */\n FORBIDDEN = 403,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.4\n *\n * The server can not find requested resource. In the browser, this means the URL is not recognized. In an API, this can also mean that the endpoint is valid but the resource itself does not exist. Servers may also send this response instead of 403 to hide the existence of a resource from an unauthorized client. This response code is probably the most famous one due to its frequent occurence on the web.\n */\n NOT_FOUND = 404,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.5\n *\n * The request method is known by the server but has been disabled and cannot be used. For example, an API may forbid DELETE-ing a resource. The two mandatory methods, GET and HEAD, must never be disabled and should not return this error code.\n */\n METHOD_NOT_ALLOWED = 405,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.6\n *\n * This response is sent when the web server, after performing server-driven content negotiation, doesn't find any content following the criteria given by the user agent.\n */\n NOT_ACCEPTABLE = 406,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7235#section-3.2\n *\n * This is similar to 401 but authentication is needed to be done by a proxy.\n */\n PROXY_AUTHENTICATION_REQUIRED = 407,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.7\n *\n * This response is sent on an idle connection by some servers, even without any previous request by the client. It means that the server would like to shut down this unused connection. This response is used much more since some browsers, like Chrome, Firefox 27+, or IE9, use HTTP pre-connection mechanisms to speed up surfing. Also note that some servers merely shut down the connection without sending this message.\n */\n REQUEST_TIMEOUT = 408,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.8\n *\n * This response is sent when a request conflicts with the current state of the server.\n */\n CONFLICT = 409,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.9\n *\n * This response would be sent when the requested content has been permenantly deleted from server, with no forwarding address. Clients are expected to remove their caches and links to the resource. The HTTP specification intends this status code to be used for \"limited-time, promotional services\". APIs should not feel compelled to indicate resources that have been deleted with this status code.\n */\n GONE = 410,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.10\n *\n * The server rejected the request because the Content-Length header field is not defined and the server requires it.\n */\n LENGTH_REQUIRED = 411,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7232#section-4.2\n *\n * The client has indicated preconditions in its headers which the server does not meet.\n */\n PRECONDITION_FAILED = 412,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.11\n *\n * Request entity is larger than limits defined by server; the server might close the connection or return an Retry-After header field.\n */\n REQUEST_TOO_LONG = 413,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.12\n *\n * The URI requested by the client is longer than the server is willing to interpret.\n */\n REQUEST_URI_TOO_LONG = 414,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.13\n *\n * The media format of the requested data is not supported by the server, so the server is rejecting the request.\n */\n UNSUPPORTED_MEDIA_TYPE = 415,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7233#section-4.4\n *\n * The range specified by the Range header field in the request can't be fulfilled; it's possible that the range is outside the size of the target URI's data.\n */\n REQUESTED_RANGE_NOT_SATISFIABLE = 416,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.5.14\n *\n * This response code means the expectation indicated by the Expect request header field can't be met by the server.\n */\n EXPECTATION_FAILED = 417,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2324#section-2.3.2\n *\n * Any attempt to brew coffee with a teapot should result in the error code \"418 I'm a teapot\". The resulting entity body MAY be short and stout.\n */\n IM_A_TEAPOT = 418,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.6\n *\n * The 507 (Insufficient Storage) status code means the method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request. This condition is considered to be temporary. If the request which received this status code was the result of a user action, the request MUST NOT be repeated until it is requested by a separate user action.\n */\n INSUFFICIENT_SPACE_ON_RESOURCE = 419,\n /**\n * @deprecated\n * Official Documentation @ https://tools.ietf.org/rfcdiff?difftype=--hwdiff&url2=draft-ietf-webdav-protocol-06.txt\n *\n * A deprecated response used by the Spring Framework when a method has failed.\n */\n METHOD_FAILURE = 420,\n /**\n * Official Documentation @ https://datatracker.ietf.org/doc/html/rfc7540#section-9.1.2\n *\n * Defined in the specification of HTTP/2 to indicate that a server is not able to produce a response for the combination of scheme and authority that are included in the request URI.\n */\n MISDIRECTED_REQUEST = 421,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.3\n *\n * The request was well-formed but was unable to be followed due to semantic errors.\n */\n UNPROCESSABLE_ENTITY = 422,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.4\n *\n * The resource that is being accessed is locked.\n */\n LOCKED = 423,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.5\n *\n * The request failed due to failure of a previous request.\n */\n FAILED_DEPENDENCY = 424,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc6585#section-3\n *\n * The origin server requires the request to be conditional. Intended to prevent the 'lost update' problem, where a client GETs a resource's state, modifies it, and PUTs it back to the server, when meanwhile a third party has modified the state on the server, leading to a conflict.\n */\n PRECONDITION_REQUIRED = 428,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc6585#section-4\n *\n * The user has sent too many requests in a given amount of time (\"rate limiting\").\n */\n TOO_MANY_REQUESTS = 429,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc6585#section-5\n *\n * The server is unwilling to process the request because its header fields are too large. The request MAY be resubmitted after reducing the size of the request header fields.\n */\n REQUEST_HEADER_FIELDS_TOO_LARGE = 431,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7725\n *\n * The user-agent requested a resource that cannot legally be provided, such as a web page censored by a government.\n */\n UNAVAILABLE_FOR_LEGAL_REASONS = 451,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.1\n *\n * The server encountered an unexpected condition that prevented it from fulfilling the request.\n */\n INTERNAL_SERVER_ERROR = 500,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.2\n *\n * The request method is not supported by the server and cannot be handled. The only methods that servers are required to support (and therefore that must not return this code) are GET and HEAD.\n */\n NOT_IMPLEMENTED = 501,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.3\n *\n * This error response means that the server, while working as a gateway to get a response needed to handle the request, got an invalid response.\n */\n BAD_GATEWAY = 502,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.4\n *\n * The server is not ready to handle the request. Common causes are a server that is down for maintenance or that is overloaded. Note that together with this response, a user-friendly page explaining the problem should be sent. This responses should be used for temporary conditions and the Retry-After: HTTP header should, if possible, contain the estimated time before the recovery of the service. The webmaster must also take care about the caching-related headers that are sent along with this response, as these temporary condition responses should usually not be cached.\n */\n SERVICE_UNAVAILABLE = 503,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.5\n *\n * This error response is given when the server is acting as a gateway and cannot get a response in time.\n */\n GATEWAY_TIMEOUT = 504,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.6.6\n *\n * The HTTP version used in the request is not supported by the server.\n */\n HTTP_VERSION_NOT_SUPPORTED = 505,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc2518#section-10.6\n *\n * The server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process.\n */\n INSUFFICIENT_STORAGE = 507,\n /**\n * Official Documentation @ https://tools.ietf.org/html/rfc6585#section-6\n *\n * The 511 status code indicates that the client needs to authenticate to gain network access.\n */\n NETWORK_AUTHENTICATION_REQUIRED = 511\n}", "import log from 'lambda-log';\nimport { ApiResponse } from '../../types/api-response.js';\nimport { axiosHttpService } from '../generic/http-client.js';\nimport { ShopifyAppInstall, ShopifyAppSubscriptionStatus } from '@adtrackify/at-tracking-event-types';\n//const BASE_API_URL = process.env.BASE_API_URL;\n//const DESTINATIONS_API_KEY = process.env.DESTINATIONS_API_KEY;\n\nexport interface ShopifyAppInstallResponseData {\n shopifyAppInstall: ShopifyAppInstall;\n [ key: string ]: any;\n}\n\nexport interface UpdateShopifyAppInstallRequest {\n appSubscriptionStatus?: ShopifyAppSubscriptionStatus,\n pixelId?: string,\n shopifyAppInstallId: string;\n isAppEnabled?: boolean;\n}\n\nexport class ShopifyAppInstallClient {\n\n public BASE_API_URL: string;\n public SHOPIFY_APP_INSTALL_API_KEY: string;\n\n constructor (baseApiUrl: string, shopifyAppInstallApiKey: string) {\n this.BASE_API_URL = baseApiUrl;\n this.SHOPIFY_APP_INSTALL_API_KEY = shopifyAppInstallApiKey;\n }\n\n getConfig = () => {\n const SERVICE_API_ROOT_URL = `${this.BASE_API_URL}/shopify-app-installs`;\n return {\n baseURL: SERVICE_API_ROOT_URL,\n headers: {\n common: {\n 'x-api-key': this.SHOPIFY_APP_INSTALL_API_KEY\n }\n }\n };\n };\n\n getClient = async () => {\n return axiosHttpService(this.getConfig());\n };\n\n updateShopifyAppInstall = async (shopifyAppInstallId: string, updateShopifyAppInstallRequest: UpdateShopifyAppInstallRequest): Promise<ApiResponse<ShopifyAppInstallResponseData>> => {\n const client = await this.getClient();\n const response = await client.put(`/${shopifyAppInstallId}`, updateShopifyAppInstallRequest);\n log.info('updateShopifyAppInstall', { response });\n return response as ApiResponse<ShopifyAppInstallResponseData>;\n };\n\n getShopifyAppInstall = async (shopifyAppInstallId: string): Promise<ApiResponse<ShopifyAppInstallResponseData>> => {\n const client = await this.getClient();\n const response = await client.get(`/${shopifyAppInstallId}`);\n log.info('getShopifyAppInstall', { response });\n return response as ApiResponse<ShopifyAppInstallResponseData>;\n };\n\n getShopifyAppInstallByShop = async (shop: string): Promise<ApiResponse<ShopifyAppInstallResponseData>> => {\n const client = await this.getClient();\n const response = await client.get(`/?shop=${shop}`);\n log.info('getShopifyAppInstallByShop', { response });\n return response as ApiResponse<ShopifyAppInstallResponseData>;\n };\n}\n", "import { axiosHttpService } from '../generic/http-client.js';\nimport * as log from 'lambda-log';\n\nexport class ShopifyClient {\n static _shopify_api_version = process.env.SHOPIFY_API_VERSION as string;\n static getConfig = (shopifyDomain: string, accessToken: string) => {\n const config = {\n baseURL: `https://${shopifyDomain}/admin/api/${this._shopify_api_version}`,\n headers: {\n common: {\n 'X-Shopify-Access-Token': accessToken,\n },\n },\n };\n return config;\n };\n\n static getClient = (shopifyDomain: string, accessToken: string) => {\n return axiosHttpService(\n this.getConfig(shopifyDomain, accessToken)\n );\n };\n\n static registerApp = async (shop: string, code: string, appKey: string, appSecret: string) => {\n const client = axiosHttpService();\n const url = 'https://' + shop + '/admin/oauth/access_token';\n const payload = {\n client_id: appKey,\n client_secret: appSecret,\n code\n };\n const res = await client.post(url, payload);\n return res;\n };\n\n static registerWebhookTopic = async (shop: string, accessToken: string, eventBridgeArn: string, topic: string) => {\n const client = axiosHttpService();\n const url = `https://${shop}/admin/api/${this._shopify_api_version}/webhooks.json`;\n const payload = {\n webhook: {\n topic,\n address: eventBridgeArn,\n format: 'json'\n }\n };\n const res = await client.post(url, payload, { headers: { 'X-Shopify-Access-Token': accessToken } });\n if (res.status >= 400) {\n log.error('Failed to register Webhook Topic', { shop, accessToken, eventBridgeArn, topic, url, payload });\n }\n log.debug('Shopify Client Webhook Registration Response', { registrationResponse: res });\n return res;\n };\n\n static updateShopifyAppMetafield = async (shop: string, accessToken: string, pixelId: string) => {\n const url = `https://${shop}/admin/api/${this._shopify_api_version}/metafields.json`;\n const payload = {\n metafield: {\n namespace: 'adtr',\n key: 'adtr.config',\n value: pixelId,\n type: 'single_line_text_field'\n }\n };\n const res = await this.genericShopifyPost(url, accessToken, payload);\n\n if (res.status >= 400) {\n log.error('Failed to update Shopify app Metafield ', { shop, accessToken, url, payload });\n }\n return res;\n };\n\n static getShopifyStoreProperties = async (shop: string, accessToken: string) => {\n const url = `https://${shop}/admin/api/${this._shopify_api_version}/shop.json`;\n const res = await this.genericShopifyGet(url, accessToken);\n\n if (res.status >= 400) {\n log.error('Failed to get Shopify Store Properties', { shop, accessToken, url });\n }\n return res;\n };\n\n static createAppSubscription = async (shop: string, accessToken: string,\n planName: string, price: number, returnUrl: string, trialDays: number, test?: boolean) => {\n const url = `https://${shop}/admin/api/${this._shopify_api_version}/recurring_application_charges.json`;\n const recurring_application_charge = {\n name: planName,\n price,\n return_url: returnUrl,\n trial_days: trialDays,\n test\n };\n const res = await this.genericShopifyPost(url, accessToken, { recurring_application_charge });\n if (res.status >= 400) {\n log.error('Failed to create App Subscription', { shop, accessToken, url });\n }\n return res;\n };\n\n static cancelAppSubscription = async (shop: string, accessToken: string, chargeId: string) => {\n const url = `https://${shop}/admin/api/${this._shopify_api_version}/recurring_application_charges/${chargeId}.json`;\n const client = axiosHttpService();\n const res = await client.delete(url, { headers: { 'X-Shopify-Access-Token': accessToken } });\n\n if (res.status !== 200) {\n log.error('Failed to cancel recurring App billing', { shop, accessToken, url });\n }\n return res;\n };\n\n static listAppSubscriptions = async (shop: string, accessToken: string) => {\n const url = `https://${shop}/admin/api/${this._shopify_api_version}/recurring_application_charges.json`;\n const res = await this.genericShopifyGet(url, accessToken);\n if (res.status >= 400) {\n log.error('Failed to get App Subscriptions', { shop, accessToken, url });\n }\n return res;\n };\n\n static genericShopifyPost = async (url: string, accessToken: string, payload: any) => {\n const client = axiosHttpService();\n const res = await client.post(url, payload, { headers: { 'X-Shopify-Access-Token': accessToken, 'Content-Type': 'application/json' } });\n log.debug('Shopify Client Response', { res });\n return res;\n };\n\n static genericShopifyGet = async (url: string, accessToken: string) => {\n const client = axiosHttpService();\n const res = await client.get(url, { headers: { 'X-Shopify-Access-Token': accessToken } });\n log.debug('Shopify Client Response', { res });\n return res;\n };\n\n static genericShopifyPut = async (url: string, accessToken: string, payload: any) => {\n const client = axiosHttpService();\n const res = await client.put(url, payload, { headers: { 'X-Shopify-Access-Token': accessToken } });\n log.debug('Shopify Client Response', { res });\n return res;\n };\n}\n", "import Joi from 'joi';\nimport * as log from 'lambda-log';\nimport { HttpError } from '../libs/http-error.js';\n\nexport const validateInput = (schema: Joi.ObjectSchema<any>, input: any) => {\n const { error, value } = schema.validate(input);\n if (error) {\n log.info('', { error });\n\n const httperr = HttpError.badRequest('Bad Request', {\n errors: error.details.map(detail => ({\n message: detail?.message,\n key: detail?.context?.key,\n path: detail?.path,\n }))\n });\n\n log.info('', { httperr });\n throw httperr;\n }\n return value;\n};", "import * as log from 'lambda-log';\nconst stage = process?.env?.STAGE;\n\nexport const configureLogger = (event: any, context: any, debug = true) => {\n log.options.meta.stage = stage;\n log.options.meta.source_name = context?.functionName || 'unknown';\n log.options.meta.awsRequestId = context?.awsRequestId || 'unknown';\n log.options.meta.lambdaEvent = event;\n log.options.debug = debug;\n}", "\nexport const success = (body: any) => {\n return buildResponse(200, body);\n}\n\nconst defaultError = {\n message: 'internalServerError'\n}\n\nexport const failure = (error: any, statusCode = 500) => {\n statusCode = error?.statusCode ?? statusCode;\n\n let body = defaultError;\n if (error?.body) {\n body = error.body;\n }\n else if (error?.message) {\n body = { message: error.message };\n } else if (statusCode === 500) {\n body = defaultError;\n }\n return buildResponse(statusCode, body);\n}\n\nexport const buildResponse = (statusCode: number, body: any = {}) => {\n delete body.stack;\n return {\n statusCode: statusCode,\n headers: {\n 'Access-Control-Allow-Origin': '*',\n 'Access-Control-Allow-Credentials': true,\n 'cache-control': 'max-age=86400',\n Date: new Date(),\n 'Last-Modified': new Date(),\n 'Access-Control-Allow-Headers':\n 'Content-Type, Content-Encoding'\n },\n body: JSON.stringify(body),\n };\n}\n", "import { createHmac } from 'crypto';\nimport * as log from 'lambda-log';\nimport { HttpError } from '../libs/http-error.js';\nimport { mapObjectToQueryString } from '../libs/url.js';\nexport interface ShopifyRequestValidationParameters {\n code: string,\n hmac?: string,\n shop: string,\n state: string,\n timestamp: string;\n}\n\nexport const isShopifyRequestValid = (validationParams: ShopifyRequestValidationParameters, validationHmac: string, shopifyAppApiSecret: string): boolean => {\n // remove hmac if it exists\n // map input to query string\n // generate hash using api secret key and validate it matches hmac\n delete validationParams.hmac;\n const hmacString = mapObjectToQueryString(validationParams);\n\n\n const generatedHash = createHmac('sha256', shopifyAppApiSecret)\n .update(hmacString)\n .digest('hex');\n\n return generatedHash === validationHmac;\n};\n\nexport const validateShopifyRequest = (validationParams: ShopifyRequestValidationParameters, validationHmac: string, shopifyAppApiSecret: string) => {\n log.info('Validating shopify request is authentic', { validationParams });\n const isValid = isShopifyRequestValid(validationParams, validationHmac as string, shopifyAppApiSecret);\n if (!isValid) {\n const message = 'Failed: Shopify Request hmac validation';\n log.error(message);\n throw HttpError.badRequest(message);\n }\n log.info('Sucess: Shopify Request hmac validation');\n return true;\n}\n\n", "// Record<string, string> is any object\nexport const mapObjectToQueryString = (inputObj: any): string => {\n const qsp = Object.entries(inputObj).sort((a, b) => a[ 0 ] < b[ 0 ] ? -1 : 1);\n const urlParams = new URLSearchParams();\n qsp.map(p => {\n urlParams.append(p[ 0 ], p[ 1 ] as string);\n });\n const qs = urlParams.toString();\n return qs;\n};", "import { Subscription } from './subscription';\n\nexport interface Account {\n id: string,\n accountName: string,\n companyName?: string,\n accountStatus: ACCOUNT_STATUS,\n primaryEmail: string,\n publicApiKey?: string,\n subscriptionId?: string,\n pixels?: Pixel[],\n subscription?: Subscription;\n ownerId?: string,\n createdAt: string,\n updatedAt: string;\n}\n\n\nexport interface Pixel {\n id: string;\n accountId: string;\n name: string;\n createdAt: string,\n updatedAt: string;\n}\n\nexport enum ACCOUNT_STATUS {\n PENDING = 'pending',\n ACTIVE = 'active',\n INACTIVE = 'inactive'\n}", "\r\nexport interface Destination {\r\n id: string,\r\n accountId: string,\r\n pixelId: string,\r\n destination: string;\r\n displayName?: string,\r\n enabled: boolean;\r\n configuration?: UserDestinationConfiguration,\r\n createdAt: string,\r\n updatedAt: string;\r\n}\r\n\r\nexport enum DESTINATIONS {\r\n FACEBOOK = 'facebook',\r\n TIKTOK = 'tiktok',\r\n GOOGLE_ADS = 'googleAds',\r\n GOOGLE_ANALYTICS_4 = 'googleAnalytics4',\r\n HUBSPOT = 'hubspot',\r\n WEBHOOK = 'webhook',\r\n CUSTOM_HTML = 'customHTML',\r\n CUSTOM_JS = 'customJS',\r\n SNAPCHAT = 'snapchat',\r\n TWITTER = 'twitter',\r\n REDDIT = 'reddit'\r\n}\r\n\r\nexport interface UserDestinationConfiguration {\r\n [ key: string ]: any;\r\n eventBlacklist?: string[];\r\n events?: EventConfiguration[];\r\n trigger?: DestinationTriggerConfiguration;\r\n}\r\n\r\nexport interface DestinationTriggerConfiguration {\r\n shopify?: ShopifyTriggerConfiguration;\r\n exludeDomains?: string[];\r\n excludePages?: string[];\r\n domains?: string[];\r\n pages?: string[];\r\n}\r\n\r\nexport interface ShopifyTriggerConfiguration {\r\n enabled: boolean;\r\n collections?: string[];\r\n tags?: string[];\r\n}\r\n\r\n\r\nexport interface EventConfiguration {\r\n sourceEventName: string;\r\n exclude?: boolean;\r\n sample: EventSampleConfiguration;\r\n transformations?: EventTransformation[];\r\n}\r\n\r\nexport interface EventTransformation {\r\n transformationEventName: string;\r\n enabled: boolean;\r\n}\r\n\r\nexport interface EventSampleConfiguration {\r\n enabled: boolean;\r\n rate: number;\r\n}\r\n\r\n", "import { Destination, UserDestinationConfiguration } from './destinations';\r\n\r\nexport interface AdTrackifyFacebookDestination extends Destination {\r\n configuration: FacebookPixelConfiguration;\r\n}\r\n\r\nexport interface AdTrackifyTikTokDestination extends Destination {\r\n configuration: TiktokPixelConfiguration;\r\n}\r\n\r\nexport interface AdTrackifyGoogleAnalytics4Destination extends Destination {\r\n configuration: GoogleAnalytics4Configuration;\r\n}\r\n\r\n// Destination Specific configurations below\r\nexport interface FacebookPixelConfiguration extends UserDestinationConfiguration {\r\n apiAccessToken?: string;\r\n enableConversionAPI: boolean;\r\n pixelId: string;\r\n}\r\n\r\nexport interface TiktokPixelConfiguration extends UserDestinationConfiguration {\r\n apiAccessToken?: string;\r\n enableConversionAPI: boolean;\r\n pixelId: string;\r\n}\r\n\r\nexport interface GoogleAnalytics4Configuration extends UserDestinationConfiguration {\r\n apiSecret: string;\r\n measurementId: string;\r\n}\r\n\r\nexport interface GoogleAdsConfiguration extends UserDestinationConfiguration {\r\n pixelId: string;\r\n conversionID: string;\r\n}\r\n\r\nexport interface HubspotPixelConfiguration extends UserDestinationConfiguration {\r\n hubspotId: string;\r\n}\r\n\r\nexport interface SnapchatPixelConfiguration extends UserDestinationConfiguration {\r\n snapchatPixelId: string;\r\n}\r\n\r\nexport interface TwitterPixelConfiguration extends UserDestinationConfiguration {\r\n twitterPixelId: string;\r\n}\r\n\r\nexport interface WebhookConfiguration extends UserDestinationConfiguration {\r\n webhookUrl: string;\r\n}\r\n\r\nexport interface CustomHTMLConfiguration extends UserDestinationConfiguration {\r\n html: string;\r\n location: CustomHTMLLocation;\r\n}\r\n\r\nexport interface CustomJSConfiguration extends UserDestinationConfiguration {\r\n script: string;\r\n async: boolean;\r\n defer: boolean;\r\n location: CustomHTMLLocation;\r\n}\r\n\r\nexport enum CustomHTMLLocation {\r\n HEADER = 'header',\r\n FOOTER = 'footer',\r\n BODY = 'body'\r\n}\r\n\r\n", "export interface ShopifyAppInstall {\n shopifyAppInstallId: string;\n shop: string;\n accessToken?: string;\n appStatus?: string;\n appSubscriptionStatus?: ShopifyAppSubscriptionStatus;\n code?: string;\n hmac?: string;\n host?: string;\n installRequest?: ShopifyInstallRequest;\n isAppEnabled?: boolean;\n pixelId?: string;\n shopInfo?: any;\n state?: string;\n timestamp?: number;\n createdAt: string;\n updatedAt: string;\n}\n\nexport enum ShopifyAppInstallStatus {\n STARTED = 'started',\n COMPLETED = 'completed',\n UNINSTALLED = 'uninstalled',\n FAILED = 'failed',\n NONE = 'none'\n}\nexport enum ShopifyAppSubscriptionStatus {\n ACTIVE = 'active', // approved and billed to shop\n CANCELLED = 'cancelled', // cancelled, uninstalled or cancellation\n DECLINED = 'declined', // subscription declined by merchant\n EXPIRED = 'expired', //wasn't approved within two days of being created\n FROZEN = 'frozen', //on hold due to not payment\n PENDING = 'pending', // pending approval\n NOT_SUBMITTED = 'na' // billing has not yet been attempted\n}\n\nexport interface ShopifyInstallRequest {\n shop?: string;\n session?: string;\n hmac?: string;\n host?: string;\n nonce?: string;\n timestamp?: string;\n status?: string;\n}\n\nexport interface ShopifyStoreInfo {\n // TBD based on shopify api\n [ key: string ]: any;\n}", "\nexport interface Subscription {\n id: string,\n accountId?: string,\n shopifyAppInstallId?: string,\n shopifyDomain?: string,\n stripeCustomerId?: string,\n stripeSubscriptionId?: string,\n stripeCompletedCheckoutSession?: any;\n shopifyChargeId?: string;\n subscriptionPlan?: SubscriptionPlan,\n status?: SUBSCRIPTION_STATUS,\n paymentStatus?: PAYMENT_STATUS,\n paymentGateway?: PAYMENT_GATEWAY,\n createdAt: string,\n updatedAt: string,\n\n}\nexport interface SubscriptionPlan {\n id: number;\n planName: string;\n displayName: string;\n description: string;\n sku: string;\n price: string;\n displayPrice: string;\n billingFrequency: PLAN_BILLING_FREQUENCY;\n trialLengthDays?: number;\n trialRequiresCreditCard?: boolean;\n planDesc?: string[];\n unitPriceText?: string;\n isHighlighted?: boolean;\n isBanner?: boolean;\n bannerText?: string;\n bannerColor?: string;\n stripePriceId?: string;\n stripeProductId?: string;\n}\n\nexport enum PLAN_BILLING_FREQUENCY {\n MONTHLY = 'monthly',\n YEARLY = 'yearly'\n}\n\nexport enum PAYMENT_STATUS {\n CURRENT = 'current',\n PAST_DUE = 'past_due',\n CANCELLED = 'cancelled',\n FAILED = 'failed'\n}\n\nexport enum SUBSCRIPTION_STATUS {\n ACTIVE = 'active', // approved and billed to shop\n CANCELLED = 'cancelled', // cancelled, uninstalled or cancellation\n DECLINED = 'declined', // subscription declined by merchant\n EXPIRED = 'expired', //wasn't approved within two days of being created\n FROZEN = 'frozen', //on hold due to not payment\n PENDING = 'pending', // pending approval\n NOT_SUBMITTED = 'na' // billing has not yet been attempted\n}\nexport enum PAYMENT_GATEWAY {\n STRIPE = 'stripe',\n PAYPAL = 'paypal',\n SHOPIFY = 'shopify'\n}\n", "export enum ADTRACKIFY_STANDARD_EVENT {\n ADD_PAYMENT_INFO = 'add_payment_info',\n ADD_SHIPPING_INFO = 'add_shipping_info',\n ADD_TO_CART = 'add_to_cart',\n ADD_TO_WISHLIST = 'add_to_wishlist',\n // COMPLETE_REGISTRATION: 'complete_registration',\n // CONTACT: 'contact',\n INITIATE_CHECKOUT = 'initiate_checkout',\n LEAD = 'lead',\n LOGIN = 'login',\n PAGE_VIEW = 'page_view',\n PURCHASE = 'purchase',\n REFUND = 'refund',\n SEARCH = 'search',\n // START_TRIAL: 'start_trial',\n // SUBMIT_APPLICATION: 'submit_application',\n // SUBSCRIBE: 'subscribe',\n SIGN_UP = 'sign_up',\n VIEW_CART = 'view_cart',\n VIEW_CONTENT = 'view_content',\n\n //\n SELECT_SHIPPING_METHOD = 'select_shipping_method',\n VIRTUALIZED_VIEWED_PAYMENT_FORM = 'virtualized_viewd_payment_form',\n\n METRIC = 'metric',\n WEB_VITAL = 'web_vital',\n}\n", "import { ADTRACKIFY_STANDARD_EVENT } from '../adtrackify-standard-events';\nimport { ADTRACKIFY_EVENT_TYPE } from '../adtrackify-event-types';\nimport { AddressInfo } from '../common/address';\nimport { TrackingEventContext } from './tracking-event-context';\nimport { TrackingEventIdentity } from './tracking-event-identity';\n\nexport interface Event {\n id: string;\n type: ADTRACKIFY_EVENT_TYPE;\n name: ADTRACKIFY_STANDARD_EVENT;\n pixelId: string;\n sentAtEpoch?: number;\n collectedAt?: string;\n version: string;\n context?: TrackingEventContext;\n}\n\nexport interface TrackingEvent extends Event {\n identity?: TrackingEventIdentity;\n data?: TrackingEventData;\n testCode?: string;\n}\n\nexport interface MetricEvent extends Event {\n data: MetricEventData;\n}\n\nexport interface TrackingEventData {\n [ key: string ]: any;\n firstName?: string;\n lastName?: string;\n email?: string;\n phone?: string;\n addresses?: AddressInfo[];\n cartId?: string;\n transactionId?: string;\n affiliation?: string;\n currency?: string;\n price?: number;\n subtotalPrice?: number;\n value?: number;\n tax?: number;\n shipping?: number;\n coupon?: string;\n paymentType?: string;\n shippingTier?: string;\n creativeName?: string;\n creativeSlot?: string;\n locationId?: string;\n promotionId?: string;\n promotionName?: string;\n items?: GenericContent[];\n}\n\nexport interface GenericContent {\n [ key: string ]: any;\n content_type?: string;\n id?: string;\n name?: string;\n sku?: string;\n brand?: string;\n variant?: string;\n coupon?: string;\n currency?: string;\n discount?: number;\n index?: number;\n value?: number;\n price?: number;\n quantity?: number;\n url?: string;\n locationId?: string;\n imageUrl?: string;\n category?: string;\n category2?: string;\n category3?: string;\n category4?: string;\n category5?: string;\n}\n\nexport interface MetricEventData {\n [ key: string ]: any;\n name: string;\n value: number;\n}\n\nexport const Currencies: string[] = [ 'AED', 'ARS', 'AUD', 'BDT', 'BIF', 'BOB', 'BRL', 'CAD', 'CHF', 'CLP', 'CNY', 'COP', 'CRC', 'CZK', 'DKK', 'DZD', 'EGP', 'EUR', 'GBP', 'GTQ', 'HKD', 'HNL', 'HUF', 'IDR', 'ILS', 'INR', 'ISK', 'JPY', 'KES', 'KRW', 'KWD', 'KZT', 'MAD', 'MOP', 'MXN', 'MYR', 'NGN', 'NIO', 'NOK', 'NZD', 'PEN', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR', 'RON', 'RUB', 'SAR', 'SEK', 'SGD', 'THB', 'TRY', 'TWD', 'USD', 'VES', 'VND', 'ZAR' ];", "export enum ADTRACKIFY_EVENT_TYPE {\n TRACKING = 'tracking',\n METRIC = 'metric',\n IDENTIFY = 'identify',\n LOG = 'log',\n}\n", "import { SubscriptionPlan, PLAN_BILLING_FREQUENCY } from '@adtrackify/at-tracking-event-types';\n\nexport const StripeBillingMap: any = {\n dev2: {\n 'free': 'price_1JzjbKK7krGh4037ezNbGJEm',\n 'starter_monthly': 'price_1JwzsGK7krGh4037Li0hPpsZ',\n 'starter_yearly': 'price_1JwzsGK7krGh4037Li0hPpsZ',\n 'scale_monthly': 'price_1JzjcSK7krGh4037yh34LPk3',\n 'scale_yearly': 'price_1JzjcSK7krGh4037QiBJYfnD',\n 'growth_monthly': 'price_1Jzje1K7krGh4037KErHBp5N',\n 'growth_yearly': 'price_1Jzje1K7krGh4037MhCUhTDh'\n },\n qa2: {\n 'free': 'price_1JzjbKK7krGh4037ezNbGJEm',\n 'starter_monthly': 'price_1JwzsGK7krGh4037Li0hPpsZ',\n 'starter_yearly': 'price_1JwzsGK7krGh4037Li0hPpsZ',\n 'scale_monthly': 'price_1JzjcSK7krGh4037yh34LPk3',\n 'scale_yearly': 'price_1JzjcSK7krGh4037QiBJYfnD',\n 'growth_monthly': 'price_1Jzje1K7krGh4037KErHBp5N',\n 'growth_yearly': 'price_1Jzje1K7krGh4037MhCUhTDh'\n },\n prod2: {\n 'free': 'price_1KAFsIK7krGh4037RsaAYMEl',\n 'starter_monthly': 'price_1KAFsMK7krGh4037Lz3P0ksU',\n 'starter_yearly': 'price_1KAFsMK7krGh4037Dj1WmSi8',\n 'scale_monthly': 'price_1KAFrxK7krGh4037zWCdaTly',\n 'scale_yearly': 'price_1KAFrxK7krGh40375fhymyWP',\n 'growth_monthly': 'price_1KAFs7K7krGh4037JChjz5Cr',\n 'growth_yearly': 'price_1KAFs7K7krGh4037rZElg12s'\n },\n dev: {\n 'free': 'price_1JzjbKK7krGh4037ezNbGJEm',\n 'starter_monthly': 'price_1JwzsGK7krGh4037Li0hPpsZ',\n 'starter_yearly': 'price_1JwzsGK7krGh4037Li0hPpsZ',\n 'scale_monthly': 'price_1JzjcSK7krGh4037yh34LPk3',\n 'scale_yearly': 'price_1JzjcSK7krGh4037QiBJYfnD',\n 'growth_monthly': 'price_1Jzje1K7krGh4037KErHBp5N',\n 'growth_yearly': 'price_1Jzje1K7krGh4037MhCUhTDh'\n },\n qa: {\n 'free': 'price_1JzjbKK7krGh4037ezNbGJEm',\n 'starter_monthly': 'price_1JwzsGK7krGh4037Li0hPpsZ',\n 'starter_yearly': 'price_1JwzsGK7krGh4037Li0hPpsZ',\n 'scale_monthly': 'price_1JzjcSK7krGh4037yh34LPk3',\n 'scale_yearly': 'price_1JzjcSK7krGh4037QiBJYfnD',\n 'growth_monthly': 'price_1Jzje1K7krGh4037KErHBp5N',\n 'growth_yearly': 'price_1Jzje1K7krGh4037MhCUhTDh'\n },\n prod: {\n 'free': 'price_1KAFsIK7krGh4037RsaAYMEl',\n 'starter_monthly': 'price_1KAFsMK7krGh4037Lz3P0ksU',\n 'starter_yearly': 'price_1KAFsMK7krGh4037Dj1WmSi8',\n 'scale_monthly': 'price_1KAFrxK7krGh4037zWCdaTly',\n 'scale_yearly': 'price_1KAFrxK7krGh40375fhymyWP',\n 'growth_monthly': 'price_1KAFs7K7krGh4037JChjz5Cr',\n 'growth_yearly': 'price_1KAFs7K7krGh4037rZElg12s'\n }\n};\n\nexport const CommonPlanInfo = [\n //'60-day Risk Free Trial',\n 'Free Server Side Tracking & Conversion API',\n 'MultiPixel Support (Multiple facebook, tiktok, etc)',\n 'Corrects Facebook Conversion Tracking post IOS14',\n 'Increase ROAS & Attribution Data',\n 'Enhanced Fingerprinting & Identity Resolution',\n 'Unlimited Integrations',\n 'Advanced Integrations (Webhooks, Custom JS/HTML, Hubspot)'\n];\n\nexport const SubscriptionPlanSeedItems: {\n items: SubscriptionPlan[];\n} = {\n items: [ {\n id: 1,\n planName: 'free',\n displayName: 'Free',\n sku: 'ADT-001',\n description: 'Free Plan - Monthly',\n price: '0',\n displayPrice: '$0',\n billingFrequency: PLAN_BILLING_FREQUENCY.MONTHLY,\n trialLengthDays: 0,\n trialRequiresCreditCard: false,\n planDesc: [\n ...CommonPlanInfo,\n 'Free Up to 500 orders/month (50,000 events)*'\n ],\n unitPriceText: 'try now - free forever',\n isHighlighted: false,\n isBanner: false\n },\n // STARTER PLANS\n {\n id: 2,\n planName: 'starter_monthly',\n displayName: 'Starter',\n sku: 'ADT-002',\n description: 'Starter Plan - Monthly',\n price: '79.99',\n displayPrice: '$79.99',\n billingFrequency: PLAN_BILLING_FREQUENCY.MONTHLY,\n trialLengthDays: 60,\n trialRequiresCreditCard: false,\n planDesc: [\n '60-day Risk Free Trial',\n ...CommonPlanInfo,\n 'Up to 2,000 orders/month (250,000 events)*'\n ],\n isHighlighted: true,\n isBanner: true,\n bannerColor: 'blue',\n bannerText: 'MOST POPULAR'\n }, {\n id: 3,\n planName: 'starter_yearly',\n displayName: 'Starter',\n sku: 'ADT-003',\n description: 'Starter Plan - Yearly',\n price: '767.90',\n displayPrice: '$63.99',\n billingFrequency: PLAN_BILLING_FREQUENCY.YEARLY,\n trialLengthDays: 30,\n trialRequiresCreditCard: false,\n planDesc: [\n '60-day Risk Free Trial',\n ...CommonPlanInfo,\n 'Up to 2,000 orders/month (250,000 events)*'\n ],\n unitPriceText: 'billed yearly ($767.90) - 20% savings',\n isHighlighted: true,\n isBanner: true,\n bannerColor: 'blue',\n bannerText: 'MOST POPULAR'\n },\n // SCALE PLANS\n {\n id: 4,\n planName: 'scale_monthly',\n displayName: 'Scale',\n sku: 'ADT-004',\n description: 'Scale Plan - Monthly',\n price: '199.99',\n displayPrice: '$199.99',\n billingFrequency: PLAN_BILLING_FREQUENCY.MONTHLY,\n trialLengthDays: 60,\n trialRequiresCreditCard: false,\n planDesc: [\n '60-day Risk Free Trial',\n ...CommonPlanInfo,\n 'Up to 7,500 orders/month (750,000 events)*'\n ],\n unitPriceText: '',\n isHighlighted: false,\n isBanner: false\n }, {\n id: 5,\n planName: 'scale_yearly',\n displayName: 'Scale',\n sku: 'ADT-005',\n description: 'Scale Plan - Yearly',\n price: '1823.91',\n displayPrice: '$151.99',\n billingFrequency: PLAN_BILLING_FREQUENCY.YEARLY,\n trialLengthDays: 60,\n trialRequiresCreditCard: false,\n planDesc: [\n '60-day Risk Free Trial',\n ...CommonPlanInfo,\n 'Up to 7,500 orders/month (750,000 events)*'\n ],\n unitPriceText: 'billed yearly ($1823.91) - 24% savings',\n isHighlighted: false,\n isBanner: false\n },\n // // GROWTH PLANS\n // {\n // id: 6,\n // planName: 'growth_monthly',\n // displayName: 'Growth',\n // sku: 'ADT-006',\n // description: 'Growth Plan - Monthly',\n // price: '199.99',\n // displayPrice: '$199.99',\n // billingFrequency: PLAN_BILLING_FREQUENCY.MONTHLY,\n // trialLengthDays: 60,\n // trialRequiresCreditCard: false,\n // planDesc: [\n // '60-day Risk Free Trial',\n // ...CommonPlanInfo,\n // '250,000 tracking events/mo'\n // ],\n // unitPriceText: 'billed yearly ($540) - 25% savings',\n // isHighlighted: false,\n // isBanner: true,\n // bannerColor: 'orange',\n // bannerText: 'BEST VALUE'\n // }, {\n // id: 7,\n // planName: 'growth_yearly',\n // displayName: 'Growth',\n // sku: 'ADT-007',\n // description: 'Growth Plan - Yearly',\n // price: '1799.91',\n // displayPrice: '$149.99',\n // billingFrequency: PLAN_BILLING_FREQUENCY.YEARLY,\n // trialLengthDays: 60,\n // trialRequiresCreditCard: false,\n // planDesc: [\n // '30-day Risk Free Trial',\n // 'Fixes IOS14.5 tracking',\n // 'Multi Pixel Support',\n // 'Enhanced Tracking / Attribution',\n // 'Unlimited Facebook Conversion API',\n // 'Unlimited Integrations',\n // 'Easy no code setup',\n // '100,000 tracking events/mo'\n // ],\n // unitPriceText: 'billed yearly ($1799.91) - 25% savings',\n // isHighlighted: false,\n // isBanner: true,\n // bannerColor: 'orange',\n // bannerText: 'BEST VALUE'\n // },\n ]\n};\n\n\nexport const getPlanDetails = (planId: number, stage: string) => {\n const plan = SubscriptionPlanSeedItems.items.filter(x => x.id === planId)[ 0 ] as any;\n plan.stripePriceId = StripeBillingMap[ stage ][ plan.planName ];\n return plan as SubscriptionPlan;\n};\n\nexport const getPlanByStripePriceId = (stripePriceId: string, stage: string) => {\n const stripePriceIds = StripeBillingMap[ stage ];\n const planName = Object.keys(stripePriceIds).find(key => stripePriceIds[ key ] === stripePriceId);\n\n const plan = SubscriptionPlanSeedItems.items.filter(x => x.planName === planName)[ 0 ] as any;\n plan.stripePriceId = stripePriceId;\n\n return plan as SubscriptionPlan;\n};", "import crypto from 'crypto';\n\nexport const generatePublicKey = (): string => {\n const publicKey = crypto.randomBytes(26);\n return publicKey.toString('utf8');\n};", "export enum ADTRACKIFY_EVENT_TYPES {\n NOTIFY_SHOPIFY_SUBSCRIPTION_CREATED = 'shopifySubscriptionCreated',\n NOTIFY_SUBSCRIPTION_SIGNUP_COMPLETED = 'subscription.signupCompleted',\n REQUEST_SET_ACCOUNT_OWNER = 'setAccountOwner',\n REQUEST_SET_ACCOUNT_SUBSCRIPTION_ID = 'setAccountSubscriptionId',\n}\n\nexport enum ADTRACKIFY_EVENT_SOURCES {\n SUBSCRIPTIONS = 'subscriptions',\n}\n\nexport const enum PostmarkRequestType {\n SINGLE_EMAIL = 'single_email',\n TEMPLATE_EMAIL = 'template_email'\n}\n\nexport enum ADTRACKIFY_EVENT_BRIDGE_EVENTS {\n SEND_POSTMARK_EMAIL = 'integration.sendPostmarkEmail',\n NOTIFY_SHOPIFY_SUBSCRIPTION_CREATED = 'shopifySubscriptionCreated',\n NOTIFY_SUBSCRIPTION_SIGNUP_COMPLETED = 'subscription.signupCompleted',\n REQUEST_SET_ACCOUNT_OWNER = 'setAccountOwner',\n REQUEST_SET_ACCOUNT_SUBSCRIPTION_ID = 'setAccountSubscriptionId',\n}", "import { EventBridgeClient } from '../clients/generic/eventbridge-client.js';\nimport { Message, TemplatedMessage } from 'postmark';\nimport { ADTRACKIFY_EVENT_BRIDGE_EVENTS, PostmarkRequestType } from '../types/internal-events/event-detail-types.js';\n\n\n\nexport class EventBridgeIntegrationService {\n public eventBridgeClient: EventBridgeClient;\n public EVENT_BUS_NAME: string;\n\n constructor (eventBusName: string) {\n this.eventBridgeClient = new EventBridgeClient(eventBusName);\n this.EVENT_BUS_NAME = eventBusName;\n }\n\n public sendPostmarkEmailEvent = async (eventSource: string, postmarkMessage: Message, postmarkServerToken: string) => {\n return await this.eventBridgeClient.buildAndSendEvent(\n eventSource,\n ADTRACKIFY_EVENT_BRIDGE_EVENTS.SEND_POSTMARK_EMAIL,\n {\n postmarkMessage,\n postmarkRequestType: PostmarkRequestType.SINGLE_EMAIL,\n postmarkServerToken\n });\n };\n\n public sendPostmarkTemplatedEmailEvent = async (eventSource: string, postmarkMessage: TemplatedMessage, postmarkServerToken: string) => {\n return await this.eventBridgeClient.buildAndSendEvent(\n eventSource,\n ADTRACKIFY_EVENT_BRIDGE_EVENTS.SEND_POSTMARK_EMAIL,\n {\n postmarkMessage,\n postmarkRequestType: PostmarkRequestType.TEMPLATE_EMAIL,\n postmarkServerToken\n });\n };\n\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["log", "error", "config", "log", "error", "log", "error", "uuidv4", "log", "uuidv4", "log", "client", "log", "client", "success", "log", "HttpStatusCodes", "client", "log", "client", "log", "log", "client", "log", "error", "log", "debug", "error", "log", "p", "ACCOUNT_STATUS", "DESTINATIONS", "CustomHTMLLocation", "ShopifyAppInstallStatus", "ShopifyAppSubscriptionStatus", "PLAN_BILLING_FREQUENCY", "PAYMENT_STATUS", "SUBSCRIPTION_STATUS", "PAYMENT_GATEWAY", "ADTRACKIFY_STANDARD_EVENT", "ADTRACKIFY_EVENT_TYPE", "stage", "x", "ADTRACKIFY_EVENT_TYPES", "ADTRACKIFY_EVENT_SOURCES", "PostmarkRequestType", "ADTRACKIFY_EVENT_BRIDGE_EVENTS"]
7
7
  }