{"version":3,"mappings":"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","names":["extendStatics","d","b","p","__extends","__","__assign","s","i","n","__rest","e","t","__decorate","decorators","target","key","desc","c","r","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","rejected","result","__generator","body","_","f","y","g","verb","v","op","__spreadArray","to","from","pack","l","ar","isString","obj","isNumber","isFunction","isPlainObject","hasUser","event","_a","_b","_c","id","ValidationError","_super","field","message","_this","validate","ctx","eventType","props","validation","resolveArguments","eventName","properties","options","callback","args","name","data","opts","cb","resolvePageArguments","category","resolvedCategory","resolvedName","strings","resolvedCallback","objects","resolvedProperties","resolvedOptions","resolveUserArguments","user","_d","_e","_i","traits","resolveAliasArguments","aliasTo","aliasFrom","isBrowser","isServer","isOnline","isOffline","Emitter","on","fns","without","fn","callbacks","dset","keys","val","x","k","pTimeout","promise","timeout","timeoutId","sleep","timeoutInMs","invokeCallback","delay","err","backoff","params","random","minTimeout","factor","attempt","maxTimeout","ON_REMOVE_FROM_FUTURE","PriorityQueue","maxAttempts","queue","seen","items","accepted","operation","attempts","item","IDX","HEX","BUFFER","v4","num","out","CoreLogger","level","extras","time","formatted","logs","log","line","logEntry","compactMetricType","type","enums","CoreStats","metric","by","tags","m","NullStats","ContextCancelation","CoreContext","stats","logger","uuid","other","error","path","integrationName","groupBy","collection","grouper","results","suggestedKey","isThenable","createTaskGroup","taskCompletionPromise","resolvePromise","count","returnValue","res","tryAsync","err_1","plugin","start","hook","newCtx","done","ensure","newContext","CoreEventQueue","priorityQueue","instance","e_1","willDeliver","onDeliver","flushed","delivered","retriable","err_2","denyList","available","alternativeNameMatch","before","enrichment","destination","after","before_1","beforeWare","temp","enrichment_1","enrichmentWare","destinations","afterCalls","_f","getDelay","startTimeInEpochMS","timeoutInMS","elapsedTime","dispatch","emitter","startTime","dispatched","unfetch","u","a","getGlobal","fetch","global","version","assign","source","defaultConverter","init","converter","defaultAttributes","set","attributes","stringifiedAttributes","attributeName","get","cookies","jar","parts","foundKey","api","gracefulDecodeURIComponent","encodedURIComponent","levels","url","host","last","parseUrl","tld","parsedUrl","lvls","cname","domain","cookie","bindAll","proto","defaults","Store","ONE_YEAR","Cookie","cookieEnabled","localStorageWarning","state","LocalStorage","test","UniversalStorage","stores","storageOptions","storeTypes","storeType","storage","coercedValue","store","getAvailableStorageOptions","cookieOptions","User","prevId","changingIdentity","retId","retLeg","isDisabled","shouldPersist","defaultStorageTargets","legacyUser","autoBind","anon","currentId","groupDefaults","Group","_id","getCookieOptions","_version","getVersionType","ampId","utm","query","acc","str","utmParam","ads","queryIds","parts_1","part","referrerId","disablePersistance","stored","ad","normalize","analytics","json","settings","integrations","locale","failed","bundled","unbundled","integration","settingsUnbundled","configIds","bundledConfigIds","amp","createRemoteMetric","versionType","formattedTags","logError","RemoteMetrics","flushing_1","run_1","remoteMetric","payload","headers","remoteMetrics","Stats","Context","factory","module","undefined","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","length","tail","tmp","lo","hi","md51_array","rhex","j","hex","clamp","begin","end","targetArray","sourceArray","toUtf8","utf8Str2ArrayBuffer","returnUInt8Array","buff","arr","arrayBuffer2Utf8Str","concatenateArrayBuffers","first","second","hexToBinaryString","bytes","SparkMD5","contents","raw","ret","content","hash","EventFactory","globalIntegrations","page","screen","userId","groupId","base","optionsKeys","providedOptionsKeys","context","overrides","integrationBooleans","integrationNames","allIntegrations","rest","messageId","md5","evt","loc","persisted","persistItems","existing","all","merged","persistSeen","memory","remove","now","mutex","onUnlock","lockTimeout","lockKey","expired","lock","rawLock","allowed","PersistedPriorityQueue","itemsKey","seenKey","saved","lastSeen","items_1","EventQueue","deprecationWarning","_analytics","createDefaultQueue","retryQueue","_stub","Analytics","group","segmentEvent","_traits","groupTraits","autotrack","__vitePreload","plugins","registrations","xt","deregistrations","pl","toggle","sourceMiddlewarePlugin","middlewares","legacyDestinations","queryString","legacyPluginFactory","msg","_settings","_options","nested","an","method","getProcessEnv","define_process_env_default","analyticsScriptRegex","getCDNUrlFromScriptTag","cdn","scripts","src","_globalCDN","getGlobalCDNUrl","setGlobalCDNUrl","getCDN","globalCdnUrl","cdnFromScriptTag","getNextIntegrationsURL","mergedOptions","optionOverrides","integrationSettings","createDeferred","_resolve","_reject","canonical","canon","tag","canonicalPath","pathname","canonicalUrl","search","pageDefaults","enrichPageContext","pageContext","pageProps","pageEnrichment","findScript","loadScript","found","status_1","script","unloadScript","multiple","find","replace","del","defaultNormalize","finished","loop","normalizedKey","child","__importDefault","this","mod","address","obj_case_1","require$$0","trait","default_1","clone_1","clone","isEnabled","disabled","matcher","lib","iso","numericKeys","offset","millis","string","strict","milliseconds","seconds","isodate","require$$1","require$$2","objProto","toStr","isDate","toMs","traverse","input","traverseObject","traverseArray","index","facade","address_1","is_enabled_1","new_date_1","require$$3","require$$4","isodate_traverse_1","require$$5","Facade","fields","transform","multi","one","allEnabled","enabled","active","aliases","alias","library","device","inherits_browserModule","ctor","superCtor","TempCtor","inherits_1","facade_1","Alias","dictionary","isEmail_1","isEmail","is_email_1","created","email","identify","trim","Identify","firstName","lastName","space","date","age","track","identify_1","Track","subtotal","total","products","revenue","orderCompletedRegExp","currency","track_1","Page","page_1","Screen","_delete","Delete","exports","alias_1","group_1","screen_1","require$$6","delete_1","require$$7","toFacade","fcd","applyDestinationMiddleware","middleware","applyMiddleware","nextCalled","returnedEvent","modifiedEvent","middleware_1","md","apply","ActionDestination","action","methodName","transformedContext","pluginLike","required","isPluginDisabled","userIntegrations","remotePlugin","creationNameEnabled","currentNameEnabled","remoteLoader","mergedIntegrations","obfuscate","routingMiddleware","allPlugins","routingRules","pluginPromises","urlSplit","name_1","obfuscatedURL","libraryName","pluginFactory","routing_1","error_2","rule","wrapper","onPageLeave","unloaded","MAX_PAYLOAD_SIZE","kilobytes","buffer","size","approachingTrackingAPILimit","chunks","batch","apiHost","config","pageUnloaded","limit","sendBatch","writeKey","flush","batch_1","schedule","scheduleFlush","reqs","_url","bufferOverflow","standard","pWhile","condition","actionResult","flushQueue","failedQueue","success","flushing","isFlushing","newBuffer","onAlias","segmentio","inflightEvents","protocol","remote","deliveryStrategy","client","send","flushSyncAnalyticsCalls","callAnalyticsMethod","flushAddSourceMiddleware","flushOn","flushSetAnonymousID","flushAnalyticsCallsInNewTask","PreInitMethodCallBuffer","calls","call","AnalyticsBuffered","loader","ajs","transformSnippetCall","normalizeSnippetBuffer","popSnippetWindowBuffer","wa","buffered","env","inspectorHost","attachInspector","loadLegacySettings","cdnURL","hasLegacyDestinations","hasTsubMiddleware","flushPreBuffer","flushFinalBuffer","registerPlugins","legacySettings","legacyIntegrationSources","tsubMiddleware","schemaFilter","mergedSettings","remotePlugins","toRegister","shouldIgnoreSegmentio","_g","remoteMiddlewares","promises","mdw","loadAnalytics","preInitBuffer","classicIntegrations","term","AnalyticsBrowser","loadStart","resolveLoadStart","AnalyticsHelper","analyticsToken","accounts","accountId","currentAccount","account","AnalyticsHelper$1"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79],"sources":["../../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/plugins/validation/index.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/core/arguments-resolver/index.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/core/environment/index.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/core/connection/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.2.2/node_modules/@segment/analytics-core/dist/esm/emitter/index.js","../../../node_modules/.pnpm/dset@3.1.4/node_modules/dset/dist/index.mjs","../../../node_modules/.pnpm/@segment+analytics-core@1.2.2/node_modules/@segment/analytics-core/dist/esm/callback/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.2.2/node_modules/@segment/analytics-core/dist/esm/priority-queue/backoff.js","../../../node_modules/.pnpm/@segment+analytics-core@1.2.2/node_modules/@segment/analytics-core/dist/esm/priority-queue/index.js","../../../node_modules/.pnpm/@lukeed+uuid@2.0.0/node_modules/@lukeed/uuid/dist/index.mjs","../../../node_modules/.pnpm/@segment+analytics-core@1.2.2/node_modules/@segment/analytics-core/dist/esm/logger/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.2.2/node_modules/@segment/analytics-core/dist/esm/stats/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.2.2/node_modules/@segment/analytics-core/dist/esm/context/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.2.2/node_modules/@segment/analytics-core/dist/esm/utils/group-by.js","../../../node_modules/.pnpm/@segment+analytics-core@1.2.2/node_modules/@segment/analytics-core/dist/esm/utils/is-thenable.js","../../../node_modules/.pnpm/@segment+analytics-core@1.2.2/node_modules/@segment/analytics-core/dist/esm/task/task-group.js","../../../node_modules/.pnpm/@segment+analytics-core@1.2.2/node_modules/@segment/analytics-core/dist/esm/queue/delivery.js","../../../node_modules/.pnpm/@segment+analytics-core@1.2.2/node_modules/@segment/analytics-core/dist/esm/utils/environment.js","../../../node_modules/.pnpm/@segment+analytics-core@1.2.2/node_modules/@segment/analytics-core/dist/esm/connection/index.js","../../../node_modules/.pnpm/@segment+analytics-core@1.2.2/node_modules/@segment/analytics-core/dist/esm/queue/event-queue.js","../../../node_modules/.pnpm/@segment+analytics-core@1.2.2/node_modules/@segment/analytics-core/dist/esm/analytics/dispatch.js","../../../node_modules/.pnpm/unfetch@4.2.0/node_modules/unfetch/dist/unfetch.module.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/lib/get-global.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/lib/fetch.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/generated/version.js","../../../node_modules/.pnpm/js-cookie@3.0.1/node_modules/js-cookie/dist/js.cookie.mjs","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/core/query-string/gracefulDecodeURIComponent.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/core/user/tld.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/lib/bind-all.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/core/user/index.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/plugins/segmentio/normalize.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/core/stats/remote-metrics.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/core/stats/index.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/core/context/index.js","../../../node_modules/.pnpm/spark-md5@3.0.2/node_modules/spark-md5/spark-md5.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/core/events/index.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/lib/priority-queue/persisted.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/core/queue/event-queue.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/core/analytics/index.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/lib/get-process-env.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/lib/parse-cdn.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/lib/merged-options.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/lib/create-deferred.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/plugins/page-enrichment/index.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/lib/load-script.js","../../../node_modules/.pnpm/obj-case@0.2.1/node_modules/obj-case/index.js","../../../node_modules/.pnpm/@segment+facade@3.4.10/node_modules/@segment/facade/dist/address.js","../../../node_modules/.pnpm/@segment+facade@3.4.10/node_modules/@segment/facade/dist/clone.js","../../../node_modules/.pnpm/@segment+facade@3.4.10/node_modules/@segment/facade/dist/is-enabled.js","../../../node_modules/.pnpm/@segment+isodate@1.0.3/node_modules/@segment/isodate/lib/index.js","../../../node_modules/.pnpm/new-date@1.0.3/node_modules/new-date/lib/milliseconds.js","../../../node_modules/.pnpm/new-date@1.0.3/node_modules/new-date/lib/seconds.js","../../../node_modules/.pnpm/new-date@1.0.3/node_modules/new-date/lib/index.js","../../../node_modules/.pnpm/@segment+isodate-traverse@1.1.1/node_modules/@segment/isodate-traverse/lib/index.js","../../../node_modules/.pnpm/@segment+facade@3.4.10/node_modules/@segment/facade/dist/facade.js","../../../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js","../../../node_modules/.pnpm/@segment+facade@3.4.10/node_modules/@segment/facade/dist/alias.js","../../../node_modules/.pnpm/@segment+facade@3.4.10/node_modules/@segment/facade/dist/is-email.js","../../../node_modules/.pnpm/@segment+facade@3.4.10/node_modules/@segment/facade/dist/group.js","../../../node_modules/.pnpm/@segment+facade@3.4.10/node_modules/@segment/facade/dist/identify.js","../../../node_modules/.pnpm/@segment+facade@3.4.10/node_modules/@segment/facade/dist/track.js","../../../node_modules/.pnpm/@segment+facade@3.4.10/node_modules/@segment/facade/dist/page.js","../../../node_modules/.pnpm/@segment+facade@3.4.10/node_modules/@segment/facade/dist/screen.js","../../../node_modules/.pnpm/@segment+facade@3.4.10/node_modules/@segment/facade/dist/delete.js","../../../node_modules/.pnpm/@segment+facade@3.4.10/node_modules/@segment/facade/dist/index.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/lib/to-facade.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/plugins/middleware/index.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/plugins/remote-loader/index.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/lib/on-page-leave.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/plugins/segmentio/batched-dispatcher.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/plugins/segmentio/fetch-dispatcher.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/lib/p-while.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/plugins/segmentio/schedule-flush.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/plugins/segmentio/index.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/lib/is-thenable.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/core/buffer/index.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/core/buffer/snippet.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/core/inspector/index.js","../../../node_modules/.pnpm/@june-so+analytics-next@2.0.0/node_modules/@june-so/analytics-next/dist/pkg/browser/index.js","../../../app/javascript/dashboard/helper/AnalyticsHelper/index.js"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import { __extends } from \"tslib\";\nexport function isString(obj) {\n return typeof obj === 'string';\n}\nexport function isNumber(obj) {\n return typeof obj === 'number';\n}\nexport function isFunction(obj) {\n return typeof obj === 'function';\n}\nexport function isPlainObject(obj) {\n return (Object.prototype.toString.call(obj).slice(8, -1).toLowerCase() === 'object');\n}\nfunction hasUser(event) {\n var _a, _b, _c;\n var id = (_c = (_b = (_a = event.userId) !== null && _a !== void 0 ? _a : event.anonymousId) !== null && _b !== void 0 ? _b : event.groupId) !== null && _c !== void 0 ? _c : event.previousId;\n return isString(id);\n}\nvar ValidationError = /** @class */ (function (_super) {\n __extends(ValidationError, _super);\n function ValidationError(field, message) {\n var _this = _super.call(this, message) || this;\n _this.field = field;\n return _this;\n }\n return ValidationError;\n}(Error));\nfunction validate(ctx) {\n var _a;\n var eventType = ctx && ctx.event && ctx.event.type;\n var event = ctx.event;\n if (event === undefined) {\n throw new ValidationError('event', 'Event is missing');\n }\n if (!isString(eventType)) {\n throw new ValidationError('event', 'Event is not a string');\n }\n if (eventType === 'track' && !isString(event.event)) {\n throw new ValidationError('event', 'Event is not a string');\n }\n var props = (_a = event.properties) !== null && _a !== void 0 ? _a : event.traits;\n if (eventType !== 'alias' && !isPlainObject(props)) {\n throw new ValidationError('properties', 'properties is not an object');\n }\n if (!hasUser(event)) {\n throw new ValidationError('userId', 'Missing userId or anonymousId');\n }\n return ctx;\n}\nexport var validation = {\n name: 'Event Validation',\n type: 'before',\n version: '1.0.0',\n isLoaded: function () { return true; },\n load: function () { return Promise.resolve(); },\n track: validate,\n identify: validate,\n page: validate,\n alias: validate,\n group: validate,\n screen: validate,\n};\n//# sourceMappingURL=index.js.map","import { isFunction, isPlainObject, isString, isNumber, } from '../../plugins/validation';\n/**\n * Helper for the track method\n */\nexport function resolveArguments(eventName, properties, options, callback) {\n var _a;\n var args = [eventName, properties, options, callback];\n var name = isPlainObject(eventName) ? eventName.event : eventName;\n if (!name || !isString(name)) {\n throw new Error('Event missing');\n }\n var data = isPlainObject(eventName)\n ? (_a = eventName.properties) !== null && _a !== void 0 ? _a : {}\n : isPlainObject(properties)\n ? properties\n : {};\n var opts = {};\n if (!isFunction(options)) {\n opts = options !== null && options !== void 0 ? options : {};\n }\n if (isPlainObject(eventName) && !isFunction(properties)) {\n opts = properties !== null && properties !== void 0 ? properties : {};\n }\n var cb = args.find(isFunction);\n return [name, data, opts, cb];\n}\n/**\n * Helper for page, screen methods\n */\nexport function resolvePageArguments(category, name, properties, options, callback) {\n var _a, _b;\n var resolvedCategory = null;\n var resolvedName = null;\n var args = [category, name, properties, options, callback];\n var strings = args.filter(isString);\n if (strings[0] !== undefined && strings[1] !== undefined) {\n resolvedCategory = strings[0];\n resolvedName = strings[1];\n }\n if (strings.length === 1) {\n resolvedCategory = null;\n resolvedName = strings[0];\n }\n var resolvedCallback = args.find(isFunction);\n var objects = args.filter(function (obj) {\n if (resolvedName === null) {\n return isPlainObject(obj);\n }\n return isPlainObject(obj) || obj === null;\n });\n var resolvedProperties = ((_a = objects[0]) !== null && _a !== void 0 ? _a : {});\n var resolvedOptions = ((_b = objects[1]) !== null && _b !== void 0 ? _b : {});\n return [\n resolvedCategory,\n resolvedName,\n resolvedProperties,\n resolvedOptions,\n resolvedCallback,\n ];\n}\n/**\n * Helper for group, identify methods\n */\nexport var resolveUserArguments = function (user) {\n return function () {\n var _a, _b, _c, _d, _e;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var id = null;\n id = (_c = (_a = args.find(isString)) !== null && _a !== void 0 ? _a : (_b = args.find(isNumber)) === null || _b === void 0 ? void 0 : _b.toString()) !== null && _c !== void 0 ? _c : user.id();\n var objects = args.filter(function (obj) {\n if (id === null) {\n return isPlainObject(obj);\n }\n return isPlainObject(obj) || obj === null;\n });\n var traits = ((_d = objects[0]) !== null && _d !== void 0 ? _d : {});\n var opts = ((_e = objects[1]) !== null && _e !== void 0 ? _e : {});\n var resolvedCallback = args.find(isFunction);\n return [id, traits, opts, resolvedCallback];\n };\n};\n/**\n * Helper for alias method\n */\nexport function resolveAliasArguments(to, from, options, callback) {\n if (isNumber(to))\n to = to.toString(); // Legacy behaviour - allow integers for alias calls\n if (isNumber(from))\n from = from.toString();\n var args = [to, from, options, callback];\n var _a = args.filter(isString), _b = _a[0], aliasTo = _b === void 0 ? to : _b, _c = _a[1], aliasFrom = _c === void 0 ? null : _c;\n var _d = args.filter(isPlainObject)[0], opts = _d === void 0 ? {} : _d;\n var resolvedCallback = args.find(isFunction);\n return [aliasTo, aliasFrom, opts, resolvedCallback];\n}\n//# sourceMappingURL=index.js.map","export function isBrowser() {\n return typeof window !== 'undefined';\n}\nexport function isServer() {\n return !isBrowser();\n}\n//# sourceMappingURL=index.js.map","import { isBrowser } from '../environment';\nexport function isOnline() {\n if (isBrowser()) {\n return window.navigator.onLine;\n }\n return true;\n}\nexport function isOffline() {\n return !isOnline();\n}\n//# sourceMappingURL=index.js.map","/**\n * Event Emitter that takes the expected contract as a generic\n * @example\n * ```ts\n * type Contract = {\n * delivery_success: [DeliverySuccessResponse, Metrics],\n * delivery_failure: [DeliveryError]\n * }\n * new Emitter()\n * .on('delivery_success', (res, metrics) => ...)\n * .on('delivery_failure', (err) => ...)\n * ```\n */\nvar Emitter = /** @class */ (function () {\n function Emitter() {\n this.callbacks = {};\n }\n Emitter.prototype.on = function (event, callback) {\n if (!this.callbacks[event]) {\n this.callbacks[event] = [callback];\n }\n else {\n this.callbacks[event].push(callback);\n }\n return this;\n };\n Emitter.prototype.once = function (event, callback) {\n var _this = this;\n var on = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this.off(event, on);\n callback.apply(_this, args);\n };\n this.on(event, on);\n return this;\n };\n Emitter.prototype.off = function (event, callback) {\n var _a;\n var fns = (_a = this.callbacks[event]) !== null && _a !== void 0 ? _a : [];\n var without = fns.filter(function (fn) { return fn !== callback; });\n this.callbacks[event] = without;\n return this;\n };\n Emitter.prototype.emit = function (event) {\n var _this = this;\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var callbacks = (_a = this.callbacks[event]) !== null && _a !== void 0 ? _a : [];\n callbacks.forEach(function (callback) {\n callback.apply(_this, args);\n });\n return this;\n };\n return Emitter;\n}());\nexport { Emitter };\n//# sourceMappingURL=index.js.map","export function dset(obj, keys, val) {\n\tkeys.split && (keys=keys.split('.'));\n\tvar i=0, l=keys.length, t=obj, x, k;\n\twhile (i < l) {\n\t\tk = ''+keys[i++];\n\t\tif (k === '__proto__' || k === 'constructor' || k === 'prototype') break;\n\t\tt = t[k] = (i === l) ? val : (typeof(x=t[k])===typeof(keys)) ? x : (keys[i]*0 !== 0 || !!~(''+keys[i]).indexOf('.')) ? {} : [];\n\t}\n}\n","export function pTimeout(promise, timeout) {\n return new Promise(function (resolve, reject) {\n var timeoutId = setTimeout(function () {\n reject(Error('Promise timed out'));\n }, timeout);\n promise\n .then(function (val) {\n clearTimeout(timeoutId);\n return resolve(val);\n })\n .catch(reject);\n });\n}\nexport function sleep(timeoutInMs) {\n return new Promise(function (resolve) { return setTimeout(resolve, timeoutInMs); });\n}\n/**\n * @param ctx\n * @param callback - the function to invoke\n * @param delay - aka \"timeout\". The amount of time in ms to wait before invoking the callback.\n */\nexport function invokeCallback(ctx, callback, delay) {\n var cb = function () {\n try {\n return Promise.resolve(callback(ctx));\n }\n catch (err) {\n return Promise.reject(err);\n }\n };\n return (sleep(delay)\n // pTimeout ensures that the callback can't cause the context to hang\n .then(function () { return pTimeout(cb(), 1000); })\n .catch(function (err) {\n ctx === null || ctx === void 0 ? void 0 : ctx.log('warn', 'Callback Error', { error: err });\n ctx === null || ctx === void 0 ? void 0 : ctx.stats.increment('callback_error');\n })\n .then(function () { return ctx; }));\n}\n//# sourceMappingURL=index.js.map","export function backoff(params) {\n var random = Math.random() + 1;\n var _a = params.minTimeout, minTimeout = _a === void 0 ? 500 : _a, _b = params.factor, factor = _b === void 0 ? 2 : _b, attempt = params.attempt, _c = params.maxTimeout, maxTimeout = _c === void 0 ? Infinity : _c;\n return Math.min(random * minTimeout * Math.pow(factor, attempt), maxTimeout);\n}\n//# sourceMappingURL=backoff.js.map","import { __extends } from \"tslib\";\nimport { Emitter } from '../emitter';\nimport { backoff } from './backoff';\n/**\n * @internal\n */\nexport var ON_REMOVE_FROM_FUTURE = 'onRemoveFromFuture';\nvar PriorityQueue = /** @class */ (function (_super) {\n __extends(PriorityQueue, _super);\n function PriorityQueue(maxAttempts, queue, seen) {\n var _this = _super.call(this) || this;\n _this.future = [];\n _this.maxAttempts = maxAttempts;\n _this.queue = queue;\n _this.seen = seen !== null && seen !== void 0 ? seen : {};\n return _this;\n }\n PriorityQueue.prototype.push = function () {\n var _this = this;\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n var accepted = items.map(function (operation) {\n var attempts = _this.updateAttempts(operation);\n if (attempts > _this.maxAttempts || _this.includes(operation)) {\n return false;\n }\n _this.queue.push(operation);\n return true;\n });\n this.queue = this.queue.sort(function (a, b) { return _this.getAttempts(a) - _this.getAttempts(b); });\n return accepted;\n };\n PriorityQueue.prototype.pushWithBackoff = function (item) {\n var _this = this;\n if (this.getAttempts(item) === 0) {\n return this.push(item)[0];\n }\n var attempt = this.updateAttempts(item);\n if (attempt > this.maxAttempts || this.includes(item)) {\n return false;\n }\n var timeout = backoff({ attempt: attempt - 1 });\n setTimeout(function () {\n _this.queue.push(item);\n // remove from future list\n _this.future = _this.future.filter(function (f) { return f.id !== item.id; });\n // Lets listeners know that a 'future' message is now available in the queue\n _this.emit(ON_REMOVE_FROM_FUTURE);\n }, timeout);\n this.future.push(item);\n return true;\n };\n PriorityQueue.prototype.getAttempts = function (item) {\n var _a;\n return (_a = this.seen[item.id]) !== null && _a !== void 0 ? _a : 0;\n };\n PriorityQueue.prototype.updateAttempts = function (item) {\n this.seen[item.id] = this.getAttempts(item) + 1;\n return this.getAttempts(item);\n };\n PriorityQueue.prototype.includes = function (item) {\n return (this.queue.includes(item) ||\n this.future.includes(item) ||\n Boolean(this.queue.find(function (i) { return i.id === item.id; })) ||\n Boolean(this.future.find(function (i) { return i.id === item.id; })));\n };\n PriorityQueue.prototype.pop = function () {\n return this.queue.shift();\n };\n Object.defineProperty(PriorityQueue.prototype, \"length\", {\n get: function () {\n return this.queue.length;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PriorityQueue.prototype, \"todo\", {\n get: function () {\n return this.queue.length + this.future.length;\n },\n enumerable: false,\n configurable: true\n });\n return PriorityQueue;\n}(Emitter));\nexport { PriorityQueue };\n//# sourceMappingURL=index.js.map","var IDX=256, HEX=[], BUFFER;\nwhile (IDX--) HEX[IDX] = (IDX + 256).toString(16).substring(1);\n\nexport function v4() {\n\tvar i=0, num, out='';\n\n\tif (!BUFFER || ((IDX + 16) > 256)) {\n\t\tBUFFER = Array(i=256);\n\t\twhile (i--) BUFFER[i] = 256 * Math.random() | 0;\n\t\ti = IDX = 0;\n\t}\n\n\tfor (; i < 16; i++) {\n\t\tnum = BUFFER[IDX + i];\n\t\tif (i==6) out += HEX[num & 15 | 64];\n\t\telse if (i==8) out += HEX[num & 63 | 128];\n\t\telse out += HEX[num];\n\n\t\tif (i & 1 && i > 1 && i < 11) out += '-';\n\t}\n\n\tIDX++;\n\treturn out;\n}\n","import { __assign } from \"tslib\";\nvar CoreLogger = /** @class */ (function () {\n function CoreLogger() {\n this._logs = [];\n }\n CoreLogger.prototype.log = function (level, message, extras) {\n var time = new Date();\n this._logs.push({\n level: level,\n message: message,\n time: time,\n extras: extras,\n });\n };\n Object.defineProperty(CoreLogger.prototype, \"logs\", {\n get: function () {\n return this._logs;\n },\n enumerable: false,\n configurable: true\n });\n CoreLogger.prototype.flush = function () {\n if (this.logs.length > 1) {\n var formatted = this._logs.reduce(function (logs, log) {\n var _a;\n var _b, _c;\n var line = __assign(__assign({}, log), { json: JSON.stringify(log.extras, null, ' '), extras: log.extras });\n delete line['time'];\n var key = (_c = (_b = log.time) === null || _b === void 0 ? void 0 : _b.toISOString()) !== null && _c !== void 0 ? _c : '';\n if (logs[key]) {\n key = \"\".concat(key, \"-\").concat(Math.random());\n }\n return __assign(__assign({}, logs), (_a = {}, _a[key] = line, _a));\n }, {});\n // ie doesn't like console.table\n if (console.table) {\n console.table(formatted);\n }\n else {\n console.log(formatted);\n }\n }\n else {\n this.logs.forEach(function (logEntry) {\n var level = logEntry.level, message = logEntry.message, extras = logEntry.extras;\n if (level === 'info' || level === 'debug') {\n console.log(message, extras !== null && extras !== void 0 ? extras : '');\n }\n else {\n console[level](message, extras !== null && extras !== void 0 ? extras : '');\n }\n });\n }\n this._logs = [];\n };\n return CoreLogger;\n}());\nexport { CoreLogger };\n//# sourceMappingURL=index.js.map","import { __assign, __extends } from \"tslib\";\nvar compactMetricType = function (type) {\n var enums = {\n gauge: 'g',\n counter: 'c',\n };\n return enums[type];\n};\nvar CoreStats = /** @class */ (function () {\n function CoreStats() {\n this.metrics = [];\n }\n CoreStats.prototype.increment = function (metric, by, tags) {\n if (by === void 0) { by = 1; }\n this.metrics.push({\n metric: metric,\n value: by,\n tags: tags !== null && tags !== void 0 ? tags : [],\n type: 'counter',\n timestamp: Date.now(),\n });\n };\n CoreStats.prototype.gauge = function (metric, value, tags) {\n this.metrics.push({\n metric: metric,\n value: value,\n tags: tags !== null && tags !== void 0 ? tags : [],\n type: 'gauge',\n timestamp: Date.now(),\n });\n };\n CoreStats.prototype.flush = function () {\n var formatted = this.metrics.map(function (m) { return (__assign(__assign({}, m), { tags: m.tags.join(',') })); });\n // ie doesn't like console.table\n if (console.table) {\n console.table(formatted);\n }\n else {\n console.log(formatted);\n }\n this.metrics = [];\n };\n /**\n * compact keys for smaller payload\n */\n CoreStats.prototype.serialize = function () {\n return this.metrics.map(function (m) {\n return {\n m: m.metric,\n v: m.value,\n t: m.tags,\n k: compactMetricType(m.type),\n e: m.timestamp,\n };\n });\n };\n return CoreStats;\n}());\nexport { CoreStats };\nvar NullStats = /** @class */ (function (_super) {\n __extends(NullStats, _super);\n function NullStats() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NullStats.prototype.gauge = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n };\n NullStats.prototype.increment = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n };\n NullStats.prototype.flush = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n };\n NullStats.prototype.serialize = function () {\n var _args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n _args[_i] = arguments[_i];\n }\n return [];\n };\n return NullStats;\n}(CoreStats));\nexport { NullStats };\n//# sourceMappingURL=index.js.map","import { v4 as uuid } from '@lukeed/uuid';\nimport { dset } from 'dset';\nimport { CoreLogger } from '../logger';\nimport { NullStats } from '../stats';\nvar ContextCancelation = /** @class */ (function () {\n function ContextCancelation(options) {\n var _a, _b, _c;\n this.retry = (_a = options.retry) !== null && _a !== void 0 ? _a : true;\n this.type = (_b = options.type) !== null && _b !== void 0 ? _b : 'plugin Error';\n this.reason = (_c = options.reason) !== null && _c !== void 0 ? _c : '';\n }\n return ContextCancelation;\n}());\nexport { ContextCancelation };\nvar CoreContext = /** @class */ (function () {\n function CoreContext(event, id, stats, logger) {\n if (id === void 0) { id = uuid(); }\n if (stats === void 0) { stats = new NullStats(); }\n if (logger === void 0) { logger = new CoreLogger(); }\n this.attempts = 0;\n this.event = event;\n this._id = id;\n this.logger = logger;\n this.stats = stats;\n }\n CoreContext.system = function () {\n // This should be overridden by the subclass to return an instance of the subclass.\n };\n CoreContext.prototype.isSame = function (other) {\n return other.id === this.id;\n };\n CoreContext.prototype.cancel = function (error) {\n if (error) {\n throw error;\n }\n throw new ContextCancelation({ reason: 'Context Cancel' });\n };\n CoreContext.prototype.log = function (level, message, extras) {\n this.logger.log(level, message, extras);\n };\n Object.defineProperty(CoreContext.prototype, \"id\", {\n get: function () {\n return this._id;\n },\n enumerable: false,\n configurable: true\n });\n CoreContext.prototype.updateEvent = function (path, val) {\n var _a;\n // Don't allow integrations that are set to false to be overwritten with integration settings.\n if (path.split('.')[0] === 'integrations') {\n var integrationName = path.split('.')[1];\n if (((_a = this.event.integrations) === null || _a === void 0 ? void 0 : _a[integrationName]) === false) {\n return this.event;\n }\n }\n dset(this.event, path, val);\n return this.event;\n };\n CoreContext.prototype.failedDelivery = function () {\n return this._failedDelivery;\n };\n CoreContext.prototype.setFailedDelivery = function (options) {\n this._failedDelivery = options;\n };\n CoreContext.prototype.logs = function () {\n return this.logger.logs;\n };\n CoreContext.prototype.flush = function () {\n this.logger.flush();\n this.stats.flush();\n };\n CoreContext.prototype.toJSON = function () {\n return {\n id: this._id,\n event: this.event,\n logs: this.logger.logs,\n metrics: this.stats.metrics,\n };\n };\n return CoreContext;\n}());\nexport { CoreContext };\n//# sourceMappingURL=index.js.map","import { __spreadArray } from \"tslib\";\nexport function groupBy(collection, grouper) {\n var results = {};\n collection.forEach(function (item) {\n var _a;\n var key = undefined;\n if (typeof grouper === 'string') {\n var suggestedKey = item[grouper];\n key =\n typeof suggestedKey !== 'string'\n ? JSON.stringify(suggestedKey)\n : suggestedKey;\n }\n else if (grouper instanceof Function) {\n key = grouper(item);\n }\n if (key === undefined) {\n return;\n }\n results[key] = __spreadArray(__spreadArray([], ((_a = results[key]) !== null && _a !== void 0 ? _a : []), true), [item], false);\n });\n return results;\n}\n//# sourceMappingURL=group-by.js.map","/**\n * Check if thenable\n * (instanceof Promise doesn't respect realms)\n */\nexport var isThenable = function (value) {\n return typeof value === 'object' &&\n value !== null &&\n 'then' in value &&\n typeof value.then === 'function';\n};\n//# sourceMappingURL=is-thenable.js.map","import { isThenable } from '../utils/is-thenable';\nexport var createTaskGroup = function () {\n var taskCompletionPromise;\n var resolvePromise;\n var count = 0;\n return {\n done: function () { return taskCompletionPromise; },\n run: function (op) {\n var returnValue = op();\n if (isThenable(returnValue)) {\n if (++count === 1) {\n taskCompletionPromise = new Promise(function (res) { return (resolvePromise = res); });\n }\n returnValue.finally(function () { return --count === 0 && resolvePromise(); });\n }\n return returnValue;\n },\n };\n};\n//# sourceMappingURL=task-group.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { CoreContext, ContextCancelation } from '../context';\nfunction tryAsync(fn) {\n return __awaiter(this, void 0, void 0, function () {\n var err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, fn()];\n case 1: return [2 /*return*/, _a.sent()];\n case 2:\n err_1 = _a.sent();\n return [2 /*return*/, Promise.reject(err_1)];\n case 3: return [2 /*return*/];\n }\n });\n });\n}\nexport function attempt(ctx, plugin) {\n ctx.log('debug', 'plugin', { plugin: plugin.name });\n var start = new Date().getTime();\n var hook = plugin[ctx.event.type];\n if (hook === undefined) {\n return Promise.resolve(ctx);\n }\n var newCtx = tryAsync(function () { return hook.apply(plugin, [ctx]); })\n .then(function (ctx) {\n var done = new Date().getTime() - start;\n ctx.stats.gauge('plugin_time', done, [\"plugin:\".concat(plugin.name)]);\n return ctx;\n })\n .catch(function (err) {\n if (err instanceof ContextCancelation &&\n err.type === 'middleware_cancellation') {\n throw err;\n }\n if (err instanceof ContextCancelation) {\n ctx.log('warn', err.type, {\n plugin: plugin.name,\n error: err,\n });\n return err;\n }\n ctx.log('error', 'plugin Error', {\n plugin: plugin.name,\n error: err,\n });\n ctx.stats.increment('plugin_error', 1, [\"plugin:\".concat(plugin.name)]);\n return err;\n });\n return newCtx;\n}\nexport function ensure(ctx, plugin) {\n return attempt(ctx, plugin).then(function (newContext) {\n if (newContext instanceof CoreContext) {\n return newContext;\n }\n ctx.log('debug', 'Context canceled');\n ctx.stats.increment('context_canceled');\n ctx.cancel(newContext);\n });\n}\n//# sourceMappingURL=delivery.js.map","export function isBrowser() {\n return typeof window !== 'undefined';\n}\nexport function isServer() {\n return !isBrowser();\n}\n//# sourceMappingURL=environment.js.map","import { isBrowser } from '../utils/environment';\nexport function isOnline() {\n if (isBrowser()) {\n return window.navigator.onLine;\n }\n return true;\n}\nexport function isOffline() {\n return !isOnline();\n}\n//# sourceMappingURL=index.js.map","import { __awaiter, __extends, __generator } from \"tslib\";\nimport { groupBy } from '../utils/group-by';\nimport { ON_REMOVE_FROM_FUTURE } from '../priority-queue';\nimport { CoreContext, ContextCancelation } from '../context';\nimport { Emitter } from '../emitter';\nimport { createTaskGroup } from '../task/task-group';\nimport { attempt, ensure } from './delivery';\nimport { isOffline } from '../connection';\nvar CoreEventQueue = /** @class */ (function (_super) {\n __extends(CoreEventQueue, _super);\n function CoreEventQueue(priorityQueue) {\n var _this = _super.call(this) || this;\n /**\n * All event deliveries get suspended until all the tasks in this task group are complete.\n * For example: a middleware that augments the event object should be loaded safely as a\n * critical task, this way, event queue will wait for it to be ready before sending events.\n *\n * This applies to all the events already in the queue, and the upcoming ones\n */\n _this.criticalTasks = createTaskGroup();\n _this.plugins = [];\n _this.failedInitializations = [];\n _this.flushing = false;\n _this.queue = priorityQueue;\n _this.queue.on(ON_REMOVE_FROM_FUTURE, function () {\n _this.scheduleFlush(0);\n });\n return _this;\n }\n CoreEventQueue.prototype.register = function (ctx, plugin, instance) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Promise.resolve(plugin.load(ctx, instance))\n .then(function () {\n _this.plugins.push(plugin);\n })\n .catch(function (err) {\n if (plugin.type === 'destination') {\n _this.failedInitializations.push(plugin.name);\n console.warn(plugin.name, err);\n ctx.log('warn', 'Failed to load destination', {\n plugin: plugin.name,\n error: err,\n });\n return;\n }\n throw err;\n })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n CoreEventQueue.prototype.deregister = function (ctx, plugin, instance) {\n return __awaiter(this, void 0, void 0, function () {\n var e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n if (!plugin.unload) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.resolve(plugin.unload(ctx, instance))];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n this.plugins = this.plugins.filter(function (p) { return p.name !== plugin.name; });\n return [3 /*break*/, 4];\n case 3:\n e_1 = _a.sent();\n ctx.log('warn', 'Failed to unload destination', {\n plugin: plugin.name,\n error: e_1,\n });\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n CoreEventQueue.prototype.dispatch = function (ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var willDeliver;\n return __generator(this, function (_a) {\n ctx.log('debug', 'Dispatching');\n ctx.stats.increment('message_dispatched');\n this.queue.push(ctx);\n willDeliver = this.subscribeToDelivery(ctx);\n this.scheduleFlush(0);\n return [2 /*return*/, willDeliver];\n });\n });\n };\n CoreEventQueue.prototype.subscribeToDelivery = function (ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve) {\n var onDeliver = function (flushed, delivered) {\n if (flushed.isSame(ctx)) {\n _this.off('flush', onDeliver);\n if (delivered) {\n resolve(flushed);\n }\n else {\n resolve(flushed);\n }\n }\n };\n _this.on('flush', onDeliver);\n })];\n });\n });\n };\n CoreEventQueue.prototype.dispatchSingle = function (ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n ctx.log('debug', 'Dispatching');\n ctx.stats.increment('message_dispatched');\n this.queue.updateAttempts(ctx);\n ctx.attempts = 1;\n return [2 /*return*/, this.deliver(ctx).catch(function (err) {\n var accepted = _this.enqueuRetry(err, ctx);\n if (!accepted) {\n ctx.setFailedDelivery({ reason: err });\n return ctx;\n }\n return _this.subscribeToDelivery(ctx);\n })];\n });\n });\n };\n CoreEventQueue.prototype.isEmpty = function () {\n return this.queue.length === 0;\n };\n CoreEventQueue.prototype.scheduleFlush = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = 500; }\n if (this.flushing) {\n return;\n }\n this.flushing = true;\n setTimeout(function () {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n _this.flush().then(function () {\n setTimeout(function () {\n _this.flushing = false;\n if (_this.queue.length) {\n _this.scheduleFlush(0);\n }\n }, 0);\n });\n }, timeout);\n };\n CoreEventQueue.prototype.deliver = function (ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var start, done, err_1, error;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.criticalTasks.done()];\n case 1:\n _a.sent();\n start = Date.now();\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4 /*yield*/, this.flushOne(ctx)];\n case 3:\n ctx = _a.sent();\n done = Date.now() - start;\n this.emit('delivery_success', ctx);\n ctx.stats.gauge('delivered', done);\n ctx.log('debug', 'Delivered', ctx.event);\n return [2 /*return*/, ctx];\n case 4:\n err_1 = _a.sent();\n error = err_1;\n ctx.log('error', 'Failed to deliver', error);\n this.emit('delivery_failure', ctx, error);\n ctx.stats.increment('delivery_failed');\n throw err_1;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n CoreEventQueue.prototype.enqueuRetry = function (err, ctx) {\n var retriable = !(err instanceof ContextCancelation) || err.retry;\n if (!retriable) {\n return false;\n }\n return this.queue.pushWithBackoff(ctx);\n };\n CoreEventQueue.prototype.flush = function () {\n return __awaiter(this, void 0, void 0, function () {\n var ctx, err_2, accepted;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.queue.length === 0 || isOffline()) {\n return [2 /*return*/, []];\n }\n ctx = this.queue.pop();\n if (!ctx) {\n return [2 /*return*/, []];\n }\n ctx.attempts = this.queue.getAttempts(ctx);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.deliver(ctx)];\n case 2:\n ctx = _a.sent();\n this.emit('flush', ctx, true);\n return [3 /*break*/, 4];\n case 3:\n err_2 = _a.sent();\n accepted = this.enqueuRetry(err_2, ctx);\n if (!accepted) {\n ctx.setFailedDelivery({ reason: err_2 });\n this.emit('flush', ctx, false);\n }\n return [2 /*return*/, []];\n case 4: return [2 /*return*/, [ctx]];\n }\n });\n });\n };\n CoreEventQueue.prototype.isReady = function () {\n // return this.plugins.every((p) => p.isLoaded())\n // should we wait for every plugin to load?\n return true;\n };\n CoreEventQueue.prototype.availableExtensions = function (denyList) {\n var available = this.plugins.filter(function (p) {\n var _a, _b, _c;\n // Only filter out destination plugins or the Segment.io plugin\n if (p.type !== 'destination' && p.name !== 'Segment.io') {\n return true;\n }\n var alternativeNameMatch = undefined;\n (_a = p.alternativeNames) === null || _a === void 0 ? void 0 : _a.forEach(function (name) {\n if (denyList[name] !== undefined) {\n alternativeNameMatch = denyList[name];\n }\n });\n // Explicit integration option takes precedence, `All: false` does not apply to Segment.io\n return ((_c = (_b = denyList[p.name]) !== null && _b !== void 0 ? _b : alternativeNameMatch) !== null && _c !== void 0 ? _c : (p.name === 'Segment.io' ? true : denyList.All) !== false);\n });\n var _a = groupBy(available, 'type'), _b = _a.before, before = _b === void 0 ? [] : _b, _c = _a.enrichment, enrichment = _c === void 0 ? [] : _c, _d = _a.destination, destination = _d === void 0 ? [] : _d, _e = _a.after, after = _e === void 0 ? [] : _e;\n return {\n before: before,\n enrichment: enrichment,\n destinations: destination,\n after: after,\n };\n };\n CoreEventQueue.prototype.flushOne = function (ctx) {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function () {\n var _c, before, enrichment, _i, before_1, beforeWare, temp, _d, enrichment_1, enrichmentWare, temp, _e, destinations, after, afterCalls;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n if (!this.isReady()) {\n throw new Error('Not ready');\n }\n if (ctx.attempts > 1) {\n this.emit('delivery_retry', ctx);\n }\n _c = this.availableExtensions((_a = ctx.event.integrations) !== null && _a !== void 0 ? _a : {}), before = _c.before, enrichment = _c.enrichment;\n _i = 0, before_1 = before;\n _f.label = 1;\n case 1:\n if (!(_i < before_1.length)) return [3 /*break*/, 4];\n beforeWare = before_1[_i];\n return [4 /*yield*/, ensure(ctx, beforeWare)];\n case 2:\n temp = _f.sent();\n if (temp instanceof CoreContext) {\n ctx = temp;\n }\n this.emit('message_enriched', ctx, beforeWare);\n _f.label = 3;\n case 3:\n _i++;\n return [3 /*break*/, 1];\n case 4:\n _d = 0, enrichment_1 = enrichment;\n _f.label = 5;\n case 5:\n if (!(_d < enrichment_1.length)) return [3 /*break*/, 8];\n enrichmentWare = enrichment_1[_d];\n return [4 /*yield*/, attempt(ctx, enrichmentWare)];\n case 6:\n temp = _f.sent();\n if (temp instanceof CoreContext) {\n ctx = temp;\n }\n this.emit('message_enriched', ctx, enrichmentWare);\n _f.label = 7;\n case 7:\n _d++;\n return [3 /*break*/, 5];\n case 8:\n _e = this.availableExtensions((_b = ctx.event.integrations) !== null && _b !== void 0 ? _b : {}), destinations = _e.destinations, after = _e.after;\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n setTimeout(function () {\n var attempts = destinations.map(function (destination) {\n return attempt(ctx, destination);\n });\n Promise.all(attempts).then(resolve).catch(reject);\n }, 0);\n })];\n case 9:\n _f.sent();\n ctx.stats.increment('message_delivered');\n this.emit('message_delivered', ctx);\n afterCalls = after.map(function (after) { return attempt(ctx, after); });\n return [4 /*yield*/, Promise.all(afterCalls)];\n case 10:\n _f.sent();\n return [2 /*return*/, ctx];\n }\n });\n });\n };\n return CoreEventQueue;\n}(Emitter));\nexport { CoreEventQueue };\n//# sourceMappingURL=event-queue.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { invokeCallback } from '../callback';\n/* The amount of time in ms to wait before invoking the callback. */\nexport var getDelay = function (startTimeInEpochMS, timeoutInMS) {\n var elapsedTime = Date.now() - startTimeInEpochMS;\n // increasing the timeout increases the delay by almost the same amount -- this is weird legacy behavior.\n return Math.max((timeoutInMS !== null && timeoutInMS !== void 0 ? timeoutInMS : 300) - elapsedTime, 0);\n};\n/**\n * Push an event into the dispatch queue and invoke any callbacks.\n *\n * @param event - Segment event to enqueue.\n * @param queue - Queue to dispatch against.\n * @param emitter - This is typically an instance of \"Analytics\" -- used for metrics / progress information.\n * @param options\n */\nexport function dispatch(ctx, queue, emitter, options) {\n return __awaiter(this, void 0, void 0, function () {\n var startTime, dispatched;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n emitter.emit('dispatch_start', ctx);\n startTime = Date.now();\n if (!queue.isEmpty()) return [3 /*break*/, 2];\n return [4 /*yield*/, queue.dispatchSingle(ctx)];\n case 1:\n dispatched = _a.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, queue.dispatch(ctx)];\n case 3:\n dispatched = _a.sent();\n _a.label = 4;\n case 4:\n if (!(options === null || options === void 0 ? void 0 : options.callback)) return [3 /*break*/, 6];\n return [4 /*yield*/, invokeCallback(dispatched, options.callback, getDelay(startTime, options.timeout))];\n case 5:\n dispatched = _a.sent();\n _a.label = 6;\n case 6:\n if (options === null || options === void 0 ? void 0 : options.debug) {\n dispatched.flush();\n }\n return [2 /*return*/, dispatched];\n }\n });\n });\n}\n//# sourceMappingURL=dispatch.js.map","export default function(e,n){return n=n||{},new Promise(function(t,r){var s=new XMLHttpRequest,o=[],u=[],i={},a=function(){return{ok:2==(s.status/100|0),statusText:s.statusText,status:s.status,url:s.responseURL,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(s.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([s.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var l in s.open(n.method||\"get\",e,!0),s.onload=function(){s.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm,function(e,n,t){o.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+\",\"+t:t}),t(a())},s.onerror=r,s.withCredentials=\"include\"==n.credentials,n.headers)s.setRequestHeader(l,n.headers[l]);s.send(n.body||null)})}\n//# sourceMappingURL=unfetch.module.js.map\n","// This an imperfect polyfill for globalThis\nexport var getGlobal = function () {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n return null;\n};\n//# sourceMappingURL=get-global.js.map","// @ts-nocheck\nimport unfetch from 'unfetch';\nimport { getGlobal } from './get-global';\n/**\n * Wrapper around native `fetch` containing `unfetch` fallback.\n */\nexport var fetch = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var global = getGlobal();\n return ((global && global.fetch) || unfetch).apply(void 0, args);\n};\n//# sourceMappingURL=fetch.js.map","// This file is generated.\nexport var version = '2.0.0';\n//# sourceMappingURL=version.js.map","/*! js-cookie v3.0.1 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (key, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n key = encodeURIComponent(key)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n key + '=' + converter.write(value, key) + stringifiedAttributes)\n }\n\n function get (key) {\n if (typeof document === 'undefined' || (arguments.length && !key)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var foundKey = decodeURIComponent(parts[0]);\n jar[foundKey] = converter.read(value, foundKey);\n\n if (key === foundKey) {\n break\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar\n }\n\n return Object.create(\n {\n set: set,\n get: get,\n remove: function (key, attributes) {\n set(\n key,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport default api;\n","/**\n * Tries to gets the unencoded version of an encoded component of a\n * Uniform Resource Identifier (URI). If input string is malformed,\n * returns it back as-is.\n *\n * Note: All occurences of the `+` character become ` ` (spaces).\n **/\nexport function gracefulDecodeURIComponent(encodedURIComponent) {\n try {\n return decodeURIComponent(encodedURIComponent.replace(/\\+/g, ' '));\n }\n catch (_a) {\n return encodedURIComponent;\n }\n}\n//# sourceMappingURL=gracefulDecodeURIComponent.js.map","import cookie from 'js-cookie';\n/**\n * Levels returns all levels of the given url.\n *\n * @param {string} url\n * @return {Array}\n * @api public\n */\nfunction levels(url) {\n var host = url.hostname;\n var parts = host.split('.');\n var last = parts[parts.length - 1];\n var levels = [];\n // Ip address.\n if (parts.length === 4 && parseInt(last, 10) > 0) {\n return levels;\n }\n // Localhost.\n if (parts.length <= 1) {\n return levels;\n }\n // Create levels.\n for (var i = parts.length - 2; i >= 0; --i) {\n levels.push(parts.slice(i).join('.'));\n }\n return levels;\n}\nfunction parseUrl(url) {\n try {\n return new URL(url);\n }\n catch (_a) {\n return;\n }\n}\nexport function tld(url) {\n var parsedUrl = parseUrl(url);\n if (!parsedUrl)\n return;\n var lvls = levels(parsedUrl);\n // Lookup the real top level one.\n for (var i = 0; i < lvls.length; ++i) {\n var cname = '__tld__';\n var domain = lvls[i];\n var opts = { domain: '.' + domain };\n try {\n // cookie access throw an error if the library is ran inside a sandboxed environment (e.g. sandboxed iframe)\n cookie.set(cname, '1', opts);\n if (cookie.get(cname)) {\n cookie.remove(cname, opts);\n return domain;\n }\n }\n catch (_) {\n return;\n }\n }\n}\n//# sourceMappingURL=tld.js.map","export default function bindAll(obj) {\n var proto = obj.constructor.prototype;\n for (var _i = 0, _a = Object.getOwnPropertyNames(proto); _i < _a.length; _i++) {\n var key = _a[_i];\n if (key !== 'constructor') {\n var desc = Object.getOwnPropertyDescriptor(obj.constructor.prototype, key);\n if (!!desc && typeof desc.value === 'function') {\n obj[key] = obj[key].bind(obj);\n }\n }\n }\n return obj;\n}\n//# sourceMappingURL=bind-all.js.map","import { __assign, __extends } from \"tslib\";\nimport { v4 as uuid } from '@lukeed/uuid';\nimport jar from 'js-cookie';\nimport { tld } from './tld';\nimport autoBind from '../../lib/bind-all';\nvar defaults = {\n persist: true,\n cookie: {\n key: 'ajs_user_id',\n oldKey: 'ajs_user',\n },\n localStorage: {\n key: 'ajs_user_traits',\n },\n};\nvar Store = /** @class */ (function () {\n function Store() {\n this.cache = {};\n }\n Store.prototype.get = function (key) {\n return this.cache[key];\n };\n Store.prototype.set = function (key, value) {\n this.cache[key] = value;\n };\n Store.prototype.remove = function (key) {\n delete this.cache[key];\n };\n Object.defineProperty(Store.prototype, \"type\", {\n get: function () {\n return 'memory';\n },\n enumerable: false,\n configurable: true\n });\n return Store;\n}());\nvar ONE_YEAR = 365;\nvar Cookie = /** @class */ (function (_super) {\n __extends(Cookie, _super);\n function Cookie(options) {\n if (options === void 0) { options = Cookie.defaults; }\n var _this = _super.call(this) || this;\n _this.options = __assign(__assign({}, Cookie.defaults), options);\n return _this;\n }\n Cookie.available = function () {\n var cookieEnabled = window.navigator.cookieEnabled;\n if (!cookieEnabled) {\n jar.set('ajs:cookies', 'test');\n cookieEnabled = document.cookie.includes('ajs:cookies');\n jar.remove('ajs:cookies');\n }\n return cookieEnabled;\n };\n Object.defineProperty(Cookie, \"defaults\", {\n get: function () {\n return {\n maxage: ONE_YEAR,\n domain: tld(window.location.href),\n path: '/',\n sameSite: 'Lax',\n };\n },\n enumerable: false,\n configurable: true\n });\n Cookie.prototype.opts = function () {\n return {\n sameSite: this.options.sameSite,\n expires: this.options.maxage,\n domain: this.options.domain,\n path: this.options.path,\n secure: this.options.secure,\n };\n };\n Cookie.prototype.get = function (key) {\n try {\n var value = jar.get(key);\n if (!value) {\n return null;\n }\n try {\n return JSON.parse(value);\n }\n catch (e) {\n return value;\n }\n }\n catch (e) {\n return null;\n }\n };\n Cookie.prototype.set = function (key, value) {\n if (typeof value === 'string') {\n jar.set(key, value, this.opts());\n }\n else if (value === null) {\n jar.remove(key, this.opts());\n }\n else {\n jar.set(key, JSON.stringify(value), this.opts());\n }\n };\n Cookie.prototype.remove = function (key) {\n return jar.remove(key, this.opts());\n };\n Object.defineProperty(Cookie.prototype, \"type\", {\n get: function () {\n return 'cookie';\n },\n enumerable: false,\n configurable: true\n });\n return Cookie;\n}(Store));\nexport { Cookie };\nvar localStorageWarning = function (key, state) {\n console.warn(\"Unable to access \".concat(key, \", localStorage may be \").concat(state));\n};\nvar LocalStorage = /** @class */ (function (_super) {\n __extends(LocalStorage, _super);\n function LocalStorage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LocalStorage.available = function () {\n var test = 'test';\n try {\n localStorage.setItem(test, test);\n localStorage.removeItem(test);\n return true;\n }\n catch (e) {\n return false;\n }\n };\n LocalStorage.prototype.get = function (key) {\n try {\n var val = localStorage.getItem(key);\n if (val === null) {\n return null;\n }\n try {\n return JSON.parse(val);\n }\n catch (e) {\n return val;\n }\n }\n catch (err) {\n localStorageWarning(key, 'unavailable');\n return null;\n }\n };\n LocalStorage.prototype.set = function (key, value) {\n try {\n localStorage.setItem(key, JSON.stringify(value));\n }\n catch (_a) {\n localStorageWarning(key, 'full');\n }\n };\n LocalStorage.prototype.remove = function (key) {\n try {\n return localStorage.removeItem(key);\n }\n catch (err) {\n localStorageWarning(key, 'unavailable');\n }\n };\n Object.defineProperty(LocalStorage.prototype, \"type\", {\n get: function () {\n return 'localStorage';\n },\n enumerable: false,\n configurable: true\n });\n return LocalStorage;\n}(Store));\nexport { LocalStorage };\nvar UniversalStorage = /** @class */ (function () {\n function UniversalStorage(stores, storageOptions) {\n this.storageOptions = storageOptions;\n this.enabledStores = stores;\n }\n UniversalStorage.prototype.getStores = function (storeTypes) {\n var _this = this;\n var stores = [];\n this.enabledStores\n .filter(function (i) { return !storeTypes || (storeTypes === null || storeTypes === void 0 ? void 0 : storeTypes.includes(i)); })\n .forEach(function (storeType) {\n var storage = _this.storageOptions[storeType];\n if (storage !== undefined) {\n stores.push(storage);\n }\n });\n return stores;\n };\n /*\n This is to support few scenarios where:\n - value exist in one of the stores ( as a result of other stores being cleared from browser ) and we want to resync them\n - read values in AJS 1.0 format ( for customers after 1.0 --> 2.0 migration ) and then re-write them in AJS 2.0 format\n */\n /**\n * get value for the key from the stores. it will pick the first value found in the stores, and then sync the value to all the stores\n * if the found value is a number, it will be converted to a string. this is to support legacy behavior that existed in AJS 1.0\n * @param key key for the value to be retrieved\n * @param storeTypes optional array of store types to be used for performing get and sync\n * @returns value for the key or null if not found\n */\n UniversalStorage.prototype.getAndSync = function (key, storeTypes) {\n var val = this.get(key, storeTypes);\n // legacy behavior, getAndSync can change the type of a value from number to string (AJS 1.0 stores numerical values as a number)\n var coercedValue = (typeof val === 'number' ? val.toString() : val);\n this.set(key, coercedValue, storeTypes);\n return coercedValue;\n };\n /**\n * get value for the key from the stores. it will return the first value found in the stores\n * @param key key for the value to be retrieved\n * @param storeTypes optional array of store types to be used for retrieving the value\n * @returns value for the key or null if not found\n */\n UniversalStorage.prototype.get = function (key, storeTypes) {\n var val = null;\n for (var _i = 0, _a = this.getStores(storeTypes); _i < _a.length; _i++) {\n var store = _a[_i];\n val = store.get(key);\n if (val) {\n return val;\n }\n }\n return null;\n };\n /**\n * it will set the value for the key in all the stores\n * @param key key for the value to be stored\n * @param value value to be stored\n * @param storeTypes optional array of store types to be used for storing the value\n * @returns value that was stored\n */\n UniversalStorage.prototype.set = function (key, value, storeTypes) {\n for (var _i = 0, _a = this.getStores(storeTypes); _i < _a.length; _i++) {\n var store = _a[_i];\n store.set(key, value);\n }\n };\n /**\n * remove the value for the key from all the stores\n * @param key key for the value to be removed\n * @param storeTypes optional array of store types to be used for removing the value\n */\n UniversalStorage.prototype.clear = function (key, storeTypes) {\n for (var _i = 0, _a = this.getStores(storeTypes); _i < _a.length; _i++) {\n var store = _a[_i];\n store.remove(key);\n }\n };\n return UniversalStorage;\n}());\nexport { UniversalStorage };\nexport function getAvailableStorageOptions(cookieOptions) {\n return {\n cookie: Cookie.available() ? new Cookie(cookieOptions) : undefined,\n localStorage: LocalStorage.available() ? new LocalStorage() : undefined,\n memory: new Store(),\n };\n}\nvar User = /** @class */ (function () {\n function User(options, cookieOptions) {\n if (options === void 0) { options = defaults; }\n var _this = this;\n var _a, _b, _c, _d;\n this.options = {};\n this.id = function (id) {\n if (_this.options.disable) {\n return null;\n }\n var prevId = _this.identityStore.getAndSync(_this.idKey);\n if (id !== undefined) {\n _this.identityStore.set(_this.idKey, id);\n var changingIdentity = id !== prevId && prevId !== null && id !== null;\n if (changingIdentity) {\n _this.anonymousId(null);\n }\n }\n var retId = _this.identityStore.getAndSync(_this.idKey);\n if (retId)\n return retId;\n var retLeg = _this.legacyUserStore.get(defaults.cookie.oldKey);\n return retLeg ? (typeof retLeg === 'object' ? retLeg.id : retLeg) : null;\n };\n this.anonymousId = function (id) {\n var _a, _b;\n if (_this.options.disable) {\n return null;\n }\n if (id === undefined) {\n var val = (_a = _this.identityStore.getAndSync(_this.anonKey)) !== null && _a !== void 0 ? _a : (_b = _this.legacySIO()) === null || _b === void 0 ? void 0 : _b[0];\n if (val) {\n return val;\n }\n }\n if (id === null) {\n _this.identityStore.set(_this.anonKey, null);\n return _this.identityStore.getAndSync(_this.anonKey);\n }\n _this.identityStore.set(_this.anonKey, id !== null && id !== void 0 ? id : uuid());\n return _this.identityStore.getAndSync(_this.anonKey);\n };\n this.traits = function (traits) {\n var _a;\n if (_this.options.disable) {\n return;\n }\n if (traits === null) {\n traits = {};\n }\n if (traits) {\n _this.traitsStore.set(_this.traitsKey, traits !== null && traits !== void 0 ? traits : {});\n }\n return (_a = _this.traitsStore.get(_this.traitsKey)) !== null && _a !== void 0 ? _a : {};\n };\n this.options = options;\n this.cookieOptions = cookieOptions;\n this.idKey = (_b = (_a = options.cookie) === null || _a === void 0 ? void 0 : _a.key) !== null && _b !== void 0 ? _b : defaults.cookie.key;\n this.traitsKey = (_d = (_c = options.localStorage) === null || _c === void 0 ? void 0 : _c.key) !== null && _d !== void 0 ? _d : defaults.localStorage.key;\n this.anonKey = 'ajs_anonymous_id';\n var isDisabled = options.disable === true;\n var shouldPersist = options.persist !== false;\n var defaultStorageTargets = isDisabled\n ? []\n : shouldPersist\n ? ['localStorage', 'cookie', 'memory']\n : ['memory'];\n var storageOptions = getAvailableStorageOptions(cookieOptions);\n if (options.localStorageFallbackDisabled) {\n defaultStorageTargets = defaultStorageTargets.filter(function (t) { return t !== 'localStorage'; });\n }\n this.identityStore = new UniversalStorage(defaultStorageTargets, storageOptions);\n // using only cookies for legacy user store\n this.legacyUserStore = new UniversalStorage(defaultStorageTargets.filter(function (t) { return t !== 'localStorage' && t !== 'memory'; }), storageOptions);\n // using only localStorage / memory for traits store\n this.traitsStore = new UniversalStorage(defaultStorageTargets.filter(function (t) { return t !== 'cookie'; }), storageOptions);\n var legacyUser = this.legacyUserStore.get(defaults.cookie.oldKey);\n if (legacyUser && typeof legacyUser === 'object') {\n legacyUser.id && this.id(legacyUser.id);\n legacyUser.traits && this.traits(legacyUser.traits);\n }\n autoBind(this);\n }\n User.prototype.legacySIO = function () {\n var val = this.legacyUserStore.get('_sio');\n if (!val) {\n return null;\n }\n var _a = val.split('----'), anon = _a[0], user = _a[1];\n return [anon, user];\n };\n User.prototype.identify = function (id, traits) {\n if (this.options.disable) {\n return;\n }\n traits = traits !== null && traits !== void 0 ? traits : {};\n var currentId = this.id();\n if (currentId === null || currentId === id) {\n traits = __assign(__assign({}, this.traits()), traits);\n }\n if (id) {\n this.id(id);\n }\n this.traits(traits);\n };\n User.prototype.logout = function () {\n this.anonymousId(null);\n this.id(null);\n this.traits({});\n };\n User.prototype.reset = function () {\n this.logout();\n this.identityStore.clear(this.idKey);\n this.identityStore.clear(this.anonKey);\n this.traitsStore.clear(this.traitsKey);\n };\n User.prototype.load = function () {\n return new User(this.options, this.cookieOptions);\n };\n User.prototype.save = function () {\n return true;\n };\n User.defaults = defaults;\n return User;\n}());\nexport { User };\nvar groupDefaults = {\n persist: true,\n cookie: {\n key: 'ajs_group_id',\n },\n localStorage: {\n key: 'ajs_group_properties',\n },\n};\nvar Group = /** @class */ (function (_super) {\n __extends(Group, _super);\n function Group(options, cookie) {\n if (options === void 0) { options = groupDefaults; }\n var _this = _super.call(this, options, cookie) || this;\n _this.anonymousId = function (_id) {\n return undefined;\n };\n autoBind(_this);\n return _this;\n }\n return Group;\n}(User));\nexport { Group };\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport jar from 'js-cookie';\nimport { gracefulDecodeURIComponent } from '../../core/query-string/gracefulDecodeURIComponent';\nimport { tld } from '../../core/user/tld';\nimport { version } from '../../generated/version';\nimport { getAvailableStorageOptions, UniversalStorage } from '../../core/user';\nvar cookieOptions;\nfunction getCookieOptions() {\n if (cookieOptions) {\n return cookieOptions;\n }\n var domain = tld(window.location.href);\n cookieOptions = {\n expires: 31536000000,\n secure: false,\n path: '/',\n };\n if (domain) {\n cookieOptions.domain = domain;\n }\n return cookieOptions;\n}\n// Default value will be updated to 'web' in `bundle-umd.ts` for web build.\nvar _version = 'npm';\nexport function setVersionType(version) {\n _version = version;\n}\nexport function getVersionType() {\n return _version;\n}\nexport function ampId() {\n var ampId = jar.get('_ga');\n if (ampId && ampId.startsWith('amp')) {\n return ampId;\n }\n}\nexport function utm(query) {\n if (query.startsWith('?')) {\n query = query.substring(1);\n }\n query = query.replace(/\\?/g, '&');\n return query.split('&').reduce(function (acc, str) {\n var _a = str.split('='), k = _a[0], _b = _a[1], v = _b === void 0 ? '' : _b;\n if (k.includes('utm_') && k.length > 4) {\n var utmParam = k.substr(4);\n if (utmParam === 'campaign') {\n utmParam = 'name';\n }\n acc[utmParam] = gracefulDecodeURIComponent(v);\n }\n return acc;\n }, {});\n}\nfunction ads(query) {\n var queryIds = {\n btid: 'dataxu',\n urid: 'millennial-media',\n };\n if (query.startsWith('?')) {\n query = query.substring(1);\n }\n query = query.replace(/\\?/g, '&');\n var parts = query.split('&');\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\n var part = parts_1[_i];\n var _a = part.split('='), k = _a[0], v = _a[1];\n if (queryIds[k]) {\n return {\n id: v,\n type: queryIds[k],\n };\n }\n }\n}\nfunction referrerId(query, ctx, disablePersistance) {\n var storage = new UniversalStorage(disablePersistance ? [] : ['cookie'], getAvailableStorageOptions(getCookieOptions()));\n var stored = storage.get('s:context.referrer');\n var ad = ads(query);\n ad = ad !== null && ad !== void 0 ? ad : stored;\n if (!ad) {\n return;\n }\n if (ctx) {\n ctx.referrer = __assign(__assign({}, ctx.referrer), ad);\n }\n storage.set('s:context.referrer', ad);\n}\nexport function normalize(analytics, json, settings, integrations) {\n var _a, _b, _c, _d;\n var user = analytics.user();\n var query = window.location.search;\n json.context = (_b = (_a = json.context) !== null && _a !== void 0 ? _a : json.options) !== null && _b !== void 0 ? _b : {};\n var ctx = json.context;\n delete json.options;\n json.writeKey = settings === null || settings === void 0 ? void 0 : settings.apiKey;\n ctx.userAgent = window.navigator.userAgent;\n // @ts-ignore\n var locale = navigator.userLanguage || navigator.language;\n if (typeof ctx.locale === 'undefined' && typeof locale !== 'undefined') {\n ctx.locale = locale;\n }\n if (!ctx.library) {\n var type = getVersionType();\n if (type === 'web') {\n ctx.library = {\n name: 'analytics.js',\n version: \"next-\".concat(version),\n };\n }\n else {\n ctx.library = {\n name: 'analytics.js',\n version: \"npm:next-\".concat(version),\n };\n }\n }\n if (query && !ctx.campaign) {\n ctx.campaign = utm(query);\n }\n referrerId(query, ctx, (_c = analytics.options.disableClientPersistence) !== null && _c !== void 0 ? _c : false);\n json.userId = json.userId || user.id();\n json.anonymousId = json.anonymousId || user.anonymousId();\n json.sentAt = new Date();\n var failed = analytics.queue.failedInitializations || [];\n if (failed.length > 0) {\n json._metadata = { failedInitializations: failed };\n }\n var bundled = [];\n var unbundled = [];\n for (var key in integrations) {\n var integration = integrations[key];\n if (key === 'june.so') {\n bundled.push(key);\n }\n if (integration.bundlingStatus === 'bundled') {\n bundled.push(key);\n }\n if (integration.bundlingStatus === 'unbundled') {\n unbundled.push(key);\n }\n }\n // This will make sure that the disabled cloud mode destinations will be\n // included in the unbundled list.\n for (var _i = 0, _e = (settings === null || settings === void 0 ? void 0 : settings.unbundledIntegrations) || []; _i < _e.length; _i++) {\n var settingsUnbundled = _e[_i];\n if (!unbundled.includes(settingsUnbundled)) {\n unbundled.push(settingsUnbundled);\n }\n }\n var configIds = (_d = settings === null || settings === void 0 ? void 0 : settings.maybeBundledConfigIds) !== null && _d !== void 0 ? _d : {};\n var bundledConfigIds = [];\n bundled.sort().forEach(function (name) {\n var _a;\n ;\n ((_a = configIds[name]) !== null && _a !== void 0 ? _a : []).forEach(function (id) {\n bundledConfigIds.push(id);\n });\n });\n if ((settings === null || settings === void 0 ? void 0 : settings.addBundledMetadata) !== false) {\n json._metadata = __assign(__assign({}, json._metadata), { bundled: bundled.sort(), unbundled: unbundled.sort(), bundledIds: bundledConfigIds });\n }\n var amp = ampId();\n if (amp) {\n ctx.amp = { id: amp };\n }\n return json;\n}\n//# sourceMappingURL=normalize.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { fetch } from '../../lib/fetch';\nimport { version } from '../../generated/version';\nimport { getVersionType } from '../../plugins/segmentio/normalize';\nvar createRemoteMetric = function (metric, tags, versionType) {\n var formattedTags = tags.reduce(function (acc, t) {\n var _a = t.split(':'), k = _a[0], v = _a[1];\n acc[k] = v;\n return acc;\n }, {});\n return {\n type: 'Counter',\n metric: metric,\n value: 1,\n tags: __assign(__assign({}, formattedTags), { library: 'analytics.js', library_version: versionType === 'web' ? \"next-\".concat(version) : \"npm:next-\".concat(version) }),\n };\n};\nfunction logError(err) {\n console.error('Error sending segment performance metrics', err);\n}\nvar RemoteMetrics = /** @class */ (function () {\n function RemoteMetrics(options) {\n var _this = this;\n var _a, _b, _c, _d;\n this.host = (_a = options === null || options === void 0 ? void 0 : options.host) !== null && _a !== void 0 ? _a : 'api.june.so/sdk';\n this.sampleRate = (_b = options === null || options === void 0 ? void 0 : options.sampleRate) !== null && _b !== void 0 ? _b : 1;\n this.flushTimer = (_c = options === null || options === void 0 ? void 0 : options.flushTimer) !== null && _c !== void 0 ? _c : 30 * 1000; /* 30s */\n this.maxQueueSize = (_d = options === null || options === void 0 ? void 0 : options.maxQueueSize) !== null && _d !== void 0 ? _d : 20;\n this.queue = [];\n if (this.sampleRate > 0) {\n var flushing_1 = false;\n var run_1 = function () {\n if (flushing_1) {\n return;\n }\n flushing_1 = true;\n _this.flush().catch(logError);\n flushing_1 = false;\n setTimeout(run_1, _this.flushTimer);\n };\n run_1();\n }\n }\n RemoteMetrics.prototype.increment = function (metric, tags) {\n // All metrics are part of an allow list in Tracking API\n if (!metric.includes('analytics_js.')) {\n return;\n }\n // /m doesn't like empty tags\n if (tags.length === 0) {\n return;\n }\n if (Math.random() > this.sampleRate) {\n return;\n }\n if (this.queue.length >= this.maxQueueSize) {\n return;\n }\n var remoteMetric = createRemoteMetric(metric, tags, getVersionType());\n this.queue.push(remoteMetric);\n if (metric.includes('error')) {\n this.flush().catch(logError);\n }\n };\n RemoteMetrics.prototype.flush = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.queue.length <= 0) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, this.send().catch(function (error) {\n logError(error);\n _this.sampleRate = 0;\n })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n RemoteMetrics.prototype.send = function () {\n return __awaiter(this, void 0, void 0, function () {\n var payload, headers, url;\n return __generator(this, function (_a) {\n payload = { series: this.queue };\n this.queue = [];\n headers = { 'Content-Type': 'text/plain' };\n url = \"https://\".concat(this.host, \"/m\");\n return [2 /*return*/, fetch(url, {\n headers: headers,\n body: JSON.stringify(payload),\n method: 'POST',\n })];\n });\n });\n };\n return RemoteMetrics;\n}());\nexport { RemoteMetrics };\n//# sourceMappingURL=remote-metrics.js.map","import { __extends } from \"tslib\";\nimport { CoreStats } from '@segment/analytics-core';\nimport { RemoteMetrics } from './remote-metrics';\nvar remoteMetrics;\nvar Stats = /** @class */ (function (_super) {\n __extends(Stats, _super);\n function Stats() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Stats.initRemoteMetrics = function (options) {\n remoteMetrics = new RemoteMetrics(options);\n };\n Stats.prototype.increment = function (metric, by, tags) {\n _super.prototype.increment.call(this, metric, by, tags);\n remoteMetrics === null || remoteMetrics === void 0 ? void 0 : remoteMetrics.increment(metric, tags !== null && tags !== void 0 ? tags : []);\n };\n return Stats;\n}(CoreStats));\nexport { Stats };\n//# sourceMappingURL=index.js.map","import { __extends } from \"tslib\";\nimport { CoreContext, ContextCancelation, } from '@segment/analytics-core';\nimport { Stats } from '../stats';\nvar Context = /** @class */ (function (_super) {\n __extends(Context, _super);\n function Context(event, id) {\n return _super.call(this, event, id, new Stats()) || this;\n }\n Context.system = function () {\n return new this({ type: 'track', event: 'system' });\n };\n return Context;\n}(CoreContext));\nexport { Context };\nexport { ContextCancelation };\n//# sourceMappingURL=index.js.map","(function (factory) {\n if (typeof exports === 'object') {\n // Node/CommonJS\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD\n define(factory);\n } else {\n // Browser globals (with support for web workers)\n var glob;\n\n try {\n glob = window;\n } catch (e) {\n glob = self;\n }\n\n glob.SparkMD5 = factory();\n }\n}(function (undefined) {\n\n 'use strict';\n\n /*\n * Fastest md5 implementation around (JKM md5).\n * Credits: Joseph Myers\n *\n * @see http://www.myersdaily.org/joseph/javascript/md5-text.html\n * @see http://jsperf.com/md5-shootout/7\n */\n\n /* this function is much faster,\n so if possible we use it. Some IEs\n are the only ones I know of that\n need the idiotic second function,\n generated by an if clause. */\n var add32 = function (a, b) {\n return (a + b) & 0xFFFFFFFF;\n },\n hex_chr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];\n\n\n function cmn(q, a, b, x, s, t) {\n a = add32(add32(a, q), add32(x, t));\n return add32((a << s) | (a >>> (32 - s)), b);\n }\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i; /* Andy King said do it this way. */\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i; /* Andy King said do it this way. */\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);\n }\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Beware that the final length might not fit in 32 bits so we take care of that\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n // Not sure if it is a bug, however IE10 will always produce a sub array of length 1\n // containing the last element of the parent array if the sub array specified starts\n // beyond the length of the parent array - weird.\n // https://connect.microsoft.com/IE/feedback/details/771452/typed-array-subarray-issue\n a = (i - 64) < n ? a.subarray(i - 64) : new Uint8Array(0);\n\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << ((i % 4) << 3);\n }\n\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Beware that the final length might not fit in 32 bits so we take care of that\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n\n md5cycle(state, tail);\n\n return state;\n }\n\n function rhex(n) {\n var s = '',\n j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[(n >> (j * 8 + 4)) & 0x0F] + hex_chr[(n >> (j * 8)) & 0x0F];\n }\n return s;\n }\n\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join('');\n }\n\n // In some cases the fast add32 function cannot be used..\n if (hex(md51('hello')) !== '5d41402abc4b2a76b9719d911017c592') {\n add32 = function (x, y) {\n var lsw = (x & 0xFFFF) + (y & 0xFFFF),\n msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xFFFF);\n };\n }\n\n // ---------------------------------------------------\n\n /**\n * ArrayBuffer slice polyfill.\n *\n * @see https://github.com/ttaubert/node-arraybuffer-slice\n */\n\n if (typeof ArrayBuffer !== 'undefined' && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = (val | 0) || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n\n return target;\n };\n })();\n }\n\n // ---------------------------------------------------\n\n /**\n * Helpers.\n */\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n // ---------------------------------------------------\n\n /**\n * SparkMD5 OOP implementation.\n *\n * Use this class to perform an incremental md5, otherwise use the\n * static methods instead.\n */\n\n function SparkMD5() {\n // call reset to init the instance\n this.reset();\n }\n\n /**\n * Appends a string.\n * A conversion will be applied if an utf8 string is detected.\n *\n * @param {String} str The string to be appended\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.append = function (str) {\n // Converts the string to utf8 bytes if necessary\n // Then append as binary\n this.appendBinary(toUtf8(str));\n\n return this;\n };\n\n /**\n * Appends a binary string.\n *\n * @param {String} contents The binary string to be appended\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n\n return this;\n };\n\n /**\n * Finishes the incremental computation, reseting the internal state and\n * returning the result.\n *\n * @param {Boolean} raw True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << ((i % 4) << 3);\n }\n\n this._finish(tail, length);\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n\n return ret;\n };\n\n /**\n * Resets the internal state of the computation.\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.reset = function () {\n this._buff = '';\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n\n return this;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @return {Object} The state\n */\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash.slice()\n };\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @param {Object} state The state\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n\n return this;\n };\n\n /**\n * Releases memory used by the incremental buffer and other additional\n * resources. If you plan to use the instance again, use reset instead.\n */\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n /**\n * Finish the final calculation based on the tail.\n *\n * @param {Array} tail The tail (will be modified)\n * @param {Number} length The length of the remaining buffer\n */\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Do the final computation based on the tail and length\n // Beware that the final length may not fit in 32 bits so we take care of that\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n /**\n * Performs the md5 hash on a string.\n * A conversion will be applied if utf8 string is detected.\n *\n * @param {String} str The string\n * @param {Boolean} [raw] True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.hash = function (str, raw) {\n // Converts the string to utf8 bytes if necessary\n // Then compute it using the binary function\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n /**\n * Performs the md5 hash on a binary string.\n *\n * @param {String} content The binary string\n * @param {Boolean} [raw] True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n // ---------------------------------------------------\n\n /**\n * SparkMD5 OOP implementation for array buffers.\n *\n * Use this class to perform an incremental md5 ONLY for array buffers.\n */\n SparkMD5.ArrayBuffer = function () {\n // call reset to init the instance\n this.reset();\n };\n\n /**\n * Appends an array buffer.\n *\n * @param {ArrayBuffer} arr The array to be appended\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = (i - 64) < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n\n return this;\n };\n\n /**\n * Finishes the incremental computation, reseting the internal state and\n * returning the result.\n *\n * @param {Boolean} raw True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << ((i % 4) << 3);\n }\n\n this._finish(tail, length);\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n\n return ret;\n };\n\n /**\n * Resets the internal state of the computation.\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n\n return this;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @return {Object} The state\n */\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n\n // Convert buffer to a string\n state.buff = arrayBuffer2Utf8Str(state.buff);\n\n return state;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @param {Object} state The state\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n // Convert string to buffer\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n /**\n * Performs the md5 hash on an array buffer.\n *\n * @param {ArrayBuffer} arr The array buffer\n * @param {Boolean} [raw] True to get the raw string, false to get the hex one\n *\n * @return {String} The result\n */\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n}));\n","import { __assign, __rest } from \"tslib\";\nimport { v4 as uuid } from '@lukeed/uuid';\nimport { dset } from 'dset';\nimport md5 from 'spark-md5';\nexport * from './interfaces';\nvar EventFactory = /** @class */ (function () {\n function EventFactory(user) {\n this.user = user;\n }\n EventFactory.prototype.track = function (event, properties, options, globalIntegrations) {\n return this.normalize(__assign(__assign({}, this.baseEvent()), { event: event, type: 'track', properties: properties, options: __assign({}, options), integrations: __assign({}, globalIntegrations) }));\n };\n EventFactory.prototype.page = function (category, page, properties, options, globalIntegrations) {\n var _a;\n var event = {\n type: 'page',\n properties: __assign({}, properties),\n options: __assign({}, options),\n integrations: __assign({}, globalIntegrations),\n };\n if (category !== null) {\n event.category = category;\n event.properties = (_a = event.properties) !== null && _a !== void 0 ? _a : {};\n event.properties.category = category;\n }\n if (page !== null) {\n event.name = page;\n }\n return this.normalize(__assign(__assign({}, this.baseEvent()), event));\n };\n EventFactory.prototype.screen = function (category, screen, properties, options, globalIntegrations) {\n var event = {\n type: 'screen',\n properties: __assign({}, properties),\n options: __assign({}, options),\n integrations: __assign({}, globalIntegrations),\n };\n if (category !== null) {\n event.category = category;\n }\n if (screen !== null) {\n event.name = screen;\n }\n return this.normalize(__assign(__assign({}, this.baseEvent()), event));\n };\n EventFactory.prototype.identify = function (userId, traits, options, globalIntegrations) {\n return this.normalize(__assign(__assign({}, this.baseEvent()), { type: 'identify', userId: userId, traits: traits, options: __assign({}, options), integrations: __assign({}, globalIntegrations) }));\n };\n EventFactory.prototype.group = function (groupId, traits, options, globalIntegrations) {\n return this.normalize(__assign(__assign({}, this.baseEvent()), { type: 'group', traits: traits, options: __assign({}, options), integrations: __assign({}, globalIntegrations), groupId: groupId }));\n };\n EventFactory.prototype.alias = function (to, from, options, globalIntegrations) {\n var base = {\n userId: to,\n type: 'alias',\n options: __assign({}, options),\n integrations: __assign({}, globalIntegrations),\n };\n if (from !== null) {\n base.previousId = from;\n }\n if (to === undefined) {\n return this.normalize(__assign(__assign({}, base), this.baseEvent()));\n }\n return this.normalize(__assign(__assign({}, this.baseEvent()), base));\n };\n EventFactory.prototype.baseEvent = function () {\n var base = {\n integrations: {},\n options: {},\n };\n var user = this.user;\n if (user.id()) {\n base.userId = user.id();\n }\n if (user.anonymousId()) {\n base.anonymousId = user.anonymousId();\n }\n return base;\n };\n /**\n * Builds the context part of an event based on \"foreign\" keys that\n * are provided in the `Options` parameter for an Event\n */\n EventFactory.prototype.context = function (event) {\n var _a, _b, _c;\n var optionsKeys = ['integrations', 'anonymousId', 'timestamp', 'userId'];\n var options = (_a = event.options) !== null && _a !== void 0 ? _a : {};\n delete options['integrations'];\n var providedOptionsKeys = Object.keys(options);\n var context = (_c = (_b = event.options) === null || _b === void 0 ? void 0 : _b.context) !== null && _c !== void 0 ? _c : {};\n var overrides = {};\n providedOptionsKeys.forEach(function (key) {\n if (key === 'context') {\n return;\n }\n if (optionsKeys.includes(key)) {\n dset(overrides, key, options[key]);\n }\n else {\n dset(context, key, options[key]);\n }\n });\n return [context, overrides];\n };\n EventFactory.prototype.normalize = function (event) {\n var _a, _b, _c;\n // set anonymousId globally if we encounter an override\n //segment.com/docs/connections/sources/catalog/libraries/website/javascript/identity/#override-the-anonymous-id-using-the-options-object\n ((_a = event.options) === null || _a === void 0 ? void 0 : _a.anonymousId) &&\n this.user.anonymousId(event.options.anonymousId);\n var integrationBooleans = Object.keys((_b = event.integrations) !== null && _b !== void 0 ? _b : {}).reduce(function (integrationNames, name) {\n var _a;\n var _b;\n return __assign(__assign({}, integrationNames), (_a = {}, _a[name] = Boolean((_b = event.integrations) === null || _b === void 0 ? void 0 : _b[name]), _a));\n }, {});\n // This is pretty trippy, but here's what's going on:\n // - a) We don't pass initial integration options as part of the event, only if they're true or false\n // - b) We do accept per integration overrides (like integrations.Amplitude.sessionId) at the event level\n // Hence the need to convert base integration options to booleans, but maintain per event integration overrides\n var allIntegrations = __assign(__assign({}, integrationBooleans), (_c = event.options) === null || _c === void 0 ? void 0 : _c.integrations);\n var _d = this.context(event), context = _d[0], overrides = _d[1];\n var options = event.options, rest = __rest(event, [\"options\"]);\n var body = __assign(__assign(__assign({ timestamp: new Date() }, rest), { context: context, integrations: allIntegrations }), overrides);\n var messageId = 'ajs-next-' + md5.hash(JSON.stringify(body) + uuid());\n var evt = __assign(__assign({}, body), { messageId: messageId });\n return evt;\n };\n return EventFactory;\n}());\nexport { EventFactory };\n//# sourceMappingURL=index.js.map","import { __assign, __extends, __spreadArray } from \"tslib\";\nimport { PriorityQueue } from '.';\nimport { Context } from '../../core/context';\nimport { isBrowser } from '../../core/environment';\nvar loc = {\n getItem: function () { },\n setItem: function () { },\n removeItem: function () { },\n};\ntry {\n loc = isBrowser() && window.localStorage ? window.localStorage : loc;\n}\ncatch (err) {\n console.warn('Unable to access localStorage', err);\n}\nfunction persisted(key) {\n var items = loc.getItem(key);\n return (items ? JSON.parse(items) : []).map(function (p) { return new Context(p.event, p.id); });\n}\nfunction persistItems(key, items) {\n var existing = persisted(key);\n var all = __spreadArray(__spreadArray([], items, true), existing, true);\n var merged = all.reduce(function (acc, item) {\n var _a;\n return __assign(__assign({}, acc), (_a = {}, _a[item.id] = item, _a));\n }, {});\n loc.setItem(key, JSON.stringify(Object.values(merged)));\n}\nfunction seen(key) {\n var stored = loc.getItem(key);\n return stored ? JSON.parse(stored) : {};\n}\nfunction persistSeen(key, memory) {\n var stored = seen(key);\n loc.setItem(key, JSON.stringify(__assign(__assign({}, stored), memory)));\n}\nfunction remove(key) {\n loc.removeItem(key);\n}\nvar now = function () { return new Date().getTime(); };\nfunction mutex(key, onUnlock, attempt) {\n if (attempt === void 0) { attempt = 0; }\n var lockTimeout = 50;\n var lockKey = \"persisted-queue:v1:\".concat(key, \":lock\");\n var expired = function (lock) { return new Date().getTime() > lock; };\n var rawLock = loc.getItem(lockKey);\n var lock = rawLock ? JSON.parse(rawLock) : null;\n var allowed = lock === null || expired(lock);\n if (allowed) {\n loc.setItem(lockKey, JSON.stringify(now() + lockTimeout));\n onUnlock();\n loc.removeItem(lockKey);\n return;\n }\n if (!allowed && attempt < 3) {\n setTimeout(function () {\n mutex(key, onUnlock, attempt + 1);\n }, lockTimeout);\n }\n else {\n console.error('Unable to retrieve lock');\n }\n}\nvar PersistedPriorityQueue = /** @class */ (function (_super) {\n __extends(PersistedPriorityQueue, _super);\n function PersistedPriorityQueue(maxAttempts, key) {\n var _this = _super.call(this, maxAttempts, []) || this;\n var itemsKey = \"persisted-queue:v1:\".concat(key, \":items\");\n var seenKey = \"persisted-queue:v1:\".concat(key, \":seen\");\n var saved = [];\n var lastSeen = {};\n mutex(key, function () {\n try {\n saved = persisted(itemsKey);\n lastSeen = seen(seenKey);\n remove(itemsKey);\n remove(seenKey);\n _this.queue = __spreadArray(__spreadArray([], saved, true), _this.queue, true);\n _this.seen = __assign(__assign({}, lastSeen), _this.seen);\n }\n catch (err) {\n console.error(err);\n }\n });\n window.addEventListener('pagehide', function () {\n // we deliberately want to use the less powerful 'pagehide' API to only persist on events where the analytics instance gets destroyed, and not on tab away.\n if (_this.todo > 0) {\n var items_1 = __spreadArray(__spreadArray([], _this.queue, true), _this.future, true);\n try {\n mutex(key, function () {\n persistItems(itemsKey, items_1);\n persistSeen(seenKey, _this.seen);\n });\n }\n catch (err) {\n console.error(err);\n }\n }\n });\n return _this;\n }\n return PersistedPriorityQueue;\n}(PriorityQueue));\nexport { PersistedPriorityQueue };\n//# sourceMappingURL=persisted.js.map","import { __extends } from \"tslib\";\nimport { PersistedPriorityQueue } from '../../lib/priority-queue/persisted';\nimport { CoreEventQueue } from '@segment/analytics-core';\nvar EventQueue = /** @class */ (function (_super) {\n __extends(EventQueue, _super);\n function EventQueue(priorityQueue) {\n return _super.call(this, priorityQueue !== null && priorityQueue !== void 0 ? priorityQueue : new PersistedPriorityQueue(4, 'event-queue')) || this;\n }\n return EventQueue;\n}(CoreEventQueue));\nexport { EventQueue };\n//# sourceMappingURL=event-queue.js.map","import { __assign, __awaiter, __extends, __generator, __spreadArray } from \"tslib\";\nimport { resolveAliasArguments, resolveArguments, resolvePageArguments, resolveUserArguments, } from '../arguments-resolver';\nimport { isOffline } from '../connection';\nimport { Context } from '../context';\nimport { dispatch, Emitter } from '@segment/analytics-core';\nimport { EventFactory, } from '../events';\nimport { EventQueue } from '../queue/event-queue';\nimport { getAvailableStorageOptions, Group, UniversalStorage, User, } from '../user';\nimport autoBind from '../../lib/bind-all';\nimport { PersistedPriorityQueue } from '../../lib/priority-queue/persisted';\nimport { version } from '../../generated/version';\nimport { PriorityQueue } from '../../lib/priority-queue';\nimport { getGlobal } from '../../lib/get-global';\nvar deprecationWarning = 'This is being deprecated and will be not be available in future releases of Analytics JS';\n// reference any pre-existing \"analytics\" object so a user can restore the reference\nvar global = getGlobal();\nvar _analytics = global === null || global === void 0 ? void 0 : global.analytics;\nfunction createDefaultQueue(retryQueue, disablePersistance) {\n if (retryQueue === void 0) { retryQueue = false; }\n if (disablePersistance === void 0) { disablePersistance = false; }\n var maxAttempts = retryQueue ? 4 : 1;\n var priorityQueue = disablePersistance\n ? new PriorityQueue(maxAttempts, [])\n : new PersistedPriorityQueue(maxAttempts, 'event-queue');\n return new EventQueue(priorityQueue);\n}\n/* analytics-classic stubs */\nfunction _stub() {\n console.warn(deprecationWarning);\n}\nvar Analytics = /** @class */ (function (_super) {\n __extends(Analytics, _super);\n function Analytics(settings, options, queue, user, group) {\n var _this = this;\n var _a, _b, _c;\n _this = _super.call(this) || this;\n _this._debug = false;\n _this.initialized = false;\n _this.user = function () {\n return _this._user;\n };\n _this.init = _this.initialize.bind(_this);\n _this.log = _stub;\n _this.addIntegrationMiddleware = _stub;\n _this.listeners = _stub;\n _this.addEventListener = _stub;\n _this.removeAllListeners = _stub;\n _this.removeListener = _stub;\n _this.removeEventListener = _stub;\n _this.hasListeners = _stub;\n _this.add = _stub;\n _this.addIntegration = _stub;\n var cookieOptions = options === null || options === void 0 ? void 0 : options.cookie;\n var disablePersistance = (_a = options === null || options === void 0 ? void 0 : options.disableClientPersistence) !== null && _a !== void 0 ? _a : false;\n _this.settings = settings;\n _this.settings.timeout = (_b = _this.settings.timeout) !== null && _b !== void 0 ? _b : 300;\n _this.queue =\n queue !== null && queue !== void 0 ? queue : createDefaultQueue(options === null || options === void 0 ? void 0 : options.retryQueue, disablePersistance);\n _this._universalStorage = new UniversalStorage(disablePersistance ? ['memory'] : ['localStorage', 'cookie', 'memory'], getAvailableStorageOptions(cookieOptions));\n _this._user =\n user !== null && user !== void 0 ? user : new User(disablePersistance\n ? __assign(__assign({}, options === null || options === void 0 ? void 0 : options.user), { persist: false }) : options === null || options === void 0 ? void 0 : options.user, cookieOptions).load();\n _this._group =\n group !== null && group !== void 0 ? group : new Group(disablePersistance\n ? __assign(__assign({}, options === null || options === void 0 ? void 0 : options.group), { persist: false }) : options === null || options === void 0 ? void 0 : options.group, cookieOptions).load();\n _this.eventFactory = new EventFactory(_this._user);\n _this.integrations = (_c = options === null || options === void 0 ? void 0 : options.integrations) !== null && _c !== void 0 ? _c : {};\n _this.options = options !== null && options !== void 0 ? options : {};\n autoBind(_this);\n return _this;\n }\n Object.defineProperty(Analytics.prototype, \"storage\", {\n get: function () {\n return this._universalStorage;\n },\n enumerable: false,\n configurable: true\n });\n Analytics.prototype.track = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var _a, name, data, opts, cb, segmentEvent;\n var _this = this;\n return __generator(this, function (_b) {\n _a = resolveArguments.apply(void 0, args), name = _a[0], data = _a[1], opts = _a[2], cb = _a[3];\n segmentEvent = this.eventFactory.track(name, data, opts, this.integrations);\n return [2 /*return*/, this._dispatch(segmentEvent, cb).then(function (ctx) {\n _this.emit('track', name, ctx.event.properties, ctx.event.options);\n return ctx;\n })];\n });\n });\n };\n Analytics.prototype.page = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var _a, category, page, properties, options, callback, segmentEvent;\n var _this = this;\n return __generator(this, function (_b) {\n _a = resolvePageArguments.apply(void 0, args), category = _a[0], page = _a[1], properties = _a[2], options = _a[3], callback = _a[4];\n segmentEvent = this.eventFactory.page(category, page, properties, options, this.integrations);\n return [2 /*return*/, this._dispatch(segmentEvent, callback).then(function (ctx) {\n _this.emit('page', category, page, ctx.event.properties, ctx.event.options);\n return ctx;\n })];\n });\n });\n };\n Analytics.prototype.identify = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var _a, id, _traits, options, callback, segmentEvent;\n var _this = this;\n return __generator(this, function (_b) {\n _a = resolveUserArguments(this._user).apply(void 0, args), id = _a[0], _traits = _a[1], options = _a[2], callback = _a[3];\n this._user.identify(id, _traits);\n segmentEvent = this.eventFactory.identify(this._user.id(), this._user.traits(), options, this.integrations);\n return [2 /*return*/, this._dispatch(segmentEvent, callback).then(function (ctx) {\n _this.emit('identify', ctx.event.userId, ctx.event.traits, ctx.event.options);\n return ctx;\n })];\n });\n });\n };\n Analytics.prototype.group = function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (args.length === 0) {\n return this._group;\n }\n var _a = resolveUserArguments(this._group).apply(void 0, args), id = _a[0], _traits = _a[1], options = _a[2], callback = _a[3];\n this._group.identify(id, _traits);\n var groupId = this._group.id();\n var groupTraits = this._group.traits();\n var segmentEvent = this.eventFactory.group(groupId, groupTraits, options, this.integrations);\n return this._dispatch(segmentEvent, callback).then(function (ctx) {\n _this.emit('group', ctx.event.groupId, ctx.event.traits, ctx.event.options);\n return ctx;\n });\n };\n Analytics.prototype.alias = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var _a, to, from, options, callback, segmentEvent;\n var _this = this;\n return __generator(this, function (_b) {\n _a = resolveAliasArguments.apply(void 0, args), to = _a[0], from = _a[1], options = _a[2], callback = _a[3];\n segmentEvent = this.eventFactory.alias(to, from, options, this.integrations);\n return [2 /*return*/, this._dispatch(segmentEvent, callback).then(function (ctx) {\n _this.emit('alias', to, from, ctx.event.options);\n return ctx;\n })];\n });\n });\n };\n Analytics.prototype.screen = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var _a, category, page, properties, options, callback, segmentEvent;\n var _this = this;\n return __generator(this, function (_b) {\n _a = resolvePageArguments.apply(void 0, args), category = _a[0], page = _a[1], properties = _a[2], options = _a[3], callback = _a[4];\n segmentEvent = this.eventFactory.screen(category, page, properties, options, this.integrations);\n return [2 /*return*/, this._dispatch(segmentEvent, callback).then(function (ctx) {\n _this.emit('screen', category, page, ctx.event.properties, ctx.event.options);\n return ctx;\n })];\n });\n });\n };\n Analytics.prototype.trackClick = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var autotrack;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, import(\n /* webpackChunkName: \"auto-track\" */ '../auto-track')];\n case 1:\n autotrack = _b.sent();\n return [2 /*return*/, (_a = autotrack.link).call.apply(_a, __spreadArray([this], args, false))];\n }\n });\n });\n };\n Analytics.prototype.trackLink = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var autotrack;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, import(\n /* webpackChunkName: \"auto-track\" */ '../auto-track')];\n case 1:\n autotrack = _b.sent();\n return [2 /*return*/, (_a = autotrack.link).call.apply(_a, __spreadArray([this], args, false))];\n }\n });\n });\n };\n Analytics.prototype.trackSubmit = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var autotrack;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, import(\n /* webpackChunkName: \"auto-track\" */ '../auto-track')];\n case 1:\n autotrack = _b.sent();\n return [2 /*return*/, (_a = autotrack.form).call.apply(_a, __spreadArray([this], args, false))];\n }\n });\n });\n };\n Analytics.prototype.trackForm = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var autotrack;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, import(\n /* webpackChunkName: \"auto-track\" */ '../auto-track')];\n case 1:\n autotrack = _b.sent();\n return [2 /*return*/, (_a = autotrack.form).call.apply(_a, __spreadArray([this], args, false))];\n }\n });\n });\n };\n Analytics.prototype.register = function () {\n var plugins = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n plugins[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var ctx, registrations;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n ctx = Context.system();\n registrations = plugins.map(function (xt) {\n return _this.queue.register(ctx, xt, _this);\n });\n return [4 /*yield*/, Promise.all(registrations)];\n case 1:\n _a.sent();\n return [2 /*return*/, ctx];\n }\n });\n });\n };\n Analytics.prototype.deregister = function () {\n var plugins = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n plugins[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var ctx, deregistrations;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n ctx = Context.system();\n deregistrations = plugins.map(function (pl) {\n var plugin = _this.queue.plugins.find(function (p) { return p.name === pl; });\n if (plugin) {\n return _this.queue.deregister(ctx, plugin, _this);\n }\n else {\n ctx.log('warn', \"plugin \".concat(pl, \" not found\"));\n }\n });\n return [4 /*yield*/, Promise.all(deregistrations)];\n case 1:\n _a.sent();\n return [2 /*return*/, ctx];\n }\n });\n });\n };\n Analytics.prototype.debug = function (toggle) {\n // Make sure legacy ajs debug gets turned off if it was enabled before upgrading.\n if (toggle === false && localStorage.getItem('debug')) {\n localStorage.removeItem('debug');\n }\n this._debug = toggle;\n return this;\n };\n Analytics.prototype.reset = function () {\n this._user.reset();\n this._group.reset();\n this.emit('reset');\n };\n Analytics.prototype.timeout = function (timeout) {\n this.settings.timeout = timeout;\n };\n Analytics.prototype._dispatch = function (event, callback) {\n return __awaiter(this, void 0, void 0, function () {\n var ctx;\n return __generator(this, function (_a) {\n ctx = new Context(event);\n if (isOffline() && !this.options.retryQueue) {\n return [2 /*return*/, ctx];\n }\n return [2 /*return*/, dispatch(ctx, this.queue, this, {\n callback: callback,\n debug: this._debug,\n timeout: this.settings.timeout,\n })];\n });\n });\n };\n Analytics.prototype.addSourceMiddleware = function (fn) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.queue.criticalTasks.run(function () { return __awaiter(_this, void 0, void 0, function () {\n var sourceMiddlewarePlugin, integrations, plugin;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, import(\n /* webpackChunkName: \"middleware\" */ '../../plugins/middleware')];\n case 1:\n sourceMiddlewarePlugin = (_a.sent()).sourceMiddlewarePlugin;\n integrations = {};\n this.queue.plugins.forEach(function (plugin) {\n if (plugin.type === 'destination') {\n return (integrations[plugin.name] = true);\n }\n });\n plugin = sourceMiddlewarePlugin(fn, integrations);\n return [4 /*yield*/, this.register(plugin)];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); })];\n case 1:\n _a.sent();\n return [2 /*return*/, this];\n }\n });\n });\n };\n /* TODO: This does not have to return a promise? */\n Analytics.prototype.addDestinationMiddleware = function (integrationName) {\n var middlewares = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n middlewares[_i - 1] = arguments[_i];\n }\n var legacyDestinations = this.queue.plugins.filter(function (xt) { return xt.name.toLowerCase() === integrationName.toLowerCase(); });\n legacyDestinations.forEach(function (destination) {\n destination.addMiddleware.apply(destination, middlewares);\n });\n return Promise.resolve(this);\n };\n Analytics.prototype.setAnonymousId = function (id) {\n return this._user.anonymousId(id);\n };\n Analytics.prototype.queryString = function (query) {\n return __awaiter(this, void 0, void 0, function () {\n var queryString;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.options.useQueryString === false) {\n return [2 /*return*/, []];\n }\n return [4 /*yield*/, import(\n /* webpackChunkName: \"queryString\" */ '../query-string')];\n case 1:\n queryString = (_a.sent()).queryString;\n return [2 /*return*/, queryString(this, query)];\n }\n });\n });\n };\n /**\n * @deprecated This function does not register a destination plugin.\n *\n * Instantiates a legacy Analytics.js destination.\n *\n * This function does not register the destination as an Analytics.JS plugin,\n * all the it does it to invoke the factory function back.\n */\n Analytics.prototype.use = function (legacyPluginFactory) {\n legacyPluginFactory(this);\n return this;\n };\n Analytics.prototype.ready = function (callback) {\n if (callback === void 0) { callback = function (res) { return res; }; }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, Promise.all(this.queue.plugins.map(function (i) { return (i.ready ? i.ready() : Promise.resolve()); })).then(function (res) {\n callback(res);\n return res;\n })];\n });\n });\n };\n // analytics-classic api\n Analytics.prototype.noConflict = function () {\n console.warn(deprecationWarning);\n window.analytics = _analytics !== null && _analytics !== void 0 ? _analytics : this;\n return this;\n };\n Analytics.prototype.normalize = function (msg) {\n console.warn(deprecationWarning);\n return this.eventFactory.normalize(msg);\n };\n Object.defineProperty(Analytics.prototype, \"failedInitializations\", {\n get: function () {\n console.warn(deprecationWarning);\n return this.queue.failedInitializations;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Analytics.prototype, \"VERSION\", {\n get: function () {\n return version;\n },\n enumerable: false,\n configurable: true\n });\n /* @deprecated - noop */\n Analytics.prototype.initialize = function (_settings, _options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n console.warn(deprecationWarning);\n return [2 /*return*/, Promise.resolve(this)];\n });\n });\n };\n Analytics.prototype.pageview = function (url) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n console.warn(deprecationWarning);\n return [4 /*yield*/, this.page({ path: url })];\n case 1:\n _a.sent();\n return [2 /*return*/, this];\n }\n });\n });\n };\n Object.defineProperty(Analytics.prototype, \"plugins\", {\n get: function () {\n var _a;\n console.warn(deprecationWarning);\n // @ts-expect-error\n return (_a = this._plugins) !== null && _a !== void 0 ? _a : {};\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Analytics.prototype, \"Integrations\", {\n get: function () {\n console.warn(deprecationWarning);\n var integrations = this.queue.plugins\n .filter(function (plugin) { return plugin.type === 'destination'; })\n .reduce(function (acc, plugin) {\n var name = \"\".concat(plugin.name\n .toLowerCase()\n .replace('.', '')\n .split(' ')\n .join('-'), \"Integration\");\n // @ts-expect-error\n var integration = window[name];\n if (!integration) {\n return acc;\n }\n var nested = integration.Integration; // hack - Google Analytics function resides in the \"Integration\" field\n if (nested) {\n acc[plugin.name] = nested;\n return acc;\n }\n acc[plugin.name] = integration;\n return acc;\n }, {});\n return integrations;\n },\n enumerable: false,\n configurable: true\n });\n // snippet function\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Analytics.prototype.push = function (args) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var an = this;\n var method = args.shift();\n if (method) {\n if (!an[method])\n return;\n }\n an[method].apply(this, args);\n };\n return Analytics;\n}(Emitter));\nexport { Analytics };\n//# sourceMappingURL=index.js.map","/**\n * Returns `process.env` if it is available in the environment.\n * Always returns an object make it similarly easy to use as `process.env`.\n */\nexport function getProcessEnv() {\n if (typeof process === 'undefined' || !process.env) {\n return {};\n }\n return process.env;\n}\n//# sourceMappingURL=get-process-env.js.map","import { embeddedWriteKey } from './embedded-write-key';\nvar analyticsScriptRegex = /(https:\\/\\/.*)\\/analytics\\.js\\/v1\\/(?:.*?)\\/(?:platform|analytics.*)?/;\nvar getCDNUrlFromScriptTag = function () {\n var cdn;\n var scripts = Array.prototype.slice.call(document.querySelectorAll('script'));\n scripts.forEach(function (s) {\n var _a;\n var src = (_a = s.getAttribute('src')) !== null && _a !== void 0 ? _a : '';\n var result = analyticsScriptRegex.exec(src);\n if (result && result[1]) {\n cdn = result[1];\n }\n });\n return cdn;\n};\nvar _globalCDN; // set globalCDN as in-memory singleton\nvar getGlobalCDNUrl = function () {\n var _a;\n var result = _globalCDN !== null && _globalCDN !== void 0 ? _globalCDN : (_a = window.analytics) === null || _a === void 0 ? void 0 : _a._cdn;\n return result;\n};\nexport var setGlobalCDNUrl = function (cdn) {\n if (window.analytics) {\n window.analytics._cdn = cdn;\n }\n _globalCDN = cdn;\n};\nexport var getCDN = function () {\n var globalCdnUrl = getGlobalCDNUrl();\n if (globalCdnUrl)\n return globalCdnUrl;\n var cdnFromScriptTag = getCDNUrlFromScriptTag();\n if (cdnFromScriptTag) {\n return cdnFromScriptTag;\n }\n else {\n // it's possible that the CDN is not found in the page because:\n // - the script is loaded through a proxy\n // - the script is removed after execution\n // in this case, we fall back to the default Segment CDN\n return \"https://cdn.june.so\";\n }\n};\nexport var getNextIntegrationsURL = function () {\n var cdn = getCDN();\n return \"\".concat(cdn, \"/next-integrations\");\n};\n/**\n * Replaces the CDN URL in the script tag with the one from Analytics.js 1.0\n *\n * @returns the path to Analytics JS 1.0\n **/\nexport function getLegacyAJSPath() {\n var _a, _b;\n var writeKey = (_a = embeddedWriteKey()) !== null && _a !== void 0 ? _a : window.analytics._writeKey;\n var scripts = Array.prototype.slice.call(document.querySelectorAll('script'));\n var path = undefined;\n for (var _i = 0, scripts_1 = scripts; _i < scripts_1.length; _i++) {\n var s = scripts_1[_i];\n var src = (_b = s.getAttribute('src')) !== null && _b !== void 0 ? _b : '';\n var result = analyticsScriptRegex.exec(src);\n if (result && result[1]) {\n path = src;\n break;\n }\n }\n if (path) {\n return path.replace('analytics.min.js', 'analytics.classic.js');\n }\n return \"https://cdn.june.so/analytics.js/v1/\".concat(writeKey, \"/analytics.classic.js\");\n}\n//# sourceMappingURL=parse-cdn.js.map","import { __assign } from \"tslib\";\n/**\n * Merge legacy settings and initialized Integration option overrides.\n *\n * This will merge any options that were passed from initialization into\n * overrides for settings that are returned by the Segment CDN.\n *\n * i.e. this allows for passing options directly into destinations from\n * the Analytics constructor.\n */\nexport function mergedOptions(settings, options) {\n var _a;\n var optionOverrides = Object.entries((_a = options.integrations) !== null && _a !== void 0 ? _a : {}).reduce(function (overrides, _a) {\n var _b, _c;\n var integration = _a[0], options = _a[1];\n if (typeof options === 'object') {\n return __assign(__assign({}, overrides), (_b = {}, _b[integration] = options, _b));\n }\n return __assign(__assign({}, overrides), (_c = {}, _c[integration] = {}, _c));\n }, {});\n return Object.entries(settings.integrations).reduce(function (integrationSettings, _a) {\n var _b;\n var integration = _a[0], settings = _a[1];\n return __assign(__assign({}, integrationSettings), (_b = {}, _b[integration] = __assign(__assign({}, settings), optionOverrides[integration]), _b));\n }, {});\n}\n//# sourceMappingURL=merged-options.js.map","/**\n * Return a promise that can be externally resolved\n */\nexport var createDeferred = function () {\n var resolve;\n var reject;\n var promise = new Promise(function (_resolve, _reject) {\n resolve = _resolve;\n reject = _reject;\n });\n return {\n resolve: resolve,\n reject: reject,\n promise: promise,\n };\n};\n//# sourceMappingURL=create-deferred.js.map","/**\n * Get the current page's canonical URL.\n *\n * @return {string|undefined}\n */\nfunction canonical() {\n var tags = document.getElementsByTagName('link');\n var canon = '';\n Array.prototype.slice.call(tags).forEach(function (tag) {\n if (tag.getAttribute('rel') === 'canonical') {\n canon = tag.getAttribute('href');\n }\n });\n return canon;\n}\n/**\n * Return the canonical path for the page.\n */\nfunction canonicalPath() {\n var canon = canonical();\n if (!canon) {\n return window.location.pathname;\n }\n var a = document.createElement('a');\n a.href = canon;\n var pathname = !a.pathname.startsWith('/') ? '/' + a.pathname : a.pathname;\n return pathname;\n}\n/**\n * Return the canonical URL for the page concat the given `search`\n * and strip the hash.\n */\nexport function canonicalUrl(search) {\n if (search === void 0) { search = ''; }\n var canon = canonical();\n if (canon) {\n return canon.includes('?') ? canon : \"\".concat(canon).concat(search);\n }\n var url = window.location.href;\n var i = url.indexOf('#');\n return i === -1 ? url : url.slice(0, i);\n}\n/**\n * Return a default `options.context.page` object.\n *\n * https://segment.com/docs/spec/page/#properties\n */\nexport function pageDefaults() {\n return {\n path: canonicalPath(),\n referrer: document.referrer,\n search: location.search,\n title: document.title,\n url: canonicalUrl(location.search),\n };\n}\nfunction enrichPageContext(ctx) {\n var _a;\n var event = ctx.event;\n event.context = event.context || {};\n var pageContext = pageDefaults();\n var pageProps = (_a = event.properties) !== null && _a !== void 0 ? _a : {};\n Object.keys(pageContext).forEach(function (key) {\n if (pageProps[key]) {\n pageContext[key] = pageProps[key];\n }\n });\n if (event.context.page) {\n pageContext = Object.assign({}, pageContext, event.context.page);\n }\n event.context = Object.assign({}, event.context, {\n page: pageContext,\n });\n ctx.event = event;\n return ctx;\n}\nexport var pageEnrichment = {\n name: 'Page Enrichment',\n version: '0.1.0',\n isLoaded: function () { return true; },\n load: function () { return Promise.resolve(); },\n type: 'before',\n page: function (ctx) {\n ctx.event.properties = Object.assign({}, pageDefaults(), ctx.event.properties);\n if (ctx.event.name) {\n ctx.event.properties.name = ctx.event.name;\n }\n return enrichPageContext(ctx);\n },\n alias: enrichPageContext,\n track: enrichPageContext,\n identify: enrichPageContext,\n group: enrichPageContext,\n};\n//# sourceMappingURL=index.js.map","function findScript(src) {\n var scripts = Array.prototype.slice.call(window.document.querySelectorAll('script'));\n return scripts.find(function (s) { return s.src === src; });\n}\nexport function loadScript(src, attributes) {\n var found = findScript(src);\n if (found !== undefined) {\n var status_1 = found === null || found === void 0 ? void 0 : found.getAttribute('status');\n if (status_1 === 'loaded') {\n return Promise.resolve(found);\n }\n if (status_1 === 'loading') {\n return new Promise(function (resolve, reject) {\n found.addEventListener('load', function () { return resolve(found); });\n found.addEventListener('error', function (err) { return reject(err); });\n });\n }\n }\n return new Promise(function (resolve, reject) {\n var _a;\n var script = window.document.createElement('script');\n script.type = 'text/javascript';\n script.src = src;\n script.async = true;\n script.setAttribute('status', 'loading');\n for (var _i = 0, _b = Object.entries(attributes !== null && attributes !== void 0 ? attributes : {}); _i < _b.length; _i++) {\n var _c = _b[_i], k = _c[0], v = _c[1];\n script.setAttribute(k, v);\n }\n script.onload = function () {\n script.onerror = script.onload = null;\n script.setAttribute('status', 'loaded');\n resolve(script);\n };\n script.onerror = function () {\n script.onerror = script.onload = null;\n script.setAttribute('status', 'error');\n reject(new Error(\"Failed to load \".concat(src)));\n };\n var tag = window.document.getElementsByTagName('script')[0];\n (_a = tag.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(script, tag);\n });\n}\nexport function unloadScript(src) {\n var found = findScript(src);\n if (found !== undefined) {\n found.remove();\n }\n return Promise.resolve();\n}\n//# sourceMappingURL=load-script.js.map","\nvar identity = function(_){ return _; };\n\n\n/**\n * Module exports, export\n */\n\nmodule.exports = multiple(find);\nmodule.exports.find = module.exports;\n\n\n/**\n * Export the replacement function, return the modified object\n */\n\nmodule.exports.replace = function (obj, key, val, options) {\n multiple(replace).call(this, obj, key, val, options);\n return obj;\n};\n\n\n/**\n * Export the delete function, return the modified object\n */\n\nmodule.exports.del = function (obj, key, options) {\n multiple(del).call(this, obj, key, null, options);\n return obj;\n};\n\n\n/**\n * Compose applying the function to a nested key\n */\n\nfunction multiple (fn) {\n return function (obj, path, val, options) {\n var normalize = options && isFunction(options.normalizer) ? options.normalizer : defaultNormalize;\n path = normalize(path);\n\n var key;\n var finished = false;\n\n while (!finished) loop();\n\n function loop() {\n for (key in obj) {\n var normalizedKey = normalize(key);\n if (0 === path.indexOf(normalizedKey)) {\n var temp = path.substr(normalizedKey.length);\n if (temp.charAt(0) === '.' || temp.length === 0) {\n path = temp.substr(1);\n var child = obj[key];\n\n // we're at the end and there is nothing.\n if (null == child) {\n finished = true;\n return;\n }\n\n // we're at the end and there is something.\n if (!path.length) {\n finished = true;\n return;\n }\n\n // step into child\n obj = child;\n\n // but we're done here\n return;\n }\n }\n }\n\n key = undefined;\n // if we found no matching properties\n // on the current object, there's no match.\n finished = true;\n }\n\n if (!key) return;\n if (null == obj) return obj;\n\n // the `obj` and `key` is one above the leaf object and key, so\n // start object: { a: { 'b.c': 10 } }\n // end object: { 'b.c': 10 }\n // end key: 'b.c'\n // this way, you can do `obj[key]` and get `10`.\n return fn(obj, key, val);\n };\n}\n\n\n/**\n * Find an object by its key\n *\n * find({ first_name : 'Calvin' }, 'firstName')\n */\n\nfunction find (obj, key) {\n if (obj.hasOwnProperty(key)) return obj[key];\n}\n\n\n/**\n * Delete a value for a given key\n *\n * del({ a : 'b', x : 'y' }, 'X' }) -> { a : 'b' }\n */\n\nfunction del (obj, key) {\n if (obj.hasOwnProperty(key)) delete obj[key];\n return obj;\n}\n\n\n/**\n * Replace an objects existing value with a new one\n *\n * replace({ a : 'b' }, 'a', 'c') -> { a : 'c' }\n */\n\nfunction replace (obj, key, val) {\n if (obj.hasOwnProperty(key)) obj[key] = val;\n return obj;\n}\n\n/**\n * Normalize a `dot.separated.path`.\n *\n * A.HELL(!*&#(!)O_WOR LD.bar => ahelloworldbar\n *\n * @param {String} path\n * @return {String}\n */\n\nfunction defaultNormalize(path) {\n return path.replace(/[^a-zA-Z0-9\\.]+/g, '').toLowerCase();\n}\n\n/**\n * Check if a value is a function.\n *\n * @param {*} val\n * @return {boolean} Returns `true` if `val` is a function, otherwise `false`.\n */\n\nfunction isFunction(val) {\n return typeof val === 'function';\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar obj_case_1 = __importDefault(require(\"obj-case\"));\nfunction trait(a, b) {\n return function () {\n var traits = this.traits();\n var props = this.properties ? this.properties() : {};\n return (obj_case_1.default(traits, \"address.\" + a) ||\n obj_case_1.default(traits, a) ||\n (b ? obj_case_1.default(traits, \"address.\" + b) : null) ||\n (b ? obj_case_1.default(traits, b) : null) ||\n obj_case_1.default(props, \"address.\" + a) ||\n obj_case_1.default(props, a) ||\n (b ? obj_case_1.default(props, \"address.\" + b) : null) ||\n (b ? obj_case_1.default(props, b) : null));\n };\n}\nfunction default_1(proto) {\n proto.zip = trait(\"postalCode\", \"zip\");\n proto.country = trait(\"country\");\n proto.street = trait(\"street\");\n proto.state = trait(\"state\");\n proto.city = trait(\"city\");\n proto.region = trait(\"region\");\n}\nexports.default = default_1;\n//# sourceMappingURL=address.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.clone = void 0;\nfunction clone(properties) {\n if (typeof properties !== 'object')\n return properties;\n if (Object.prototype.toString.call(properties) === '[object Object]') {\n var temp = {};\n for (var key in properties) {\n if (Object.prototype.hasOwnProperty.call(properties, key)) {\n temp[key] = clone(properties[key]);\n }\n }\n return temp;\n }\n else if (Array.isArray(properties)) {\n return properties.map(clone);\n }\n else {\n return properties;\n }\n}\nexports.clone = clone;\n//# sourceMappingURL=clone.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar disabled = {\n Salesforce: true,\n};\nfunction default_1(integration) {\n return !disabled[integration];\n}\nexports.default = default_1;\n//# sourceMappingURL=is-enabled.js.map","'use strict';\n\n/**\n * Matcher, slightly modified from:\n *\n * https://github.com/csnover/js-iso8601/blob/lax/iso8601.js\n */\n\nvar matcher = /^(\\d{4})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:([ T])(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,\\.](\\d{1,}))?)?(?:(Z)|([+\\-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\n\n/**\n * Convert an ISO date string to a date. Fallback to native `Date.parse`.\n *\n * https://github.com/csnover/js-iso8601/blob/lax/iso8601.js\n *\n * @param {String} iso\n * @return {Date}\n */\n\nexports.parse = function(iso) {\n var numericKeys = [1, 5, 6, 7, 11, 12];\n var arr = matcher.exec(iso);\n var offset = 0;\n\n // fallback to native parsing\n if (!arr) {\n return new Date(iso);\n }\n\n /* eslint-disable no-cond-assign */\n // remove undefined values\n for (var i = 0, val; val = numericKeys[i]; i++) {\n arr[val] = parseInt(arr[val], 10) || 0;\n }\n /* eslint-enable no-cond-assign */\n\n // allow undefined days and months\n arr[2] = parseInt(arr[2], 10) || 1;\n arr[3] = parseInt(arr[3], 10) || 1;\n\n // month is 0-11\n arr[2]--;\n\n // allow abitrary sub-second precision\n arr[8] = arr[8] ? (arr[8] + '00').substring(0, 3) : 0;\n\n // apply timezone if one exists\n if (arr[4] === ' ') {\n offset = new Date().getTimezoneOffset();\n } else if (arr[9] !== 'Z' && arr[10]) {\n offset = arr[11] * 60 + arr[12];\n if (arr[10] === '+') {\n offset = 0 - offset;\n }\n }\n\n var millis = Date.UTC(arr[1], arr[2], arr[3], arr[5], arr[6] + offset, arr[7], arr[8]);\n return new Date(millis);\n};\n\n\n/**\n * Checks whether a `string` is an ISO date string. `strict` mode requires that\n * the date string at least have a year, month and date.\n *\n * @param {String} string\n * @param {Boolean} strict\n * @return {Boolean}\n */\n\nexports.is = function(string, strict) {\n if (typeof string !== 'string') {\n return false;\n }\n if (strict && (/^\\d{4}-\\d{2}-\\d{2}/).test(string) === false) {\n return false;\n }\n return matcher.test(string);\n};\n","\"use strict\";\n\n/**\n * Matcher.\n */\n\nvar matcher = /\\d{13}/;\n\n/**\n * Check whether a string is a millisecond date string.\n *\n * @param {string} string\n * @return {boolean}\n */\nexports.is = function (string) {\n return matcher.test(string);\n};\n\n/**\n * Convert a millisecond string to a date.\n *\n * @param {string} millis\n * @return {Date}\n */\nexports.parse = function (millis) {\n millis = parseInt(millis, 10);\n return new Date(millis);\n};\n","\"use strict\";\n\n/**\n * Matcher.\n */\n\nvar matcher = /\\d{10}/;\n\n/**\n * Check whether a string is a second date string.\n *\n * @param {string} string\n * @return {Boolean}\n */\nexports.is = function (string) {\n return matcher.test(string);\n};\n\n/**\n * Convert a second string to a date.\n *\n * @param {string} seconds\n * @return {Date}\n */\nexports.parse = function (seconds) {\n var millis = parseInt(seconds, 10) * 1000;\n return new Date(millis);\n};\n","\"use strict\";\n\nvar isodate = require(\"@segment/isodate\");\nvar milliseconds = require(\"./milliseconds\");\nvar seconds = require(\"./seconds\");\n\nvar objProto = Object.prototype;\nvar toStr = objProto.toString;\n\nfunction isDate(value) {\n return toStr.call(value) === \"[object Date]\";\n}\n\nfunction isNumber(value) {\n return toStr.call(value) === \"[object Number]\";\n}\n\n/**\n * Returns a new Javascript Date object, allowing a variety of extra input types\n * over the native Date constructor.\n *\n * @param {Date|string|number} val\n */\nmodule.exports = function newDate(val) {\n if (isDate(val)) return val;\n if (isNumber(val)) return new Date(toMs(val));\n\n // date strings\n if (isodate.is(val)) {\n return isodate.parse(val);\n }\n if (milliseconds.is(val)) {\n return milliseconds.parse(val);\n }\n if (seconds.is(val)) {\n return seconds.parse(val);\n }\n\n // fallback to Date.parse\n return new Date(val);\n};\n\n/**\n * If the number passed val is seconds from the epoch, turn it into milliseconds.\n * Milliseconds would be greater than 31557600000 (December 31, 1970).\n *\n * @param {number} num\n */\nfunction toMs(num) {\n if (num < 31557600000) return num * 1000;\n return num;\n}\n","'use strict';\n\nvar isodate = require('@segment/isodate');\n\n/**\n * Expose `traverse`.\n */\nmodule.exports = traverse;\n\n/**\n * Recursively traverse an object or array, and convert\n * all ISO date strings parse into Date objects.\n *\n * @param {Object} input - object, array, or string to convert\n * @param {Boolean} strict - only convert strings with year, month, and date\n * @return {Object}\n */\nfunction traverse(input, strict) {\n if (strict === undefined) strict = true;\n if (input && typeof input === 'object') {\n return traverseObject(input, strict);\n } else if (Array.isArray(input)) {\n return traverseArray(input, strict);\n } else if (isodate.is(input, strict)) {\n return isodate.parse(input);\n }\n return input;\n}\n\n/**\n * Object traverser helper function.\n *\n * @param {Object} obj - object to traverse\n * @param {Boolean} strict - only convert strings with year, month, and date\n * @return {Object}\n */\nfunction traverseObject(obj, strict) {\n Object.keys(obj).forEach(function(key) {\n obj[key] = traverse(obj[key], strict);\n });\n return obj;\n}\n\n/**\n * Array traverser helper function\n *\n * @param {Array} arr - array to traverse\n * @param {Boolean} strict - only convert strings with year, month, and date\n * @return {Array}\n */\nfunction traverseArray(arr, strict) {\n arr.forEach(function(value, index) {\n arr[index] = traverse(value, strict);\n });\n return arr;\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Facade = void 0;\nvar address_1 = __importDefault(require(\"./address\"));\nvar clone_1 = require(\"./clone\");\nvar is_enabled_1 = __importDefault(require(\"./is-enabled\"));\nvar new_date_1 = __importDefault(require(\"new-date\"));\nvar obj_case_1 = __importDefault(require(\"obj-case\"));\nvar isodate_traverse_1 = __importDefault(require(\"@segment/isodate-traverse\"));\nfunction Facade(obj, opts) {\n opts = opts || {};\n this.raw = clone_1.clone(obj);\n if (!(\"clone\" in opts))\n opts.clone = true;\n if (opts.clone)\n obj = clone_1.clone(obj);\n if (!(\"traverse\" in opts))\n opts.traverse = true;\n if (!(\"timestamp\" in obj))\n obj.timestamp = new Date();\n else\n obj.timestamp = new_date_1.default(obj.timestamp);\n if (opts.traverse)\n isodate_traverse_1.default(obj);\n this.opts = opts;\n this.obj = obj;\n}\nexports.Facade = Facade;\nvar f = Facade.prototype;\nf.proxy = function (field) {\n var fields = field.split(\".\");\n field = fields.shift();\n var obj = this[field] || this.obj[field];\n if (!obj)\n return obj;\n if (typeof obj === \"function\")\n obj = obj.call(this) || {};\n if (fields.length === 0)\n return this.opts.clone ? transform(obj) : obj;\n obj = obj_case_1.default(obj, fields.join(\".\"));\n return this.opts.clone ? transform(obj) : obj;\n};\nf.field = function (field) {\n var obj = this.obj[field];\n return this.opts.clone ? transform(obj) : obj;\n};\nFacade.proxy = function (field) {\n return function () {\n return this.proxy(field);\n };\n};\nFacade.field = function (field) {\n return function () {\n return this.field(field);\n };\n};\nFacade.multi = function (path) {\n return function () {\n var multi = this.proxy(path + \"s\");\n if (Array.isArray(multi))\n return multi;\n var one = this.proxy(path);\n if (one)\n one = [this.opts.clone ? clone_1.clone(one) : one];\n return one || [];\n };\n};\nFacade.one = function (path) {\n return function () {\n var one = this.proxy(path);\n if (one)\n return one;\n var multi = this.proxy(path + \"s\");\n if (Array.isArray(multi))\n return multi[0];\n };\n};\nf.json = function () {\n var ret = this.opts.clone ? clone_1.clone(this.obj) : this.obj;\n if (this.type)\n ret.type = this.type();\n return ret;\n};\nf.rawEvent = function () {\n return this.raw;\n};\nf.options = function (integration) {\n var obj = this.obj.options || this.obj.context || {};\n var options = this.opts.clone ? clone_1.clone(obj) : obj;\n if (!integration)\n return options;\n if (!this.enabled(integration))\n return;\n var integrations = this.integrations();\n var value = integrations[integration] || obj_case_1.default(integrations, integration);\n if (typeof value !== \"object\")\n value = obj_case_1.default(this.options(), integration);\n return typeof value === \"object\" ? value : {};\n};\nf.context = f.options;\nf.enabled = function (integration) {\n var allEnabled = this.proxy(\"options.providers.all\");\n if (typeof allEnabled !== \"boolean\")\n allEnabled = this.proxy(\"options.all\");\n if (typeof allEnabled !== \"boolean\")\n allEnabled = this.proxy(\"integrations.all\");\n if (typeof allEnabled !== \"boolean\")\n allEnabled = true;\n var enabled = allEnabled && is_enabled_1.default(integration);\n var options = this.integrations();\n if (options.providers && options.providers.hasOwnProperty(integration)) {\n enabled = options.providers[integration];\n }\n if (options.hasOwnProperty(integration)) {\n var settings = options[integration];\n if (typeof settings === \"boolean\") {\n enabled = settings;\n }\n else {\n enabled = true;\n }\n }\n return !!enabled;\n};\nf.integrations = function () {\n return (this.obj.integrations || this.proxy(\"options.providers\") || this.options());\n};\nf.active = function () {\n var active = this.proxy(\"options.active\");\n if (active === null || active === undefined)\n active = true;\n return active;\n};\nf.anonymousId = function () {\n return this.field(\"anonymousId\") || this.field(\"sessionId\");\n};\nf.sessionId = f.anonymousId;\nf.groupId = Facade.proxy(\"options.groupId\");\nf.traits = function (aliases) {\n var ret = this.proxy(\"options.traits\") || {};\n var id = this.userId();\n aliases = aliases || {};\n if (id)\n ret.id = id;\n for (var alias in aliases) {\n if (Object.prototype.hasOwnProperty.call(aliases, alias)) {\n var value = this[alias] == null\n ? this.proxy(\"options.traits.\" + alias)\n : this[alias]();\n if (value == null)\n continue;\n ret[aliases[alias]] = value;\n delete ret[alias];\n }\n }\n return ret;\n};\nf.library = function () {\n var library = this.proxy(\"options.library\");\n if (!library)\n return { name: \"unknown\", version: null };\n if (typeof library === \"string\")\n return { name: library, version: null };\n return library;\n};\nf.device = function () {\n var device = this.proxy(\"context.device\");\n if (typeof device !== \"object\" || device === null) {\n device = {};\n }\n var library = this.library().name;\n if (device.type)\n return device;\n if (library.indexOf(\"ios\") > -1)\n device.type = \"ios\";\n if (library.indexOf(\"android\") > -1)\n device.type = \"android\";\n return device;\n};\nf.userAgent = Facade.proxy(\"context.userAgent\");\nf.timezone = Facade.proxy(\"context.timezone\");\nf.timestamp = Facade.field(\"timestamp\");\nf.channel = Facade.field(\"channel\");\nf.ip = Facade.proxy(\"context.ip\");\nf.userId = Facade.field(\"userId\");\naddress_1.default(f);\nfunction transform(obj) {\n return clone_1.clone(obj);\n}\n//# sourceMappingURL=facade.js.map","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Alias = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar facade_1 = require(\"./facade\");\nfunction Alias(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Alias = Alias;\ninherits_1.default(Alias, facade_1.Facade);\nAlias.prototype.action = function () {\n return \"alias\";\n};\nAlias.prototype.type = Alias.prototype.action;\nAlias.prototype.previousId = function () {\n return this.field(\"previousId\") || this.field(\"from\");\n};\nAlias.prototype.from = Alias.prototype.previousId;\nAlias.prototype.userId = function () {\n return this.field(\"userId\") || this.field(\"to\");\n};\nAlias.prototype.to = Alias.prototype.userId;\n//# sourceMappingURL=alias.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar matcher = /.+\\@.+\\..+/;\nfunction isEmail(string) {\n return matcher.test(string);\n}\nexports.default = isEmail;\n//# sourceMappingURL=is-email.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Group = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar is_email_1 = __importDefault(require(\"./is-email\"));\nvar new_date_1 = __importDefault(require(\"new-date\"));\nvar facade_1 = require(\"./facade\");\nfunction Group(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Group = Group;\ninherits_1.default(Group, facade_1.Facade);\nvar g = Group.prototype;\ng.action = function () {\n return \"group\";\n};\ng.type = g.action;\ng.groupId = facade_1.Facade.field(\"groupId\");\ng.created = function () {\n var created = this.proxy(\"traits.createdAt\") ||\n this.proxy(\"traits.created\") ||\n this.proxy(\"properties.createdAt\") ||\n this.proxy(\"properties.created\");\n if (created)\n return new_date_1.default(created);\n};\ng.email = function () {\n var email = this.proxy(\"traits.email\");\n if (email)\n return email;\n var groupId = this.groupId();\n if (is_email_1.default(groupId))\n return groupId;\n};\ng.traits = function (aliases) {\n var ret = this.properties();\n var id = this.groupId();\n aliases = aliases || {};\n if (id)\n ret.id = id;\n for (var alias in aliases) {\n if (Object.prototype.hasOwnProperty.call(aliases, alias)) {\n var value = this[alias] == null\n ? this.proxy(\"traits.\" + alias)\n : this[alias]();\n if (value == null)\n continue;\n ret[aliases[alias]] = value;\n delete ret[alias];\n }\n }\n return ret;\n};\ng.name = facade_1.Facade.proxy(\"traits.name\");\ng.industry = facade_1.Facade.proxy(\"traits.industry\");\ng.employees = facade_1.Facade.proxy(\"traits.employees\");\ng.properties = function () {\n return this.field(\"traits\") || this.field(\"properties\") || {};\n};\n//# sourceMappingURL=group.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Identify = void 0;\nvar facade_1 = require(\"./facade\");\nvar obj_case_1 = __importDefault(require(\"obj-case\"));\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar is_email_1 = __importDefault(require(\"./is-email\"));\nvar new_date_1 = __importDefault(require(\"new-date\"));\nvar trim = function (str) { return str.trim(); };\nfunction Identify(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Identify = Identify;\ninherits_1.default(Identify, facade_1.Facade);\nvar i = Identify.prototype;\ni.action = function () {\n return \"identify\";\n};\ni.type = i.action;\ni.traits = function (aliases) {\n var ret = this.field(\"traits\") || {};\n var id = this.userId();\n aliases = aliases || {};\n if (id)\n ret.id = id;\n for (var alias in aliases) {\n var value = this[alias] == null ? this.proxy(\"traits.\" + alias) : this[alias]();\n if (value == null)\n continue;\n ret[aliases[alias]] = value;\n if (alias !== aliases[alias])\n delete ret[alias];\n }\n return ret;\n};\ni.email = function () {\n var email = this.proxy(\"traits.email\");\n if (email)\n return email;\n var userId = this.userId();\n if (is_email_1.default(userId))\n return userId;\n};\ni.created = function () {\n var created = this.proxy(\"traits.created\") || this.proxy(\"traits.createdAt\");\n if (created)\n return new_date_1.default(created);\n};\ni.companyCreated = function () {\n var created = this.proxy(\"traits.company.created\") ||\n this.proxy(\"traits.company.createdAt\");\n if (created) {\n return new_date_1.default(created);\n }\n};\ni.companyName = function () {\n return this.proxy(\"traits.company.name\");\n};\ni.name = function () {\n var name = this.proxy(\"traits.name\");\n if (typeof name === \"string\") {\n return trim(name);\n }\n var firstName = this.firstName();\n var lastName = this.lastName();\n if (firstName && lastName) {\n return trim(firstName + \" \" + lastName);\n }\n};\ni.firstName = function () {\n var firstName = this.proxy(\"traits.firstName\");\n if (typeof firstName === \"string\") {\n return trim(firstName);\n }\n var name = this.proxy(\"traits.name\");\n if (typeof name === \"string\") {\n return trim(name).split(\" \")[0];\n }\n};\ni.lastName = function () {\n var lastName = this.proxy(\"traits.lastName\");\n if (typeof lastName === \"string\") {\n return trim(lastName);\n }\n var name = this.proxy(\"traits.name\");\n if (typeof name !== \"string\") {\n return;\n }\n var space = trim(name).indexOf(\" \");\n if (space === -1) {\n return;\n }\n return trim(name.substr(space + 1));\n};\ni.uid = function () {\n return this.userId() || this.username() || this.email();\n};\ni.description = function () {\n return this.proxy(\"traits.description\") || this.proxy(\"traits.background\");\n};\ni.age = function () {\n var date = this.birthday();\n var age = obj_case_1.default(this.traits(), \"age\");\n if (age != null)\n return age;\n if (!(date instanceof Date))\n return;\n var now = new Date();\n return now.getFullYear() - date.getFullYear();\n};\ni.avatar = function () {\n var traits = this.traits();\n return (obj_case_1.default(traits, \"avatar\") || obj_case_1.default(traits, \"photoUrl\") || obj_case_1.default(traits, \"avatarUrl\"));\n};\ni.position = function () {\n var traits = this.traits();\n return obj_case_1.default(traits, \"position\") || obj_case_1.default(traits, \"jobTitle\");\n};\ni.username = facade_1.Facade.proxy(\"traits.username\");\ni.website = facade_1.Facade.one(\"traits.website\");\ni.websites = facade_1.Facade.multi(\"traits.website\");\ni.phone = facade_1.Facade.one(\"traits.phone\");\ni.phones = facade_1.Facade.multi(\"traits.phone\");\ni.address = facade_1.Facade.proxy(\"traits.address\");\ni.gender = facade_1.Facade.proxy(\"traits.gender\");\ni.birthday = facade_1.Facade.proxy(\"traits.birthday\");\n//# sourceMappingURL=identify.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Track = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar facade_1 = require(\"./facade\");\nvar identify_1 = require(\"./identify\");\nvar is_email_1 = __importDefault(require(\"./is-email\"));\nvar obj_case_1 = __importDefault(require(\"obj-case\"));\nfunction Track(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Track = Track;\ninherits_1.default(Track, facade_1.Facade);\nvar t = Track.prototype;\nt.action = function () {\n return \"track\";\n};\nt.type = t.action;\nt.event = facade_1.Facade.field(\"event\");\nt.value = facade_1.Facade.proxy(\"properties.value\");\nt.category = facade_1.Facade.proxy(\"properties.category\");\nt.id = facade_1.Facade.proxy(\"properties.id\");\nt.productId = function () {\n return (this.proxy(\"properties.product_id\") || this.proxy(\"properties.productId\"));\n};\nt.promotionId = function () {\n return (this.proxy(\"properties.promotion_id\") ||\n this.proxy(\"properties.promotionId\"));\n};\nt.cartId = function () {\n return this.proxy(\"properties.cart_id\") || this.proxy(\"properties.cartId\");\n};\nt.checkoutId = function () {\n return (this.proxy(\"properties.checkout_id\") || this.proxy(\"properties.checkoutId\"));\n};\nt.paymentId = function () {\n return (this.proxy(\"properties.payment_id\") || this.proxy(\"properties.paymentId\"));\n};\nt.couponId = function () {\n return (this.proxy(\"properties.coupon_id\") || this.proxy(\"properties.couponId\"));\n};\nt.wishlistId = function () {\n return (this.proxy(\"properties.wishlist_id\") || this.proxy(\"properties.wishlistId\"));\n};\nt.reviewId = function () {\n return (this.proxy(\"properties.review_id\") || this.proxy(\"properties.reviewId\"));\n};\nt.orderId = function () {\n return (this.proxy(\"properties.id\") ||\n this.proxy(\"properties.order_id\") ||\n this.proxy(\"properties.orderId\"));\n};\nt.sku = facade_1.Facade.proxy(\"properties.sku\");\nt.tax = facade_1.Facade.proxy(\"properties.tax\");\nt.name = facade_1.Facade.proxy(\"properties.name\");\nt.price = facade_1.Facade.proxy(\"properties.price\");\nt.total = facade_1.Facade.proxy(\"properties.total\");\nt.repeat = facade_1.Facade.proxy(\"properties.repeat\");\nt.coupon = facade_1.Facade.proxy(\"properties.coupon\");\nt.shipping = facade_1.Facade.proxy(\"properties.shipping\");\nt.discount = facade_1.Facade.proxy(\"properties.discount\");\nt.shippingMethod = function () {\n return (this.proxy(\"properties.shipping_method\") ||\n this.proxy(\"properties.shippingMethod\"));\n};\nt.paymentMethod = function () {\n return (this.proxy(\"properties.payment_method\") ||\n this.proxy(\"properties.paymentMethod\"));\n};\nt.description = facade_1.Facade.proxy(\"properties.description\");\nt.plan = facade_1.Facade.proxy(\"properties.plan\");\nt.subtotal = function () {\n var subtotal = obj_case_1.default(this.properties(), \"subtotal\");\n var total = this.total() || this.revenue();\n if (subtotal)\n return subtotal;\n if (!total)\n return 0;\n if (this.total()) {\n var n = this.tax();\n if (n)\n total -= n;\n n = this.shipping();\n if (n)\n total -= n;\n n = this.discount();\n if (n)\n total += n;\n }\n return total;\n};\nt.products = function () {\n var props = this.properties();\n var products = obj_case_1.default(props, \"products\");\n if (Array.isArray(products)) {\n return products.filter(function (item) { return item !== null; });\n }\n return [];\n};\nt.quantity = function () {\n var props = this.obj.properties || {};\n return props.quantity || 1;\n};\nt.currency = function () {\n var props = this.obj.properties || {};\n return props.currency || \"USD\";\n};\nt.referrer = function () {\n return (this.proxy(\"context.referrer.url\") ||\n this.proxy(\"context.page.referrer\") ||\n this.proxy(\"properties.referrer\"));\n};\nt.query = facade_1.Facade.proxy(\"options.query\");\nt.properties = function (aliases) {\n var ret = this.field(\"properties\") || {};\n aliases = aliases || {};\n for (var alias in aliases) {\n if (Object.prototype.hasOwnProperty.call(aliases, alias)) {\n var value = this[alias] == null\n ? this.proxy(\"properties.\" + alias)\n : this[alias]();\n if (value == null)\n continue;\n ret[aliases[alias]] = value;\n delete ret[alias];\n }\n }\n return ret;\n};\nt.username = function () {\n return (this.proxy(\"traits.username\") ||\n this.proxy(\"properties.username\") ||\n this.userId() ||\n this.sessionId());\n};\nt.email = function () {\n var email = this.proxy(\"traits.email\") ||\n this.proxy(\"properties.email\") ||\n this.proxy(\"options.traits.email\");\n if (email)\n return email;\n var userId = this.userId();\n if (is_email_1.default(userId))\n return userId;\n};\nt.revenue = function () {\n var revenue = this.proxy(\"properties.revenue\");\n var event = this.event();\n var orderCompletedRegExp = /^[ _]?completed[ _]?order[ _]?|^[ _]?order[ _]?completed[ _]?$/i;\n if (!revenue && event && event.match(orderCompletedRegExp)) {\n revenue = this.proxy(\"properties.total\");\n }\n return currency(revenue);\n};\nt.cents = function () {\n var revenue = this.revenue();\n return typeof revenue !== \"number\" ? this.value() || 0 : revenue * 100;\n};\nt.identify = function () {\n var json = this.json();\n json.traits = this.traits();\n return new identify_1.Identify(json, this.opts);\n};\nfunction currency(val) {\n if (!val)\n return;\n if (typeof val === \"number\") {\n return val;\n }\n if (typeof val !== \"string\") {\n return;\n }\n val = val.replace(/\\$/g, \"\");\n val = parseFloat(val);\n if (!isNaN(val)) {\n return val;\n }\n}\n//# sourceMappingURL=track.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Page = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar facade_1 = require(\"./facade\");\nvar track_1 = require(\"./track\");\nvar is_email_1 = __importDefault(require(\"./is-email\"));\nfunction Page(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Page = Page;\ninherits_1.default(Page, facade_1.Facade);\nvar p = Page.prototype;\np.action = function () {\n return \"page\";\n};\np.type = p.action;\np.category = facade_1.Facade.field(\"category\");\np.name = facade_1.Facade.field(\"name\");\np.title = facade_1.Facade.proxy(\"properties.title\");\np.path = facade_1.Facade.proxy(\"properties.path\");\np.url = facade_1.Facade.proxy(\"properties.url\");\np.referrer = function () {\n return (this.proxy(\"context.referrer.url\") ||\n this.proxy(\"context.page.referrer\") ||\n this.proxy(\"properties.referrer\"));\n};\np.properties = function (aliases) {\n var props = this.field(\"properties\") || {};\n var category = this.category();\n var name = this.name();\n aliases = aliases || {};\n if (category)\n props.category = category;\n if (name)\n props.name = name;\n for (var alias in aliases) {\n if (Object.prototype.hasOwnProperty.call(aliases, alias)) {\n var value = this[alias] == null\n ? this.proxy(\"properties.\" + alias)\n : this[alias]();\n if (value == null)\n continue;\n props[aliases[alias]] = value;\n if (alias !== aliases[alias])\n delete props[alias];\n }\n }\n return props;\n};\np.email = function () {\n var email = this.proxy(\"context.traits.email\") || this.proxy(\"properties.email\");\n if (email)\n return email;\n var userId = this.userId();\n if (is_email_1.default(userId))\n return userId;\n};\np.fullName = function () {\n var category = this.category();\n var name = this.name();\n return name && category ? category + \" \" + name : name;\n};\np.event = function (name) {\n return name ? \"Viewed \" + name + \" Page\" : \"Loaded a Page\";\n};\np.track = function (name) {\n var json = this.json();\n json.event = this.event(name);\n json.timestamp = this.timestamp();\n json.properties = this.properties();\n return new track_1.Track(json, this.opts);\n};\n//# sourceMappingURL=page.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Screen = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar page_1 = require(\"./page\");\nvar track_1 = require(\"./track\");\nfunction Screen(dictionary, opts) {\n page_1.Page.call(this, dictionary, opts);\n}\nexports.Screen = Screen;\ninherits_1.default(Screen, page_1.Page);\nScreen.prototype.action = function () {\n return \"screen\";\n};\nScreen.prototype.type = Screen.prototype.action;\nScreen.prototype.event = function (name) {\n return name ? \"Viewed \" + name + \" Screen\" : \"Loaded a Screen\";\n};\nScreen.prototype.track = function (name) {\n var json = this.json();\n json.event = this.event(name);\n json.timestamp = this.timestamp();\n json.properties = this.properties();\n return new track_1.Track(json, this.opts);\n};\n//# sourceMappingURL=screen.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Delete = void 0;\nvar inherits_1 = __importDefault(require(\"inherits\"));\nvar facade_1 = require(\"./facade\");\nfunction Delete(dictionary, opts) {\n facade_1.Facade.call(this, dictionary, opts);\n}\nexports.Delete = Delete;\ninherits_1.default(Delete, facade_1.Facade);\nDelete.prototype.type = function () {\n return \"delete\";\n};\n//# sourceMappingURL=delete.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Delete = exports.Screen = exports.Page = exports.Track = exports.Identify = exports.Group = exports.Alias = exports.Facade = void 0;\nvar facade_1 = require(\"./facade\");\nObject.defineProperty(exports, \"Facade\", { enumerable: true, get: function () { return facade_1.Facade; } });\nvar alias_1 = require(\"./alias\");\nObject.defineProperty(exports, \"Alias\", { enumerable: true, get: function () { return alias_1.Alias; } });\nvar group_1 = require(\"./group\");\nObject.defineProperty(exports, \"Group\", { enumerable: true, get: function () { return group_1.Group; } });\nvar identify_1 = require(\"./identify\");\nObject.defineProperty(exports, \"Identify\", { enumerable: true, get: function () { return identify_1.Identify; } });\nvar track_1 = require(\"./track\");\nObject.defineProperty(exports, \"Track\", { enumerable: true, get: function () { return track_1.Track; } });\nvar page_1 = require(\"./page\");\nObject.defineProperty(exports, \"Page\", { enumerable: true, get: function () { return page_1.Page; } });\nvar screen_1 = require(\"./screen\");\nObject.defineProperty(exports, \"Screen\", { enumerable: true, get: function () { return screen_1.Screen; } });\nvar delete_1 = require(\"./delete\");\nObject.defineProperty(exports, \"Delete\", { enumerable: true, get: function () { return delete_1.Delete; } });\nexports.default = __assign(__assign({}, facade_1.Facade), { Alias: alias_1.Alias,\n Group: group_1.Group,\n Identify: identify_1.Identify,\n Track: track_1.Track,\n Page: page_1.Page,\n Screen: screen_1.Screen,\n Delete: delete_1.Delete });\n//# sourceMappingURL=index.js.map","import { Alias, Facade, Group, Identify, Page, Screen, Track, } from '@segment/facade';\nexport function toFacade(evt, options) {\n var fcd = new Facade(evt, options);\n if (evt.type === 'track') {\n fcd = new Track(evt, options);\n }\n if (evt.type === 'identify') {\n fcd = new Identify(evt, options);\n }\n if (evt.type === 'page') {\n fcd = new Page(evt, options);\n }\n if (evt.type === 'alias') {\n fcd = new Alias(evt, options);\n }\n if (evt.type === 'group') {\n fcd = new Group(evt, options);\n }\n if (evt.type === 'screen') {\n fcd = new Screen(evt, options);\n }\n Object.defineProperty(fcd, 'obj', {\n value: evt,\n writable: true,\n });\n return fcd;\n}\n//# sourceMappingURL=to-facade.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { ContextCancelation } from '../../core/context';\nimport { toFacade } from '../../lib/to-facade';\nexport function applyDestinationMiddleware(destination, evt, middleware) {\n return __awaiter(this, void 0, void 0, function () {\n function applyMiddleware(event, fn) {\n return __awaiter(this, void 0, void 0, function () {\n var nextCalled, returnedEvent;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n nextCalled = false;\n returnedEvent = null;\n return [4 /*yield*/, fn({\n payload: toFacade(event, {\n clone: true,\n traverse: false,\n }),\n integration: destination,\n next: function (evt) {\n nextCalled = true;\n if (evt === null) {\n returnedEvent = null;\n }\n if (evt) {\n returnedEvent = evt.obj;\n }\n },\n })];\n case 1:\n _b.sent();\n if (!nextCalled && returnedEvent !== null) {\n returnedEvent = returnedEvent;\n returnedEvent.integrations = __assign(__assign({}, event.integrations), (_a = {}, _a[destination] = false, _a));\n }\n return [2 /*return*/, returnedEvent];\n }\n });\n });\n }\n var modifiedEvent, _i, middleware_1, md, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n modifiedEvent = toFacade(evt, {\n clone: true,\n traverse: false,\n }).rawEvent();\n _i = 0, middleware_1 = middleware;\n _a.label = 1;\n case 1:\n if (!(_i < middleware_1.length)) return [3 /*break*/, 4];\n md = middleware_1[_i];\n return [4 /*yield*/, applyMiddleware(modifiedEvent, md)];\n case 2:\n result = _a.sent();\n if (result === null) {\n return [2 /*return*/, null];\n }\n modifiedEvent = result;\n _a.label = 3;\n case 3:\n _i++;\n return [3 /*break*/, 1];\n case 4: return [2 /*return*/, modifiedEvent];\n }\n });\n });\n}\nexport function sourceMiddlewarePlugin(fn, integrations) {\n function apply(ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var nextCalled;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n nextCalled = false;\n return [4 /*yield*/, fn({\n payload: toFacade(ctx.event, {\n clone: true,\n traverse: false,\n }),\n integrations: integrations !== null && integrations !== void 0 ? integrations : {},\n next: function (evt) {\n nextCalled = true;\n if (evt) {\n ctx.event = evt.obj;\n }\n },\n })];\n case 1:\n _a.sent();\n if (!nextCalled) {\n throw new ContextCancelation({\n retry: false,\n type: 'middleware_cancellation',\n reason: 'Middleware `next` function skipped',\n });\n }\n return [2 /*return*/, ctx];\n }\n });\n });\n }\n return {\n name: \"Source Middleware \".concat(fn.name),\n type: 'before',\n version: '0.1.0',\n isLoaded: function () { return true; },\n load: function (ctx) { return Promise.resolve(ctx); },\n track: apply,\n page: apply,\n identify: apply,\n alias: apply,\n group: apply,\n };\n}\n//# sourceMappingURL=index.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { loadScript } from '../../lib/load-script';\nimport { getCDN } from '../../lib/parse-cdn';\nimport { applyDestinationMiddleware, } from '../middleware';\nimport { Context, ContextCancelation } from '../../core/context';\nvar ActionDestination = /** @class */ (function () {\n function ActionDestination(name, action) {\n this.version = '1.0.0';\n this.alternativeNames = [];\n this.middleware = [];\n this.alias = this._createMethod('alias');\n this.group = this._createMethod('group');\n this.identify = this._createMethod('identify');\n this.page = this._createMethod('page');\n this.screen = this._createMethod('screen');\n this.track = this._createMethod('track');\n this.action = action;\n this.name = name;\n this.type = action.type;\n this.alternativeNames.push(action.name);\n }\n ActionDestination.prototype.addMiddleware = function () {\n var _a;\n var fn = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fn[_i] = arguments[_i];\n }\n if (this.type === 'destination') {\n (_a = this.middleware).push.apply(_a, fn);\n }\n };\n ActionDestination.prototype.transform = function (ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var modifiedEvent;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, applyDestinationMiddleware(this.name, ctx.event, this.middleware)];\n case 1:\n modifiedEvent = _a.sent();\n if (modifiedEvent === null) {\n ctx.cancel(new ContextCancelation({\n retry: false,\n reason: 'dropped by destination middleware',\n }));\n }\n return [2 /*return*/, new Context(modifiedEvent)];\n }\n });\n });\n };\n ActionDestination.prototype._createMethod = function (methodName) {\n var _this = this;\n return function (ctx) { return __awaiter(_this, void 0, void 0, function () {\n var transformedContext;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.action[methodName])\n return [2 /*return*/, ctx];\n transformedContext = ctx;\n if (!(this.type === 'destination')) return [3 /*break*/, 2];\n return [4 /*yield*/, this.transform(ctx)];\n case 1:\n transformedContext = _a.sent();\n _a.label = 2;\n case 2: return [4 /*yield*/, this.action[methodName](transformedContext)];\n case 3:\n _a.sent();\n return [2 /*return*/, ctx];\n }\n });\n }); };\n };\n /* --- PASSTHROUGH METHODS --- */\n ActionDestination.prototype.isLoaded = function () {\n return this.action.isLoaded();\n };\n ActionDestination.prototype.ready = function () {\n return this.action.ready ? this.action.ready() : Promise.resolve();\n };\n ActionDestination.prototype.load = function (ctx, analytics) {\n return this.action.load(ctx, analytics);\n };\n ActionDestination.prototype.unload = function (ctx, analytics) {\n var _a, _b;\n return (_b = (_a = this.action).unload) === null || _b === void 0 ? void 0 : _b.call(_a, ctx, analytics);\n };\n return ActionDestination;\n}());\nexport { ActionDestination };\nfunction validate(pluginLike) {\n if (!Array.isArray(pluginLike)) {\n throw new Error('Not a valid list of plugins');\n }\n var required = ['load', 'isLoaded', 'name', 'version', 'type'];\n pluginLike.forEach(function (plugin) {\n required.forEach(function (method) {\n var _a;\n if (plugin[method] === undefined) {\n throw new Error(\"Plugin: \".concat((_a = plugin.name) !== null && _a !== void 0 ? _a : 'unknown', \" missing required function \").concat(method));\n }\n });\n });\n return true;\n}\nfunction isPluginDisabled(userIntegrations, remotePlugin) {\n var creationNameEnabled = userIntegrations[remotePlugin.creationName];\n var currentNameEnabled = userIntegrations[remotePlugin.name];\n // Check that the plugin isn't explicitly enabled when All: false\n if (userIntegrations.All === false &&\n !creationNameEnabled &&\n !currentNameEnabled) {\n return true;\n }\n // Check that the plugin isn't explicitly disabled\n if (creationNameEnabled === false || currentNameEnabled === false) {\n return true;\n }\n return false;\n}\nexport function remoteLoader(settings, userIntegrations, mergedIntegrations, obfuscate, routingMiddleware) {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function () {\n var allPlugins, cdn, routingRules, pluginPromises;\n var _this = this;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n allPlugins = [];\n cdn = getCDN();\n routingRules = (_b = (_a = settings.middlewareSettings) === null || _a === void 0 ? void 0 : _a.routingRules) !== null && _b !== void 0 ? _b : [];\n pluginPromises = ((_c = settings.remotePlugins) !== null && _c !== void 0 ? _c : []).map(function (remotePlugin) { return __awaiter(_this, void 0, void 0, function () {\n var urlSplit, name_1, obfuscatedURL, error_1, libraryName, pluginFactory, plugin, plugins, routing_1, error_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (isPluginDisabled(userIntegrations, remotePlugin))\n return [2 /*return*/];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 12, , 13]);\n if (!obfuscate) return [3 /*break*/, 7];\n urlSplit = remotePlugin.url.split('/');\n name_1 = urlSplit[urlSplit.length - 2];\n obfuscatedURL = remotePlugin.url.replace(name_1, btoa(name_1).replace(/=/g, ''));\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 6]);\n return [4 /*yield*/, loadScript(obfuscatedURL.replace('https://cdn.june.so', cdn))];\n case 3:\n _a.sent();\n return [3 /*break*/, 6];\n case 4:\n error_1 = _a.sent();\n // Due to syncing concerns it is possible that the obfuscated action destination (or requested version) might not exist.\n // We should use the unobfuscated version as a fallback.\n return [4 /*yield*/, loadScript(remotePlugin.url.replace('https://cdn.june.so', cdn))];\n case 5:\n // Due to syncing concerns it is possible that the obfuscated action destination (or requested version) might not exist.\n // We should use the unobfuscated version as a fallback.\n _a.sent();\n return [3 /*break*/, 6];\n case 6: return [3 /*break*/, 9];\n case 7: return [4 /*yield*/, loadScript(remotePlugin.url.replace('https://cdn.june.so', cdn))];\n case 8:\n _a.sent();\n _a.label = 9;\n case 9:\n libraryName = remotePlugin.libraryName;\n if (!(typeof window[libraryName] === 'function')) return [3 /*break*/, 11];\n pluginFactory = window[libraryName];\n return [4 /*yield*/, pluginFactory(__assign(__assign({}, remotePlugin.settings), mergedIntegrations[remotePlugin.name]))];\n case 10:\n plugin = _a.sent();\n plugins = Array.isArray(plugin) ? plugin : [plugin];\n validate(plugins);\n routing_1 = routingRules.filter(function (rule) { return rule.destinationName === remotePlugin.creationName; });\n plugins.forEach(function (plugin) {\n var wrapper = new ActionDestination(remotePlugin.creationName, plugin);\n /** Make sure we only apply destination filters to actions of the \"destination\" type to avoid causing issues for hybrid destinations */\n if (routing_1.length &&\n routingMiddleware &&\n plugin.type === 'destination') {\n wrapper.addMiddleware(routingMiddleware);\n }\n allPlugins.push(wrapper);\n });\n _a.label = 11;\n case 11: return [3 /*break*/, 13];\n case 12:\n error_2 = _a.sent();\n console.warn('Failed to load Remote Plugin', error_2);\n return [3 /*break*/, 13];\n case 13: return [2 /*return*/];\n }\n });\n }); });\n return [4 /*yield*/, Promise.all(pluginPromises)];\n case 1:\n _d.sent();\n return [2 /*return*/, allPlugins.filter(Boolean)];\n }\n });\n });\n}\n//# sourceMappingURL=index.js.map","/**\n * Register event listener on document that fires when:\n * * tab change or tab close (in mobile or desktop)\n * * click back / forward button\n * * click any link or perform any other navigation action\n * * soft refresh / hard refresh\n *\n * adapted from https://stackoverflow.com/questions/3239834/window-onbeforeunload-not-working-on-the-ipad/52864508#52864508,\n */\nexport var onPageLeave = function (cb) {\n var unloaded = false; // prevents double firing if both are supported\n window.addEventListener('pagehide', function () {\n if (unloaded)\n return;\n unloaded = true;\n cb();\n });\n // using document instead of window because of bug affecting browsers before safari 14 (detail in footnotes https://caniuse.com/?search=visibilitychange)\n document.addEventListener('visibilitychange', function () {\n if (document.visibilityState == 'hidden') {\n if (unloaded)\n return;\n unloaded = true;\n cb();\n }\n else {\n unloaded = false;\n }\n });\n};\n//# sourceMappingURL=on-page-leave.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { fetch } from '../../lib/fetch';\nimport { onPageLeave } from '../../lib/on-page-leave';\nvar MAX_PAYLOAD_SIZE = 500;\nfunction kilobytes(buffer) {\n var size = encodeURI(JSON.stringify(buffer)).split(/%..|./).length - 1;\n return size / 1024;\n}\n/**\n * Checks if the payload is over or close to\n * the maximum payload size allowed by tracking\n * API.\n */\nfunction approachingTrackingAPILimit(buffer) {\n return kilobytes(buffer) >= MAX_PAYLOAD_SIZE - 50;\n}\nfunction chunks(batch) {\n var result = [];\n var index = 0;\n batch.forEach(function (item) {\n var size = kilobytes(result[index]);\n if (size >= 64) {\n index++;\n }\n if (result[index]) {\n result[index].push(item);\n }\n else {\n result[index] = [item];\n }\n });\n return result;\n}\nexport default function batch(apiHost, config) {\n var _a, _b;\n var buffer = [];\n var pageUnloaded = false;\n var limit = (_a = config === null || config === void 0 ? void 0 : config.size) !== null && _a !== void 0 ? _a : 10;\n var timeout = (_b = config === null || config === void 0 ? void 0 : config.timeout) !== null && _b !== void 0 ? _b : 5000;\n function sendBatch(batch) {\n var _a;\n if (batch.length === 0) {\n return;\n }\n var writeKey = (_a = batch[0]) === null || _a === void 0 ? void 0 : _a.writeKey;\n return fetch(\"https://\".concat(apiHost, \"/b\"), {\n keepalive: pageUnloaded,\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'post',\n body: JSON.stringify({ batch: batch, writeKey: writeKey }),\n });\n }\n function flush() {\n return __awaiter(this, void 0, void 0, function () {\n var batch_1;\n return __generator(this, function (_a) {\n if (buffer.length) {\n batch_1 = buffer;\n buffer = [];\n return [2 /*return*/, sendBatch(batch_1)];\n }\n return [2 /*return*/];\n });\n });\n }\n var schedule;\n function scheduleFlush() {\n if (schedule) {\n return;\n }\n schedule = setTimeout(function () {\n schedule = undefined;\n flush().catch(console.error);\n }, timeout);\n }\n onPageLeave(function () {\n pageUnloaded = true;\n if (buffer.length) {\n var reqs = chunks(buffer).map(sendBatch);\n Promise.all(reqs).catch(console.error);\n }\n });\n function dispatch(_url, body) {\n return __awaiter(this, void 0, void 0, function () {\n var bufferOverflow;\n return __generator(this, function (_a) {\n buffer.push(body);\n bufferOverflow = buffer.length >= limit || approachingTrackingAPILimit(buffer);\n return [2 /*return*/, bufferOverflow || pageUnloaded ? flush() : scheduleFlush()];\n });\n });\n }\n return {\n dispatch: dispatch,\n };\n}\n//# sourceMappingURL=batched-dispatcher.js.map","import { fetch } from '../../lib/fetch';\nexport default function (config) {\n function dispatch(url, body) {\n return fetch(url, {\n keepalive: config === null || config === void 0 ? void 0 : config.keepalive,\n headers: { 'Content-Type': 'application/json' },\n method: 'post',\n body: JSON.stringify(body),\n });\n }\n return {\n dispatch: dispatch,\n };\n}\n//# sourceMappingURL=fetch-dispatcher.js.map","import { __awaiter, __generator } from \"tslib\";\nexport var pWhile = function (condition, action) { return __awaiter(void 0, void 0, void 0, function () {\n var loop;\n return __generator(this, function (_a) {\n loop = function (actionResult) { return __awaiter(void 0, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!condition(actionResult)) return [3 /*break*/, 2];\n _a = loop;\n return [4 /*yield*/, action()];\n case 1: return [2 /*return*/, _a.apply(void 0, [_b.sent()])];\n case 2: return [2 /*return*/];\n }\n });\n }); };\n return [2 /*return*/, loop(undefined)];\n });\n}); };\n//# sourceMappingURL=p-while.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { isOffline } from '../../core/connection';\nimport { Context } from '../../core/context';\nimport { attempt } from '@segment/analytics-core';\nimport { pWhile } from '../../lib/p-while';\nfunction flushQueue(xt, queue) {\n return __awaiter(this, void 0, void 0, function () {\n var failedQueue;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n failedQueue = [];\n if (isOffline()) {\n return [2 /*return*/, queue];\n }\n return [4 /*yield*/, pWhile(function () { return queue.length > 0 && !isOffline(); }, function () { return __awaiter(_this, void 0, void 0, function () {\n var ctx, result, success;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n ctx = queue.pop();\n if (!ctx) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, attempt(ctx, xt)];\n case 1:\n result = _a.sent();\n success = result instanceof Context;\n if (!success) {\n failedQueue.push(ctx);\n }\n return [2 /*return*/];\n }\n });\n }); })\n // re-add failed tasks\n ];\n case 1:\n _a.sent();\n // re-add failed tasks\n failedQueue.map(function (failed) { return queue.pushWithBackoff(failed); });\n return [2 /*return*/, queue];\n }\n });\n });\n}\nexport function scheduleFlush(flushing, buffer, xt, scheduleFlush) {\n var _this = this;\n if (flushing) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {\n var isFlushing, newBuffer;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n isFlushing = true;\n return [4 /*yield*/, flushQueue(xt, buffer)];\n case 1:\n newBuffer = _a.sent();\n isFlushing = false;\n if (buffer.todo > 0) {\n scheduleFlush(isFlushing, newBuffer, xt, scheduleFlush);\n }\n return [2 /*return*/];\n }\n });\n }); }, Math.random() * 5000);\n}\n//# sourceMappingURL=schedule-flush.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { isOffline } from '../../core/connection';\nimport { PriorityQueue } from '../../lib/priority-queue';\nimport { PersistedPriorityQueue } from '../../lib/priority-queue/persisted';\nimport { toFacade } from '../../lib/to-facade';\nimport batch from './batched-dispatcher';\nimport standard from './fetch-dispatcher';\nimport { normalize } from './normalize';\nimport { scheduleFlush } from './schedule-flush';\nfunction onAlias(analytics, json) {\n var _a, _b, _c, _d;\n var user = analytics.user();\n json.previousId =\n (_c = (_b = (_a = json.previousId) !== null && _a !== void 0 ? _a : json.from) !== null && _b !== void 0 ? _b : user.id()) !== null && _c !== void 0 ? _c : user.anonymousId();\n json.userId = (_d = json.userId) !== null && _d !== void 0 ? _d : json.to;\n delete json.from;\n delete json.to;\n return json;\n}\nexport function segmentio(analytics, settings, integrations) {\n var _a, _b;\n // Attach `pagehide` before buffer is created so that inflight events are added\n // to the buffer before the buffer persists events in its own `pagehide` handler.\n window.addEventListener('pagehide', function () {\n buffer.push.apply(buffer, Array.from(inflightEvents));\n inflightEvents.clear();\n });\n var buffer = analytics.options.disableClientPersistence\n ? new PriorityQueue(analytics.queue.queue.maxAttempts, [])\n : new PersistedPriorityQueue(analytics.queue.queue.maxAttempts, \"dest-june.so\");\n var inflightEvents = new Set();\n var flushing = false;\n var apiHost = (_a = settings === null || settings === void 0 ? void 0 : settings.apiHost) !== null && _a !== void 0 ? _a : 'api.june.so/sdk';\n var protocol = (_b = settings === null || settings === void 0 ? void 0 : settings.protocol) !== null && _b !== void 0 ? _b : 'https';\n var remote = \"\".concat(protocol, \"://\").concat(apiHost);\n var deliveryStrategy = settings === null || settings === void 0 ? void 0 : settings.deliveryStrategy;\n var client = (deliveryStrategy === null || deliveryStrategy === void 0 ? void 0 : deliveryStrategy.strategy) === 'batching'\n ? batch(apiHost, deliveryStrategy.config)\n : standard(deliveryStrategy === null || deliveryStrategy === void 0 ? void 0 : deliveryStrategy.config);\n function send(ctx) {\n return __awaiter(this, void 0, void 0, function () {\n var path, json;\n return __generator(this, function (_a) {\n if (isOffline()) {\n buffer.push(ctx);\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n scheduleFlush(flushing, buffer, segmentio, scheduleFlush);\n return [2 /*return*/, ctx];\n }\n inflightEvents.add(ctx);\n path = ctx.event.type;\n json = toFacade(ctx.event).json();\n if (ctx.event.type === 'track') {\n delete json.traits;\n }\n if (ctx.event.type === 'alias') {\n json = onAlias(analytics, json);\n }\n return [2 /*return*/, client\n .dispatch(\"\".concat(remote, \"/\").concat(path), __assign(__assign({}, normalize(analytics, json, settings, integrations)), { writeKey: analytics.settings.writeKey }))\n .then(function () { return ctx; })\n .catch(function () {\n buffer.pushWithBackoff(ctx);\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n scheduleFlush(flushing, buffer, segmentio, scheduleFlush);\n return ctx;\n })\n .finally(function () {\n inflightEvents.delete(ctx);\n })];\n });\n });\n }\n var segmentio = {\n name: 'june.so',\n type: 'after',\n version: '0.1.0',\n isLoaded: function () { return true; },\n load: function () { return Promise.resolve(); },\n track: send,\n identify: send,\n page: send,\n alias: send,\n group: send,\n };\n // Buffer may already have items if they were previously stored in localStorage.\n // Start flushing them immediately.\n if (buffer.todo) {\n scheduleFlush(flushing, buffer, segmentio, scheduleFlush);\n }\n return segmentio;\n}\n//# sourceMappingURL=index.js.map","/**\n * Check if thenable\n * (instanceof Promise doesn't respect realms)\n */\nexport var isThenable = function (value) {\n return typeof value === 'object' &&\n value !== null &&\n 'then' in value &&\n typeof value.then === 'function';\n};\n//# sourceMappingURL=is-thenable.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { isThenable } from '../../lib/is-thenable';\nimport { version } from '../../generated/version';\nvar flushSyncAnalyticsCalls = function (name, analytics, buffer) {\n buffer.getCalls(name).forEach(function (c) {\n // While the underlying methods are synchronous, the callAnalyticsMethod returns a promise,\n // which normalizes success and error states between async and non-async methods, with no perf penalty.\n callAnalyticsMethod(analytics, c).catch(console.error);\n });\n};\nexport var flushAddSourceMiddleware = function (analytics, buffer) { return __awaiter(void 0, void 0, void 0, function () {\n var _i, _a, c;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _i = 0, _a = buffer.getCalls('addSourceMiddleware');\n _b.label = 1;\n case 1:\n if (!(_i < _a.length)) return [3 /*break*/, 4];\n c = _a[_i];\n return [4 /*yield*/, callAnalyticsMethod(analytics, c).catch(console.error)];\n case 2:\n _b.sent();\n _b.label = 3;\n case 3:\n _i++;\n return [3 /*break*/, 1];\n case 4: return [2 /*return*/];\n }\n });\n}); };\nexport var flushOn = flushSyncAnalyticsCalls.bind(this, 'on');\nexport var flushSetAnonymousID = flushSyncAnalyticsCalls.bind(this, 'setAnonymousId');\nexport var flushAnalyticsCallsInNewTask = function (analytics, buffer) {\n buffer.toArray().forEach(function (m) {\n setTimeout(function () {\n callAnalyticsMethod(analytics, m).catch(console.error);\n }, 0);\n });\n};\n/**\n * Represents any and all the buffered method calls that occurred before initialization.\n */\nvar PreInitMethodCallBuffer = /** @class */ (function () {\n function PreInitMethodCallBuffer() {\n this._value = {};\n }\n PreInitMethodCallBuffer.prototype.toArray = function () {\n var _a;\n return (_a = []).concat.apply(_a, Object.values(this._value));\n };\n PreInitMethodCallBuffer.prototype.getCalls = function (methodName) {\n var _a;\n return ((_a = this._value[methodName]) !== null && _a !== void 0 ? _a : []);\n };\n PreInitMethodCallBuffer.prototype.push = function () {\n var _this = this;\n var calls = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n calls[_i] = arguments[_i];\n }\n calls.forEach(function (call) {\n if (_this._value[call.method]) {\n _this._value[call.method].push(call);\n }\n else {\n _this._value[call.method] = [call];\n }\n });\n return this;\n };\n PreInitMethodCallBuffer.prototype.clear = function () {\n this._value = {};\n return this;\n };\n return PreInitMethodCallBuffer;\n}());\nexport { PreInitMethodCallBuffer };\n/**\n * Call method and mark as \"called\"\n * This function should never throw an error\n */\nexport function callAnalyticsMethod(analytics, call) {\n return __awaiter(this, void 0, void 0, function () {\n var result, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n if (call.called) {\n return [2 /*return*/, undefined];\n }\n call.called = true;\n result = analytics[call.method].apply(analytics, call.args);\n if (!isThenable(result)) return [3 /*break*/, 2];\n // do not defer for non-async methods\n return [4 /*yield*/, result];\n case 1:\n // do not defer for non-async methods\n _a.sent();\n _a.label = 2;\n case 2:\n call.resolve(result);\n return [3 /*break*/, 4];\n case 3:\n err_1 = _a.sent();\n call.reject(err_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n}\nvar AnalyticsBuffered = /** @class */ (function () {\n function AnalyticsBuffered(loader) {\n var _this = this;\n this._preInitBuffer = new PreInitMethodCallBuffer();\n this.trackSubmit = this._createMethod('trackSubmit');\n this.trackClick = this._createMethod('trackClick');\n this.trackLink = this._createMethod('trackLink');\n this.pageView = this._createMethod('pageview');\n this.identify = this._createMethod('identify');\n this.reset = this._createMethod('reset');\n this.group = this._createMethod('group');\n this.track = this._createMethod('track');\n this.ready = this._createMethod('ready');\n this.alias = this._createMethod('alias');\n this.debug = this._createChainableMethod('debug');\n this.page = this._createMethod('page');\n this.once = this._createChainableMethod('once');\n this.off = this._createChainableMethod('off');\n this.on = this._createChainableMethod('on');\n this.addSourceMiddleware = this._createMethod('addSourceMiddleware');\n this.setAnonymousId = this._createMethod('setAnonymousId');\n this.addDestinationMiddleware = this._createMethod('addDestinationMiddleware');\n this.screen = this._createMethod('screen');\n this.register = this._createMethod('register');\n this.deregister = this._createMethod('deregister');\n this.user = this._createMethod('user');\n this.VERSION = version;\n this._promise = loader(this._preInitBuffer);\n this._promise\n .then(function (_a) {\n var ajs = _a[0], ctx = _a[1];\n _this.instance = ajs;\n _this.ctx = ctx;\n })\n .catch(function () {\n // intentionally do nothing...\n // this result of this promise will be caught by the 'catch' block on this class.\n });\n }\n AnalyticsBuffered.prototype.then = function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return (_a = this._promise).then.apply(_a, args);\n };\n AnalyticsBuffered.prototype.catch = function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return (_a = this._promise).catch.apply(_a, args);\n };\n AnalyticsBuffered.prototype.finally = function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return (_a = this._promise).finally.apply(_a, args);\n };\n AnalyticsBuffered.prototype._createMethod = function (methodName) {\n var _this = this;\n return function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (_this.instance) {\n var result = (_a = _this.instance)[methodName].apply(_a, args);\n return Promise.resolve(result);\n }\n return new Promise(function (resolve, reject) {\n _this._preInitBuffer.push({\n method: methodName,\n args: args,\n resolve: resolve,\n reject: reject,\n called: false,\n });\n });\n };\n };\n /**\n * These are for methods that where determining when the method gets \"flushed\" is not important.\n * These methods will resolve when analytics is fully initialized, and return type (other than Analytics)will not be available.\n */\n AnalyticsBuffered.prototype._createChainableMethod = function (methodName) {\n var _this = this;\n return function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (_this.instance) {\n void (_a = _this.instance)[methodName].apply(_a, args);\n return _this;\n }\n else {\n _this._preInitBuffer.push({\n method: methodName,\n args: args,\n resolve: function () { },\n reject: console.error,\n called: false,\n });\n }\n return _this;\n };\n };\n return AnalyticsBuffered;\n}());\nexport { AnalyticsBuffered };\n//# sourceMappingURL=index.js.map","export function transformSnippetCall(_a) {\n var methodName = _a[0], args = _a.slice(1);\n return {\n method: methodName,\n resolve: function () { },\n reject: console.error,\n args: args,\n called: false,\n };\n}\nvar normalizeSnippetBuffer = function (buffer) {\n return buffer.map(transformSnippetCall);\n};\n/**\n * Fetch the buffered method calls from the window object and normalize them.\n * This removes existing buffered calls from the window object.\n */\nexport var popSnippetWindowBuffer = function () {\n var wa = window.analytics;\n if (!Array.isArray(wa))\n return [];\n var buffered = wa.splice(0, wa.length);\n return normalizeSnippetBuffer(buffered);\n};\n//# sourceMappingURL=snippet.js.map","var _a;\nvar _b;\nimport { getGlobal } from '../../lib/get-global';\nvar env = getGlobal();\n// The code below assumes the inspector extension will use Object.assign\n// to add the inspect interface on to this object reference (unless the\n// extension code ran first and has already set up the variable)\nvar inspectorHost = ((_a = (_b = env)['__SEGMENT_INSPECTOR__']) !== null && _a !== void 0 ? _a : (_b['__SEGMENT_INSPECTOR__'] = {}));\nexport var attachInspector = function (analytics) { var _a; return (_a = inspectorHost.attach) === null || _a === void 0 ? void 0 : _a.call(inspectorHost, analytics); };\n//# sourceMappingURL=index.js.map","import { __assign, __awaiter, __extends, __generator, __spreadArray } from \"tslib\";\nimport { getProcessEnv } from '../lib/get-process-env';\nimport { getCDN, setGlobalCDNUrl } from '../lib/parse-cdn';\nimport { Analytics } from '../core/analytics';\nimport { mergedOptions } from '../lib/merged-options';\nimport { createDeferred } from '../lib/create-deferred';\nimport { pageEnrichment } from '../plugins/page-enrichment';\nimport { remoteLoader } from '../plugins/remote-loader';\nimport { segmentio } from '../plugins/segmentio';\nimport { validation } from '../plugins/validation';\nimport { AnalyticsBuffered, flushAnalyticsCallsInNewTask, flushAddSourceMiddleware, flushSetAnonymousID, flushOn, } from '../core/buffer';\nimport { popSnippetWindowBuffer } from '../core/buffer/snippet';\nimport { attachInspector } from '../core/inspector';\nimport { Stats } from '../core/stats';\nexport function loadLegacySettings(cdnURL) {\n var baseUrl = cdnURL !== null && cdnURL !== void 0 ? cdnURL : getCDN();\n baseUrl;\n return {\n integrations: {}\n };\n}\nfunction hasLegacyDestinations(settings) {\n return (getProcessEnv().NODE_ENV !== 'test' &&\n // just one integration means segmentio\n Object.keys(settings.integrations).length > 1);\n}\nfunction hasTsubMiddleware(settings) {\n var _a, _b, _c;\n return (getProcessEnv().NODE_ENV !== 'test' &&\n ((_c = (_b = (_a = settings.middlewareSettings) === null || _a === void 0 ? void 0 : _a.routingRules) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) > 0);\n}\n/**\n * With AJS classic, we allow users to call setAnonymousId before the library initialization.\n * This is important because some of the destinations will use the anonymousId during the initialization,\n * and if we set anonId afterwards, that wouldn’t impact the destination.\n *\n * Also Ensures events can be registered before library initialization.\n * This is important so users can register to 'initialize' and any events that may fire early during setup.\n */\nfunction flushPreBuffer(analytics, buffer) {\n buffer.push.apply(buffer, popSnippetWindowBuffer());\n flushSetAnonymousID(analytics, buffer);\n flushOn(analytics, buffer);\n}\n/**\n * Finish flushing buffer and cleanup.\n */\nfunction flushFinalBuffer(analytics, buffer) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // Call popSnippetWindowBuffer before each flush task since there may be\n // analytics calls during async function calls.\n buffer.push.apply(buffer, popSnippetWindowBuffer());\n return [4 /*yield*/, flushAddSourceMiddleware(analytics, buffer)];\n case 1:\n _a.sent();\n buffer.push.apply(buffer, popSnippetWindowBuffer());\n flushAnalyticsCallsInNewTask(analytics, buffer);\n // Clear buffer, just in case analytics is loaded twice; we don't want to fire events off again.\n buffer.clear();\n return [2 /*return*/];\n }\n });\n });\n}\nfunction registerPlugins(legacySettings, analytics, opts, options, plugins, legacyIntegrationSources) {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function () {\n var tsubMiddleware, _d, legacyDestinations, _e, schemaFilter, _f, mergedSettings, remotePlugins, toRegister, shouldIgnoreSegmentio, ctx;\n var _this = this;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n if (!hasTsubMiddleware(legacySettings)) return [3 /*break*/, 2];\n return [4 /*yield*/, import(\n /* webpackChunkName: \"tsub-middleware\" */ '../plugins/routing-middleware').then(function (mod) {\n return mod.tsubMiddleware(legacySettings.middlewareSettings.routingRules);\n })];\n case 1:\n _d = _g.sent();\n return [3 /*break*/, 3];\n case 2:\n _d = undefined;\n _g.label = 3;\n case 3:\n tsubMiddleware = _d;\n if (!(hasLegacyDestinations(legacySettings) || legacyIntegrationSources.length > 0)) return [3 /*break*/, 5];\n return [4 /*yield*/, import(\n /* webpackChunkName: \"ajs-destination\" */ '../plugins/ajs-destination').then(function (mod) {\n return mod.ajsDestinations(legacySettings, analytics.integrations, opts, tsubMiddleware, legacyIntegrationSources);\n })];\n case 4:\n _e = _g.sent();\n return [3 /*break*/, 6];\n case 5:\n _e = [];\n _g.label = 6;\n case 6:\n legacyDestinations = _e;\n if (!legacySettings.legacyVideoPluginsEnabled) return [3 /*break*/, 8];\n return [4 /*yield*/, import(\n /* webpackChunkName: \"legacyVideos\" */ '../plugins/legacy-video-plugins').then(function (mod) {\n return mod.loadLegacyVideoPlugins(analytics);\n })];\n case 7:\n _g.sent();\n _g.label = 8;\n case 8:\n if (!((_a = opts.plan) === null || _a === void 0 ? void 0 : _a.track)) return [3 /*break*/, 10];\n return [4 /*yield*/, import(\n /* webpackChunkName: \"schemaFilter\" */ '../plugins/schema-filter').then(function (mod) {\n var _a;\n return mod.schemaFilter((_a = opts.plan) === null || _a === void 0 ? void 0 : _a.track, legacySettings);\n })];\n case 9:\n _f = _g.sent();\n return [3 /*break*/, 11];\n case 10:\n _f = undefined;\n _g.label = 11;\n case 11:\n schemaFilter = _f;\n mergedSettings = mergedOptions(legacySettings, options);\n return [4 /*yield*/, remoteLoader(legacySettings, analytics.integrations, mergedSettings, options.obfuscate, tsubMiddleware).catch(function () { return []; })];\n case 12:\n remotePlugins = _g.sent();\n toRegister = __spreadArray(__spreadArray(__spreadArray([\n validation,\n pageEnrichment\n ], plugins, true), legacyDestinations, true), remotePlugins, true);\n if (schemaFilter) {\n toRegister.push(schemaFilter);\n }\n shouldIgnoreSegmentio = (((_b = opts.integrations) === null || _b === void 0 ? void 0 : _b.All) === false && !opts.integrations['june.so']) ||\n (opts.integrations && opts.integrations['june.so'] === false);\n if (!shouldIgnoreSegmentio) {\n toRegister.push(segmentio(analytics, mergedSettings['june.so'], legacySettings.integrations));\n }\n return [4 /*yield*/, analytics.register.apply(analytics, toRegister)];\n case 13:\n ctx = _g.sent();\n if (!Object.entries((_c = legacySettings.enabledMiddleware) !== null && _c !== void 0 ? _c : {}).some(function (_a) {\n var enabled = _a[1];\n return enabled;\n })) return [3 /*break*/, 15];\n return [4 /*yield*/, import(\n /* webpackChunkName: \"remoteMiddleware\" */ '../plugins/remote-middleware').then(function (_a) {\n var remoteMiddlewares = _a.remoteMiddlewares;\n return __awaiter(_this, void 0, void 0, function () {\n var middleware, promises;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, remoteMiddlewares(ctx, legacySettings, options.obfuscate)];\n case 1:\n middleware = _b.sent();\n promises = middleware.map(function (mdw) {\n return analytics.addSourceMiddleware(mdw);\n });\n return [2 /*return*/, Promise.all(promises)];\n }\n });\n });\n })];\n case 14:\n _g.sent();\n _g.label = 15;\n case 15: return [2 /*return*/, ctx];\n }\n });\n });\n}\nfunction loadAnalytics(settings, options, preInitBuffer) {\n var _a, _b, _c, _d, _e;\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var legacySettings, _f, retryQueue, opts, analytics, plugins, classicIntegrations, ctx, search, hash, term;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n // this is an ugly side-effect, but it's for the benefits of the plugins that get their cdn via getCDN()\n if (settings.cdnURL)\n setGlobalCDNUrl(settings.cdnURL);\n if (!((_a = settings.cdnSettings) !== null && _a !== void 0)) return [3 /*break*/, 1];\n _f = _a;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, loadLegacySettings(settings.writeKey)];\n case 2:\n _f = (_g.sent());\n _g.label = 3;\n case 3:\n legacySettings = _f;\n retryQueue = true;\n opts = __assign({ retryQueue: retryQueue }, options);\n analytics = new Analytics(settings, opts);\n attachInspector(analytics);\n plugins = (_b = settings.plugins) !== null && _b !== void 0 ? _b : [];\n classicIntegrations = (_c = settings.classicIntegrations) !== null && _c !== void 0 ? _c : [];\n Stats.initRemoteMetrics(legacySettings.metrics);\n // needs to be flushed before plugins are registered\n flushPreBuffer(analytics, preInitBuffer);\n return [4 /*yield*/, registerPlugins(legacySettings, analytics, opts, options, plugins, classicIntegrations)];\n case 4:\n ctx = _g.sent();\n search = (_d = window.location.search) !== null && _d !== void 0 ? _d : '';\n hash = (_e = window.location.hash) !== null && _e !== void 0 ? _e : '';\n term = search.length ? search : hash.replace(/(?=#).*(?=\\?)/, '');\n if (!term.includes('ajs_')) return [3 /*break*/, 6];\n return [4 /*yield*/, analytics.queryString(term).catch(console.error)];\n case 5:\n _g.sent();\n _g.label = 6;\n case 6:\n analytics.initialized = true;\n analytics.emit('initialize', settings, options);\n if (options.initialPageview) {\n analytics.page().catch(console.error);\n }\n return [4 /*yield*/, flushFinalBuffer(analytics, preInitBuffer)];\n case 7:\n _g.sent();\n return [2 /*return*/, [analytics, ctx]];\n }\n });\n });\n}\n/**\n * The public browser interface for Segment Analytics\n *\n * @example\n * ```ts\n * export const analytics = new AnalyticsBrowser()\n * analytics.load({ writeKey: 'foo' })\n * ```\n * @link https://github.com/segmentio/analytics-next/#readme\n */\nvar AnalyticsBrowser = /** @class */ (function (_super) {\n __extends(AnalyticsBrowser, _super);\n function AnalyticsBrowser() {\n var _this = this;\n var _a = createDeferred(), loadStart = _a.promise, resolveLoadStart = _a.resolve;\n _this = _super.call(this, function (buffer) {\n return loadStart.then(function (_a) {\n var settings = _a[0], options = _a[1];\n return loadAnalytics(settings, options, buffer);\n });\n }) || this;\n _this._resolveLoadStart = function (settings, options) {\n return resolveLoadStart([settings, options]);\n };\n return _this;\n }\n /**\n * Fully initialize an analytics instance, including:\n *\n * * Fetching settings from the segment CDN (by default).\n * * Fetching all remote destinations configured by the user (if applicable).\n * * Flushing buffered analytics events.\n * * Loading all middleware.\n *\n * Note:️ This method should only be called *once* in your application.\n *\n * @example\n * ```ts\n * export const analytics = new AnalyticsBrowser()\n * analytics.load({ writeKey: 'foo' })\n * ```\n */\n AnalyticsBrowser.prototype.load = function (settings, options) {\n if (options === void 0) { options = {}; }\n this._resolveLoadStart(settings, options);\n return this;\n };\n /**\n * Instantiates an object exposing Analytics methods.\n *\n * @example\n * ```ts\n * const ajs = AnalyticsBrowser.load({ writeKey: '' })\n *\n * ajs.track(\"foo\")\n * ...\n * ```\n */\n AnalyticsBrowser.load = function (settings, options) {\n if (options === void 0) { options = {}; }\n return new AnalyticsBrowser().load(settings, options);\n };\n AnalyticsBrowser.standalone = function (writeKey, options) {\n return AnalyticsBrowser.load({ writeKey: writeKey }, options).then(function (res) { return res[0]; });\n };\n return AnalyticsBrowser;\n}(AnalyticsBuffered));\nexport { AnalyticsBrowser };\n//# sourceMappingURL=index.js.map","import { AnalyticsBrowser } from '@june-so/analytics-next';\n\n/**\n * AnalyticsHelper class to initialize and track user analytics\n * @class AnalyticsHelper\n */\nexport class AnalyticsHelper {\n /**\n * @constructor\n * @param {Object} [options={}] - options for analytics\n * @param {string} [options.token] - analytics token\n */\n constructor({ token: analyticsToken } = {}) {\n this.analyticsToken = analyticsToken;\n this.analytics = null;\n this.user = {};\n }\n\n /**\n * Initialize analytics\n * @function\n * @async\n */\n async init() {\n if (!this.analyticsToken) {\n return;\n }\n\n let [analytics] = await AnalyticsBrowser.load({\n writeKey: this.analyticsToken,\n });\n this.analytics = analytics;\n }\n\n /**\n * Identify the user\n * @function\n * @param {Object} user - User object\n */\n identify(user) {\n if (!this.analytics || !user) {\n return;\n }\n\n this.user = user;\n this.analytics.identify(this.user.email, {\n userId: this.user.id,\n email: this.user.email,\n name: this.user.name,\n avatar: this.user.avatar_url,\n });\n\n const { accounts, account_id: accountId } = this.user;\n const [currentAccount] = accounts.filter(\n account => account.id === accountId\n );\n if (currentAccount) {\n this.analytics.group(currentAccount.id, this.user.id, {\n name: currentAccount.name,\n });\n }\n }\n\n /**\n * Track any event\n * @function\n * @param {string} eventName - event name\n * @param {Object} [properties={}] - event properties\n */\n track(eventName, properties = {}) {\n if (!this.analytics) {\n return;\n }\n\n this.analytics.track({\n userId: this.user.id,\n event: eventName,\n properties,\n });\n }\n\n /**\n * Track the page views\n * @function\n * @param {Object} params - Page view properties\n */\n page(params) {\n if (!this.analytics) {\n return;\n }\n\n this.analytics.page(params);\n }\n}\n\n// This object is shared across, the init is called in app/javascript/packs/application.js\nexport default new AnalyticsHelper(window.analyticsConfig);\n"],"file":"assets/index-CoM8-1Wg.js"}