autotel-subscribers 11.0.0 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/factories.cjs +11 -11
- package/dist/factories.cjs.map +1 -1
- package/dist/factories.js +11 -11
- package/dist/factories.js.map +1 -1
- package/dist/index.cjs +11 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +11 -11
- package/dist/index.js.map +1 -1
- package/dist/mixpanel.cjs +1 -1
- package/dist/mixpanel.cjs.map +1 -1
- package/dist/mixpanel.js +1 -1
- package/dist/mixpanel.js.map +1 -1
- package/dist/segment.cjs +10 -10
- package/dist/segment.cjs.map +1 -1
- package/dist/segment.js +10 -10
- package/dist/segment.js.map +1 -1
- package/package.json +3 -3
package/dist/mixpanel.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../node_modules/.pnpm/debug@4.4.3_supports-color@10.2.2/node_modules/debug/src/common.js","../../../node_modules/.pnpm/debug@4.4.3_supports-color@10.2.2/node_modules/debug/src/browser.js","../../../node_modules/.pnpm/supports-color@10.2.2/node_modules/supports-color/index.js","../../../node_modules/.pnpm/debug@4.4.3_supports-color@10.2.2/node_modules/debug/src/node.js","../../../node_modules/.pnpm/debug@4.4.3_supports-color@10.2.2/node_modules/debug/src/index.js","../../../node_modules/.pnpm/agent-base@7.1.4/node_modules/agent-base/src/helpers.ts","../../../node_modules/.pnpm/agent-base@7.1.4/node_modules/agent-base/src/index.ts","../../../node_modules/.pnpm/https-proxy-agent@7.0.6_supports-color@10.2.2/node_modules/https-proxy-agent/src/parse-proxy-response.ts","../../../node_modules/.pnpm/https-proxy-agent@7.0.6_supports-color@10.2.2/node_modules/https-proxy-agent/src/index.ts","../../../node_modules/.pnpm/mixpanel@0.19.1/node_modules/mixpanel/package.json","../../../node_modules/.pnpm/mixpanel@0.19.1/node_modules/mixpanel/lib/utils.js","../../../node_modules/.pnpm/mixpanel@0.19.1/node_modules/mixpanel/lib/profile_helpers.js","../../../node_modules/.pnpm/mixpanel@0.19.1/node_modules/mixpanel/lib/groups.js","../../../node_modules/.pnpm/mixpanel@0.19.1/node_modules/mixpanel/lib/people.js","../../../node_modules/.pnpm/mixpanel@0.19.1/node_modules/mixpanel/lib/flags/utils.js","../../../node_modules/.pnpm/mixpanel@0.19.1/node_modules/mixpanel/lib/flags/flags.js","../../../node_modules/.pnpm/mixpanel@0.19.1/node_modules/mixpanel/lib/flags/local_flags.js","../../../node_modules/.pnpm/mixpanel@0.19.1/node_modules/mixpanel/lib/flags/remote_flags.js","../../../node_modules/.pnpm/mixpanel@0.19.1/node_modules/mixpanel/lib/flags/index.js","../../../node_modules/.pnpm/mixpanel@0.19.1/node_modules/mixpanel/lib/mixpanel-node.js","../src/mixpanel.ts"],"names":["exports","env","process","os","tty","supportsColor","useColors","req","require_utils","require_flags","Buffer","chunk","config"],"mappings":"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","file":"mixpanel.cjs","sourcesContent":["/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '')\n\t\t\t.trim()\n\t\t\t.replace(/\\s+/g, ',')\n\t\t\t.split(',')\n\t\t\t.filter(Boolean);\n\n\t\tfor (const ns of split) {\n\t\t\tif (ns[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(ns.slice(1));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(ns);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the given string matches a namespace template, honoring\n\t * asterisks as wildcards.\n\t *\n\t * @param {String} search\n\t * @param {String} template\n\t * @return {Boolean}\n\t */\n\tfunction matchesTemplate(search, template) {\n\t\tlet searchIndex = 0;\n\t\tlet templateIndex = 0;\n\t\tlet starIndex = -1;\n\t\tlet matchIndex = 0;\n\n\t\twhile (searchIndex < search.length) {\n\t\t\tif (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) {\n\t\t\t\t// Match character or proceed with wildcard\n\t\t\t\tif (template[templateIndex] === '*') {\n\t\t\t\t\tstarIndex = templateIndex;\n\t\t\t\t\tmatchIndex = searchIndex;\n\t\t\t\t\ttemplateIndex++; // Skip the '*'\n\t\t\t\t} else {\n\t\t\t\t\tsearchIndex++;\n\t\t\t\t\ttemplateIndex++;\n\t\t\t\t}\n\t\t\t} else if (starIndex !== -1) { // eslint-disable-line no-negated-condition\n\t\t\t\t// Backtrack to the last '*' and try to match more characters\n\t\t\t\ttemplateIndex = starIndex + 1;\n\t\t\t\tmatchIndex++;\n\t\t\t\tsearchIndex = matchIndex;\n\t\t\t} else {\n\t\t\t\treturn false; // No match\n\t\t\t}\n\t\t}\n\n\t\t// Handle trailing '*' in template\n\t\twhile (templateIndex < template.length && template[templateIndex] === '*') {\n\t\t\ttemplateIndex++;\n\t\t}\n\n\t\treturn templateIndex === template.length;\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names,\n\t\t\t...createDebug.skips.map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tfor (const skip of createDebug.skips) {\n\t\t\tif (matchesTemplate(name, skip)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (const ns of createDebug.names) {\n\t\t\tif (matchesTemplate(name, ns)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\t// eslint-disable-next-line no-return-assign\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","import process from 'node:process';\nimport os from 'node:os';\nimport tty from 'node:tty';\n\n// From: https://github.com/sindresorhus/has-flag/blob/main/index.js\n/// function hasFlag(flag, argv = globalThis.Deno?.args ?? process.argv) {\nfunction hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process.argv) {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n}\n\nconst {env} = process;\n\nlet flagForceColor;\nif (\n\thasFlag('no-color')\n\t|| hasFlag('no-colors')\n\t|| hasFlag('color=false')\n\t|| hasFlag('color=never')\n) {\n\tflagForceColor = 0;\n} else if (\n\thasFlag('color')\n\t|| hasFlag('colors')\n\t|| hasFlag('color=true')\n\t|| hasFlag('color=always')\n) {\n\tflagForceColor = 1;\n}\n\nfunction envForceColor() {\n\tif (!('FORCE_COLOR' in env)) {\n\t\treturn;\n\t}\n\n\tif (env.FORCE_COLOR === 'true') {\n\t\treturn 1;\n\t}\n\n\tif (env.FORCE_COLOR === 'false') {\n\t\treturn 0;\n\t}\n\n\tif (env.FORCE_COLOR.length === 0) {\n\t\treturn 1;\n\t}\n\n\tconst level = Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);\n\n\tif (![0, 1, 2, 3].includes(level)) {\n\t\treturn;\n\t}\n\n\treturn level;\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3,\n\t};\n}\n\nfunction _supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) {\n\tconst noFlagForceColor = envForceColor();\n\tif (noFlagForceColor !== undefined) {\n\t\tflagForceColor = noFlagForceColor;\n\t}\n\n\tconst forceColor = sniffFlags ? flagForceColor : noFlagForceColor;\n\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (sniffFlags) {\n\t\tif (hasFlag('color=16m')\n\t\t\t|| hasFlag('color=full')\n\t\t\t|| hasFlag('color=truecolor')) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (hasFlag('color=256')) {\n\t\t\treturn 2;\n\t\t}\n\t}\n\n\t// Check for Azure DevOps pipelines.\n\t// Has to be above the `!streamIsTTY` check.\n\tif ('TF_BUILD' in env && 'AGENT_NAME' in env) {\n\t\treturn 1;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10\n\t\t\t&& Number(osRelease[2]) >= 10_586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14_931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['GITHUB_ACTIONS', 'GITEA_ACTIONS', 'CIRCLECI'].some(key => key in env)) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (['TRAVIS', 'APPVEYOR', 'GITLAB_CI', 'BUILDKITE', 'DRONE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'xterm-kitty') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'xterm-ghostty') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'wezterm') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app': {\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\t}\n\n\t\t\tcase 'Apple_Terminal': {\n\t\t\t\treturn 2;\n\t\t\t}\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nexport function createSupportsColor(stream, options = {}) {\n\tconst level = _supportsColor(stream, {\n\t\tstreamIsTTY: stream && stream.isTTY,\n\t\t...options,\n\t});\n\n\treturn translateLevel(level);\n}\n\nconst supportsColor = {\n\tstdout: createSupportsColor({isTTY: tty.isatty(1)}),\n\tstderr: createSupportsColor({isTTY: tty.isatty(2)}),\n};\n\nexport default supportsColor;\n","/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n","/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n",null,null,null,null,"{\n \"name\": \"mixpanel\",\n \"description\": \"A simple server-side API for mixpanel\",\n \"keywords\": [\n \"mixpanel\",\n \"analytics\",\n \"api\",\n \"stats\"\n ],\n \"version\": \"0.19.1\",\n \"homepage\": \"https://github.com/mixpanel/mixpanel-node\",\n \"author\": \"Carl Sverre\",\n \"license\": \"MIT\",\n \"main\": \"lib/mixpanel-node\",\n \"directories\": {\n \"lib\": \"lib\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+ssh://git@github.com/mixpanel/mixpanel-node.git\"\n },\n \"engines\": {\n \"node\": \">=10.0\"\n },\n \"scripts\": {\n \"test\": \"vitest\"\n },\n \"types\": \"./lib/mixpanel-node.d.ts\",\n \"devDependencies\": {\n \"@types/node\": \"^24.10.1\",\n \"@vitest/coverage-v8\": \"^4.0.8\",\n \"nock\": \"^14.0.10\",\n \"proxyquire\": \"^2.1.3\",\n \"typescript\": \"^5.9.3\",\n \"vitest\": \"^4.0.8\"\n },\n \"dependencies\": {\n \"https-proxy-agent\": \"7.0.6\"\n }\n}\n","/**\n * helper to wait for all callbacks to complete; similar to `Promise.all`\n * exposed to metrics object for unit tests\n * @param {Array} requests\n * @param {Function} handler\n * @param {Function} callback\n */\nexports.async_all = function(requests, handler, callback) {\n var total = requests.length,\n errors = null,\n results = [],\n done = function (err, result) {\n if (err) {\n // errors are `null` unless there is an error, which allows for promisification\n errors = errors || [];\n errors.push(err);\n }\n results.push(result);\n if (--total === 0) {\n callback(errors, results)\n }\n };\n\n if (total === 0) {\n callback(errors, results);\n } else {\n for(var i = 0, l = requests.length; i < l; i++) {\n handler(requests[i], done);\n }\n }\n};\n\n/**\n * Validate type of time property, and convert to Unix timestamp if necessary\n * @param {Date|number} time - value to check\n * @returns {number} Unix timestamp\n */\nexports.ensure_timestamp = function(time) {\n if (!(time instanceof Date || typeof time === \"number\")) {\n throw new Error(\"`time` property must be a Date or Unix timestamp and is only required for `import` endpoint\");\n }\n return time instanceof Date ? time.getTime() : time;\n};\n\n/**\n* Asserts that the provided logger object is valid\n* @param {CustomLogger} logger - The logger object to be validated\n* @throws {TypeError} If the logger object is not a valid Logger object or\n* if it is missing any of the required methods\n*/\nexports.assert_logger = function(logger) {\n if (typeof logger !== 'object') {\n throw new TypeError(`\"logger\" must be a valid Logger object`);\n }\n \n ['trace', 'debug', 'info', 'warn', 'error'].forEach((method) => {\n if (typeof logger[method] !== 'function') {\n throw new TypeError(`Logger object missing \"${method}\" method`);\n }\n });\n};\n","/**\n * Mixin with profile-related helpers (for people and groups)\n */\n\nconst {ensure_timestamp} = require('./utils');\n\nfunction merge_modifiers(data, modifiers) {\n if (modifiers) {\n if (modifiers.$ignore_alias) {\n data.$ignore_alias = modifiers.$ignore_alias;\n }\n if (modifiers.$ignore_time) {\n data.$ignore_time = modifiers.$ignore_time;\n }\n if (modifiers.hasOwnProperty(\"$ip\")) {\n data.$ip = modifiers.$ip;\n }\n if (modifiers.hasOwnProperty(\"$time\")) {\n data.$time = ensure_timestamp(modifiers.$time);\n }\n if (modifiers.hasOwnProperty(\"$latitude\") && modifiers.hasOwnProperty('$longitude')) {\n data.$latitude = modifiers.$latitude;\n data.$longitude = modifiers.$longitude;\n }\n }\n return data;\n};\nexports.merge_modifiers = merge_modifiers;\n\nexports.ProfileHelpers = (Base = Object) => class extends Base {\n get token() {\n return this.mixpanel.token;\n }\n\n get config() {\n return this.mixpanel.config;\n }\n\n _set(prop, to, modifiers, callback, {identifiers, set_once = false}) {\n let $set = {};\n\n if (typeof(prop) === 'object') {\n if (typeof(to) === 'object') {\n callback = modifiers;\n modifiers = to;\n } else {\n callback = to;\n }\n $set = prop;\n } else {\n $set[prop] = to;\n if (typeof(modifiers) === 'function' || !modifiers) {\n callback = modifiers;\n }\n }\n\n let data = {\n '$token': this.token,\n ...identifiers,\n };\n\n const set_key = set_once ? \"$set_once\" : \"$set\";\n data[set_key] = $set;\n\n if ('ip' in $set) {\n data.$ip = $set.ip;\n delete $set.ip;\n }\n\n if ($set.$ignore_time) {\n data.$ignore_time = $set.$ignore_time;\n delete $set.$ignore_time;\n }\n\n data = merge_modifiers(data, modifiers);\n\n if (this.config.debug) {\n this.mixpanel.config.logger.debug(`Sending the following data to Mixpanel (${this.endpoint})`, { data });\n }\n\n this.mixpanel.send_request({ method: \"GET\", endpoint: this.endpoint, data }, callback);\n }\n\n _delete_profile({identifiers, modifiers, callback}){\n let data = {\n '$delete': '',\n '$token': this.token,\n ...identifiers,\n };\n\n if (typeof(modifiers) === 'function') { callback = modifiers; }\n\n data = merge_modifiers(data, modifiers);\n\n if (this.config.debug) {\n this.mixpanel.config.logger.debug('Deleting profile', { identifiers });\n }\n\n this.mixpanel.send_request({ method: \"GET\", endpoint: this.endpoint, data }, callback);\n }\n\n _remove({identifiers, data, modifiers, callback}) {\n let $remove = {};\n\n if (typeof(data) !== 'object' || Array.isArray(data)) {\n if (this.config.debug) {\n this.mixpanel.config.logger.error(\"Invalid value passed to #remove - data must be an object with scalar values\");\n }\n return;\n }\n\n for (const [key, val] of Object.entries(data)) {\n if (typeof(val) === 'string' || typeof(val) === 'number') {\n $remove[key] = val;\n } else {\n if (this.config.debug) {\n this.mixpanel.config.logger.error(\n \"Invalid argument passed to #remove - values must be scalar\",\n { key, value: val }\n );\n }\n return;\n }\n }\n\n if (Object.keys($remove).length === 0) {\n return;\n }\n\n data = {\n '$remove': $remove,\n '$token': this.token,\n ...identifiers\n };\n\n if (typeof(modifiers) === 'function') {\n callback = modifiers;\n }\n\n data = merge_modifiers(data, modifiers);\n\n if (this.config.debug) {\n this.mixpanel.config.logger.debug(\n `Sending the following data to Mixpanel (${this.endpoint})`,\n { data }\n );\n }\n\n this.mixpanel.send_request({ method: \"GET\", endpoint: this.endpoint, data }, callback);\n }\n\n _union({identifiers, data, modifiers, callback}) {\n let $union = {};\n\n if (typeof(data) !== 'object' || Array.isArray(data)) {\n if (this.config.debug) {\n this.mixpanel.config.logger.error(\"Invalid value passed to #union - data must be an object with scalar or array values\");\n }\n return;\n }\n\n for (const [key, val] of Object.entries(data)) {\n if (Array.isArray(val)) {\n var merge_values = val.filter(function(v) {\n return typeof(v) === 'string' || typeof(v) === 'number';\n });\n if (merge_values.length > 0) {\n $union[key] = merge_values;\n }\n } else if (typeof(val) === 'string' || typeof(val) === 'number') {\n $union[key] = [val];\n } else {\n if (this.config.debug) {\n this.mixpanel.config.logger.error(\n \"Invalid argument passed to #union - values must be a scalar value or array\",\n { key, value: val }\n );\n }\n }\n }\n\n if (Object.keys($union).length === 0) {\n return;\n }\n\n data = {\n '$union': $union,\n '$token': this.token,\n ...identifiers,\n };\n\n if (typeof(modifiers) === 'function') {\n callback = modifiers;\n }\n\n data = merge_modifiers(data, modifiers);\n\n if (this.config.debug) {\n this.mixpanel.config.logger.debug(\n `Sending the following data to Mixpanel (${this.endpoint})`,\n { data }\n );\n }\n\n this.mixpanel.send_request({ method: \"GET\", endpoint: this.endpoint, data }, callback);\n }\n\n _unset({identifiers, prop, modifiers, callback}){\n let $unset = [];\n\n if (Array.isArray(prop)) {\n $unset = prop;\n } else if (typeof(prop) === 'string') {\n $unset = [prop];\n } else {\n if (this.config.debug) {\n this.mixpanel.config.logger.error(\n \"Invalid argument passed to #unset - must be a string or array\",\n { prop }\n );\n }\n return;\n }\n\n let data = {\n '$unset': $unset,\n '$token': this.token,\n ...identifiers,\n };\n\n if (typeof(modifiers) === 'function') {\n callback = modifiers;\n }\n\n data = merge_modifiers(data, modifiers);\n\n if (this.config.debug) {\n this.mixpanel.config.logger.debug(\n `Sending the following data to Mixpanel (${this.endpoint})`,\n { data }\n );\n }\n\n this.mixpanel.send_request({ method: \"GET\", endpoint: this.endpoint, data }, callback);\n }\n};\n","/**\n * Group profile methods. Learn more: https://help.mixpanel.com/hc/en-us/articles/360025333632\n */\n\nconst {ProfileHelpers} = require('./profile_helpers');\n\nclass MixpanelGroups extends ProfileHelpers() {\n constructor(mp_instance) {\n super();\n this.mixpanel = mp_instance;\n this.endpoint = '/groups';\n }\n\n /** groups.set_once(group_key, group_id, prop, to, modifiers, callback)\n ---\n The same as groups.set, but adds a property value to a group only if it has not been set before.\n */\n set_once(group_key, group_id, prop, to, modifiers, callback) {\n const identifiers = {$group_key: group_key, $group_id: group_id};\n this._set(prop, to, modifiers, callback, {identifiers, set_once: true});\n }\n\n /**\n groups.set(group_key, group_id, prop, to, modifiers, callback)\n ---\n set properties on a group profile\n\n usage:\n\n mixpanel.groups.set('company', 'Acme Inc.', '$name', 'Acme Inc.');\n\n mixpanel.groups.set('company', 'Acme Inc.', {\n 'Industry': 'widgets',\n '$name': 'Acme Inc.',\n });\n */\n set(group_key, group_id, prop, to, modifiers, callback) {\n const identifiers = {$group_key: group_key, $group_id: group_id};\n this._set(prop, to, modifiers, callback, {identifiers});\n }\n\n /**\n groups.delete_group(group_key, group_id, modifiers, callback)\n ---\n delete a group profile permanently\n\n usage:\n\n mixpanel.groups.delete_group('company', 'Acme Inc.');\n */\n delete_group(group_key, group_id, modifiers, callback) {\n const identifiers = {$group_key: group_key, $group_id: group_id};\n this._delete_profile({identifiers, modifiers, callback});\n }\n\n /**\n groups.remove(group_key, group_id, data, modifiers, callback)\n ---\n remove a value from a list-valued group profile property.\n\n usage:\n\n mixpanel.groups.remove('company', 'Acme Inc.', {'products': 'anvil'});\n\n mixpanel.groups.remove('company', 'Acme Inc.', {\n 'products': 'anvil',\n 'customer segments': 'coyotes'\n });\n */\n remove(group_key, group_id, data, modifiers, callback) {\n const identifiers = {$group_key: group_key, $group_id: group_id};\n this._remove({identifiers, data, modifiers, callback});\n }\n\n /**\n groups.union(group_key, group_id, data, modifiers, callback)\n ---\n merge value(s) into a list-valued group profile property.\n\n usage:\n\n mixpanel.groups.union('company', 'Acme Inc.', {'products': 'anvil'});\n\n mixpanel.groups.union('company', 'Acme Inc.', {'products': ['anvil'], 'customer segments': ['coyotes']});\n */\n union(group_key, group_id, data, modifiers, callback) {\n const identifiers = {$group_key: group_key, $group_id: group_id};\n this._union({identifiers, data, modifiers, callback})\n }\n\n /**\n groups.unset(group_key, group_id, prop, modifiers, callback)\n ---\n delete a property on a group profile\n\n usage:\n\n mixpanel.groups.unset('company', 'Acme Inc.', 'products');\n\n mixpanel.groups.unset('company', 'Acme Inc.', ['products', 'customer segments']);\n */\n unset(group_key, group_id, prop, modifiers, callback) {\n const identifiers = {$group_key: group_key, $group_id: group_id};\n this._unset({identifiers, prop, modifiers, callback})\n }\n}\n\nexports.MixpanelGroups = MixpanelGroups;\n","const {merge_modifiers, ProfileHelpers} = require('./profile_helpers');\n\nclass MixpanelPeople extends ProfileHelpers() {\n constructor(mp_instance) {\n super();\n this.mixpanel = mp_instance;\n this.endpoint = '/engage';\n }\n\n /** people.set_once(distinct_id, prop, to, modifiers, callback)\n ---\n The same as people.set but in the words of mixpanel:\n mixpanel.people.set_once\n\n \" This method allows you to set a user attribute, only if\n it is not currently set. It can be called multiple times\n safely, so is perfect for storing things like the first date\n you saw a user, or the referrer that brought them to your\n website for the first time. \"\n\n */\n set_once(distinct_id, prop, to, modifiers, callback) {\n const identifiers = {$distinct_id: distinct_id};\n this._set(prop, to, modifiers, callback, {identifiers, set_once: true});\n }\n\n /**\n people.set(distinct_id, prop, to, modifiers, callback)\n ---\n set properties on an user record in engage\n\n usage:\n\n mixpanel.people.set('bob', 'gender', 'm');\n\n mixpanel.people.set('joe', {\n 'company': 'acme',\n 'plan': 'premium'\n });\n */\n set(distinct_id, prop, to, modifiers, callback) {\n const identifiers = {$distinct_id: distinct_id};\n this._set(prop, to, modifiers, callback, {identifiers});\n }\n\n /**\n people.increment(distinct_id, prop, by, modifiers, callback)\n ---\n increment/decrement properties on an user record in engage\n\n usage:\n\n mixpanel.people.increment('bob', 'page_views', 1);\n\n // or, for convenience, if you're just incrementing a counter by 1, you can\n // simply do\n mixpanel.people.increment('bob', 'page_views');\n\n // to decrement a counter, pass a negative number\n mixpanel.people.increment('bob', 'credits_left', -1);\n\n // like mixpanel.people.set(), you can increment multiple properties at once:\n mixpanel.people.increment('bob', {\n counter1: 1,\n counter2: 3,\n counter3: -2\n });\n */\n increment(distinct_id, prop, by, modifiers, callback) {\n // TODO extract to ProfileHelpers\n\n var $add = {};\n\n if (typeof(prop) === 'object') {\n if (typeof(by) === 'object') {\n callback = modifiers;\n modifiers = by;\n } else {\n callback = by;\n }\n for (const [key, val] of Object.entries(prop)) {\n if (isNaN(parseFloat(val))) {\n if (this.mixpanel.config.debug) {\n this.mixpanel.config.logger.error(\n \"Invalid increment value passed to mixpanel.people.increment - must be a number\",\n {key, value: val}\n );\n }\n } else {\n $add[key] = val;\n }\n };\n } else {\n if (typeof(by) === 'number' || !by) {\n by = by || 1;\n $add[prop] = by;\n if (typeof(modifiers) === 'function') {\n callback = modifiers;\n }\n } else if (typeof(by) === 'function') {\n callback = by;\n $add[prop] = 1;\n } else {\n callback = modifiers;\n modifiers = (typeof(by) === 'object') ? by : {};\n $add[prop] = 1;\n }\n }\n\n var data = {\n '$add': $add,\n '$token': this.mixpanel.token,\n '$distinct_id': distinct_id\n };\n\n data = merge_modifiers(data, modifiers);\n\n if (this.mixpanel.config.debug) {\n this.mixpanel.config.logger.debug(\"Sending the following data to Mixpanel (Engage)\", { data });\n }\n\n this.mixpanel.send_request({ method: \"GET\", endpoint: \"/engage\", data: data }, callback);\n }\n\n /**\n people.append(distinct_id, prop, value, modifiers, callback)\n ---\n Append a value to a list-valued people analytics property.\n\n usage:\n\n // append a value to a list, creating it if needed\n mixpanel.people.append('bob', 'pages_visited', 'homepage');\n\n // like mixpanel.people.set(), you can append multiple properties at once:\n mixpanel.people.append('bob', {\n list1: 'bob',\n list2: 123\n });\n */\n append(distinct_id, prop, value, modifiers, callback) {\n // TODO extract to ProfileHelpers\n\n var $append = {};\n\n if (typeof(prop) === 'object') {\n if (typeof(value) === 'object') {\n callback = modifiers;\n modifiers = value;\n } else {\n callback = value;\n }\n Object.keys(prop).forEach(function(key) {\n $append[key] = prop[key];\n });\n } else {\n $append[prop] = value;\n if (typeof(modifiers) === 'function') {\n callback = modifiers;\n }\n }\n\n var data = {\n '$append': $append,\n '$token': this.mixpanel.token,\n '$distinct_id': distinct_id\n };\n\n data = merge_modifiers(data, modifiers);\n\n if (this.mixpanel.config.debug) {\n this.mixpanel.config.logger.debug(\"Sending the following data to Mixpanel (Engage)\", { data });\n }\n\n this.mixpanel.send_request({ method: \"GET\", endpoint: \"/engage\", data: data }, callback);\n }\n\n /**\n people.track_charge(distinct_id, amount, properties, modifiers, callback)\n ---\n Record that you have charged the current user a certain\n amount of money.\n\n usage:\n\n // charge a user $29.99\n mixpanel.people.track_charge('bob', 29.99);\n\n // charge a user $19 on the 1st of february\n mixpanel.people.track_charge('bob', 19, { '$time': new Date('feb 1 2012') });\n */\n track_charge(distinct_id, amount, properties, modifiers, callback) {\n if (typeof(properties) === 'function' || !properties) {\n callback = properties || undefined;\n properties = {};\n } else {\n if (typeof(modifiers) === 'function' || !modifiers) {\n callback = modifiers || undefined;\n if (properties.$ignore_time || properties.hasOwnProperty(\"$ip\")) {\n modifiers = {};\n Object.keys(properties).forEach(function(key) {\n modifiers[key] = properties[key];\n delete properties[key];\n });\n }\n }\n }\n\n if (typeof(amount) !== 'number') {\n amount = parseFloat(amount);\n if (isNaN(amount)) {\n this.mixpanel.config.logger.error(\"Invalid value passed to mixpanel.people.track_charge - must be a number\");\n return;\n }\n }\n\n properties.$amount = amount;\n\n if (properties.hasOwnProperty('$time')) {\n var time = properties.$time;\n if (Object.prototype.toString.call(time) === '[object Date]') {\n properties.$time = time.toISOString();\n }\n }\n\n var data = {\n '$append': { '$transactions': properties },\n '$token': this.mixpanel.token,\n '$distinct_id': distinct_id\n };\n\n data = merge_modifiers(data, modifiers);\n\n if (this.mixpanel.config.debug) {\n this.mixpanel.config.logger.debug(\"Sending the following data to Mixpanel (Engage)\", { data });\n }\n\n this.mixpanel.send_request({ method: \"GET\", endpoint: \"/engage\", data: data }, callback);\n }\n\n /**\n people.clear_charges(distinct_id, modifiers, callback)\n ---\n Clear all the current user's transactions.\n\n usage:\n\n mixpanel.people.clear_charges('bob');\n */\n clear_charges(distinct_id, modifiers, callback) {\n var data = {\n '$set': { '$transactions': [] },\n '$token': this.mixpanel.token,\n '$distinct_id': distinct_id\n };\n\n if (typeof(modifiers) === 'function') { callback = modifiers; }\n\n data = merge_modifiers(data, modifiers);\n\n if (this.mixpanel.config.debug) {\n this.mixpanel.config.logger.debug(\"Clearing this user's charges\", { '$distinct_id': distinct_id });\n }\n\n this.mixpanel.send_request({ method: \"GET\", endpoint: \"/engage\", data: data }, callback);\n }\n\n /**\n people.delete_user(distinct_id, modifiers, callback)\n ---\n delete an user record in engage\n\n usage:\n\n mixpanel.people.delete_user('bob');\n */\n delete_user(distinct_id, modifiers, callback) {\n const identifiers = {$distinct_id: distinct_id};\n this._delete_profile({identifiers, modifiers, callback});\n }\n\n /**\n people.remove(distinct_id, data, modifiers, callback)\n ---\n remove a value from a list-valued user profile property.\n\n usage:\n\n mixpanel.people.remove('bob', {'browsers': 'firefox'});\n\n mixpanel.people.remove('bob', {'browsers': 'chrome', 'os': 'linux'});\n */\n remove(distinct_id, data, modifiers, callback) {\n const identifiers = {'$distinct_id': distinct_id};\n this._remove({identifiers, data, modifiers, callback})\n }\n\n /**\n people.union(distinct_id, data, modifiers, callback)\n ---\n merge value(s) into a list-valued people analytics property.\n\n usage:\n\n mixpanel.people.union('bob', {'browsers': 'firefox'});\n\n mixpanel.people.union('bob', {'browsers': ['chrome'], os: ['linux']});\n */\n union(distinct_id, data, modifiers, callback) {\n const identifiers = {$distinct_id: distinct_id};\n this._union({identifiers, data, modifiers, callback});\n }\n\n /**\n people.unset(distinct_id, prop, modifiers, callback)\n ---\n delete a property on an user record in engage\n\n usage:\n\n mixpanel.people.unset('bob', 'page_views');\n\n mixpanel.people.unset('bob', ['page_views', 'last_login']);\n */\n unset(distinct_id, prop, modifiers, callback) {\n const identifiers = {$distinct_id: distinct_id};\n this._unset({identifiers, prop, modifiers, callback});\n }\n};\n\nexports.MixpanelPeople = MixpanelPeople;\n","/**\n * Utility functions for Mixpanel feature flags\n */\nconst crypto = require('crypto');\n\n// Constants\nconst EXPOSURE_EVENT = '$experiment_started';\n\nconst REQUEST_HEADERS = {\n 'Content-Type': 'application/json',\n};\n\n/**\n * FNV-1a 64-bit hash function used for consistent variant assignment\n * https://www.ietf.org/archive/id/draft-eastlake-fnv-21.html#section-6.1.2 \n * @param {Buffer} data - Data to hash\n * @returns {BigInt} - Hash value as BigInt\n */\nfunction _fnv1a64(data) {\n const FNV_PRIME = BigInt('0x100000001B3');\n let hash = BigInt('0xCBF29CE484222325');\n\n for (let i = 0; i < data.length; i++) {\n hash ^= BigInt(data[i]);\n hash *= FNV_PRIME;\n hash &= BigInt('0xFFFFFFFFFFFFFFFF');\n }\n\n return hash;\n}\n\n/**\n * Normalized hash function that returns a value between 0.0 and 1.0\n * Used for variant assignment based on rollout percentages\n * @param {string} key - The key to hash (usually distinct_id or other identifier)\n * @param {string} salt - Salt value (usually flag-specific hash_salt)\n * @returns {number} - Hash value normalized to the non-inclusive range, [0.0, 1.0)\n */\nfunction normalizedHash(key, salt) {\n const combined = Buffer.from(key + salt, 'utf-8');\n const hashValue = _fnv1a64(combined);\n return Number(hashValue % BigInt(100)) / 100.0;\n}\n\n/**\n * Prepare common query parameters for feature flags API requests\n * @param {string} token - Mixpanel project token\n * @param {string} sdkVersion - SDK version string\n * @returns {Object} - Query parameters object\n */\nfunction prepareCommonQueryParams(token, sdkVersion) {\n return {\n mp_lib: 'node',\n $lib_version: sdkVersion,\n token: token,\n };\n}\n\n/**\n * Generate W3C traceparent header for distributed tracing\n * Format: 00-{trace-id}-{parent-id}-{trace-flags}\n * @returns {string} - traceparent header value\n */\nfunction generateTraceparent() {\n const version = '00';\n const traceId = crypto.randomBytes(16).toString('hex');\n const parentId = crypto.randomBytes(8).toString('hex');\n const traceFlags = '01'; // sampled\n\n return `${version}-${traceId}-${parentId}-${traceFlags}`;\n}\n\nmodule.exports = {\n EXPOSURE_EVENT,\n REQUEST_HEADERS,\n normalizedHash,\n prepareCommonQueryParams,\n generateTraceparent,\n};\n","/**\n * Base Feature Flags Provider\n * Contains common methods for feature flag evaluation\n */\n\nconst https = require('https');\nconst packageInfo = require('../../package.json');\nconst { prepareCommonQueryParams, generateTraceparent, EXPOSURE_EVENT, REQUEST_HEADERS } = require('./utils');\n\n/**\n * @typedef {import('./types').SelectedVariant} SelectedVariant\n * @typedef {import('./types').FlagContext} FlagContext\n */\nclass FeatureFlagsProvider {\n /**\n * @param {Object} providerConfig - Configuration object with token, api_host, request_timeout_in_seconds\n * @param {string} endpoint - API endpoint path (e.g., '/flags' or '/flags/definitions')\n * @param {Function} tracker - Function to track events (signature: track(distinct_id, event, properties, callback))\n * @param {string} evaluationMode - The feature flag evaluation mode\n * @param {CustomLogger} logger - Logger instance\n */\n constructor(providerConfig, endpoint, tracker, evaluationMode, logger) {\n this.providerConfig = providerConfig;\n this.endpoint = endpoint;\n this.tracker = tracker;\n this.evaluationMode = evaluationMode;\n this.logger = logger;\n }\n\n /**\n * Common HTTP request handler for flags API endpoints\n * @param {Object} additionalParams - Additional query parameters to append\n * @returns {Promise<Object>} - Parsed JSON response\n */\n async callFlagsEndpoint(additionalParams = null) {\n return new Promise((resolve, reject) => {\n const commonParams = prepareCommonQueryParams(this.providerConfig.token, packageInfo.version);\n const params = new URLSearchParams(commonParams);\n\n if (additionalParams) {\n for (const [key, value] of Object.entries(additionalParams)) {\n params.append(key, value);\n }\n }\n\n const path = `${this.endpoint}?${params.toString()}`;\n\n const requestOptions = {\n host: this.providerConfig.api_host,\n port: 443,\n path: path,\n method: 'GET',\n headers: {\n ...REQUEST_HEADERS,\n 'Authorization': 'Basic ' + Buffer.from(this.providerConfig.token + ':').toString('base64'),\n 'traceparent': generateTraceparent(),\n },\n timeout: this.providerConfig.request_timeout_in_seconds * 1000,\n };\n\n const request = https.request(requestOptions, (res) => {\n let data = '';\n\n res.on('data', (chunk) => {\n data += chunk;\n });\n\n res.on('end', () => {\n if (res.statusCode !== 200) {\n this.logger?.error(`HTTP ${res.statusCode} error calling flags endpoint: ${data}`);\n return reject(new Error(`HTTP ${res.statusCode}: ${data}`));\n }\n\n try {\n const result = JSON.parse(data);\n resolve(result);\n } catch (parseErr) {\n this.logger?.error(`Failed to parse JSON response: ${parseErr.message}`);\n reject(parseErr);\n }\n });\n });\n\n request.on('error', (err) => {\n this.logger?.error(`Network error calling flags endpoint: ${err.message}`);\n reject(err);\n });\n\n request.on('timeout', () => {\n this.logger?.error(`Request timeout calling flags endpoint`);\n request.destroy();\n reject(new Error('Request timeout'));\n });\n\n request.end();\n });\n }\n\n /**\n * Manually tracks a feature flag exposure event to Mixpanel\n * This provides flexibility for reporting individual exposure events when using getAllVariants\n * If using getVariantValue or getVariant, exposure events are tracked automatically by default.\n * @param {string} flagKey - The key of the feature flag\n * @param {SelectedVariant} variant - The selected variant for the feature flag\n * @param {FlagContext} context - The user context used to evaluate the feature flag\n * @param {number|null} latencyMs - Optionally included latency in milliseconds that assignment took.\n */\n trackExposureEvent(flagKey, selectedVariant, context, latencyMs=null) {\n if (!context.distinct_id) {\n this.logger?.error('Cannot track exposure event without a distinct_id in the context');\n return;\n }\n\n const properties = {\n 'distinct_id': context.distinct_id,\n 'Experiment name': flagKey,\n 'Variant name': selectedVariant.variant_key,\n '$experiment_type': 'feature_flag',\n 'Flag evaluation mode': this.evaluationMode\n };\n\n if (latencyMs !== null && latencyMs !== undefined) {\n properties['Variant fetch latency (ms)'] = latencyMs;\n }\n\n if (selectedVariant.experiment_id !== undefined) {\n properties['$experiment_id'] = selectedVariant.experiment_id;\n }\n\n if (selectedVariant.is_experiment_active !== undefined) {\n properties['$is_experiment_active'] = selectedVariant.is_experiment_active;\n }\n\n if (selectedVariant.is_qa_tester !== undefined) {\n properties['$is_qa_tester'] = selectedVariant.is_qa_tester;\n }\n\n // Use the tracker function provided (bound to the main mixpanel instance)\n this.tracker(EXPOSURE_EVENT, properties, (err) => {\n if (err) {\n this.logger?.error(`[flags]Failed to track exposure event for flag '${flagKey}': ${err.message}`);\n }\n });\n }\n}\n\nmodule.exports = FeatureFlagsProvider;\n","/**\n * Local Feature Flags Provider\n * Evaluates feature flags client-side using locally cached definitions\n */\n\n/**\n * @typedef {import('./types').SelectedVariant} SelectedVariant\n * @typedef {import('./types').FlagContext} FlagContext\n * @typedef {import('./types').LocalFlagsConfig} LocalFlagsConfig\n * @typedef {import('./types').ExperimentationFlag} ExperimentationFlag\n * @typedef {import('./types').LocalFlagsResponse} LocalFlagsResponse\n * */\n\nconst FeatureFlagsProvider = require('./flags');\nconst { normalizedHash } = require('./utils');\n\nclass LocalFeatureFlagsProvider extends FeatureFlagsProvider {\n /**\n * @param {string} token - Mixpanel project token\n * @param {LocalFlagsConfig} config - Local flags configuration\n * @param {Function} tracker - Function to track events (signature: track(distinct_id, event, properties, callback))\n * @param {CustomLogger} logger - Logger\n */\n constructor(token, config, tracker, logger) {\n const mergedConfig = {\n api_host: 'api.mixpanel.com',\n request_timeout_in_seconds: 10,\n enable_polling: true,\n polling_interval_in_seconds: 60,\n ...config,\n };\n\n const providerConfig = {\n token: token,\n api_host: mergedConfig.api_host,\n request_timeout_in_seconds: mergedConfig.request_timeout_in_seconds,\n };\n\n super(providerConfig, '/flags/definitions', tracker, 'local', logger);\n\n this.config = mergedConfig;\n this.flagDefinitions = new Map();\n this.pollingInterval = null;\n }\n\n /**\n * Start polling for flag definitions.\n * Fetches immediately and then at regular intervals if polling is enabled\n * @returns {Promise<void>}\n */\n async startPollingForDefinitions() {\n try {\n await this._fetchFlagDefinitions();\n\n if (this.config.enable_polling && !this.pollingInterval) {\n this.pollingInterval = setInterval(async () => {\n try {\n await this._fetchFlagDefinitions();\n } catch (err) {\n this.logger?.error(`Error polling for flag definition: ${err.message}`);\n }\n }, this.config.polling_interval_in_seconds * 1000);\n }\n } catch (err) {\n this.logger?.error(`Initial flag definitions fetch failed: ${err.message}`);\n }\n }\n\n /**\n * Stop polling for flag definitions\n */\n stopPollingForDefinitions() {\n if (this.pollingInterval) {\n clearInterval(this.pollingInterval);\n this.pollingInterval = null;\n } else {\n this.logger?.warn('stopPollingForDefinitions called but polling was not active');\n }\n }\n\n /**\n * Check if a feature flag is enabled\n * This method is intended only for flags defined as Mixpanel Feature Gates (boolean flags)\n * This checks that the variant value of a selected variant is concretely the boolean 'true'\n * It does not coerce other truthy values.\n * @param {string} flagKey - Feature flag key\n * @param {FlagContext} context - Evaluation context (must include distinct_id)\n * @returns {boolean}\n */\n isEnabled(flagKey, context) {\n const value = this.getVariantValue(flagKey, false, context);\n return value === true;\n }\n\n /**\n * Get the variant value for a feature flag\n * @param {string} flagKey - Feature flag key\n * @param {*} fallbackValue - Value to return if the user context is not in the rollout for a flag or if evaluation fails\n * @param {FlagContext} context - Evaluation context\n * @param {boolean} [reportExposure=true] - Whether to track exposure event\n * @returns {*} The variant value\n */\n getVariantValue(flagKey, fallbackValue, context, reportExposure = true) {\n const result = this.getVariant(flagKey, { variant_value: fallbackValue }, context, reportExposure);\n return result.variant_value;\n }\n\n /**\n * Get the complete variant information for a feature flag\n * @param {string} flagKey - Feature flag key\n * @param {SelectedVariant} fallbackVariant - Variant to return if flag evaluation fails\n * @param {FlagContext} context - Evaluation context (must include distinct_id)\n * @param {boolean} [reportExposure=true] - Whether to track exposure event\n * @returns {SelectedVariant}\n */\n getVariant(flagKey, fallbackVariant, context, reportExposure = true) {\n const flag = this.flagDefinitions.get(flagKey);\n\n if (!flag) {\n this.logger?.warn(`Cannot find flag definition for key: '${flagKey}`);\n return fallbackVariant;\n }\n\n if (!Object.hasOwn(context, flag.context)) {\n this.logger?.warn(\n `The variant assignment key, '${flag.context}' for flag, '${flagKey}' is not present in the supplied user context dictionary`\n );\n return fallbackVariant;\n }\n\n const contextValue = context[flag.context];\n\n let selectedVariant = null;\n\n const testUserVariant = this._getVariantOverrideForTestUser(flag, context);\n if (testUserVariant) {\n selectedVariant = testUserVariant;\n } else {\n const rollout = this._getAssignedRollout(flag, contextValue, context);\n if (rollout) {\n selectedVariant = this._getAssignedVariant(flag, contextValue, flagKey, rollout);\n }\n }\n\n if (selectedVariant) {\n if (reportExposure) {\n this.trackExposureEvent(flagKey, selectedVariant, context);\n }\n return selectedVariant;\n }\n\n return fallbackVariant;\n }\n\n /**\n * Get all feature flag variants for the current user context\n * Exposure events are not automatically tracked when this method is used\n * @param {FlagContext} context - Evaluation context (must include distinct_id)\n * @returns {{[key: string]: SelectedVariant}}\n */\n getAllVariants(context) {\n const variants = {};\n\n for (const flagKey of this.flagDefinitions.keys()) {\n const variant = this.getVariant(flagKey, null, context, false);\n if (variant !== null) {\n variants[flagKey] = variant;\n }\n }\n\n return variants;\n }\n\n /**\n * Fetch flag definitions from API.\n * @returns {Promise<LocalFlagsResponse>}\n */\n async _fetchFlagDefinitions() {\n const response = await this.callFlagsEndpoint();\n\n const newDefinitions = new Map();\n response.flags.forEach(flag => {\n newDefinitions.set(flag.key, flag);\n });\n\n this.flagDefinitions = newDefinitions;\n\n return response;\n }\n\n /**\n * Find a variant by key (case-insensitive) and return complete SelectedVariant\n * @param {string} variantKey - Variant key to find\n * @param {ExperimentationFlag} flag - Flag definition\n * @returns {SelectedVariant|null}\n */\n _getMatchingVariant(variantKey, flag) {\n for (const variant of flag.ruleset.variants) {\n if (variantKey.toLowerCase() === variant.key.toLowerCase()) {\n return {\n variant_key: variant.key,\n variant_value: variant.value,\n experiment_id: flag.experiment_id,\n is_experiment_active: flag.is_experiment_active,\n };\n }\n }\n return null;\n }\n\n _getVariantOverrideForTestUser(flag, context) {\n if (!flag.ruleset.test?.users) {\n return null;\n }\n\n const distinctId = context.distinct_id;\n if (!distinctId) {\n return null;\n }\n\n const variantKey = flag.ruleset.test.users[distinctId];\n if (!variantKey) {\n return null;\n }\n\n let selected_variant = this._getMatchingVariant(variantKey, flag);\n if (selected_variant) {\n selected_variant.is_qa_tester = true;\n }\n return selected_variant;\n }\n\n _getAssignedRollout(flag, contextValue, context) {\n for (let index = 0; index < flag.ruleset.rollout.length; index++) {\n const rollout = flag.ruleset.rollout[index];\n\n let salt;\n if (flag.hash_salt !== null && flag.hash_salt !== undefined) {\n salt = flag.key + flag.hash_salt + index.toString();\n } else {\n salt = flag.key + \"rollout\";\n }\n\n const rolloutHash = normalizedHash(String(contextValue), salt);\n\n if (rolloutHash < rollout.rollout_percentage &&\n this._isRuntimeEvaluationSatisfied(rollout, context)) {\n return rollout;\n }\n }\n\n return null;\n }\n\n _getAssignedVariant(flag, contextValue, flagKey, rollout) {\n if (rollout.variant_override) {\n const variant = this._getMatchingVariant(rollout.variant_override.key, flag);\n if (variant) {\n return { ...variant, is_qa_tester: false };\n }\n }\n\n const storedSalt = flag.hash_salt !== null && flag.hash_salt !== undefined ? flag.hash_salt : \"\";\n const salt = flagKey + storedSalt + \"variant\";\n const variantHash = normalizedHash(String(contextValue), salt);\n\n const variants = flag.ruleset.variants.map(v => ({ ...v }));\n if (rollout.variant_splits) {\n for (const variant of variants) {\n if (variant.key in rollout.variant_splits) {\n variant.split = rollout.variant_splits[variant.key];\n }\n }\n }\n\n let selected = variants[0];\n let cumulative = 0.0;\n for (const variant of variants) {\n selected = variant;\n cumulative += variant.split || 0.0;\n if (variantHash < cumulative) {\n break;\n }\n }\n\n return {\n variant_key: selected.key,\n variant_value: selected.value,\n experiment_id: flag.experiment_id,\n is_experiment_active: flag.is_experiment_active,\n is_qa_tester: false,\n };\n }\n\n _isRuntimeEvaluationSatisfied(rollout, context) {\n if (!rollout.runtime_evaluation_definition) {\n return true;\n }\n\n const customProperties = context.custom_properties;\n if (!customProperties || typeof customProperties !== 'object') {\n return false;\n }\n\n for (const [key, expectedValue] of Object.entries(rollout.runtime_evaluation_definition)) {\n if (!(key in customProperties)) {\n return false;\n }\n\n const actualValue = customProperties[key];\n if (String(actualValue).toLowerCase() !== String(expectedValue).toLowerCase()) {\n return false;\n }\n }\n return true;\n }\n}\n\nmodule.exports = LocalFeatureFlagsProvider;\n","/**\n * Remote Feature Flags Provider\n * Evaluates feature flags via server-side API requests\n */\n\n/**\n * @typedef {import('./types').SelectedVariant} SelectedVariant\n * @typedef {import('./types').FlagContext} FlagContext\n * @typedef {import('./types').RemoteFlagsConfig} RemoteFlagsConfig\n * @typedef {import('./types').RemoteFlagsResponse} RemoteFlagsResponse\n */\n\nconst FeatureFlagsProvider = require('./flags');\n\nclass RemoteFeatureFlagsProvider extends FeatureFlagsProvider {\n /**\n * @param {string} token - Mixpanel project token\n * @param {RemoteFlagsConfig} config - Remote flags configuration\n * @param {Function} tracker - Function to track events (signature: track(distinct_id, event, properties, callback))\n * @param {CustomLogger} logger - Logger instance\n */\n constructor(token, config, tracker, logger) {\n const mergedConfig = {\n api_host: 'api.mixpanel.com',\n request_timeout_in_seconds: 10,\n ...config,\n };\n\n const providerConfig = {\n token: token,\n api_host: mergedConfig.api_host,\n request_timeout_in_seconds: mergedConfig.request_timeout_in_seconds,\n };\n\n super(providerConfig, '/flags', tracker, 'remote', logger);\n }\n\n /**\n * Get the variant value for a feature flag\n * If the user context is eligible for the rollout, one of the flag variants will be selected and an exposure event will be tracked to Mixpanel.\n * If the user context is not eligible, the fallback value is returned.\n * @param {string} flagKey - Feature flag key\n * @param {*} fallbackValue - Value to return if flag evaluation fails\n * @param {FlagContext} context - Evaluation context\n * @param {boolean} reportExposure - Whether to track exposure event\n * @returns {Promise<*>} - Variant value\n */\n async getVariantValue(flagKey, fallbackValue, context, reportExposure = true) {\n try {\n const selectedVariant = await this.getVariant(flagKey, { variant_value: fallbackValue }, context, reportExposure);\n return selectedVariant.variant_value;\n } catch (err) {\n this.logger?.error(`Failed to get variant value for flag '${flagKey}': ${err.message}`);\n return fallbackValue;\n }\n }\n\n /**\n * Get the complete variant information for a feature flag\n * If the user context is eligible for the rollout, one of the flag variants will be selected and an exposure event will be tracked to Mixpanel.\n * If the user context is not eligible, the fallback value is returned.\n * @param {string} flagKey - Feature flag key\n * @param {SelectedVariant} fallbackVariant - Variant to return if flag evaluation fails\n * @param {FlagContext} context - Evaluation context\n * @param {boolean} reportExposure - Whether to track exposure event in the event that the user context is eligible for the rollout.\n * @returns {Promise<SelectedVariant>} - Selected variant\n */\n async getVariant(flagKey, fallbackVariant, context, reportExposure = true) {\n try {\n const startTime = Date.now();\n const response = await this._fetchFlags(context, flagKey);\n const latencyMs = Date.now() - startTime;\n\n const flags = response.flags || {};\n const selectedVariant = flags[flagKey];\n if (!selectedVariant) {\n return fallbackVariant;\n }\n\n if (reportExposure) {\n this.trackExposureEvent(flagKey, selectedVariant, context, latencyMs);\n }\n\n return selectedVariant;\n } catch (err) {\n this.logger?.error(`Failed to get variant for flag '${flagKey}': ${err.message}`);\n return fallbackVariant;\n }\n }\n\n /**\n * This method is intended only for flags defined as Mixpanel Feature Gates (boolean flags)\n * This checks that the variant value of a selected variant is concretely the boolean 'true'\n * It does not coerce other truthy values.\n * @param {string} flagKey - Feature flag key\n * @param {FlagContext} context - User's evaluation context\n * @returns {Promise<boolean>} - Whether the flag is enabled\n */\n async isEnabled(flagKey, context) {\n try {\n const value = await this.getVariantValue(flagKey, false, context);\n return value === true;\n } catch (err) {\n this.logger?.error(`Failed to check if flag '${flagKey}' is enabled: ${err.message}`);\n return false;\n }\n }\n\n /**\n * Get all feature flag variants for the current user context from remote server\n * Exposure events are not automatically tracked when this method is used\n * @param {FlagContext} context - User's evaluation context\n * @returns {Promise<{[key: string]: SelectedVariant}|null>} - Dictionary mapping flag keys to variants, or null if the call fails\n */\n async getAllVariants(context) {\n try {\n const response = await this._fetchFlags(context);\n return response.flags || {};\n } catch (err) {\n this.logger?.error(`Failed to get all remote variants: ${err.message}`);\n return null;\n }\n }\n\n /**\n * Fetch flags from remote flags evaluation API\n * @param {FlagContext} context - Evaluation context\n * @param {string} [flagKey] - Optional flag key (if omitted, fetches all flags)\n * @returns {Promise<RemoteFlagsResponse>} - API response containing flags dictionary\n */\n _fetchFlags(context, flagKey = null) {\n const additionalParams = {\n context: JSON.stringify(context),\n };\n\n if (flagKey !== null) {\n additionalParams.flag_key = flagKey;\n }\n\n return this.callFlagsEndpoint(additionalParams);\n }\n}\n\nmodule.exports = RemoteFeatureFlagsProvider;\n","/**\n * Mixpanel Feature Flags\n * Exports for local and remote feature flag evaluation\n */\n\nconst LocalFeatureFlagsProvider = require('./local_flags');\nconst RemoteFeatureFlagsProvider = require('./remote_flags');\n\nmodule.exports = {\n LocalFeatureFlagsProvider,\n RemoteFeatureFlagsProvider,\n};\n","/*\n Heavily inspired by the original js library copyright Mixpanel, Inc.\n (http://mixpanel.com/)\n\n Copyright (c) 2012 Carl Sverre\n\n Released under the MIT license.\n*/\n\nconst querystring = require('querystring');\nconst Buffer = require('buffer').Buffer;\nconst http = require('http');\nconst https = require('https');\nconst HttpsProxyAgent = require('https-proxy-agent');\nconst url = require('url');\nconst packageInfo = require('../package.json')\n\nconst {async_all, ensure_timestamp, assert_logger} = require('./utils');\nconst {MixpanelGroups} = require('./groups');\nconst {MixpanelPeople} = require('./people');\nconst {LocalFeatureFlagsProvider, RemoteFeatureFlagsProvider} = require('./flags');\n\nconst DEFAULT_CONFIG = {\n test: false,\n debug: false,\n verbose: false,\n host: 'api.mixpanel.com',\n protocol: 'https',\n path: '',\n keepAlive: true,\n // set this to true to automatically geolocate based on the client's ip.\n // e.g., when running under electron\n geolocate: false,\n logger: console,\n};\n\nvar create_client = function(token, config) {\n if (!token) {\n throw new Error(\"The Mixpanel Client needs a Mixpanel token: `init(token)`\");\n }\n\n const metrics = {\n token,\n config: {...DEFAULT_CONFIG},\n };\n const {keepAlive} = metrics.config;\n\n // mixpanel constants\n const MAX_BATCH_SIZE = 50;\n const REQUEST_LIBS = {http, https};\n const REQUEST_AGENTS = {\n http: new http.Agent({keepAlive}),\n https: new https.Agent({keepAlive}),\n };\n const proxyPath = process.env.HTTPS_PROXY || process.env.HTTP_PROXY;\n const proxyAgent = proxyPath ? new HttpsProxyAgent(Object.assign(url.parse(proxyPath), {\n keepAlive,\n })) : null;\n\n /**\n * sends an async GET or POST request to mixpanel\n * for batch processes data must be send in the body of a POST\n * @param {object} options\n * @param {string} options.endpoint\n * @param {object} options.data the data to send in the request\n * @param {string} [options.method] e.g. `get` or `post`, defaults to `get`\n * @param {function} callback called on request completion or error\n */\n metrics.send_request = function(options, callback) {\n callback = callback || function() {};\n\n let content = Buffer.from(JSON.stringify(options.data)).toString('base64');\n const endpoint = options.endpoint;\n const method = (options.method || 'GET').toUpperCase();\n let query_params = {\n 'ip': metrics.config.geolocate ? 1 : 0,\n 'verbose': metrics.config.verbose ? 1 : 0\n };\n const key = metrics.config.key;\n const secret = metrics.config.secret;\n const request_lib = REQUEST_LIBS[metrics.config.protocol];\n let request_options = {\n host: metrics.config.host,\n port: metrics.config.port,\n headers: {},\n method: method\n };\n let request;\n\n if (!request_lib) {\n throw new Error(\n \"Mixpanel Initialization Error: Unsupported protocol \" + metrics.config.protocol + \". \" +\n \"Supported protocols are: \" + Object.keys(REQUEST_LIBS)\n );\n }\n\n\n if (method === 'POST') {\n content = 'data=' + content;\n request_options.headers['Content-Type'] = 'application/x-www-form-urlencoded';\n request_options.headers['Content-Length'] = Buffer.byteLength(content);\n } else if (method === 'GET') {\n query_params.data = content;\n }\n\n\n // add auth params\n if (secret) {\n if (request_lib !== https) {\n throw new Error(\"Must use HTTPS if authenticating with API Secret\");\n }\n const encoded = Buffer.from(secret + ':').toString('base64');\n request_options.headers['Authorization'] = 'Basic ' + encoded;\n } else if (key) {\n query_params.api_key = key;\n } else if (endpoint === '/import') {\n throw new Error(\"The Mixpanel Client needs a Mixpanel API Secret when importing old events: `init(token, { secret: ... })`\");\n }\n\n request_options.agent = proxyAgent || REQUEST_AGENTS[metrics.config.protocol];\n\n if (metrics.config.test) {\n query_params.test = 1;\n }\n\n request_options.path = metrics.config.path + endpoint + \"?\" + querystring.stringify(query_params);\n\n request = request_lib.request(request_options, function(res) {\n var data = \"\";\n res.on('data', function(chunk) {\n data += chunk;\n });\n\n res.on('end', function() {\n var e;\n if (metrics.config.verbose) {\n try {\n var result = JSON.parse(data);\n if(result.status != 1) {\n e = new Error(\"Mixpanel Server Error: \" + result.error);\n }\n }\n catch(ex) {\n e = new Error(\"Could not parse response from Mixpanel\");\n }\n }\n else {\n e = (data !== '1') ? new Error(\"Mixpanel Server Error: \" + data) : undefined;\n }\n\n callback(e);\n });\n });\n\n request.on('error', function(e) {\n if (metrics.config.debug) {\n metrics.config.logger.error(\"Got Error: \" + e.message);\n }\n callback(e);\n });\n\n if (method === 'POST') {\n request.write(content);\n }\n request.end();\n };\n\n /**\n * Send an event to Mixpanel, using the specified endpoint (e.g., track/import)\n * @param {string} endpoint - API endpoint name\n * @param {string} event - event name\n * @param {object} properties - event properties\n * @param {Function} [callback] - callback for request completion/error\n */\n metrics.send_event_request = function(endpoint, event, properties, callback) {\n properties.token = metrics.token;\n properties.mp_lib = \"node\";\n properties.$lib_version = packageInfo.version;\n\n var data = {\n event: event,\n properties: properties\n };\n\n if (metrics.config.debug) {\n metrics.config.logger.debug(\"Sending the following event to Mixpanel\", { data });\n }\n\n metrics.send_request({ method: \"GET\", endpoint: endpoint, data: data }, callback);\n };\n\n /**\n * breaks array into equal-sized chunks, with the last chunk being the remainder\n * @param {Array} arr\n * @param {number} size\n * @returns {Array}\n */\n var chunk = function(arr, size) {\n var chunks = [],\n i = 0,\n total = arr.length;\n\n while (i < total) {\n chunks.push(arr.slice(i, i += size));\n }\n return chunks;\n };\n\n /**\n * sends events in batches\n * @param {object} options\n * @param {[{}]} options.event_list array of event objects\n * @param {string} options.endpoint e.g. `/track` or `/import`\n * @param {number} [options.max_concurrent_requests] limits concurrent async requests over the network\n * @param {number} [options.max_batch_size] limits number of events sent to mixpanel per request\n * @param {Function} [callback] callback receives array of errors if any\n *\n */\n var send_batch_requests = function(options, callback) {\n var event_list = options.event_list,\n endpoint = options.endpoint,\n max_batch_size = options.max_batch_size ? Math.min(MAX_BATCH_SIZE, options.max_batch_size) : MAX_BATCH_SIZE,\n // to maintain original intention of max_batch_size; if max_batch_size is greater than 50, we assume the user is trying to set max_concurrent_requests\n max_concurrent_requests = options.max_concurrent_requests || (options.max_batch_size > MAX_BATCH_SIZE && Math.ceil(options.max_batch_size / MAX_BATCH_SIZE)),\n event_batches = chunk(event_list, max_batch_size),\n request_batches = max_concurrent_requests ? chunk(event_batches, max_concurrent_requests) : [event_batches],\n total_event_batches = event_batches.length,\n total_request_batches = request_batches.length;\n\n /**\n * sends a batch of events to mixpanel through http api\n * @param {Array} batch\n * @param {Function} cb\n */\n function send_event_batch(batch, cb) {\n if (batch.length > 0) {\n batch = batch.map(function (event) {\n var properties = event.properties;\n if (endpoint === '/import' || event.properties.time) {\n // usually there will be a time property, but not required for `/track` endpoint\n event.properties.time = ensure_timestamp(event.properties.time);\n }\n event.properties.token = event.properties.token || metrics.token;\n return event;\n });\n\n // must be a POST\n metrics.send_request({ method: \"POST\", endpoint: endpoint, data: batch }, cb);\n }\n }\n\n /**\n * Asynchronously sends batches of requests\n * @param {number} index\n */\n function send_next_request_batch(index) {\n var request_batch = request_batches[index],\n cb = function (errors, results) {\n index += 1;\n if (index === total_request_batches) {\n callback && callback(errors, results);\n } else {\n send_next_request_batch(index);\n }\n };\n\n async_all(request_batch, send_event_batch, cb);\n }\n\n // init recursive function\n send_next_request_batch(0);\n\n if (metrics.config.debug) {\n metrics.config.logger.debug(\n \"Sending \" + event_list.length + \" events to Mixpanel in \" +\n total_event_batches + \" batches of events and \" +\n total_request_batches + \" batches of requests\"\n );\n }\n };\n\n /**\n track(event, properties, callback)\n ---\n this function sends an event to mixpanel.\n\n event:string the event name\n properties:object additional event properties to send\n callback:function(err:Error) callback is called when the request is\n finished or an error occurs\n */\n metrics.track = function(event, properties, callback) {\n if (!properties || typeof properties === \"function\") {\n callback = properties;\n properties = {};\n }\n\n // time is optional for `track`\n if (properties.time) {\n properties.time = ensure_timestamp(properties.time);\n }\n\n metrics.send_event_request(\"/track\", event, properties, callback);\n };\n\n /**\n * send a batch of events to mixpanel `track` endpoint: this should only be used if events are less than 5 days old\n * @param {Array} event_list array of event objects to track\n * @param {object} [options]\n * @param {number} [options.max_concurrent_requests] number of concurrent http requests that can be made to mixpanel\n * @param {number} [options.max_batch_size] number of events that can be sent to mixpanel per request\n * @param {Function} [callback] callback receives array of errors if any\n */\n metrics.track_batch = function(event_list, options, callback) {\n options = options || {};\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n var batch_options = {\n event_list: event_list,\n endpoint: \"/track\",\n max_concurrent_requests: options.max_concurrent_requests,\n max_batch_size: options.max_batch_size\n };\n\n send_batch_requests(batch_options, callback);\n };\n\n /**\n import(event, time, properties, callback)\n ---\n This function sends an event to mixpanel using the import\n endpoint. The time argument should be either a Date or Number,\n and should signify the time the event occurred.\n\n It is highly recommended that you specify the distinct_id\n property for each event you import, otherwise the events will be\n tied to the IP address of the sending machine.\n\n For more information look at:\n https://mixpanel.com/docs/api-documentation/importing-events-older-than-31-days\n\n event:string the event name\n time:date|number the time of the event\n properties:object additional event properties to send\n callback:function(err:Error) callback is called when the request is\n finished or an error occurs\n */\n metrics.import = function(event, time, properties, callback) {\n if (!properties || typeof properties === \"function\") {\n callback = properties;\n properties = {};\n }\n\n properties.time = ensure_timestamp(time);\n\n metrics.send_event_request(\"/import\", event, properties, callback);\n };\n\n /**\n import_batch(event_list, options, callback)\n ---\n This function sends a list of events to mixpanel using the import\n endpoint. The format of the event array should be:\n\n [\n {\n \"event\": \"event name\",\n \"properties\": {\n \"time\": new Date(), // Number or Date; required for each event\n \"key\": \"val\",\n ...\n }\n },\n {\n \"event\": \"event name\",\n \"properties\": {\n \"time\": new Date() // Number or Date; required for each event\n }\n },\n ...\n ]\n\n See import() for further information about the import endpoint.\n\n Options:\n max_batch_size: the maximum number of events to be transmitted over\n the network simultaneously. useful for capping bandwidth\n usage.\n max_concurrent_requests: the maximum number of concurrent http requests that\n can be made to mixpanel; also useful for capping bandwidth.\n\n N.B.: the Mixpanel API only accepts 50 events per request, so regardless\n of max_batch_size, larger lists of events will be chunked further into\n groups of 50.\n\n event_list:array list of event names and properties\n options:object optional batch configuration\n callback:function(error_list:array) callback is called when the request is\n finished or an error occurs\n */\n metrics.import_batch = function(event_list, options, callback) {\n var batch_options;\n\n if (typeof(options) === \"function\" || !options) {\n callback = options;\n options = {};\n }\n batch_options = {\n event_list: event_list,\n endpoint: \"/import\",\n max_concurrent_requests: options.max_concurrent_requests,\n max_batch_size: options.max_batch_size\n };\n send_batch_requests(batch_options, callback);\n };\n\n /**\n alias(distinct_id, alias)\n ---\n This function creates an alias for distinct_id\n\n For more information look at:\n https://mixpanel.com/docs/integration-libraries/using-mixpanel-alias\n\n distinct_id:string the current identifier\n alias:string the future alias\n */\n metrics.alias = function(distinct_id, alias, callback) {\n var properties = {\n distinct_id: distinct_id,\n alias: alias\n };\n\n metrics.track('$create_alias', properties, callback);\n };\n\n metrics.groups = new MixpanelGroups(metrics);\n metrics.people = new MixpanelPeople(metrics);\n\n /**\n set_config(config)\n ---\n Modifies the mixpanel config\n\n config:object an object with properties to override in the\n mixpanel client config\n */\n metrics.set_config = function(config) {\n if (config && config.logger !== undefined) {\n assert_logger(config.logger);\n }\n Object.assign(metrics.config, config);\n if (config.host) {\n // Split host into host and port\n const [host, port] = config.host.split(':');\n metrics.config.host = host;\n if (port) {\n metrics.config.port = Number(port);\n }\n }\n };\n\n if (config) {\n metrics.set_config(config);\n }\n\n // Initialize feature flags providers if configs are provided\n if (config && config.local_flags_config) {\n metrics.local_flags = new LocalFeatureFlagsProvider(\n token,\n config.local_flags_config,\n metrics.track.bind(metrics),\n config.logger\n );\n }\n\n if (config && config.remote_flags_config) {\n metrics.remote_flags = new RemoteFeatureFlagsProvider(\n token,\n config.remote_flags_config,\n metrics.track.bind(metrics),\n config.logger\n );\n }\n\n return metrics;\n};\n\n// module exporting\nmodule.exports = {\n init: create_client,\n};\n","/**\n * Mixpanel Subscriber for autotel\n *\n * Send events to Mixpanel for product events.\n *\n * @example\n * ```typescript\n * import { Events } from 'autotel/events';\n * import { MixpanelSubscriber } from 'autotel-subscribers/mixpanel';\n *\n * const events = new Events('checkout', {\n * subscribers: [\n * new MixpanelSubscriber({\n * token: process.env.MIXPANEL_TOKEN!\n * })\n * ]\n * });\n *\n * events.trackEvent('order.completed', { userId: '123', amount: 99.99 });\n * ```\n */\n\nimport type {\n EventSubscriber,\n EventAttributes,\n FunnelStatus,\n OutcomeStatus,\n} from 'autotel/event-subscriber';\n\nexport interface MixpanelConfig {\n /** Mixpanel project token */\n token: string;\n /** Enable/disable the subscriber */\n enabled?: boolean;\n}\n\nexport class MixpanelSubscriber implements EventSubscriber {\n readonly name = 'MixpanelSubscriber';\n readonly version = '1.0.0';\n\n private mixpanel: any;\n private enabled: boolean;\n private config: MixpanelConfig;\n private initPromise: Promise<void> | null = null;\n\n constructor(config: MixpanelConfig) {\n this.enabled = config.enabled ?? true;\n this.config = config;\n\n if (this.enabled) {\n // Start initialization immediately but don't block constructor\n this.initPromise = this.initialize();\n }\n }\n\n private async initialize(): Promise<void> {\n try {\n // Dynamic import to avoid adding mixpanel as a hard dependency\n const Mixpanel = await import('mixpanel');\n this.mixpanel = Mixpanel.default.init(this.config.token);\n } catch (error) {\n console.error(\n 'Mixpanel subscriber failed to initialize. Install mixpanel: pnpm add mixpanel',\n error,\n );\n this.enabled = false;\n }\n }\n\n private async ensureInitialized(): Promise<void> {\n if (this.initPromise) {\n await this.initPromise;\n this.initPromise = null;\n }\n }\n\n async trackEvent(name: string, attributes?: EventAttributes): Promise<void> {\n if (!this.enabled) return;\n\n await this.ensureInitialized();\n const distinctId = attributes?.userId || attributes?.user_id || 'anonymous';\n this.mixpanel?.track(name, {\n distinct_id: distinctId,\n ...attributes,\n });\n }\n\n async trackFunnelStep(\n funnelName: string,\n step: FunnelStatus,\n attributes?: EventAttributes,\n ): Promise<void> {\n if (!this.enabled) return;\n\n await this.ensureInitialized();\n const distinctId = attributes?.userId || attributes?.user_id || 'anonymous';\n this.mixpanel?.track(`${funnelName}.${step}`, {\n distinct_id: distinctId,\n funnel: funnelName,\n step,\n ...attributes,\n });\n }\n\n async trackOutcome(\n operationName: string,\n outcome: OutcomeStatus,\n attributes?: EventAttributes,\n ): Promise<void> {\n if (!this.enabled) return;\n\n await this.ensureInitialized();\n const distinctId = attributes?.userId || attributes?.user_id || 'anonymous';\n this.mixpanel?.track(`${operationName}.${outcome}`, {\n distinct_id: distinctId,\n operation: operationName,\n outcome,\n ...attributes,\n });\n }\n\n async trackValue(name: string, value: number, attributes?: EventAttributes): Promise<void> {\n if (!this.enabled) return;\n\n await this.ensureInitialized();\n const distinctId = attributes?.userId || attributes?.user_id || 'anonymous';\n this.mixpanel?.track(name, {\n distinct_id: distinctId,\n value,\n ...attributes,\n });\n }\n}\n\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../node_modules/.pnpm/debug@4.4.3_supports-color@10.2.2/node_modules/debug/src/common.js","../../../node_modules/.pnpm/debug@4.4.3_supports-color@10.2.2/node_modules/debug/src/browser.js","../../../node_modules/.pnpm/supports-color@10.2.2/node_modules/supports-color/index.js","../../../node_modules/.pnpm/debug@4.4.3_supports-color@10.2.2/node_modules/debug/src/node.js","../../../node_modules/.pnpm/debug@4.4.3_supports-color@10.2.2/node_modules/debug/src/index.js","../../../node_modules/.pnpm/agent-base@7.1.4/node_modules/agent-base/src/helpers.ts","../../../node_modules/.pnpm/agent-base@7.1.4/node_modules/agent-base/src/index.ts","../../../node_modules/.pnpm/https-proxy-agent@7.0.6_supports-color@10.2.2/node_modules/https-proxy-agent/src/parse-proxy-response.ts","../../../node_modules/.pnpm/https-proxy-agent@7.0.6_supports-color@10.2.2/node_modules/https-proxy-agent/src/index.ts","../../../node_modules/.pnpm/mixpanel@0.19.1/node_modules/mixpanel/package.json","../../../node_modules/.pnpm/mixpanel@0.19.1/node_modules/mixpanel/lib/utils.js","../../../node_modules/.pnpm/mixpanel@0.19.1/node_modules/mixpanel/lib/profile_helpers.js","../../../node_modules/.pnpm/mixpanel@0.19.1/node_modules/mixpanel/lib/groups.js","../../../node_modules/.pnpm/mixpanel@0.19.1/node_modules/mixpanel/lib/people.js","../../../node_modules/.pnpm/mixpanel@0.19.1/node_modules/mixpanel/lib/flags/utils.js","../../../node_modules/.pnpm/mixpanel@0.19.1/node_modules/mixpanel/lib/flags/flags.js","../../../node_modules/.pnpm/mixpanel@0.19.1/node_modules/mixpanel/lib/flags/local_flags.js","../../../node_modules/.pnpm/mixpanel@0.19.1/node_modules/mixpanel/lib/flags/remote_flags.js","../../../node_modules/.pnpm/mixpanel@0.19.1/node_modules/mixpanel/lib/flags/index.js","../../../node_modules/.pnpm/mixpanel@0.19.1/node_modules/mixpanel/lib/mixpanel-node.js","../src/mixpanel.ts"],"names":["exports","env","process","os","tty","supportsColor","useColors","req","require_utils","require_flags","Buffer","chunk","config"],"mappings":"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","file":"mixpanel.cjs","sourcesContent":["/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '')\n\t\t\t.trim()\n\t\t\t.replace(/\\s+/g, ',')\n\t\t\t.split(',')\n\t\t\t.filter(Boolean);\n\n\t\tfor (const ns of split) {\n\t\t\tif (ns[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(ns.slice(1));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(ns);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the given string matches a namespace template, honoring\n\t * asterisks as wildcards.\n\t *\n\t * @param {String} search\n\t * @param {String} template\n\t * @return {Boolean}\n\t */\n\tfunction matchesTemplate(search, template) {\n\t\tlet searchIndex = 0;\n\t\tlet templateIndex = 0;\n\t\tlet starIndex = -1;\n\t\tlet matchIndex = 0;\n\n\t\twhile (searchIndex < search.length) {\n\t\t\tif (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) {\n\t\t\t\t// Match character or proceed with wildcard\n\t\t\t\tif (template[templateIndex] === '*') {\n\t\t\t\t\tstarIndex = templateIndex;\n\t\t\t\t\tmatchIndex = searchIndex;\n\t\t\t\t\ttemplateIndex++; // Skip the '*'\n\t\t\t\t} else {\n\t\t\t\t\tsearchIndex++;\n\t\t\t\t\ttemplateIndex++;\n\t\t\t\t}\n\t\t\t} else if (starIndex !== -1) { // eslint-disable-line no-negated-condition\n\t\t\t\t// Backtrack to the last '*' and try to match more characters\n\t\t\t\ttemplateIndex = starIndex + 1;\n\t\t\t\tmatchIndex++;\n\t\t\t\tsearchIndex = matchIndex;\n\t\t\t} else {\n\t\t\t\treturn false; // No match\n\t\t\t}\n\t\t}\n\n\t\t// Handle trailing '*' in template\n\t\twhile (templateIndex < template.length && template[templateIndex] === '*') {\n\t\t\ttemplateIndex++;\n\t\t}\n\n\t\treturn templateIndex === template.length;\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names,\n\t\t\t...createDebug.skips.map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tfor (const skip of createDebug.skips) {\n\t\t\tif (matchesTemplate(name, skip)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (const ns of createDebug.names) {\n\t\t\tif (matchesTemplate(name, ns)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\t// eslint-disable-next-line no-return-assign\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","import process from 'node:process';\nimport os from 'node:os';\nimport tty from 'node:tty';\n\n// From: https://github.com/sindresorhus/has-flag/blob/main/index.js\n/// function hasFlag(flag, argv = globalThis.Deno?.args ?? process.argv) {\nfunction hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process.argv) {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n}\n\nconst {env} = process;\n\nlet flagForceColor;\nif (\n\thasFlag('no-color')\n\t|| hasFlag('no-colors')\n\t|| hasFlag('color=false')\n\t|| hasFlag('color=never')\n) {\n\tflagForceColor = 0;\n} else if (\n\thasFlag('color')\n\t|| hasFlag('colors')\n\t|| hasFlag('color=true')\n\t|| hasFlag('color=always')\n) {\n\tflagForceColor = 1;\n}\n\nfunction envForceColor() {\n\tif (!('FORCE_COLOR' in env)) {\n\t\treturn;\n\t}\n\n\tif (env.FORCE_COLOR === 'true') {\n\t\treturn 1;\n\t}\n\n\tif (env.FORCE_COLOR === 'false') {\n\t\treturn 0;\n\t}\n\n\tif (env.FORCE_COLOR.length === 0) {\n\t\treturn 1;\n\t}\n\n\tconst level = Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);\n\n\tif (![0, 1, 2, 3].includes(level)) {\n\t\treturn;\n\t}\n\n\treturn level;\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3,\n\t};\n}\n\nfunction _supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) {\n\tconst noFlagForceColor = envForceColor();\n\tif (noFlagForceColor !== undefined) {\n\t\tflagForceColor = noFlagForceColor;\n\t}\n\n\tconst forceColor = sniffFlags ? flagForceColor : noFlagForceColor;\n\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (sniffFlags) {\n\t\tif (hasFlag('color=16m')\n\t\t\t|| hasFlag('color=full')\n\t\t\t|| hasFlag('color=truecolor')) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (hasFlag('color=256')) {\n\t\t\treturn 2;\n\t\t}\n\t}\n\n\t// Check for Azure DevOps pipelines.\n\t// Has to be above the `!streamIsTTY` check.\n\tif ('TF_BUILD' in env && 'AGENT_NAME' in env) {\n\t\treturn 1;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10\n\t\t\t&& Number(osRelease[2]) >= 10_586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14_931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['GITHUB_ACTIONS', 'GITEA_ACTIONS', 'CIRCLECI'].some(key => key in env)) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (['TRAVIS', 'APPVEYOR', 'GITLAB_CI', 'BUILDKITE', 'DRONE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'xterm-kitty') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'xterm-ghostty') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'wezterm') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app': {\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\t}\n\n\t\t\tcase 'Apple_Terminal': {\n\t\t\t\treturn 2;\n\t\t\t}\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nexport function createSupportsColor(stream, options = {}) {\n\tconst level = _supportsColor(stream, {\n\t\tstreamIsTTY: stream && stream.isTTY,\n\t\t...options,\n\t});\n\n\treturn translateLevel(level);\n}\n\nconst supportsColor = {\n\tstdout: createSupportsColor({isTTY: tty.isatty(1)}),\n\tstderr: createSupportsColor({isTTY: tty.isatty(2)}),\n};\n\nexport default supportsColor;\n","/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n","/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n",null,null,null,null,"{\n \"name\": \"mixpanel\",\n \"description\": \"A simple server-side API for mixpanel\",\n \"keywords\": [\n \"mixpanel\",\n \"analytics\",\n \"api\",\n \"stats\"\n ],\n \"version\": \"0.19.1\",\n \"homepage\": \"https://github.com/mixpanel/mixpanel-node\",\n \"author\": \"Carl Sverre\",\n \"license\": \"MIT\",\n \"main\": \"lib/mixpanel-node\",\n \"directories\": {\n \"lib\": \"lib\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+ssh://git@github.com/mixpanel/mixpanel-node.git\"\n },\n \"engines\": {\n \"node\": \">=10.0\"\n },\n \"scripts\": {\n \"test\": \"vitest\"\n },\n \"types\": \"./lib/mixpanel-node.d.ts\",\n \"devDependencies\": {\n \"@types/node\": \"^24.10.1\",\n \"@vitest/coverage-v8\": \"^4.0.8\",\n \"nock\": \"^14.0.10\",\n \"proxyquire\": \"^2.1.3\",\n \"typescript\": \"^5.9.3\",\n \"vitest\": \"^4.0.8\"\n },\n \"dependencies\": {\n \"https-proxy-agent\": \"7.0.6\"\n }\n}\n","/**\n * helper to wait for all callbacks to complete; similar to `Promise.all`\n * exposed to metrics object for unit tests\n * @param {Array} requests\n * @param {Function} handler\n * @param {Function} callback\n */\nexports.async_all = function(requests, handler, callback) {\n var total = requests.length,\n errors = null,\n results = [],\n done = function (err, result) {\n if (err) {\n // errors are `null` unless there is an error, which allows for promisification\n errors = errors || [];\n errors.push(err);\n }\n results.push(result);\n if (--total === 0) {\n callback(errors, results)\n }\n };\n\n if (total === 0) {\n callback(errors, results);\n } else {\n for(var i = 0, l = requests.length; i < l; i++) {\n handler(requests[i], done);\n }\n }\n};\n\n/**\n * Validate type of time property, and convert to Unix timestamp if necessary\n * @param {Date|number} time - value to check\n * @returns {number} Unix timestamp\n */\nexports.ensure_timestamp = function(time) {\n if (!(time instanceof Date || typeof time === \"number\")) {\n throw new Error(\"`time` property must be a Date or Unix timestamp and is only required for `import` endpoint\");\n }\n return time instanceof Date ? time.getTime() : time;\n};\n\n/**\n* Asserts that the provided logger object is valid\n* @param {CustomLogger} logger - The logger object to be validated\n* @throws {TypeError} If the logger object is not a valid Logger object or\n* if it is missing any of the required methods\n*/\nexports.assert_logger = function(logger) {\n if (typeof logger !== 'object') {\n throw new TypeError(`\"logger\" must be a valid Logger object`);\n }\n \n ['trace', 'debug', 'info', 'warn', 'error'].forEach((method) => {\n if (typeof logger[method] !== 'function') {\n throw new TypeError(`Logger object missing \"${method}\" method`);\n }\n });\n};\n","/**\n * Mixin with profile-related helpers (for people and groups)\n */\n\nconst {ensure_timestamp} = require('./utils');\n\nfunction merge_modifiers(data, modifiers) {\n if (modifiers) {\n if (modifiers.$ignore_alias) {\n data.$ignore_alias = modifiers.$ignore_alias;\n }\n if (modifiers.$ignore_time) {\n data.$ignore_time = modifiers.$ignore_time;\n }\n if (modifiers.hasOwnProperty(\"$ip\")) {\n data.$ip = modifiers.$ip;\n }\n if (modifiers.hasOwnProperty(\"$time\")) {\n data.$time = ensure_timestamp(modifiers.$time);\n }\n if (modifiers.hasOwnProperty(\"$latitude\") && modifiers.hasOwnProperty('$longitude')) {\n data.$latitude = modifiers.$latitude;\n data.$longitude = modifiers.$longitude;\n }\n }\n return data;\n};\nexports.merge_modifiers = merge_modifiers;\n\nexports.ProfileHelpers = (Base = Object) => class extends Base {\n get token() {\n return this.mixpanel.token;\n }\n\n get config() {\n return this.mixpanel.config;\n }\n\n _set(prop, to, modifiers, callback, {identifiers, set_once = false}) {\n let $set = {};\n\n if (typeof(prop) === 'object') {\n if (typeof(to) === 'object') {\n callback = modifiers;\n modifiers = to;\n } else {\n callback = to;\n }\n $set = prop;\n } else {\n $set[prop] = to;\n if (typeof(modifiers) === 'function' || !modifiers) {\n callback = modifiers;\n }\n }\n\n let data = {\n '$token': this.token,\n ...identifiers,\n };\n\n const set_key = set_once ? \"$set_once\" : \"$set\";\n data[set_key] = $set;\n\n if ('ip' in $set) {\n data.$ip = $set.ip;\n delete $set.ip;\n }\n\n if ($set.$ignore_time) {\n data.$ignore_time = $set.$ignore_time;\n delete $set.$ignore_time;\n }\n\n data = merge_modifiers(data, modifiers);\n\n if (this.config.debug) {\n this.mixpanel.config.logger.debug(`Sending the following data to Mixpanel (${this.endpoint})`, { data });\n }\n\n this.mixpanel.send_request({ method: \"GET\", endpoint: this.endpoint, data }, callback);\n }\n\n _delete_profile({identifiers, modifiers, callback}){\n let data = {\n '$delete': '',\n '$token': this.token,\n ...identifiers,\n };\n\n if (typeof(modifiers) === 'function') { callback = modifiers; }\n\n data = merge_modifiers(data, modifiers);\n\n if (this.config.debug) {\n this.mixpanel.config.logger.debug('Deleting profile', { identifiers });\n }\n\n this.mixpanel.send_request({ method: \"GET\", endpoint: this.endpoint, data }, callback);\n }\n\n _remove({identifiers, data, modifiers, callback}) {\n let $remove = {};\n\n if (typeof(data) !== 'object' || Array.isArray(data)) {\n if (this.config.debug) {\n this.mixpanel.config.logger.error(\"Invalid value passed to #remove - data must be an object with scalar values\");\n }\n return;\n }\n\n for (const [key, val] of Object.entries(data)) {\n if (typeof(val) === 'string' || typeof(val) === 'number') {\n $remove[key] = val;\n } else {\n if (this.config.debug) {\n this.mixpanel.config.logger.error(\n \"Invalid argument passed to #remove - values must be scalar\",\n { key, value: val }\n );\n }\n return;\n }\n }\n\n if (Object.keys($remove).length === 0) {\n return;\n }\n\n data = {\n '$remove': $remove,\n '$token': this.token,\n ...identifiers\n };\n\n if (typeof(modifiers) === 'function') {\n callback = modifiers;\n }\n\n data = merge_modifiers(data, modifiers);\n\n if (this.config.debug) {\n this.mixpanel.config.logger.debug(\n `Sending the following data to Mixpanel (${this.endpoint})`,\n { data }\n );\n }\n\n this.mixpanel.send_request({ method: \"GET\", endpoint: this.endpoint, data }, callback);\n }\n\n _union({identifiers, data, modifiers, callback}) {\n let $union = {};\n\n if (typeof(data) !== 'object' || Array.isArray(data)) {\n if (this.config.debug) {\n this.mixpanel.config.logger.error(\"Invalid value passed to #union - data must be an object with scalar or array values\");\n }\n return;\n }\n\n for (const [key, val] of Object.entries(data)) {\n if (Array.isArray(val)) {\n var merge_values = val.filter(function(v) {\n return typeof(v) === 'string' || typeof(v) === 'number';\n });\n if (merge_values.length > 0) {\n $union[key] = merge_values;\n }\n } else if (typeof(val) === 'string' || typeof(val) === 'number') {\n $union[key] = [val];\n } else {\n if (this.config.debug) {\n this.mixpanel.config.logger.error(\n \"Invalid argument passed to #union - values must be a scalar value or array\",\n { key, value: val }\n );\n }\n }\n }\n\n if (Object.keys($union).length === 0) {\n return;\n }\n\n data = {\n '$union': $union,\n '$token': this.token,\n ...identifiers,\n };\n\n if (typeof(modifiers) === 'function') {\n callback = modifiers;\n }\n\n data = merge_modifiers(data, modifiers);\n\n if (this.config.debug) {\n this.mixpanel.config.logger.debug(\n `Sending the following data to Mixpanel (${this.endpoint})`,\n { data }\n );\n }\n\n this.mixpanel.send_request({ method: \"GET\", endpoint: this.endpoint, data }, callback);\n }\n\n _unset({identifiers, prop, modifiers, callback}){\n let $unset = [];\n\n if (Array.isArray(prop)) {\n $unset = prop;\n } else if (typeof(prop) === 'string') {\n $unset = [prop];\n } else {\n if (this.config.debug) {\n this.mixpanel.config.logger.error(\n \"Invalid argument passed to #unset - must be a string or array\",\n { prop }\n );\n }\n return;\n }\n\n let data = {\n '$unset': $unset,\n '$token': this.token,\n ...identifiers,\n };\n\n if (typeof(modifiers) === 'function') {\n callback = modifiers;\n }\n\n data = merge_modifiers(data, modifiers);\n\n if (this.config.debug) {\n this.mixpanel.config.logger.debug(\n `Sending the following data to Mixpanel (${this.endpoint})`,\n { data }\n );\n }\n\n this.mixpanel.send_request({ method: \"GET\", endpoint: this.endpoint, data }, callback);\n }\n};\n","/**\n * Group profile methods. Learn more: https://help.mixpanel.com/hc/en-us/articles/360025333632\n */\n\nconst {ProfileHelpers} = require('./profile_helpers');\n\nclass MixpanelGroups extends ProfileHelpers() {\n constructor(mp_instance) {\n super();\n this.mixpanel = mp_instance;\n this.endpoint = '/groups';\n }\n\n /** groups.set_once(group_key, group_id, prop, to, modifiers, callback)\n ---\n The same as groups.set, but adds a property value to a group only if it has not been set before.\n */\n set_once(group_key, group_id, prop, to, modifiers, callback) {\n const identifiers = {$group_key: group_key, $group_id: group_id};\n this._set(prop, to, modifiers, callback, {identifiers, set_once: true});\n }\n\n /**\n groups.set(group_key, group_id, prop, to, modifiers, callback)\n ---\n set properties on a group profile\n\n usage:\n\n mixpanel.groups.set('company', 'Acme Inc.', '$name', 'Acme Inc.');\n\n mixpanel.groups.set('company', 'Acme Inc.', {\n 'Industry': 'widgets',\n '$name': 'Acme Inc.',\n });\n */\n set(group_key, group_id, prop, to, modifiers, callback) {\n const identifiers = {$group_key: group_key, $group_id: group_id};\n this._set(prop, to, modifiers, callback, {identifiers});\n }\n\n /**\n groups.delete_group(group_key, group_id, modifiers, callback)\n ---\n delete a group profile permanently\n\n usage:\n\n mixpanel.groups.delete_group('company', 'Acme Inc.');\n */\n delete_group(group_key, group_id, modifiers, callback) {\n const identifiers = {$group_key: group_key, $group_id: group_id};\n this._delete_profile({identifiers, modifiers, callback});\n }\n\n /**\n groups.remove(group_key, group_id, data, modifiers, callback)\n ---\n remove a value from a list-valued group profile property.\n\n usage:\n\n mixpanel.groups.remove('company', 'Acme Inc.', {'products': 'anvil'});\n\n mixpanel.groups.remove('company', 'Acme Inc.', {\n 'products': 'anvil',\n 'customer segments': 'coyotes'\n });\n */\n remove(group_key, group_id, data, modifiers, callback) {\n const identifiers = {$group_key: group_key, $group_id: group_id};\n this._remove({identifiers, data, modifiers, callback});\n }\n\n /**\n groups.union(group_key, group_id, data, modifiers, callback)\n ---\n merge value(s) into a list-valued group profile property.\n\n usage:\n\n mixpanel.groups.union('company', 'Acme Inc.', {'products': 'anvil'});\n\n mixpanel.groups.union('company', 'Acme Inc.', {'products': ['anvil'], 'customer segments': ['coyotes']});\n */\n union(group_key, group_id, data, modifiers, callback) {\n const identifiers = {$group_key: group_key, $group_id: group_id};\n this._union({identifiers, data, modifiers, callback})\n }\n\n /**\n groups.unset(group_key, group_id, prop, modifiers, callback)\n ---\n delete a property on a group profile\n\n usage:\n\n mixpanel.groups.unset('company', 'Acme Inc.', 'products');\n\n mixpanel.groups.unset('company', 'Acme Inc.', ['products', 'customer segments']);\n */\n unset(group_key, group_id, prop, modifiers, callback) {\n const identifiers = {$group_key: group_key, $group_id: group_id};\n this._unset({identifiers, prop, modifiers, callback})\n }\n}\n\nexports.MixpanelGroups = MixpanelGroups;\n","const {merge_modifiers, ProfileHelpers} = require('./profile_helpers');\n\nclass MixpanelPeople extends ProfileHelpers() {\n constructor(mp_instance) {\n super();\n this.mixpanel = mp_instance;\n this.endpoint = '/engage';\n }\n\n /** people.set_once(distinct_id, prop, to, modifiers, callback)\n ---\n The same as people.set but in the words of mixpanel:\n mixpanel.people.set_once\n\n \" This method allows you to set a user attribute, only if\n it is not currently set. It can be called multiple times\n safely, so is perfect for storing things like the first date\n you saw a user, or the referrer that brought them to your\n website for the first time. \"\n\n */\n set_once(distinct_id, prop, to, modifiers, callback) {\n const identifiers = {$distinct_id: distinct_id};\n this._set(prop, to, modifiers, callback, {identifiers, set_once: true});\n }\n\n /**\n people.set(distinct_id, prop, to, modifiers, callback)\n ---\n set properties on an user record in engage\n\n usage:\n\n mixpanel.people.set('bob', 'gender', 'm');\n\n mixpanel.people.set('joe', {\n 'company': 'acme',\n 'plan': 'premium'\n });\n */\n set(distinct_id, prop, to, modifiers, callback) {\n const identifiers = {$distinct_id: distinct_id};\n this._set(prop, to, modifiers, callback, {identifiers});\n }\n\n /**\n people.increment(distinct_id, prop, by, modifiers, callback)\n ---\n increment/decrement properties on an user record in engage\n\n usage:\n\n mixpanel.people.increment('bob', 'page_views', 1);\n\n // or, for convenience, if you're just incrementing a counter by 1, you can\n // simply do\n mixpanel.people.increment('bob', 'page_views');\n\n // to decrement a counter, pass a negative number\n mixpanel.people.increment('bob', 'credits_left', -1);\n\n // like mixpanel.people.set(), you can increment multiple properties at once:\n mixpanel.people.increment('bob', {\n counter1: 1,\n counter2: 3,\n counter3: -2\n });\n */\n increment(distinct_id, prop, by, modifiers, callback) {\n // TODO extract to ProfileHelpers\n\n var $add = {};\n\n if (typeof(prop) === 'object') {\n if (typeof(by) === 'object') {\n callback = modifiers;\n modifiers = by;\n } else {\n callback = by;\n }\n for (const [key, val] of Object.entries(prop)) {\n if (isNaN(parseFloat(val))) {\n if (this.mixpanel.config.debug) {\n this.mixpanel.config.logger.error(\n \"Invalid increment value passed to mixpanel.people.increment - must be a number\",\n {key, value: val}\n );\n }\n } else {\n $add[key] = val;\n }\n };\n } else {\n if (typeof(by) === 'number' || !by) {\n by = by || 1;\n $add[prop] = by;\n if (typeof(modifiers) === 'function') {\n callback = modifiers;\n }\n } else if (typeof(by) === 'function') {\n callback = by;\n $add[prop] = 1;\n } else {\n callback = modifiers;\n modifiers = (typeof(by) === 'object') ? by : {};\n $add[prop] = 1;\n }\n }\n\n var data = {\n '$add': $add,\n '$token': this.mixpanel.token,\n '$distinct_id': distinct_id\n };\n\n data = merge_modifiers(data, modifiers);\n\n if (this.mixpanel.config.debug) {\n this.mixpanel.config.logger.debug(\"Sending the following data to Mixpanel (Engage)\", { data });\n }\n\n this.mixpanel.send_request({ method: \"GET\", endpoint: \"/engage\", data: data }, callback);\n }\n\n /**\n people.append(distinct_id, prop, value, modifiers, callback)\n ---\n Append a value to a list-valued people analytics property.\n\n usage:\n\n // append a value to a list, creating it if needed\n mixpanel.people.append('bob', 'pages_visited', 'homepage');\n\n // like mixpanel.people.set(), you can append multiple properties at once:\n mixpanel.people.append('bob', {\n list1: 'bob',\n list2: 123\n });\n */\n append(distinct_id, prop, value, modifiers, callback) {\n // TODO extract to ProfileHelpers\n\n var $append = {};\n\n if (typeof(prop) === 'object') {\n if (typeof(value) === 'object') {\n callback = modifiers;\n modifiers = value;\n } else {\n callback = value;\n }\n Object.keys(prop).forEach(function(key) {\n $append[key] = prop[key];\n });\n } else {\n $append[prop] = value;\n if (typeof(modifiers) === 'function') {\n callback = modifiers;\n }\n }\n\n var data = {\n '$append': $append,\n '$token': this.mixpanel.token,\n '$distinct_id': distinct_id\n };\n\n data = merge_modifiers(data, modifiers);\n\n if (this.mixpanel.config.debug) {\n this.mixpanel.config.logger.debug(\"Sending the following data to Mixpanel (Engage)\", { data });\n }\n\n this.mixpanel.send_request({ method: \"GET\", endpoint: \"/engage\", data: data }, callback);\n }\n\n /**\n people.track_charge(distinct_id, amount, properties, modifiers, callback)\n ---\n Record that you have charged the current user a certain\n amount of money.\n\n usage:\n\n // charge a user $29.99\n mixpanel.people.track_charge('bob', 29.99);\n\n // charge a user $19 on the 1st of february\n mixpanel.people.track_charge('bob', 19, { '$time': new Date('feb 1 2012') });\n */\n track_charge(distinct_id, amount, properties, modifiers, callback) {\n if (typeof(properties) === 'function' || !properties) {\n callback = properties || undefined;\n properties = {};\n } else {\n if (typeof(modifiers) === 'function' || !modifiers) {\n callback = modifiers || undefined;\n if (properties.$ignore_time || properties.hasOwnProperty(\"$ip\")) {\n modifiers = {};\n Object.keys(properties).forEach(function(key) {\n modifiers[key] = properties[key];\n delete properties[key];\n });\n }\n }\n }\n\n if (typeof(amount) !== 'number') {\n amount = parseFloat(amount);\n if (isNaN(amount)) {\n this.mixpanel.config.logger.error(\"Invalid value passed to mixpanel.people.track_charge - must be a number\");\n return;\n }\n }\n\n properties.$amount = amount;\n\n if (properties.hasOwnProperty('$time')) {\n var time = properties.$time;\n if (Object.prototype.toString.call(time) === '[object Date]') {\n properties.$time = time.toISOString();\n }\n }\n\n var data = {\n '$append': { '$transactions': properties },\n '$token': this.mixpanel.token,\n '$distinct_id': distinct_id\n };\n\n data = merge_modifiers(data, modifiers);\n\n if (this.mixpanel.config.debug) {\n this.mixpanel.config.logger.debug(\"Sending the following data to Mixpanel (Engage)\", { data });\n }\n\n this.mixpanel.send_request({ method: \"GET\", endpoint: \"/engage\", data: data }, callback);\n }\n\n /**\n people.clear_charges(distinct_id, modifiers, callback)\n ---\n Clear all the current user's transactions.\n\n usage:\n\n mixpanel.people.clear_charges('bob');\n */\n clear_charges(distinct_id, modifiers, callback) {\n var data = {\n '$set': { '$transactions': [] },\n '$token': this.mixpanel.token,\n '$distinct_id': distinct_id\n };\n\n if (typeof(modifiers) === 'function') { callback = modifiers; }\n\n data = merge_modifiers(data, modifiers);\n\n if (this.mixpanel.config.debug) {\n this.mixpanel.config.logger.debug(\"Clearing this user's charges\", { '$distinct_id': distinct_id });\n }\n\n this.mixpanel.send_request({ method: \"GET\", endpoint: \"/engage\", data: data }, callback);\n }\n\n /**\n people.delete_user(distinct_id, modifiers, callback)\n ---\n delete an user record in engage\n\n usage:\n\n mixpanel.people.delete_user('bob');\n */\n delete_user(distinct_id, modifiers, callback) {\n const identifiers = {$distinct_id: distinct_id};\n this._delete_profile({identifiers, modifiers, callback});\n }\n\n /**\n people.remove(distinct_id, data, modifiers, callback)\n ---\n remove a value from a list-valued user profile property.\n\n usage:\n\n mixpanel.people.remove('bob', {'browsers': 'firefox'});\n\n mixpanel.people.remove('bob', {'browsers': 'chrome', 'os': 'linux'});\n */\n remove(distinct_id, data, modifiers, callback) {\n const identifiers = {'$distinct_id': distinct_id};\n this._remove({identifiers, data, modifiers, callback})\n }\n\n /**\n people.union(distinct_id, data, modifiers, callback)\n ---\n merge value(s) into a list-valued people analytics property.\n\n usage:\n\n mixpanel.people.union('bob', {'browsers': 'firefox'});\n\n mixpanel.people.union('bob', {'browsers': ['chrome'], os: ['linux']});\n */\n union(distinct_id, data, modifiers, callback) {\n const identifiers = {$distinct_id: distinct_id};\n this._union({identifiers, data, modifiers, callback});\n }\n\n /**\n people.unset(distinct_id, prop, modifiers, callback)\n ---\n delete a property on an user record in engage\n\n usage:\n\n mixpanel.people.unset('bob', 'page_views');\n\n mixpanel.people.unset('bob', ['page_views', 'last_login']);\n */\n unset(distinct_id, prop, modifiers, callback) {\n const identifiers = {$distinct_id: distinct_id};\n this._unset({identifiers, prop, modifiers, callback});\n }\n};\n\nexports.MixpanelPeople = MixpanelPeople;\n","/**\n * Utility functions for Mixpanel feature flags\n */\nconst crypto = require('crypto');\n\n// Constants\nconst EXPOSURE_EVENT = '$experiment_started';\n\nconst REQUEST_HEADERS = {\n 'Content-Type': 'application/json',\n};\n\n/**\n * FNV-1a 64-bit hash function used for consistent variant assignment\n * https://www.ietf.org/archive/id/draft-eastlake-fnv-21.html#section-6.1.2 \n * @param {Buffer} data - Data to hash\n * @returns {BigInt} - Hash value as BigInt\n */\nfunction _fnv1a64(data) {\n const FNV_PRIME = BigInt('0x100000001B3');\n let hash = BigInt('0xCBF29CE484222325');\n\n for (let i = 0; i < data.length; i++) {\n hash ^= BigInt(data[i]);\n hash *= FNV_PRIME;\n hash &= BigInt('0xFFFFFFFFFFFFFFFF');\n }\n\n return hash;\n}\n\n/**\n * Normalized hash function that returns a value between 0.0 and 1.0\n * Used for variant assignment based on rollout percentages\n * @param {string} key - The key to hash (usually distinct_id or other identifier)\n * @param {string} salt - Salt value (usually flag-specific hash_salt)\n * @returns {number} - Hash value normalized to the non-inclusive range, [0.0, 1.0)\n */\nfunction normalizedHash(key, salt) {\n const combined = Buffer.from(key + salt, 'utf-8');\n const hashValue = _fnv1a64(combined);\n return Number(hashValue % BigInt(100)) / 100.0;\n}\n\n/**\n * Prepare common query parameters for feature flags API requests\n * @param {string} token - Mixpanel project token\n * @param {string} sdkVersion - SDK version string\n * @returns {Object} - Query parameters object\n */\nfunction prepareCommonQueryParams(token, sdkVersion) {\n return {\n mp_lib: 'node',\n $lib_version: sdkVersion,\n token: token,\n };\n}\n\n/**\n * Generate W3C traceparent header for distributed tracing\n * Format: 00-{trace-id}-{parent-id}-{trace-flags}\n * @returns {string} - traceparent header value\n */\nfunction generateTraceparent() {\n const version = '00';\n const traceId = crypto.randomBytes(16).toString('hex');\n const parentId = crypto.randomBytes(8).toString('hex');\n const traceFlags = '01'; // sampled\n\n return `${version}-${traceId}-${parentId}-${traceFlags}`;\n}\n\nmodule.exports = {\n EXPOSURE_EVENT,\n REQUEST_HEADERS,\n normalizedHash,\n prepareCommonQueryParams,\n generateTraceparent,\n};\n","/**\n * Base Feature Flags Provider\n * Contains common methods for feature flag evaluation\n */\n\nconst https = require('https');\nconst packageInfo = require('../../package.json');\nconst { prepareCommonQueryParams, generateTraceparent, EXPOSURE_EVENT, REQUEST_HEADERS } = require('./utils');\n\n/**\n * @typedef {import('./types').SelectedVariant} SelectedVariant\n * @typedef {import('./types').FlagContext} FlagContext\n */\nclass FeatureFlagsProvider {\n /**\n * @param {Object} providerConfig - Configuration object with token, api_host, request_timeout_in_seconds\n * @param {string} endpoint - API endpoint path (e.g., '/flags' or '/flags/definitions')\n * @param {Function} tracker - Function to track events (signature: track(distinct_id, event, properties, callback))\n * @param {string} evaluationMode - The feature flag evaluation mode\n * @param {CustomLogger} logger - Logger instance\n */\n constructor(providerConfig, endpoint, tracker, evaluationMode, logger) {\n this.providerConfig = providerConfig;\n this.endpoint = endpoint;\n this.tracker = tracker;\n this.evaluationMode = evaluationMode;\n this.logger = logger;\n }\n\n /**\n * Common HTTP request handler for flags API endpoints\n * @param {Object} additionalParams - Additional query parameters to append\n * @returns {Promise<Object>} - Parsed JSON response\n */\n async callFlagsEndpoint(additionalParams = null) {\n return new Promise((resolve, reject) => {\n const commonParams = prepareCommonQueryParams(this.providerConfig.token, packageInfo.version);\n const params = new URLSearchParams(commonParams);\n\n if (additionalParams) {\n for (const [key, value] of Object.entries(additionalParams)) {\n params.append(key, value);\n }\n }\n\n const path = `${this.endpoint}?${params.toString()}`;\n\n const requestOptions = {\n host: this.providerConfig.api_host,\n port: 443,\n path: path,\n method: 'GET',\n headers: {\n ...REQUEST_HEADERS,\n 'Authorization': 'Basic ' + Buffer.from(this.providerConfig.token + ':').toString('base64'),\n 'traceparent': generateTraceparent(),\n },\n timeout: this.providerConfig.request_timeout_in_seconds * 1000,\n };\n\n const request = https.request(requestOptions, (res) => {\n let data = '';\n\n res.on('data', (chunk) => {\n data += chunk;\n });\n\n res.on('end', () => {\n if (res.statusCode !== 200) {\n this.logger?.error(`HTTP ${res.statusCode} error calling flags endpoint: ${data}`);\n return reject(new Error(`HTTP ${res.statusCode}: ${data}`));\n }\n\n try {\n const result = JSON.parse(data);\n resolve(result);\n } catch (parseErr) {\n this.logger?.error(`Failed to parse JSON response: ${parseErr.message}`);\n reject(parseErr);\n }\n });\n });\n\n request.on('error', (err) => {\n this.logger?.error(`Network error calling flags endpoint: ${err.message}`);\n reject(err);\n });\n\n request.on('timeout', () => {\n this.logger?.error(`Request timeout calling flags endpoint`);\n request.destroy();\n reject(new Error('Request timeout'));\n });\n\n request.end();\n });\n }\n\n /**\n * Manually tracks a feature flag exposure event to Mixpanel\n * This provides flexibility for reporting individual exposure events when using getAllVariants\n * If using getVariantValue or getVariant, exposure events are tracked automatically by default.\n * @param {string} flagKey - The key of the feature flag\n * @param {SelectedVariant} variant - The selected variant for the feature flag\n * @param {FlagContext} context - The user context used to evaluate the feature flag\n * @param {number|null} latencyMs - Optionally included latency in milliseconds that assignment took.\n */\n trackExposureEvent(flagKey, selectedVariant, context, latencyMs=null) {\n if (!context.distinct_id) {\n this.logger?.error('Cannot track exposure event without a distinct_id in the context');\n return;\n }\n\n const properties = {\n 'distinct_id': context.distinct_id,\n 'Experiment name': flagKey,\n 'Variant name': selectedVariant.variant_key,\n '$experiment_type': 'feature_flag',\n 'Flag evaluation mode': this.evaluationMode\n };\n\n if (latencyMs !== null && latencyMs !== undefined) {\n properties['Variant fetch latency (ms)'] = latencyMs;\n }\n\n if (selectedVariant.experiment_id !== undefined) {\n properties['$experiment_id'] = selectedVariant.experiment_id;\n }\n\n if (selectedVariant.is_experiment_active !== undefined) {\n properties['$is_experiment_active'] = selectedVariant.is_experiment_active;\n }\n\n if (selectedVariant.is_qa_tester !== undefined) {\n properties['$is_qa_tester'] = selectedVariant.is_qa_tester;\n }\n\n // Use the tracker function provided (bound to the main mixpanel instance)\n this.tracker(EXPOSURE_EVENT, properties, (err) => {\n if (err) {\n this.logger?.error(`[flags]Failed to track exposure event for flag '${flagKey}': ${err.message}`);\n }\n });\n }\n}\n\nmodule.exports = FeatureFlagsProvider;\n","/**\n * Local Feature Flags Provider\n * Evaluates feature flags client-side using locally cached definitions\n */\n\n/**\n * @typedef {import('./types').SelectedVariant} SelectedVariant\n * @typedef {import('./types').FlagContext} FlagContext\n * @typedef {import('./types').LocalFlagsConfig} LocalFlagsConfig\n * @typedef {import('./types').ExperimentationFlag} ExperimentationFlag\n * @typedef {import('./types').LocalFlagsResponse} LocalFlagsResponse\n * */\n\nconst FeatureFlagsProvider = require('./flags');\nconst { normalizedHash } = require('./utils');\n\nclass LocalFeatureFlagsProvider extends FeatureFlagsProvider {\n /**\n * @param {string} token - Mixpanel project token\n * @param {LocalFlagsConfig} config - Local flags configuration\n * @param {Function} tracker - Function to track events (signature: track(distinct_id, event, properties, callback))\n * @param {CustomLogger} logger - Logger\n */\n constructor(token, config, tracker, logger) {\n const mergedConfig = {\n api_host: 'api.mixpanel.com',\n request_timeout_in_seconds: 10,\n enable_polling: true,\n polling_interval_in_seconds: 60,\n ...config,\n };\n\n const providerConfig = {\n token: token,\n api_host: mergedConfig.api_host,\n request_timeout_in_seconds: mergedConfig.request_timeout_in_seconds,\n };\n\n super(providerConfig, '/flags/definitions', tracker, 'local', logger);\n\n this.config = mergedConfig;\n this.flagDefinitions = new Map();\n this.pollingInterval = null;\n }\n\n /**\n * Start polling for flag definitions.\n * Fetches immediately and then at regular intervals if polling is enabled\n * @returns {Promise<void>}\n */\n async startPollingForDefinitions() {\n try {\n await this._fetchFlagDefinitions();\n\n if (this.config.enable_polling && !this.pollingInterval) {\n this.pollingInterval = setInterval(async () => {\n try {\n await this._fetchFlagDefinitions();\n } catch (err) {\n this.logger?.error(`Error polling for flag definition: ${err.message}`);\n }\n }, this.config.polling_interval_in_seconds * 1000);\n }\n } catch (err) {\n this.logger?.error(`Initial flag definitions fetch failed: ${err.message}`);\n }\n }\n\n /**\n * Stop polling for flag definitions\n */\n stopPollingForDefinitions() {\n if (this.pollingInterval) {\n clearInterval(this.pollingInterval);\n this.pollingInterval = null;\n } else {\n this.logger?.warn('stopPollingForDefinitions called but polling was not active');\n }\n }\n\n /**\n * Check if a feature flag is enabled\n * This method is intended only for flags defined as Mixpanel Feature Gates (boolean flags)\n * This checks that the variant value of a selected variant is concretely the boolean 'true'\n * It does not coerce other truthy values.\n * @param {string} flagKey - Feature flag key\n * @param {FlagContext} context - Evaluation context (must include distinct_id)\n * @returns {boolean}\n */\n isEnabled(flagKey, context) {\n const value = this.getVariantValue(flagKey, false, context);\n return value === true;\n }\n\n /**\n * Get the variant value for a feature flag\n * @param {string} flagKey - Feature flag key\n * @param {*} fallbackValue - Value to return if the user context is not in the rollout for a flag or if evaluation fails\n * @param {FlagContext} context - Evaluation context\n * @param {boolean} [reportExposure=true] - Whether to track exposure event\n * @returns {*} The variant value\n */\n getVariantValue(flagKey, fallbackValue, context, reportExposure = true) {\n const result = this.getVariant(flagKey, { variant_value: fallbackValue }, context, reportExposure);\n return result.variant_value;\n }\n\n /**\n * Get the complete variant information for a feature flag\n * @param {string} flagKey - Feature flag key\n * @param {SelectedVariant} fallbackVariant - Variant to return if flag evaluation fails\n * @param {FlagContext} context - Evaluation context (must include distinct_id)\n * @param {boolean} [reportExposure=true] - Whether to track exposure event\n * @returns {SelectedVariant}\n */\n getVariant(flagKey, fallbackVariant, context, reportExposure = true) {\n const flag = this.flagDefinitions.get(flagKey);\n\n if (!flag) {\n this.logger?.warn(`Cannot find flag definition for key: '${flagKey}`);\n return fallbackVariant;\n }\n\n if (!Object.hasOwn(context, flag.context)) {\n this.logger?.warn(\n `The variant assignment key, '${flag.context}' for flag, '${flagKey}' is not present in the supplied user context dictionary`\n );\n return fallbackVariant;\n }\n\n const contextValue = context[flag.context];\n\n let selectedVariant = null;\n\n const testUserVariant = this._getVariantOverrideForTestUser(flag, context);\n if (testUserVariant) {\n selectedVariant = testUserVariant;\n } else {\n const rollout = this._getAssignedRollout(flag, contextValue, context);\n if (rollout) {\n selectedVariant = this._getAssignedVariant(flag, contextValue, flagKey, rollout);\n }\n }\n\n if (selectedVariant) {\n if (reportExposure) {\n this.trackExposureEvent(flagKey, selectedVariant, context);\n }\n return selectedVariant;\n }\n\n return fallbackVariant;\n }\n\n /**\n * Get all feature flag variants for the current user context\n * Exposure events are not automatically tracked when this method is used\n * @param {FlagContext} context - Evaluation context (must include distinct_id)\n * @returns {{[key: string]: SelectedVariant}}\n */\n getAllVariants(context) {\n const variants = {};\n\n for (const flagKey of this.flagDefinitions.keys()) {\n const variant = this.getVariant(flagKey, null, context, false);\n if (variant !== null) {\n variants[flagKey] = variant;\n }\n }\n\n return variants;\n }\n\n /**\n * Fetch flag definitions from API.\n * @returns {Promise<LocalFlagsResponse>}\n */\n async _fetchFlagDefinitions() {\n const response = await this.callFlagsEndpoint();\n\n const newDefinitions = new Map();\n response.flags.forEach(flag => {\n newDefinitions.set(flag.key, flag);\n });\n\n this.flagDefinitions = newDefinitions;\n\n return response;\n }\n\n /**\n * Find a variant by key (case-insensitive) and return complete SelectedVariant\n * @param {string} variantKey - Variant key to find\n * @param {ExperimentationFlag} flag - Flag definition\n * @returns {SelectedVariant|null}\n */\n _getMatchingVariant(variantKey, flag) {\n for (const variant of flag.ruleset.variants) {\n if (variantKey.toLowerCase() === variant.key.toLowerCase()) {\n return {\n variant_key: variant.key,\n variant_value: variant.value,\n experiment_id: flag.experiment_id,\n is_experiment_active: flag.is_experiment_active,\n };\n }\n }\n return null;\n }\n\n _getVariantOverrideForTestUser(flag, context) {\n if (!flag.ruleset.test?.users) {\n return null;\n }\n\n const distinctId = context.distinct_id;\n if (!distinctId) {\n return null;\n }\n\n const variantKey = flag.ruleset.test.users[distinctId];\n if (!variantKey) {\n return null;\n }\n\n let selected_variant = this._getMatchingVariant(variantKey, flag);\n if (selected_variant) {\n selected_variant.is_qa_tester = true;\n }\n return selected_variant;\n }\n\n _getAssignedRollout(flag, contextValue, context) {\n for (let index = 0; index < flag.ruleset.rollout.length; index++) {\n const rollout = flag.ruleset.rollout[index];\n\n let salt;\n if (flag.hash_salt !== null && flag.hash_salt !== undefined) {\n salt = flag.key + flag.hash_salt + index.toString();\n } else {\n salt = flag.key + \"rollout\";\n }\n\n const rolloutHash = normalizedHash(String(contextValue), salt);\n\n if (rolloutHash < rollout.rollout_percentage &&\n this._isRuntimeEvaluationSatisfied(rollout, context)) {\n return rollout;\n }\n }\n\n return null;\n }\n\n _getAssignedVariant(flag, contextValue, flagKey, rollout) {\n if (rollout.variant_override) {\n const variant = this._getMatchingVariant(rollout.variant_override.key, flag);\n if (variant) {\n return { ...variant, is_qa_tester: false };\n }\n }\n\n const storedSalt = flag.hash_salt !== null && flag.hash_salt !== undefined ? flag.hash_salt : \"\";\n const salt = flagKey + storedSalt + \"variant\";\n const variantHash = normalizedHash(String(contextValue), salt);\n\n const variants = flag.ruleset.variants.map(v => ({ ...v }));\n if (rollout.variant_splits) {\n for (const variant of variants) {\n if (variant.key in rollout.variant_splits) {\n variant.split = rollout.variant_splits[variant.key];\n }\n }\n }\n\n let selected = variants[0];\n let cumulative = 0.0;\n for (const variant of variants) {\n selected = variant;\n cumulative += variant.split || 0.0;\n if (variantHash < cumulative) {\n break;\n }\n }\n\n return {\n variant_key: selected.key,\n variant_value: selected.value,\n experiment_id: flag.experiment_id,\n is_experiment_active: flag.is_experiment_active,\n is_qa_tester: false,\n };\n }\n\n _isRuntimeEvaluationSatisfied(rollout, context) {\n if (!rollout.runtime_evaluation_definition) {\n return true;\n }\n\n const customProperties = context.custom_properties;\n if (!customProperties || typeof customProperties !== 'object') {\n return false;\n }\n\n for (const [key, expectedValue] of Object.entries(rollout.runtime_evaluation_definition)) {\n if (!(key in customProperties)) {\n return false;\n }\n\n const actualValue = customProperties[key];\n if (String(actualValue).toLowerCase() !== String(expectedValue).toLowerCase()) {\n return false;\n }\n }\n return true;\n }\n}\n\nmodule.exports = LocalFeatureFlagsProvider;\n","/**\n * Remote Feature Flags Provider\n * Evaluates feature flags via server-side API requests\n */\n\n/**\n * @typedef {import('./types').SelectedVariant} SelectedVariant\n * @typedef {import('./types').FlagContext} FlagContext\n * @typedef {import('./types').RemoteFlagsConfig} RemoteFlagsConfig\n * @typedef {import('./types').RemoteFlagsResponse} RemoteFlagsResponse\n */\n\nconst FeatureFlagsProvider = require('./flags');\n\nclass RemoteFeatureFlagsProvider extends FeatureFlagsProvider {\n /**\n * @param {string} token - Mixpanel project token\n * @param {RemoteFlagsConfig} config - Remote flags configuration\n * @param {Function} tracker - Function to track events (signature: track(distinct_id, event, properties, callback))\n * @param {CustomLogger} logger - Logger instance\n */\n constructor(token, config, tracker, logger) {\n const mergedConfig = {\n api_host: 'api.mixpanel.com',\n request_timeout_in_seconds: 10,\n ...config,\n };\n\n const providerConfig = {\n token: token,\n api_host: mergedConfig.api_host,\n request_timeout_in_seconds: mergedConfig.request_timeout_in_seconds,\n };\n\n super(providerConfig, '/flags', tracker, 'remote', logger);\n }\n\n /**\n * Get the variant value for a feature flag\n * If the user context is eligible for the rollout, one of the flag variants will be selected and an exposure event will be tracked to Mixpanel.\n * If the user context is not eligible, the fallback value is returned.\n * @param {string} flagKey - Feature flag key\n * @param {*} fallbackValue - Value to return if flag evaluation fails\n * @param {FlagContext} context - Evaluation context\n * @param {boolean} reportExposure - Whether to track exposure event\n * @returns {Promise<*>} - Variant value\n */\n async getVariantValue(flagKey, fallbackValue, context, reportExposure = true) {\n try {\n const selectedVariant = await this.getVariant(flagKey, { variant_value: fallbackValue }, context, reportExposure);\n return selectedVariant.variant_value;\n } catch (err) {\n this.logger?.error(`Failed to get variant value for flag '${flagKey}': ${err.message}`);\n return fallbackValue;\n }\n }\n\n /**\n * Get the complete variant information for a feature flag\n * If the user context is eligible for the rollout, one of the flag variants will be selected and an exposure event will be tracked to Mixpanel.\n * If the user context is not eligible, the fallback value is returned.\n * @param {string} flagKey - Feature flag key\n * @param {SelectedVariant} fallbackVariant - Variant to return if flag evaluation fails\n * @param {FlagContext} context - Evaluation context\n * @param {boolean} reportExposure - Whether to track exposure event in the event that the user context is eligible for the rollout.\n * @returns {Promise<SelectedVariant>} - Selected variant\n */\n async getVariant(flagKey, fallbackVariant, context, reportExposure = true) {\n try {\n const startTime = Date.now();\n const response = await this._fetchFlags(context, flagKey);\n const latencyMs = Date.now() - startTime;\n\n const flags = response.flags || {};\n const selectedVariant = flags[flagKey];\n if (!selectedVariant) {\n return fallbackVariant;\n }\n\n if (reportExposure) {\n this.trackExposureEvent(flagKey, selectedVariant, context, latencyMs);\n }\n\n return selectedVariant;\n } catch (err) {\n this.logger?.error(`Failed to get variant for flag '${flagKey}': ${err.message}`);\n return fallbackVariant;\n }\n }\n\n /**\n * This method is intended only for flags defined as Mixpanel Feature Gates (boolean flags)\n * This checks that the variant value of a selected variant is concretely the boolean 'true'\n * It does not coerce other truthy values.\n * @param {string} flagKey - Feature flag key\n * @param {FlagContext} context - User's evaluation context\n * @returns {Promise<boolean>} - Whether the flag is enabled\n */\n async isEnabled(flagKey, context) {\n try {\n const value = await this.getVariantValue(flagKey, false, context);\n return value === true;\n } catch (err) {\n this.logger?.error(`Failed to check if flag '${flagKey}' is enabled: ${err.message}`);\n return false;\n }\n }\n\n /**\n * Get all feature flag variants for the current user context from remote server\n * Exposure events are not automatically tracked when this method is used\n * @param {FlagContext} context - User's evaluation context\n * @returns {Promise<{[key: string]: SelectedVariant}|null>} - Dictionary mapping flag keys to variants, or null if the call fails\n */\n async getAllVariants(context) {\n try {\n const response = await this._fetchFlags(context);\n return response.flags || {};\n } catch (err) {\n this.logger?.error(`Failed to get all remote variants: ${err.message}`);\n return null;\n }\n }\n\n /**\n * Fetch flags from remote flags evaluation API\n * @param {FlagContext} context - Evaluation context\n * @param {string} [flagKey] - Optional flag key (if omitted, fetches all flags)\n * @returns {Promise<RemoteFlagsResponse>} - API response containing flags dictionary\n */\n _fetchFlags(context, flagKey = null) {\n const additionalParams = {\n context: JSON.stringify(context),\n };\n\n if (flagKey !== null) {\n additionalParams.flag_key = flagKey;\n }\n\n return this.callFlagsEndpoint(additionalParams);\n }\n}\n\nmodule.exports = RemoteFeatureFlagsProvider;\n","/**\n * Mixpanel Feature Flags\n * Exports for local and remote feature flag evaluation\n */\n\nconst LocalFeatureFlagsProvider = require('./local_flags');\nconst RemoteFeatureFlagsProvider = require('./remote_flags');\n\nmodule.exports = {\n LocalFeatureFlagsProvider,\n RemoteFeatureFlagsProvider,\n};\n","/*\n Heavily inspired by the original js library copyright Mixpanel, Inc.\n (http://mixpanel.com/)\n\n Copyright (c) 2012 Carl Sverre\n\n Released under the MIT license.\n*/\n\nconst querystring = require('querystring');\nconst Buffer = require('buffer').Buffer;\nconst http = require('http');\nconst https = require('https');\nconst HttpsProxyAgent = require('https-proxy-agent');\nconst url = require('url');\nconst packageInfo = require('../package.json')\n\nconst {async_all, ensure_timestamp, assert_logger} = require('./utils');\nconst {MixpanelGroups} = require('./groups');\nconst {MixpanelPeople} = require('./people');\nconst {LocalFeatureFlagsProvider, RemoteFeatureFlagsProvider} = require('./flags');\n\nconst DEFAULT_CONFIG = {\n test: false,\n debug: false,\n verbose: false,\n host: 'api.mixpanel.com',\n protocol: 'https',\n path: '',\n keepAlive: true,\n // set this to true to automatically geolocate based on the client's ip.\n // e.g., when running under electron\n geolocate: false,\n logger: console,\n};\n\nvar create_client = function(token, config) {\n if (!token) {\n throw new Error(\"The Mixpanel Client needs a Mixpanel token: `init(token)`\");\n }\n\n const metrics = {\n token,\n config: {...DEFAULT_CONFIG},\n };\n const {keepAlive} = metrics.config;\n\n // mixpanel constants\n const MAX_BATCH_SIZE = 50;\n const REQUEST_LIBS = {http, https};\n const REQUEST_AGENTS = {\n http: new http.Agent({keepAlive}),\n https: new https.Agent({keepAlive}),\n };\n const proxyPath = process.env.HTTPS_PROXY || process.env.HTTP_PROXY;\n const proxyAgent = proxyPath ? new HttpsProxyAgent(Object.assign(url.parse(proxyPath), {\n keepAlive,\n })) : null;\n\n /**\n * sends an async GET or POST request to mixpanel\n * for batch processes data must be send in the body of a POST\n * @param {object} options\n * @param {string} options.endpoint\n * @param {object} options.data the data to send in the request\n * @param {string} [options.method] e.g. `get` or `post`, defaults to `get`\n * @param {function} callback called on request completion or error\n */\n metrics.send_request = function(options, callback) {\n callback = callback || function() {};\n\n let content = Buffer.from(JSON.stringify(options.data)).toString('base64');\n const endpoint = options.endpoint;\n const method = (options.method || 'GET').toUpperCase();\n let query_params = {\n 'ip': metrics.config.geolocate ? 1 : 0,\n 'verbose': metrics.config.verbose ? 1 : 0\n };\n const key = metrics.config.key;\n const secret = metrics.config.secret;\n const request_lib = REQUEST_LIBS[metrics.config.protocol];\n let request_options = {\n host: metrics.config.host,\n port: metrics.config.port,\n headers: {},\n method: method\n };\n let request;\n\n if (!request_lib) {\n throw new Error(\n \"Mixpanel Initialization Error: Unsupported protocol \" + metrics.config.protocol + \". \" +\n \"Supported protocols are: \" + Object.keys(REQUEST_LIBS)\n );\n }\n\n\n if (method === 'POST') {\n content = 'data=' + content;\n request_options.headers['Content-Type'] = 'application/x-www-form-urlencoded';\n request_options.headers['Content-Length'] = Buffer.byteLength(content);\n } else if (method === 'GET') {\n query_params.data = content;\n }\n\n\n // add auth params\n if (secret) {\n if (request_lib !== https) {\n throw new Error(\"Must use HTTPS if authenticating with API Secret\");\n }\n const encoded = Buffer.from(secret + ':').toString('base64');\n request_options.headers['Authorization'] = 'Basic ' + encoded;\n } else if (key) {\n query_params.api_key = key;\n } else if (endpoint === '/import') {\n throw new Error(\"The Mixpanel Client needs a Mixpanel API Secret when importing old events: `init(token, { secret: ... })`\");\n }\n\n request_options.agent = proxyAgent || REQUEST_AGENTS[metrics.config.protocol];\n\n if (metrics.config.test) {\n query_params.test = 1;\n }\n\n request_options.path = metrics.config.path + endpoint + \"?\" + querystring.stringify(query_params);\n\n request = request_lib.request(request_options, function(res) {\n var data = \"\";\n res.on('data', function(chunk) {\n data += chunk;\n });\n\n res.on('end', function() {\n var e;\n if (metrics.config.verbose) {\n try {\n var result = JSON.parse(data);\n if(result.status != 1) {\n e = new Error(\"Mixpanel Server Error: \" + result.error);\n }\n }\n catch(ex) {\n e = new Error(\"Could not parse response from Mixpanel\");\n }\n }\n else {\n e = (data !== '1') ? new Error(\"Mixpanel Server Error: \" + data) : undefined;\n }\n\n callback(e);\n });\n });\n\n request.on('error', function(e) {\n if (metrics.config.debug) {\n metrics.config.logger.error(\"Got Error: \" + e.message);\n }\n callback(e);\n });\n\n if (method === 'POST') {\n request.write(content);\n }\n request.end();\n };\n\n /**\n * Send an event to Mixpanel, using the specified endpoint (e.g., track/import)\n * @param {string} endpoint - API endpoint name\n * @param {string} event - event name\n * @param {object} properties - event properties\n * @param {Function} [callback] - callback for request completion/error\n */\n metrics.send_event_request = function(endpoint, event, properties, callback) {\n properties.token = metrics.token;\n properties.mp_lib = \"node\";\n properties.$lib_version = packageInfo.version;\n\n var data = {\n event: event,\n properties: properties\n };\n\n if (metrics.config.debug) {\n metrics.config.logger.debug(\"Sending the following event to Mixpanel\", { data });\n }\n\n metrics.send_request({ method: \"GET\", endpoint: endpoint, data: data }, callback);\n };\n\n /**\n * breaks array into equal-sized chunks, with the last chunk being the remainder\n * @param {Array} arr\n * @param {number} size\n * @returns {Array}\n */\n var chunk = function(arr, size) {\n var chunks = [],\n i = 0,\n total = arr.length;\n\n while (i < total) {\n chunks.push(arr.slice(i, i += size));\n }\n return chunks;\n };\n\n /**\n * sends events in batches\n * @param {object} options\n * @param {[{}]} options.event_list array of event objects\n * @param {string} options.endpoint e.g. `/track` or `/import`\n * @param {number} [options.max_concurrent_requests] limits concurrent async requests over the network\n * @param {number} [options.max_batch_size] limits number of events sent to mixpanel per request\n * @param {Function} [callback] callback receives array of errors if any\n *\n */\n var send_batch_requests = function(options, callback) {\n var event_list = options.event_list,\n endpoint = options.endpoint,\n max_batch_size = options.max_batch_size ? Math.min(MAX_BATCH_SIZE, options.max_batch_size) : MAX_BATCH_SIZE,\n // to maintain original intention of max_batch_size; if max_batch_size is greater than 50, we assume the user is trying to set max_concurrent_requests\n max_concurrent_requests = options.max_concurrent_requests || (options.max_batch_size > MAX_BATCH_SIZE && Math.ceil(options.max_batch_size / MAX_BATCH_SIZE)),\n event_batches = chunk(event_list, max_batch_size),\n request_batches = max_concurrent_requests ? chunk(event_batches, max_concurrent_requests) : [event_batches],\n total_event_batches = event_batches.length,\n total_request_batches = request_batches.length;\n\n /**\n * sends a batch of events to mixpanel through http api\n * @param {Array} batch\n * @param {Function} cb\n */\n function send_event_batch(batch, cb) {\n if (batch.length > 0) {\n batch = batch.map(function (event) {\n var properties = event.properties;\n if (endpoint === '/import' || event.properties.time) {\n // usually there will be a time property, but not required for `/track` endpoint\n event.properties.time = ensure_timestamp(event.properties.time);\n }\n event.properties.token = event.properties.token || metrics.token;\n return event;\n });\n\n // must be a POST\n metrics.send_request({ method: \"POST\", endpoint: endpoint, data: batch }, cb);\n }\n }\n\n /**\n * Asynchronously sends batches of requests\n * @param {number} index\n */\n function send_next_request_batch(index) {\n var request_batch = request_batches[index],\n cb = function (errors, results) {\n index += 1;\n if (index === total_request_batches) {\n callback && callback(errors, results);\n } else {\n send_next_request_batch(index);\n }\n };\n\n async_all(request_batch, send_event_batch, cb);\n }\n\n // init recursive function\n send_next_request_batch(0);\n\n if (metrics.config.debug) {\n metrics.config.logger.debug(\n \"Sending \" + event_list.length + \" events to Mixpanel in \" +\n total_event_batches + \" batches of events and \" +\n total_request_batches + \" batches of requests\"\n );\n }\n };\n\n /**\n track(event, properties, callback)\n ---\n this function sends an event to mixpanel.\n\n event:string the event name\n properties:object additional event properties to send\n callback:function(err:Error) callback is called when the request is\n finished or an error occurs\n */\n metrics.track = function(event, properties, callback) {\n if (!properties || typeof properties === \"function\") {\n callback = properties;\n properties = {};\n }\n\n // time is optional for `track`\n if (properties.time) {\n properties.time = ensure_timestamp(properties.time);\n }\n\n metrics.send_event_request(\"/track\", event, properties, callback);\n };\n\n /**\n * send a batch of events to mixpanel `track` endpoint: this should only be used if events are less than 5 days old\n * @param {Array} event_list array of event objects to track\n * @param {object} [options]\n * @param {number} [options.max_concurrent_requests] number of concurrent http requests that can be made to mixpanel\n * @param {number} [options.max_batch_size] number of events that can be sent to mixpanel per request\n * @param {Function} [callback] callback receives array of errors if any\n */\n metrics.track_batch = function(event_list, options, callback) {\n options = options || {};\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n var batch_options = {\n event_list: event_list,\n endpoint: \"/track\",\n max_concurrent_requests: options.max_concurrent_requests,\n max_batch_size: options.max_batch_size\n };\n\n send_batch_requests(batch_options, callback);\n };\n\n /**\n import(event, time, properties, callback)\n ---\n This function sends an event to mixpanel using the import\n endpoint. The time argument should be either a Date or Number,\n and should signify the time the event occurred.\n\n It is highly recommended that you specify the distinct_id\n property for each event you import, otherwise the events will be\n tied to the IP address of the sending machine.\n\n For more information look at:\n https://mixpanel.com/docs/api-documentation/importing-events-older-than-31-days\n\n event:string the event name\n time:date|number the time of the event\n properties:object additional event properties to send\n callback:function(err:Error) callback is called when the request is\n finished or an error occurs\n */\n metrics.import = function(event, time, properties, callback) {\n if (!properties || typeof properties === \"function\") {\n callback = properties;\n properties = {};\n }\n\n properties.time = ensure_timestamp(time);\n\n metrics.send_event_request(\"/import\", event, properties, callback);\n };\n\n /**\n import_batch(event_list, options, callback)\n ---\n This function sends a list of events to mixpanel using the import\n endpoint. The format of the event array should be:\n\n [\n {\n \"event\": \"event name\",\n \"properties\": {\n \"time\": new Date(), // Number or Date; required for each event\n \"key\": \"val\",\n ...\n }\n },\n {\n \"event\": \"event name\",\n \"properties\": {\n \"time\": new Date() // Number or Date; required for each event\n }\n },\n ...\n ]\n\n See import() for further information about the import endpoint.\n\n Options:\n max_batch_size: the maximum number of events to be transmitted over\n the network simultaneously. useful for capping bandwidth\n usage.\n max_concurrent_requests: the maximum number of concurrent http requests that\n can be made to mixpanel; also useful for capping bandwidth.\n\n N.B.: the Mixpanel API only accepts 50 events per request, so regardless\n of max_batch_size, larger lists of events will be chunked further into\n groups of 50.\n\n event_list:array list of event names and properties\n options:object optional batch configuration\n callback:function(error_list:array) callback is called when the request is\n finished or an error occurs\n */\n metrics.import_batch = function(event_list, options, callback) {\n var batch_options;\n\n if (typeof(options) === \"function\" || !options) {\n callback = options;\n options = {};\n }\n batch_options = {\n event_list: event_list,\n endpoint: \"/import\",\n max_concurrent_requests: options.max_concurrent_requests,\n max_batch_size: options.max_batch_size\n };\n send_batch_requests(batch_options, callback);\n };\n\n /**\n alias(distinct_id, alias)\n ---\n This function creates an alias for distinct_id\n\n For more information look at:\n https://mixpanel.com/docs/integration-libraries/using-mixpanel-alias\n\n distinct_id:string the current identifier\n alias:string the future alias\n */\n metrics.alias = function(distinct_id, alias, callback) {\n var properties = {\n distinct_id: distinct_id,\n alias: alias\n };\n\n metrics.track('$create_alias', properties, callback);\n };\n\n metrics.groups = new MixpanelGroups(metrics);\n metrics.people = new MixpanelPeople(metrics);\n\n /**\n set_config(config)\n ---\n Modifies the mixpanel config\n\n config:object an object with properties to override in the\n mixpanel client config\n */\n metrics.set_config = function(config) {\n if (config && config.logger !== undefined) {\n assert_logger(config.logger);\n }\n Object.assign(metrics.config, config);\n if (config.host) {\n // Split host into host and port\n const [host, port] = config.host.split(':');\n metrics.config.host = host;\n if (port) {\n metrics.config.port = Number(port);\n }\n }\n };\n\n if (config) {\n metrics.set_config(config);\n }\n\n // Initialize feature flags providers if configs are provided\n if (config && config.local_flags_config) {\n metrics.local_flags = new LocalFeatureFlagsProvider(\n token,\n config.local_flags_config,\n metrics.track.bind(metrics),\n config.logger\n );\n }\n\n if (config && config.remote_flags_config) {\n metrics.remote_flags = new RemoteFeatureFlagsProvider(\n token,\n config.remote_flags_config,\n metrics.track.bind(metrics),\n config.logger\n );\n }\n\n return metrics;\n};\n\n// module exporting\nmodule.exports = {\n init: create_client,\n};\n","/**\n * Mixpanel Subscriber for autotel\n *\n * Send events to Mixpanel for product events.\n *\n * @example\n * ```typescript\n * import { Events } from 'autotel/events';\n * import { MixpanelSubscriber } from 'autotel-subscribers/mixpanel';\n *\n * const events = new Events('checkout', {\n * subscribers: [\n * new MixpanelSubscriber({\n * token: process.env.MIXPANEL_TOKEN!\n * })\n * ]\n * });\n *\n * events.trackEvent('order.completed', { userId: '123', amount: 99.99 });\n * ```\n */\n\nimport type {\n EventSubscriber,\n EventAttributes,\n FunnelStatus,\n OutcomeStatus,\n} from 'autotel/event-subscriber';\n\nexport interface MixpanelConfig {\n /** Mixpanel project token */\n token: string;\n /** Enable/disable the subscriber */\n enabled?: boolean;\n}\n\nexport class MixpanelSubscriber implements EventSubscriber {\n readonly name = 'MixpanelSubscriber';\n readonly version = '1.0.0';\n\n private mixpanel: any;\n private enabled: boolean;\n private config: MixpanelConfig;\n private initPromise: Promise<void> | null = null;\n\n constructor(config: MixpanelConfig) {\n this.enabled = config.enabled ?? true;\n this.config = config;\n\n if (this.enabled) {\n // Start initialization immediately but don't block constructor\n this.initPromise = this.initialize();\n }\n }\n\n private async initialize(): Promise<void> {\n try {\n // Dynamic import to avoid adding mixpanel as a hard dependency\n const Mixpanel = await import('mixpanel');\n this.mixpanel = Mixpanel.default.init(this.config.token);\n } catch (error) {\n console.error(\n 'Mixpanel subscriber failed to initialize. Install mixpanel: pnpm add mixpanel',\n error,\n );\n this.enabled = false;\n }\n }\n\n private async ensureInitialized(): Promise<void> {\n if (this.initPromise) {\n await this.initPromise;\n this.initPromise = null;\n }\n }\n\n async trackEvent(name: string, attributes?: EventAttributes): Promise<void> {\n if (!this.enabled) return;\n\n await this.ensureInitialized();\n const distinctId = attributes?.userId || attributes?.user_id || 'anonymous';\n this.mixpanel?.track(name, {\n distinct_id: distinctId,\n ...attributes,\n });\n }\n\n async trackFunnelStep(\n funnelName: string,\n step: FunnelStatus,\n attributes?: EventAttributes,\n ): Promise<void> {\n if (!this.enabled) return;\n\n await this.ensureInitialized();\n const distinctId = attributes?.userId || attributes?.user_id || 'anonymous';\n this.mixpanel?.track(`${funnelName}.${step}`, {\n distinct_id: distinctId,\n funnel: funnelName,\n step,\n ...attributes,\n });\n }\n\n async trackOutcome(\n operationName: string,\n outcome: OutcomeStatus,\n attributes?: EventAttributes,\n ): Promise<void> {\n if (!this.enabled) return;\n\n await this.ensureInitialized();\n const distinctId = attributes?.userId || attributes?.user_id || 'anonymous';\n this.mixpanel?.track(`${operationName}.${outcome}`, {\n distinct_id: distinctId,\n operation: operationName,\n outcome,\n ...attributes,\n });\n }\n\n async trackValue(name: string, value: number, attributes?: EventAttributes): Promise<void> {\n if (!this.enabled) return;\n\n await this.ensureInitialized();\n const distinctId = attributes?.userId || attributes?.user_id || 'anonymous';\n this.mixpanel?.track(name, {\n distinct_id: distinctId,\n value,\n ...attributes,\n });\n }\n}\n\n"]}
|