@substrate-system/debug 0.9.20 → 0.9.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/README.md +2 -2
  2. package/dist/browser/index.cjs +16 -256
  3. package/dist/browser/index.cjs.map +4 -4
  4. package/dist/browser/index.d.ts +2 -1
  5. package/dist/browser/index.d.ts.map +1 -1
  6. package/dist/browser/index.js +13 -269
  7. package/dist/browser/index.js.map +4 -4
  8. package/dist/browser/index.min.cjs +1 -1
  9. package/dist/browser/index.min.cjs.map +4 -4
  10. package/dist/browser/index.min.js +1 -1
  11. package/dist/browser/index.min.js.map +4 -4
  12. package/dist/browser/util.cjs +102 -0
  13. package/dist/browser/util.cjs.map +7 -0
  14. package/dist/browser/util.js +82 -0
  15. package/dist/browser/util.js.map +7 -0
  16. package/dist/browser/util.min.cjs +2 -0
  17. package/dist/browser/util.min.cjs.map +7 -0
  18. package/dist/browser/util.min.js +2 -0
  19. package/dist/browser/util.min.js.map +7 -0
  20. package/dist/cloudflare/index.cjs +28 -169
  21. package/dist/cloudflare/index.cjs.map +4 -4
  22. package/dist/cloudflare/index.d.ts +2 -1
  23. package/dist/cloudflare/index.d.ts.map +1 -1
  24. package/dist/cloudflare/index.js +14 -159
  25. package/dist/cloudflare/index.js.map +4 -4
  26. package/dist/cloudflare/index.min.cjs +1 -1
  27. package/dist/cloudflare/index.min.cjs.map +4 -4
  28. package/dist/cloudflare/index.min.js +1 -1
  29. package/dist/cloudflare/index.min.js.map +4 -4
  30. package/dist/index.cjs +54 -0
  31. package/dist/index.cjs.map +7 -0
  32. package/dist/{common.d.ts → index.d.ts} +1 -1
  33. package/dist/index.d.ts.map +1 -0
  34. package/dist/index.js +35 -0
  35. package/dist/index.js.map +7 -0
  36. package/dist/index.min.cjs +2 -0
  37. package/dist/index.min.cjs.map +7 -0
  38. package/dist/index.min.js +2 -0
  39. package/dist/index.min.js.map +7 -0
  40. package/dist/ms.cjs +140 -0
  41. package/dist/ms.cjs.map +7 -0
  42. package/dist/ms.js +121 -0
  43. package/dist/ms.js.map +7 -0
  44. package/dist/ms.min.cjs +2 -0
  45. package/dist/ms.min.cjs.map +7 -0
  46. package/dist/ms.min.js +2 -0
  47. package/dist/ms.min.js.map +7 -0
  48. package/dist/node/index.cjs +22 -155
  49. package/dist/node/index.cjs.map +4 -4
  50. package/dist/{node.d.ts → node/index.d.ts} +2 -2
  51. package/dist/node/index.d.ts.map +1 -0
  52. package/dist/node/index.js +17 -148
  53. package/dist/node/index.js.map +3 -3
  54. package/dist/node/index.min.cjs +4 -4
  55. package/dist/node/index.min.cjs.map +4 -4
  56. package/dist/node/index.min.js +4 -4
  57. package/dist/node/index.min.js.map +4 -4
  58. package/dist/noop.cjs +30 -0
  59. package/dist/noop.cjs.map +7 -0
  60. package/dist/noop.d.ts +1 -1
  61. package/dist/noop.d.ts.map +1 -1
  62. package/dist/noop.js +11 -0
  63. package/dist/noop.js.map +7 -0
  64. package/dist/noop.min.cjs +2 -0
  65. package/dist/noop.min.cjs.map +7 -0
  66. package/dist/noop.min.js +2 -0
  67. package/dist/noop.min.js.map +7 -0
  68. package/package.json +11 -8
  69. package/dist/common.d.ts.map +0 -1
  70. package/dist/meta.json +0 -116
  71. package/dist/node.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/cloudflare/index.ts", "../../src/ms.ts", "../../src/common.ts", "../../src/noop.ts"],
4
- "sourcesContent": ["import humanize from '../ms.js'\nimport {\n generateRandomString,\n coerce,\n selectColor,\n createRegexFromEnvVar,\n type Debugger\n} from '../common.js'\nimport { noop } from '../noop.js'\n\n// Cloudflare Workers have a limited set of Web APIs\n// No localStorage, document, or navigator\nconst log = console.log || (() => {})\n\n// Simple color palette for Cloudflare Workers (no DOM-based colors)\nconst colors = [\n '#0066CC', '#CC0066', '#66CC00', '#CC6600', '#6600CC', '#00CC66',\n '#CC0000', '#0000CC', '#00CCCC', '#CCCC00', '#CC00CC', '#666666'\n]\n\nexport { createDebug }\nexport default createDebug\n\n/**\n * Check if the given namespace is enabled in Cloudflare Workers.\n * Since there's no localStorage, we check environment variables or global DEBUG.\n * `namespace` is the name that is passed into debug.\n * `env` is an optional environment object that can contain DEBUG setting.\n */\nfunction isEnabled (namespace:string, env?:Record<string, string>):boolean {\n // Determine the DEBUG value from env parameter, global, or process.env\n const DEBUG = env?.DEBUG ||\n (typeof globalThis !== 'undefined' && (globalThis as any).DEBUG) ||\n (typeof process !== 'undefined' && process.env?.DEBUG)\n\n // If no namespace (DEV mode), check if there's no DEBUG variable\n if (namespace === 'DEV') {\n // We want to log iff there is no DEBUG variable.\n if (!DEBUG) {\n return true\n }\n return false\n }\n\n // No DEBUG variable set\n if (!DEBUG) return false\n\n // Check for wildcard\n if (DEBUG === '*') return true\n\n // Check namespace vs DEBUG env var\n const envVars = createRegexFromEnvVar(DEBUG)\n return envVars.some(regex => regex.test(namespace))\n}\n\n/**\n * Map %j to `JSON.stringify()`, since Cloudflare Workers don't\n * have Web Inspectors.\n */\nfunction createFormatters () {\n return {\n j: function (v:any) {\n try {\n return JSON.stringify(v)\n } catch (error) {\n return '[UnexpectedJSONParseError]: ' + String(error)\n }\n }\n }\n}\n\nfunction logger (\n namespace:string,\n args:any[],\n { prevTime, color },\n env?:Record<string, string>\n) {\n args = args || []\n if (!isEnabled(namespace, env)) return\n\n // Set `diff` timestamp\n const curr = Number(new Date())\n const diff = curr - (prevTime || curr)\n prevTime = curr\n\n args[0] = coerce(args[0])\n const formatters = createFormatters()\n\n if (typeof args[0] !== 'string') {\n // Anything else let's inspect with %O\n args.unshift('%O')\n }\n\n // Apply any `formatters` transformations\n let index = 0\n args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n // If we encounter an escaped %, then don't increase the\n // array index\n if (match === '%%') return '%'\n\n index++\n\n const formatter = formatters[format]\n if (typeof formatter === 'function') {\n const val = args[index]\n match = formatter.call(globalThis, val)\n\n // Now we need to remove `args[index]` since it's inlined\n // in the `format`\n args.splice(index, 1)\n index--\n }\n return match\n })\n\n // Apply Cloudflare-specific formatting (no colors in Workers typically)\n const _args = formatArgs({\n diff,\n color,\n useColors: shouldUseColors(),\n namespace\n }, args)\n\n log(..._args)\n}\n\nfunction shouldUseColors ():boolean {\n // Cloudflare Workers typically don't support colors in console output\n // But we can detect if we're in a development environment\n return false\n}\n\n/**\n * Format log arguments for Cloudflare Workers (no color support typically).\n * Mutates the given args.\n */\nfunction formatArgs ({ diff, namespace }:{\n diff:number,\n color:number,\n namespace:string,\n useColors:boolean\n}, args:string[]) {\n args[0] = namespace + ' ' + args[0] + ' +' + humanize(diff, {})\n return args\n}\n\nfunction createDebug (namespace?:string, env?:Record<string, string>):Debugger;\nfunction createDebug (enabled:boolean):Debugger;\nfunction createDebug (\n namespaceOrEnabled?:string|boolean,\n env?:Record<string, string>\n):Debugger {\n // Handle the case where first parameter is a boolean\n if (typeof namespaceOrEnabled === 'boolean') {\n if (namespaceOrEnabled === false) return noop\n // If namespaceOrEnabled is true, use DEV mode with forced logging\n return createDebug('DEV', { DEBUG: '*' })\n }\n\n const prevTime = Number(new Date())\n const color = selectColor(\n typeof namespaceOrEnabled === 'string' ?\n namespaceOrEnabled :\n generateRandomString(10),\n colors\n )\n\n const actualNamespace = typeof namespaceOrEnabled === 'string' ?\n namespaceOrEnabled :\n 'DEV'\n\n // Handle environment parameter\n let envObj:Record<string, string>|undefined\n if (typeof env === 'object') {\n envObj = env\n }\n\n const debug = function (...args:any[]) {\n return logger(\n actualNamespace,\n args,\n { prevTime, color },\n envObj\n )\n }\n\n debug.extend = function (extension:string):Debugger {\n const extendedNamespace = actualNamespace + ':' + extension\n return createDebug(extendedNamespace, envObj)\n }\n\n return debug\n}\n", "/**\n * Helpers.\n */\n\nconst s = 1000\nconst m = s * 60\nconst h = m * 60\nconst d = h * 24\nconst w = d * 7\nconst 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\nexport default function (val, options:{ long?:boolean } = {}) {\n options = options || {}\n const 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 const 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 const n = parseFloat(match[1])\n const 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 const 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 const 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 const isPlural = msAbs >= n * 1.5\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '')\n}\n", "/**\n* Coerce `val`.\n*\n* @param {unknown} val\n* @return {string}\n*/\nexport function coerce (val:unknown):string {\n if (val instanceof Error) {\n return val.stack || val.message\n }\n\n return String(val)\n}\n\n/**\n * Selects a color for a debug namespace\n * @param {string} namespace The namespace string for the debug instance to be colored\n * @return {number|string} An ANSI color code for the given namespace\n */\nexport function selectColor (\n namespace:string,\n colors:string[]|number[]\n):number|string {\n let hash = 0\n\n for (let i = 0; i < namespace.length; i++) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i)\n hash |= 0 // Convert to 32bit integer\n }\n\n return colors[Math.abs(hash) % colors.length]\n}\n\nexport function createRegexFromEnvVar (names:string):RegExp[] {\n const split = names.split(/[\\s,]+/).filter(Boolean)\n const regexs = split\n .map(word => word.replace(/\\*/g, '.*?'))\n .map(r => new RegExp('^' + r + '$'))\n\n return regexs\n}\n\nexport type Debugger = {\n (...args: any[]): void;\n extend: (namespace: string) => Debugger;\n}\n\n/**\n * Use this to create a random namespace in the case that `debug`\n * is called without any arguments.\n * @param {number} length Lenght of the random string\n * @returns {string}\n */\nexport function generateRandomString (length = 6):string {\n return Math.random().toString(20).substring(2, length)\n}\n", "import { type Debugger } from './common.js'\n\nexport const noop:Debugger = function (_args:any[]) {}\nnoop.extend = function (_namespace:string) { return noop }\n\n"],
5
- "mappings": "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",
6
- "names": ["colors"]
3
+ "sources": ["../../src/cloudflare/index.ts"],
4
+ "sourcesContent": ["import humanize from '../ms.js'\nimport {\n generateRandomString,\n coerce,\n selectColor,\n createRegexFromEnvVar,\n type Debugger\n} from '../index.js'\nimport { noop } from '../noop.js'\n\nexport * from '../index.js'\n\n// Cloudflare Workers have a limited set of Web APIs\n// No localStorage, document, or navigator\nconst log = console.log || (() => {})\n\n// Simple color palette for Cloudflare Workers (no DOM-based colors)\nconst colors = [\n '#0066CC', '#CC0066', '#66CC00', '#CC6600', '#6600CC', '#00CC66',\n '#CC0000', '#0000CC', '#00CCCC', '#CCCC00', '#CC00CC', '#666666'\n]\n\nexport { createDebug }\nexport default createDebug\n\n/**\n * Check if the given namespace is enabled in Cloudflare Workers.\n * Since there's no localStorage, we check environment variables or global DEBUG.\n * `namespace` is the name that is passed into debug.\n * `env` is an optional environment object that can contain DEBUG setting.\n */\nfunction isEnabled (namespace:string, env?:Record<string, string>):boolean {\n // Determine the DEBUG value from env parameter, global, or process.env\n const DEBUG = env?.DEBUG ||\n (typeof globalThis !== 'undefined' && (globalThis as any).DEBUG) ||\n (typeof process !== 'undefined' && process.env?.DEBUG)\n\n // If no namespace (DEV mode), check if there's no DEBUG variable\n if (namespace === 'DEV') {\n // We want to log iff there is no DEBUG variable.\n if (!DEBUG) {\n return true\n }\n return false\n }\n\n // No DEBUG variable set\n if (!DEBUG) return false\n\n // Check for wildcard\n if (DEBUG === '*') return true\n\n // Check namespace vs DEBUG env var\n const envVars = createRegexFromEnvVar(DEBUG)\n return envVars.some(regex => regex.test(namespace))\n}\n\n/**\n * Map %j to `JSON.stringify()`, since Cloudflare Workers don't\n * have Web Inspectors.\n */\nfunction createFormatters () {\n return {\n j: function (v:any) {\n try {\n return JSON.stringify(v)\n } catch (error) {\n return '[UnexpectedJSONParseError]: ' + String(error)\n }\n }\n }\n}\n\nfunction logger (\n namespace:string,\n args:any[],\n { prevTime, color },\n env?:Record<string, string>\n) {\n args = args || []\n if (!isEnabled(namespace, env)) return\n\n // Set `diff` timestamp\n const curr = Number(new Date())\n const diff = curr - (prevTime || curr)\n prevTime = curr\n\n args[0] = coerce(args[0])\n const formatters = createFormatters()\n\n if (typeof args[0] !== 'string') {\n // Anything else let's inspect with %O\n args.unshift('%O')\n }\n\n // Apply any `formatters` transformations\n let index = 0\n args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n // If we encounter an escaped %, then don't increase the\n // array index\n if (match === '%%') return '%'\n\n index++\n\n const formatter = formatters[format]\n if (typeof formatter === 'function') {\n const val = args[index]\n match = formatter.call(globalThis, val)\n\n // Now we need to remove `args[index]` since it's inlined\n // in the `format`\n args.splice(index, 1)\n index--\n }\n return match\n })\n\n // Apply Cloudflare-specific formatting (no colors in Workers typically)\n const _args = formatArgs({\n diff,\n color,\n useColors: shouldUseColors(),\n namespace\n }, args)\n\n log(..._args)\n}\n\nfunction shouldUseColors ():boolean {\n // Cloudflare Workers typically don't support colors in console output\n // But we can detect if we're in a development environment\n return false\n}\n\n/**\n * Format log arguments for Cloudflare Workers (no color support typically).\n * Mutates the given args.\n */\nfunction formatArgs ({ diff, namespace }:{\n diff:number,\n color:number,\n namespace:string,\n useColors:boolean\n}, args:string[]) {\n args[0] = namespace + ' ' + args[0] + ' +' + humanize(diff, {})\n return args\n}\n\nfunction createDebug (namespace?:string, env?:Record<string, string>):Debugger;\nfunction createDebug (enabled:boolean):Debugger;\nfunction createDebug (\n namespaceOrEnabled?:string|boolean,\n env?:Record<string, string>\n):Debugger {\n // Handle the case where first parameter is a boolean\n if (typeof namespaceOrEnabled === 'boolean') {\n if (namespaceOrEnabled === false) return noop\n // If namespaceOrEnabled is true, use DEV mode with forced logging\n return createDebug('DEV', { DEBUG: '*' })\n }\n\n const prevTime = Number(new Date())\n const color = selectColor(\n typeof namespaceOrEnabled === 'string' ?\n namespaceOrEnabled :\n generateRandomString(10),\n colors\n )\n\n const actualNamespace = typeof namespaceOrEnabled === 'string' ?\n namespaceOrEnabled :\n 'DEV'\n\n // Handle environment parameter\n let envObj:Record<string, string>|undefined\n if (typeof env === 'object') {\n envObj = env\n }\n\n const debug = function (...args:any[]) {\n return logger(\n actualNamespace,\n args,\n { prevTime, color },\n envObj\n )\n }\n\n debug.extend = function (extension:string):Debugger {\n const extendedNamespace = actualNamespace + ':' + extension\n return createDebug(extendedNamespace, envObj)\n }\n\n return debug\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAqB;AACrB,eAMO;AACP,kBAAqB;AAErB,+BAAc,wBAVd;AAcA,MAAM,MAAM,QAAQ,QAAQ,MAAM;AAAC;AAGnC,MAAM,SAAS;AAAA,EACX;AAAA,EAAW;AAAA,EAAW;AAAA,EAAW;AAAA,EAAW;AAAA,EAAW;AAAA,EACvD;AAAA,EAAW;AAAA,EAAW;AAAA,EAAW;AAAA,EAAW;AAAA,EAAW;AAC3D;AAGA,IAAO,qBAAQ;AAQf,SAAS,UAAW,WAAkB,KAAqC;AAEvE,QAAM,QAAQ,KAAK,SACd,OAAO,eAAe,eAAgB,WAAmB,SACzD,OAAO,YAAY,eAAe,QAAQ,KAAK;AAGpD,MAAI,cAAc,OAAO;AAErB,QAAI,CAAC,OAAO;AACR,aAAO;AAAA,IACX;AACA,WAAO;AAAA,EACX;AAGA,MAAI,CAAC,MAAO,QAAO;AAGnB,MAAI,UAAU,IAAK,QAAO;AAG1B,QAAM,cAAU,gCAAsB,KAAK;AAC3C,SAAO,QAAQ,KAAK,WAAS,MAAM,KAAK,SAAS,CAAC;AACtD;AAxBS;AA8BT,SAAS,mBAAoB;AACzB,SAAO;AAAA,IACH,GAAG,gCAAU,GAAO;AAChB,UAAI;AACA,eAAO,KAAK,UAAU,CAAC;AAAA,MAC3B,SAAS,OAAO;AACZ,eAAO,iCAAiC,OAAO,KAAK;AAAA,MACxD;AAAA,IACJ,GANG;AAAA,EAOP;AACJ;AAVS;AAYT,SAAS,OACL,WACA,MACA,EAAE,UAAU,MAAM,GAClB,KACF;AACE,SAAO,QAAQ,CAAC;AAChB,MAAI,CAAC,UAAU,WAAW,GAAG,EAAG;AAGhC,QAAM,OAAO,OAAO,oBAAI,KAAK,CAAC;AAC9B,QAAM,OAAO,QAAQ,YAAY;AACjC,aAAW;AAEX,OAAK,CAAC,QAAI,iBAAO,KAAK,CAAC,CAAC;AACxB,QAAM,aAAa,iBAAiB;AAEpC,MAAI,OAAO,KAAK,CAAC,MAAM,UAAU;AAE7B,SAAK,QAAQ,IAAI;AAAA,EACrB;AAGA,MAAI,QAAQ;AACZ,OAAK,CAAC,IAAI,KAAK,CAAC,EAAE,QAAQ,iBAAiB,CAAC,OAAO,WAAW;AAG1D,QAAI,UAAU,KAAM,QAAO;AAE3B;AAEA,UAAM,YAAY,WAAW,MAAM;AACnC,QAAI,OAAO,cAAc,YAAY;AACjC,YAAM,MAAM,KAAK,KAAK;AACtB,cAAQ,UAAU,KAAK,YAAY,GAAG;AAItC,WAAK,OAAO,OAAO,CAAC;AACpB;AAAA,IACJ;AACA,WAAO;AAAA,EACX,CAAC;AAGD,QAAM,QAAQ,WAAW;AAAA,IACrB;AAAA,IACA;AAAA,IACA,WAAW,gBAAgB;AAAA,IAC3B;AAAA,EACJ,GAAG,IAAI;AAEP,MAAI,GAAG,KAAK;AAChB;AArDS;AAuDT,SAAS,kBAA2B;AAGhC,SAAO;AACX;AAJS;AAUT,SAAS,WAAY,EAAE,MAAM,UAAU,GAKpC,MAAe;AACd,OAAK,CAAC,IAAI,YAAY,MAAM,KAAK,CAAC,IAAI,WAAO,UAAAA,SAAS,MAAM,CAAC,CAAC;AAC9D,SAAO;AACX;AARS;AAYT,SAAS,YACL,oBACA,KACO;AAEP,MAAI,OAAO,uBAAuB,WAAW;AACzC,QAAI,uBAAuB,MAAO,QAAO;AAEzC,WAAO,YAAY,OAAO,EAAE,OAAO,IAAI,CAAC;AAAA,EAC5C;AAEA,QAAM,WAAW,OAAO,oBAAI,KAAK,CAAC;AAClC,QAAM,YAAQ;AAAA,IACV,OAAO,uBAAuB,WAC1B,yBACA,+BAAqB,EAAE;AAAA,IAC3B;AAAA,EACJ;AAEA,QAAM,kBAAkB,OAAO,uBAAuB,WAClD,qBACA;AAGJ,MAAI;AACJ,MAAI,OAAO,QAAQ,UAAU;AACzB,aAAS;AAAA,EACb;AAEA,QAAM,QAAQ,mCAAa,MAAY;AACnC,WAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA,EAAE,UAAU,MAAM;AAAA,MAClB;AAAA,IACJ;AAAA,EACJ,GAPc;AASd,QAAM,SAAS,SAAU,WAA2B;AAChD,UAAM,oBAAoB,kBAAkB,MAAM;AAClD,WAAO,YAAY,mBAAmB,MAAM;AAAA,EAChD;AAEA,SAAO;AACX;AA5CS;",
6
+ "names": ["humanize"]
7
7
  }
@@ -1,4 +1,5 @@
1
- import { type Debugger } from '../common.js';
1
+ import { type Debugger } from '../index.js';
2
+ export * from '../index.js';
2
3
  export { createDebug };
3
4
  export default createDebug;
4
5
  declare function createDebug(namespace?: string, env?: Record<string, string>): Debugger;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cloudflare/index.ts"],"names":[],"mappings":"AACA,OAAO,EAKH,KAAK,QAAQ,EAChB,MAAM,cAAc,CAAA;AAarB,OAAO,EAAE,WAAW,EAAE,CAAA;AACtB,eAAe,WAAW,CAAA;AA6H1B,iBAAS,WAAW,CAAE,SAAS,CAAC,EAAC,MAAM,EAAE,GAAG,CAAC,EAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAE,QAAQ,CAAC;AAC/E,iBAAS,WAAW,CAAE,OAAO,EAAC,OAAO,GAAE,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cloudflare/index.ts"],"names":[],"mappings":"AACA,OAAO,EAKH,KAAK,QAAQ,EAChB,MAAM,aAAa,CAAA;AAGpB,cAAc,aAAa,CAAA;AAY3B,OAAO,EAAE,WAAW,EAAE,CAAA;AACtB,eAAe,WAAW,CAAA;AA6H1B,iBAAS,WAAW,CAAE,SAAS,CAAC,EAAC,MAAM,EAAE,GAAG,CAAC,EAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAE,QAAQ,CAAC;AAC/E,iBAAS,WAAW,CAAE,OAAO,EAAC,OAAO,GAAE,QAAQ,CAAC"}
@@ -1,162 +1,17 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
-
4
- // src/ms.ts
5
- var s = 1e3;
6
- var m = s * 60;
7
- var h = m * 60;
8
- var d = h * 24;
9
- var w = d * 7;
10
- var y = d * 365.25;
11
- function ms_default(val, options = {}) {
12
- options = options || {};
13
- const type = typeof val;
14
- if (type === "string" && val.length > 0) {
15
- return parse(val);
16
- } else if (type === "number" && isFinite(val)) {
17
- return options.long ? fmtLong(val) : fmtShort(val);
18
- }
19
- throw new Error(
20
- "val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
21
- );
22
- }
23
- __name(ms_default, "default");
24
- function parse(str) {
25
- str = String(str);
26
- if (str.length > 100) {
27
- return;
28
- }
29
- const match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
30
- str
31
- );
32
- if (!match) {
33
- return;
34
- }
35
- const n = parseFloat(match[1]);
36
- const type = (match[2] || "ms").toLowerCase();
37
- switch (type) {
38
- case "years":
39
- case "year":
40
- case "yrs":
41
- case "yr":
42
- case "y":
43
- return n * y;
44
- case "weeks":
45
- case "week":
46
- case "w":
47
- return n * w;
48
- case "days":
49
- case "day":
50
- case "d":
51
- return n * d;
52
- case "hours":
53
- case "hour":
54
- case "hrs":
55
- case "hr":
56
- case "h":
57
- return n * h;
58
- case "minutes":
59
- case "minute":
60
- case "mins":
61
- case "min":
62
- case "m":
63
- return n * m;
64
- case "seconds":
65
- case "second":
66
- case "secs":
67
- case "sec":
68
- case "s":
69
- return n * s;
70
- case "milliseconds":
71
- case "millisecond":
72
- case "msecs":
73
- case "msec":
74
- case "ms":
75
- return n;
76
- default:
77
- return void 0;
78
- }
79
- }
80
- __name(parse, "parse");
81
- function fmtShort(ms) {
82
- const msAbs = Math.abs(ms);
83
- if (msAbs >= d) {
84
- return Math.round(ms / d) + "d";
85
- }
86
- if (msAbs >= h) {
87
- return Math.round(ms / h) + "h";
88
- }
89
- if (msAbs >= m) {
90
- return Math.round(ms / m) + "m";
91
- }
92
- if (msAbs >= s) {
93
- return Math.round(ms / s) + "s";
94
- }
95
- return ms + "ms";
96
- }
97
- __name(fmtShort, "fmtShort");
98
- function fmtLong(ms) {
99
- const msAbs = Math.abs(ms);
100
- if (msAbs >= d) {
101
- return plural(ms, msAbs, d, "day");
102
- }
103
- if (msAbs >= h) {
104
- return plural(ms, msAbs, h, "hour");
105
- }
106
- if (msAbs >= m) {
107
- return plural(ms, msAbs, m, "minute");
108
- }
109
- if (msAbs >= s) {
110
- return plural(ms, msAbs, s, "second");
111
- }
112
- return ms + " ms";
113
- }
114
- __name(fmtLong, "fmtLong");
115
- function plural(ms, msAbs, n, name) {
116
- const isPlural = msAbs >= n * 1.5;
117
- return Math.round(ms / n) + " " + name + (isPlural ? "s" : "");
118
- }
119
- __name(plural, "plural");
120
-
121
- // src/common.ts
122
- function coerce(val) {
123
- if (val instanceof Error) {
124
- return val.stack || val.message;
125
- }
126
- return String(val);
127
- }
128
- __name(coerce, "coerce");
129
- function selectColor(namespace, colors2) {
130
- let hash = 0;
131
- for (let i = 0; i < namespace.length; i++) {
132
- hash = (hash << 5) - hash + namespace.charCodeAt(i);
133
- hash |= 0;
134
- }
135
- return colors2[Math.abs(hash) % colors2.length];
136
- }
137
- __name(selectColor, "selectColor");
138
- function createRegexFromEnvVar(names) {
139
- const split = names.split(/[\s,]+/).filter(Boolean);
140
- const regexs = split.map((word) => word.replace(/\*/g, ".*?")).map((r) => new RegExp("^" + r + "$"));
141
- return regexs;
142
- }
143
- __name(createRegexFromEnvVar, "createRegexFromEnvVar");
144
- function generateRandomString(length = 6) {
145
- return Math.random().toString(20).substring(2, length);
146
- }
147
- __name(generateRandomString, "generateRandomString");
148
-
149
- // src/noop.ts
150
- var noop = /* @__PURE__ */ __name(function(_args) {
151
- }, "noop");
152
- noop.extend = function(_namespace) {
153
- return noop;
154
- };
155
-
156
- // src/cloudflare/index.ts
157
- var log = console.log || (() => {
3
+ import humanize from "../ms.js";
4
+ import {
5
+ generateRandomString,
6
+ coerce,
7
+ selectColor,
8
+ createRegexFromEnvVar
9
+ } from "../index.js";
10
+ import { noop } from "../noop.js";
11
+ export * from "../index.js";
12
+ const log = console.log || (() => {
158
13
  });
159
- var colors = [
14
+ const colors = [
160
15
  "#0066CC",
161
16
  "#CC0066",
162
17
  "#66CC00",
@@ -170,7 +25,7 @@ var colors = [
170
25
  "#CC00CC",
171
26
  "#666666"
172
27
  ];
173
- var index_default = createDebug;
28
+ var cloudflare_default = createDebug;
174
29
  function isEnabled(namespace, env) {
175
30
  const DEBUG = env?.DEBUG || typeof globalThis !== "undefined" && globalThis.DEBUG || typeof process !== "undefined" && process.env?.DEBUG;
176
31
  if (namespace === "DEV") {
@@ -235,7 +90,7 @@ function shouldUseColors() {
235
90
  }
236
91
  __name(shouldUseColors, "shouldUseColors");
237
92
  function formatArgs({ diff, namespace }, args) {
238
- args[0] = namespace + " " + args[0] + " +" + ms_default(diff, {});
93
+ args[0] = namespace + " " + args[0] + " +" + humanize(diff, {});
239
94
  return args;
240
95
  }
241
96
  __name(formatArgs, "formatArgs");
@@ -271,6 +126,6 @@ function createDebug(namespaceOrEnabled, env) {
271
126
  __name(createDebug, "createDebug");
272
127
  export {
273
128
  createDebug,
274
- index_default as default
129
+ cloudflare_default as default
275
130
  };
276
131
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/ms.ts", "../../src/common.ts", "../../src/noop.ts", "../../src/cloudflare/index.ts"],
4
- "sourcesContent": ["/**\n * Helpers.\n */\n\nconst s = 1000\nconst m = s * 60\nconst h = m * 60\nconst d = h * 24\nconst w = d * 7\nconst 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\nexport default function (val, options:{ long?:boolean } = {}) {\n options = options || {}\n const 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 const 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 const n = parseFloat(match[1])\n const 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 const 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 const 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 const isPlural = msAbs >= n * 1.5\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '')\n}\n", "/**\n* Coerce `val`.\n*\n* @param {unknown} val\n* @return {string}\n*/\nexport function coerce (val:unknown):string {\n if (val instanceof Error) {\n return val.stack || val.message\n }\n\n return String(val)\n}\n\n/**\n * Selects a color for a debug namespace\n * @param {string} namespace The namespace string for the debug instance to be colored\n * @return {number|string} An ANSI color code for the given namespace\n */\nexport function selectColor (\n namespace:string,\n colors:string[]|number[]\n):number|string {\n let hash = 0\n\n for (let i = 0; i < namespace.length; i++) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i)\n hash |= 0 // Convert to 32bit integer\n }\n\n return colors[Math.abs(hash) % colors.length]\n}\n\nexport function createRegexFromEnvVar (names:string):RegExp[] {\n const split = names.split(/[\\s,]+/).filter(Boolean)\n const regexs = split\n .map(word => word.replace(/\\*/g, '.*?'))\n .map(r => new RegExp('^' + r + '$'))\n\n return regexs\n}\n\nexport type Debugger = {\n (...args: any[]): void;\n extend: (namespace: string) => Debugger;\n}\n\n/**\n * Use this to create a random namespace in the case that `debug`\n * is called without any arguments.\n * @param {number} length Lenght of the random string\n * @returns {string}\n */\nexport function generateRandomString (length = 6):string {\n return Math.random().toString(20).substring(2, length)\n}\n", "import { type Debugger } from './common.js'\n\nexport const noop:Debugger = function (_args:any[]) {}\nnoop.extend = function (_namespace:string) { return noop }\n\n", "import humanize from '../ms.js'\nimport {\n generateRandomString,\n coerce,\n selectColor,\n createRegexFromEnvVar,\n type Debugger\n} from '../common.js'\nimport { noop } from '../noop.js'\n\n// Cloudflare Workers have a limited set of Web APIs\n// No localStorage, document, or navigator\nconst log = console.log || (() => {})\n\n// Simple color palette for Cloudflare Workers (no DOM-based colors)\nconst colors = [\n '#0066CC', '#CC0066', '#66CC00', '#CC6600', '#6600CC', '#00CC66',\n '#CC0000', '#0000CC', '#00CCCC', '#CCCC00', '#CC00CC', '#666666'\n]\n\nexport { createDebug }\nexport default createDebug\n\n/**\n * Check if the given namespace is enabled in Cloudflare Workers.\n * Since there's no localStorage, we check environment variables or global DEBUG.\n * `namespace` is the name that is passed into debug.\n * `env` is an optional environment object that can contain DEBUG setting.\n */\nfunction isEnabled (namespace:string, env?:Record<string, string>):boolean {\n // Determine the DEBUG value from env parameter, global, or process.env\n const DEBUG = env?.DEBUG ||\n (typeof globalThis !== 'undefined' && (globalThis as any).DEBUG) ||\n (typeof process !== 'undefined' && process.env?.DEBUG)\n\n // If no namespace (DEV mode), check if there's no DEBUG variable\n if (namespace === 'DEV') {\n // We want to log iff there is no DEBUG variable.\n if (!DEBUG) {\n return true\n }\n return false\n }\n\n // No DEBUG variable set\n if (!DEBUG) return false\n\n // Check for wildcard\n if (DEBUG === '*') return true\n\n // Check namespace vs DEBUG env var\n const envVars = createRegexFromEnvVar(DEBUG)\n return envVars.some(regex => regex.test(namespace))\n}\n\n/**\n * Map %j to `JSON.stringify()`, since Cloudflare Workers don't\n * have Web Inspectors.\n */\nfunction createFormatters () {\n return {\n j: function (v:any) {\n try {\n return JSON.stringify(v)\n } catch (error) {\n return '[UnexpectedJSONParseError]: ' + String(error)\n }\n }\n }\n}\n\nfunction logger (\n namespace:string,\n args:any[],\n { prevTime, color },\n env?:Record<string, string>\n) {\n args = args || []\n if (!isEnabled(namespace, env)) return\n\n // Set `diff` timestamp\n const curr = Number(new Date())\n const diff = curr - (prevTime || curr)\n prevTime = curr\n\n args[0] = coerce(args[0])\n const formatters = createFormatters()\n\n if (typeof args[0] !== 'string') {\n // Anything else let's inspect with %O\n args.unshift('%O')\n }\n\n // Apply any `formatters` transformations\n let index = 0\n args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n // If we encounter an escaped %, then don't increase the\n // array index\n if (match === '%%') return '%'\n\n index++\n\n const formatter = formatters[format]\n if (typeof formatter === 'function') {\n const val = args[index]\n match = formatter.call(globalThis, val)\n\n // Now we need to remove `args[index]` since it's inlined\n // in the `format`\n args.splice(index, 1)\n index--\n }\n return match\n })\n\n // Apply Cloudflare-specific formatting (no colors in Workers typically)\n const _args = formatArgs({\n diff,\n color,\n useColors: shouldUseColors(),\n namespace\n }, args)\n\n log(..._args)\n}\n\nfunction shouldUseColors ():boolean {\n // Cloudflare Workers typically don't support colors in console output\n // But we can detect if we're in a development environment\n return false\n}\n\n/**\n * Format log arguments for Cloudflare Workers (no color support typically).\n * Mutates the given args.\n */\nfunction formatArgs ({ diff, namespace }:{\n diff:number,\n color:number,\n namespace:string,\n useColors:boolean\n}, args:string[]) {\n args[0] = namespace + ' ' + args[0] + ' +' + humanize(diff, {})\n return args\n}\n\nfunction createDebug (namespace?:string, env?:Record<string, string>):Debugger;\nfunction createDebug (enabled:boolean):Debugger;\nfunction createDebug (\n namespaceOrEnabled?:string|boolean,\n env?:Record<string, string>\n):Debugger {\n // Handle the case where first parameter is a boolean\n if (typeof namespaceOrEnabled === 'boolean') {\n if (namespaceOrEnabled === false) return noop\n // If namespaceOrEnabled is true, use DEV mode with forced logging\n return createDebug('DEV', { DEBUG: '*' })\n }\n\n const prevTime = Number(new Date())\n const color = selectColor(\n typeof namespaceOrEnabled === 'string' ?\n namespaceOrEnabled :\n generateRandomString(10),\n colors\n )\n\n const actualNamespace = typeof namespaceOrEnabled === 'string' ?\n namespaceOrEnabled :\n 'DEV'\n\n // Handle environment parameter\n let envObj:Record<string, string>|undefined\n if (typeof env === 'object') {\n envObj = env\n }\n\n const debug = function (...args:any[]) {\n return logger(\n actualNamespace,\n args,\n { prevTime, color },\n envObj\n )\n }\n\n debug.extend = function (extension:string):Debugger {\n const extendedNamespace = actualNamespace + ':' + extension\n return createDebug(extendedNamespace, envObj)\n }\n\n return debug\n}\n"],
5
- "mappings": "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",
6
- "names": ["colors"]
3
+ "sources": ["../../src/cloudflare/index.ts"],
4
+ "sourcesContent": ["import humanize from '../ms.js'\nimport {\n generateRandomString,\n coerce,\n selectColor,\n createRegexFromEnvVar,\n type Debugger\n} from '../index.js'\nimport { noop } from '../noop.js'\n\nexport * from '../index.js'\n\n// Cloudflare Workers have a limited set of Web APIs\n// No localStorage, document, or navigator\nconst log = console.log || (() => {})\n\n// Simple color palette for Cloudflare Workers (no DOM-based colors)\nconst colors = [\n '#0066CC', '#CC0066', '#66CC00', '#CC6600', '#6600CC', '#00CC66',\n '#CC0000', '#0000CC', '#00CCCC', '#CCCC00', '#CC00CC', '#666666'\n]\n\nexport { createDebug }\nexport default createDebug\n\n/**\n * Check if the given namespace is enabled in Cloudflare Workers.\n * Since there's no localStorage, we check environment variables or global DEBUG.\n * `namespace` is the name that is passed into debug.\n * `env` is an optional environment object that can contain DEBUG setting.\n */\nfunction isEnabled (namespace:string, env?:Record<string, string>):boolean {\n // Determine the DEBUG value from env parameter, global, or process.env\n const DEBUG = env?.DEBUG ||\n (typeof globalThis !== 'undefined' && (globalThis as any).DEBUG) ||\n (typeof process !== 'undefined' && process.env?.DEBUG)\n\n // If no namespace (DEV mode), check if there's no DEBUG variable\n if (namespace === 'DEV') {\n // We want to log iff there is no DEBUG variable.\n if (!DEBUG) {\n return true\n }\n return false\n }\n\n // No DEBUG variable set\n if (!DEBUG) return false\n\n // Check for wildcard\n if (DEBUG === '*') return true\n\n // Check namespace vs DEBUG env var\n const envVars = createRegexFromEnvVar(DEBUG)\n return envVars.some(regex => regex.test(namespace))\n}\n\n/**\n * Map %j to `JSON.stringify()`, since Cloudflare Workers don't\n * have Web Inspectors.\n */\nfunction createFormatters () {\n return {\n j: function (v:any) {\n try {\n return JSON.stringify(v)\n } catch (error) {\n return '[UnexpectedJSONParseError]: ' + String(error)\n }\n }\n }\n}\n\nfunction logger (\n namespace:string,\n args:any[],\n { prevTime, color },\n env?:Record<string, string>\n) {\n args = args || []\n if (!isEnabled(namespace, env)) return\n\n // Set `diff` timestamp\n const curr = Number(new Date())\n const diff = curr - (prevTime || curr)\n prevTime = curr\n\n args[0] = coerce(args[0])\n const formatters = createFormatters()\n\n if (typeof args[0] !== 'string') {\n // Anything else let's inspect with %O\n args.unshift('%O')\n }\n\n // Apply any `formatters` transformations\n let index = 0\n args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n // If we encounter an escaped %, then don't increase the\n // array index\n if (match === '%%') return '%'\n\n index++\n\n const formatter = formatters[format]\n if (typeof formatter === 'function') {\n const val = args[index]\n match = formatter.call(globalThis, val)\n\n // Now we need to remove `args[index]` since it's inlined\n // in the `format`\n args.splice(index, 1)\n index--\n }\n return match\n })\n\n // Apply Cloudflare-specific formatting (no colors in Workers typically)\n const _args = formatArgs({\n diff,\n color,\n useColors: shouldUseColors(),\n namespace\n }, args)\n\n log(..._args)\n}\n\nfunction shouldUseColors ():boolean {\n // Cloudflare Workers typically don't support colors in console output\n // But we can detect if we're in a development environment\n return false\n}\n\n/**\n * Format log arguments for Cloudflare Workers (no color support typically).\n * Mutates the given args.\n */\nfunction formatArgs ({ diff, namespace }:{\n diff:number,\n color:number,\n namespace:string,\n useColors:boolean\n}, args:string[]) {\n args[0] = namespace + ' ' + args[0] + ' +' + humanize(diff, {})\n return args\n}\n\nfunction createDebug (namespace?:string, env?:Record<string, string>):Debugger;\nfunction createDebug (enabled:boolean):Debugger;\nfunction createDebug (\n namespaceOrEnabled?:string|boolean,\n env?:Record<string, string>\n):Debugger {\n // Handle the case where first parameter is a boolean\n if (typeof namespaceOrEnabled === 'boolean') {\n if (namespaceOrEnabled === false) return noop\n // If namespaceOrEnabled is true, use DEV mode with forced logging\n return createDebug('DEV', { DEBUG: '*' })\n }\n\n const prevTime = Number(new Date())\n const color = selectColor(\n typeof namespaceOrEnabled === 'string' ?\n namespaceOrEnabled :\n generateRandomString(10),\n colors\n )\n\n const actualNamespace = typeof namespaceOrEnabled === 'string' ?\n namespaceOrEnabled :\n 'DEV'\n\n // Handle environment parameter\n let envObj:Record<string, string>|undefined\n if (typeof env === 'object') {\n envObj = env\n }\n\n const debug = function (...args:any[]) {\n return logger(\n actualNamespace,\n args,\n { prevTime, color },\n envObj\n )\n }\n\n debug.extend = function (extension:string):Debugger {\n const extendedNamespace = actualNamespace + ':' + extension\n return createDebug(extendedNamespace, envObj)\n }\n\n return debug\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var f=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var t=(e,n)=>f(e,"name",{value:n,configurable:!0});var N=(e,n)=>{for(var r in n)f(e,r,{get:n[r],enumerable:!0})},U=(e,n,r,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of S(n))!M.call(e,o)&&o!==r&&f(e,o,{get:()=>n[o],enumerable:!(s=R(n,o))||s.enumerable});return e};var V=e=>U(f({},"__esModule",{value:!0}),e);var L={};N(L,{createDebug:()=>l,default:()=>j});module.exports=V(L);function p(e,n={}){n=n||{};let r=typeof e;if(r==="string"&&e.length>0)return B(e);if(r==="number"&&isFinite(e))return n.long?A(e):k(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}t(p,"default");function B(e){if(e=String(e),e.length>100)return;let n=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!n)return;let r=parseFloat(n[1]);switch((n[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return r*315576e5;case"weeks":case"week":case"w":return r*6048e5;case"days":case"day":case"d":return r*864e5;case"hours":case"hour":case"hrs":case"hr":case"h":return r*36e5;case"minutes":case"minute":case"mins":case"min":case"m":return r*6e4;case"seconds":case"second":case"secs":case"sec":case"s":return r*1e3;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}t(B,"parse");function k(e){let n=Math.abs(e);return n>=864e5?Math.round(e/864e5)+"d":n>=36e5?Math.round(e/36e5)+"h":n>=6e4?Math.round(e/6e4)+"m":n>=1e3?Math.round(e/1e3)+"s":e+"ms"}t(k,"fmtShort");function A(e){let n=Math.abs(e);return n>=864e5?g(e,n,864e5,"day"):n>=36e5?g(e,n,36e5,"hour"):n>=6e4?g(e,n,6e4,"minute"):n>=1e3?g(e,n,1e3,"second"):e+" ms"}t(A,"fmtLong");function g(e,n,r,s){let o=n>=r*1.5;return Math.round(e/r)+" "+s+(o?"s":"")}t(g,"plural");function y(e){return e instanceof Error?e.stack||e.message:String(e)}t(y,"coerce");function b(e,n){let r=0;for(let s=0;s<e.length;s++)r=(r<<5)-r+e.charCodeAt(s),r|=0;return n[Math.abs(r)%n.length]}t(b,"selectColor");function C(e){return e.split(/[\s,]+/).filter(Boolean).map(s=>s.replace(/\*/g,".*?")).map(s=>new RegExp("^"+s+"$"))}t(C,"createRegexFromEnvVar");function x(e=6){return Math.random().toString(20).substring(2,e)}t(x,"generateRandomString");var d=t(function(e){},"noop");d.extend=function(e){return d};var F=console.log||(()=>{}),G=["#0066CC","#CC0066","#66CC00","#CC6600","#6600CC","#00CC66","#CC0000","#0000CC","#00CCCC","#CCCC00","#CC00CC","#666666"];var j=l;function J(e,n){let r=n?.DEBUG||typeof globalThis<"u"&&globalThis.DEBUG||typeof process<"u"&&process.env?.DEBUG;return e==="DEV"?!r:r?r==="*"?!0:C(r).some(o=>o.test(e)):!1}t(J,"isEnabled");function T(){return{j:t(function(e){try{return JSON.stringify(e)}catch(n){return"[UnexpectedJSONParseError]: "+String(n)}},"j")}}t(T,"createFormatters");function _(e,n,{prevTime:r,color:s},o){if(n=n||[],!J(e,o))return;let c=Number(new Date),a=c-(r||c);r=c,n[0]=y(n[0]);let u=T();typeof n[0]!="string"&&n.unshift("%O");let i=0;n[0]=n[0].replace(/%([a-zA-Z%])/g,(m,w)=>{if(m==="%%")return"%";i++;let h=u[w];if(typeof h=="function"){let E=n[i];m=h.call(globalThis,E),n.splice(i,1),i--}return m});let D=z({diff:a,color:s,useColors:v(),namespace:e},n);F(...D)}t(_,"logger");function v(){return!1}t(v,"shouldUseColors");function z({diff:e,namespace:n},r){return r[0]=n+" "+r[0]+" +"+p(e,{}),r}t(z,"formatArgs");function l(e,n){if(typeof e=="boolean")return e===!1?d:l("DEV",{DEBUG:"*"});let r=Number(new Date),s=b(typeof e=="string"?e:x(10),G),o=typeof e=="string"?e:"DEV",c;typeof n=="object"&&(c=n);let a=t(function(...u){return _(o,u,{prevTime:r,color:s},c)},"debug");return a.extend=function(u){let i=o+":"+u;return l(i,c)},a}t(l,"createDebug");
1
+ "use strict";var f=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var t=(e,n)=>f(e,"name",{value:n,configurable:!0});var N=(e,n)=>{for(var r in n)f(e,r,{get:n[r],enumerable:!0})},U=(e,n,r,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of S(n))!M.call(e,o)&&o!==r&&f(e,o,{get:()=>n[o],enumerable:!(s=R(n,o))||s.enumerable});return e};var V=e=>U(f({},"__esModule",{value:!0}),e);var L={};N(L,{coerce:()=>h,createDebug:()=>l,createRegexFromEnvVar:()=>b,default:()=>j,generateRandomString:()=>C,selectColor:()=>y});module.exports=V(L);function p(e,n={}){n=n||{};let r=typeof e;if(r==="string"&&e.length>0)return B(e);if(r==="number"&&isFinite(e))return n.long?A(e):k(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}t(p,"default");function B(e){if(e=String(e),e.length>100)return;let n=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!n)return;let r=parseFloat(n[1]);switch((n[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return r*315576e5;case"weeks":case"week":case"w":return r*6048e5;case"days":case"day":case"d":return r*864e5;case"hours":case"hour":case"hrs":case"hr":case"h":return r*36e5;case"minutes":case"minute":case"mins":case"min":case"m":return r*6e4;case"seconds":case"second":case"secs":case"sec":case"s":return r*1e3;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}t(B,"parse");function k(e){let n=Math.abs(e);return n>=864e5?Math.round(e/864e5)+"d":n>=36e5?Math.round(e/36e5)+"h":n>=6e4?Math.round(e/6e4)+"m":n>=1e3?Math.round(e/1e3)+"s":e+"ms"}t(k,"fmtShort");function A(e){let n=Math.abs(e);return n>=864e5?g(e,n,864e5,"day"):n>=36e5?g(e,n,36e5,"hour"):n>=6e4?g(e,n,6e4,"minute"):n>=1e3?g(e,n,1e3,"second"):e+" ms"}t(A,"fmtLong");function g(e,n,r,s){let o=n>=r*1.5;return Math.round(e/r)+" "+s+(o?"s":"")}t(g,"plural");function h(e){return e instanceof Error?e.stack||e.message:String(e)}t(h,"coerce");function y(e,n){let r=0;for(let s=0;s<e.length;s++)r=(r<<5)-r+e.charCodeAt(s),r|=0;return n[Math.abs(r)%n.length]}t(y,"selectColor");function b(e){return e.split(/[\s,]+/).filter(Boolean).map(s=>s.replace(/\*/g,".*?")).map(s=>new RegExp("^"+s+"$"))}t(b,"createRegexFromEnvVar");function C(e=6){return Math.random().toString(20).substring(2,e)}t(C,"generateRandomString");var d=t(function(e){},"noop");d.extend=function(e){return d};var F=console.log||(()=>{}),G=["#0066CC","#CC0066","#66CC00","#CC6600","#6600CC","#00CC66","#CC0000","#0000CC","#00CCCC","#CCCC00","#CC00CC","#666666"];var j=l;function J(e,n){let r=n?.DEBUG||typeof globalThis<"u"&&globalThis.DEBUG||typeof process<"u"&&process.env?.DEBUG;return e==="DEV"?!r:r?r==="*"?!0:b(r).some(o=>o.test(e)):!1}t(J,"isEnabled");function T(){return{j:t(function(e){try{return JSON.stringify(e)}catch(n){return"[UnexpectedJSONParseError]: "+String(n)}},"j")}}t(T,"createFormatters");function _(e,n,{prevTime:r,color:s},o){if(n=n||[],!J(e,o))return;let c=Number(new Date),a=c-(r||c);r=c,n[0]=h(n[0]);let u=T();typeof n[0]!="string"&&n.unshift("%O");let i=0;n[0]=n[0].replace(/%([a-zA-Z%])/g,(m,w)=>{if(m==="%%")return"%";i++;let x=u[w];if(typeof x=="function"){let E=n[i];m=x.call(globalThis,E),n.splice(i,1),i--}return m});let D=z({diff:a,color:s,useColors:v(),namespace:e},n);F(...D)}t(_,"logger");function v(){return!1}t(v,"shouldUseColors");function z({diff:e,namespace:n},r){return r[0]=n+" "+r[0]+" +"+p(e,{}),r}t(z,"formatArgs");function l(e,n){if(typeof e=="boolean")return e===!1?d:l("DEV",{DEBUG:"*"});let r=Number(new Date),s=y(typeof e=="string"?e:C(10),G),o=typeof e=="string"?e:"DEV",c;typeof n=="object"&&(c=n);let a=t(function(...u){return _(o,u,{prevTime:r,color:s},c)},"debug");return a.extend=function(u){let i=o+":"+u;return l(i,c)},a}t(l,"createDebug");
2
2
  //# sourceMappingURL=index.min.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/cloudflare/index.ts", "../../src/ms.ts", "../../src/common.ts", "../../src/noop.ts"],
4
- "sourcesContent": ["import humanize from '../ms.js'\nimport {\n generateRandomString,\n coerce,\n selectColor,\n createRegexFromEnvVar,\n type Debugger\n} from '../common.js'\nimport { noop } from '../noop.js'\n\n// Cloudflare Workers have a limited set of Web APIs\n// No localStorage, document, or navigator\nconst log = console.log || (() => {})\n\n// Simple color palette for Cloudflare Workers (no DOM-based colors)\nconst colors = [\n '#0066CC', '#CC0066', '#66CC00', '#CC6600', '#6600CC', '#00CC66',\n '#CC0000', '#0000CC', '#00CCCC', '#CCCC00', '#CC00CC', '#666666'\n]\n\nexport { createDebug }\nexport default createDebug\n\n/**\n * Check if the given namespace is enabled in Cloudflare Workers.\n * Since there's no localStorage, we check environment variables or global DEBUG.\n * `namespace` is the name that is passed into debug.\n * `env` is an optional environment object that can contain DEBUG setting.\n */\nfunction isEnabled (namespace:string, env?:Record<string, string>):boolean {\n // Determine the DEBUG value from env parameter, global, or process.env\n const DEBUG = env?.DEBUG ||\n (typeof globalThis !== 'undefined' && (globalThis as any).DEBUG) ||\n (typeof process !== 'undefined' && process.env?.DEBUG)\n\n // If no namespace (DEV mode), check if there's no DEBUG variable\n if (namespace === 'DEV') {\n // We want to log iff there is no DEBUG variable.\n if (!DEBUG) {\n return true\n }\n return false\n }\n\n // No DEBUG variable set\n if (!DEBUG) return false\n\n // Check for wildcard\n if (DEBUG === '*') return true\n\n // Check namespace vs DEBUG env var\n const envVars = createRegexFromEnvVar(DEBUG)\n return envVars.some(regex => regex.test(namespace))\n}\n\n/**\n * Map %j to `JSON.stringify()`, since Cloudflare Workers don't\n * have Web Inspectors.\n */\nfunction createFormatters () {\n return {\n j: function (v:any) {\n try {\n return JSON.stringify(v)\n } catch (error) {\n return '[UnexpectedJSONParseError]: ' + String(error)\n }\n }\n }\n}\n\nfunction logger (\n namespace:string,\n args:any[],\n { prevTime, color },\n env?:Record<string, string>\n) {\n args = args || []\n if (!isEnabled(namespace, env)) return\n\n // Set `diff` timestamp\n const curr = Number(new Date())\n const diff = curr - (prevTime || curr)\n prevTime = curr\n\n args[0] = coerce(args[0])\n const formatters = createFormatters()\n\n if (typeof args[0] !== 'string') {\n // Anything else let's inspect with %O\n args.unshift('%O')\n }\n\n // Apply any `formatters` transformations\n let index = 0\n args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n // If we encounter an escaped %, then don't increase the\n // array index\n if (match === '%%') return '%'\n\n index++\n\n const formatter = formatters[format]\n if (typeof formatter === 'function') {\n const val = args[index]\n match = formatter.call(globalThis, val)\n\n // Now we need to remove `args[index]` since it's inlined\n // in the `format`\n args.splice(index, 1)\n index--\n }\n return match\n })\n\n // Apply Cloudflare-specific formatting (no colors in Workers typically)\n const _args = formatArgs({\n diff,\n color,\n useColors: shouldUseColors(),\n namespace\n }, args)\n\n log(..._args)\n}\n\nfunction shouldUseColors ():boolean {\n // Cloudflare Workers typically don't support colors in console output\n // But we can detect if we're in a development environment\n return false\n}\n\n/**\n * Format log arguments for Cloudflare Workers (no color support typically).\n * Mutates the given args.\n */\nfunction formatArgs ({ diff, namespace }:{\n diff:number,\n color:number,\n namespace:string,\n useColors:boolean\n}, args:string[]) {\n args[0] = namespace + ' ' + args[0] + ' +' + humanize(diff, {})\n return args\n}\n\nfunction createDebug (namespace?:string, env?:Record<string, string>):Debugger;\nfunction createDebug (enabled:boolean):Debugger;\nfunction createDebug (\n namespaceOrEnabled?:string|boolean,\n env?:Record<string, string>\n):Debugger {\n // Handle the case where first parameter is a boolean\n if (typeof namespaceOrEnabled === 'boolean') {\n if (namespaceOrEnabled === false) return noop\n // If namespaceOrEnabled is true, use DEV mode with forced logging\n return createDebug('DEV', { DEBUG: '*' })\n }\n\n const prevTime = Number(new Date())\n const color = selectColor(\n typeof namespaceOrEnabled === 'string' ?\n namespaceOrEnabled :\n generateRandomString(10),\n colors\n )\n\n const actualNamespace = typeof namespaceOrEnabled === 'string' ?\n namespaceOrEnabled :\n 'DEV'\n\n // Handle environment parameter\n let envObj:Record<string, string>|undefined\n if (typeof env === 'object') {\n envObj = env\n }\n\n const debug = function (...args:any[]) {\n return logger(\n actualNamespace,\n args,\n { prevTime, color },\n envObj\n )\n }\n\n debug.extend = function (extension:string):Debugger {\n const extendedNamespace = actualNamespace + ':' + extension\n return createDebug(extendedNamespace, envObj)\n }\n\n return debug\n}\n", "/**\n * Helpers.\n */\n\nconst s = 1000\nconst m = s * 60\nconst h = m * 60\nconst d = h * 24\nconst w = d * 7\nconst 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\nexport default function (val, options:{ long?:boolean } = {}) {\n options = options || {}\n const 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 const 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 const n = parseFloat(match[1])\n const 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 const 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 const 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 const isPlural = msAbs >= n * 1.5\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '')\n}\n", "/**\n* Coerce `val`.\n*\n* @param {unknown} val\n* @return {string}\n*/\nexport function coerce (val:unknown):string {\n if (val instanceof Error) {\n return val.stack || val.message\n }\n\n return String(val)\n}\n\n/**\n * Selects a color for a debug namespace\n * @param {string} namespace The namespace string for the debug instance to be colored\n * @return {number|string} An ANSI color code for the given namespace\n */\nexport function selectColor (\n namespace:string,\n colors:string[]|number[]\n):number|string {\n let hash = 0\n\n for (let i = 0; i < namespace.length; i++) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i)\n hash |= 0 // Convert to 32bit integer\n }\n\n return colors[Math.abs(hash) % colors.length]\n}\n\nexport function createRegexFromEnvVar (names:string):RegExp[] {\n const split = names.split(/[\\s,]+/).filter(Boolean)\n const regexs = split\n .map(word => word.replace(/\\*/g, '.*?'))\n .map(r => new RegExp('^' + r + '$'))\n\n return regexs\n}\n\nexport type Debugger = {\n (...args: any[]): void;\n extend: (namespace: string) => Debugger;\n}\n\n/**\n * Use this to create a random namespace in the case that `debug`\n * is called without any arguments.\n * @param {number} length Lenght of the random string\n * @returns {string}\n */\nexport function generateRandomString (length = 6):string {\n return Math.random().toString(20).substring(2, length)\n}\n", "import { type Debugger } from './common.js'\n\nexport const noop:Debugger = function (_args:any[]) {}\nnoop.extend = function (_namespace:string) { return noop }\n\n"],
5
- "mappings": "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",
6
- "names": ["index_exports", "__export", "createDebug", "index_default", "__toCommonJS", "ms_default", "val", "options", "type", "parse", "fmtLong", "fmtShort", "__name", "str", "match", "n", "ms", "msAbs", "plural", "name", "isPlural", "coerce", "val", "__name", "selectColor", "namespace", "colors", "hash", "i", "createRegexFromEnvVar", "names", "word", "r", "generateRandomString", "length", "noop", "__name", "_args", "_namespace", "log", "colors", "index_default", "createDebug", "isEnabled", "namespace", "env", "DEBUG", "createRegexFromEnvVar", "regex", "__name", "createFormatters", "v", "error", "logger", "args", "prevTime", "color", "curr", "diff", "coerce", "formatters", "index", "match", "format", "formatter", "val", "_args", "formatArgs", "shouldUseColors", "log", "ms_default", "namespaceOrEnabled", "noop", "selectColor", "generateRandomString", "colors", "actualNamespace", "envObj", "debug", "extension", "extendedNamespace"]
3
+ "sources": ["../../src/cloudflare/index.ts", "../../src/ms.ts", "../../src/index.ts", "../../src/noop.ts"],
4
+ "sourcesContent": ["import humanize from '../ms.js'\nimport {\n generateRandomString,\n coerce,\n selectColor,\n createRegexFromEnvVar,\n type Debugger\n} from '../index.js'\nimport { noop } from '../noop.js'\n\nexport * from '../index.js'\n\n// Cloudflare Workers have a limited set of Web APIs\n// No localStorage, document, or navigator\nconst log = console.log || (() => {})\n\n// Simple color palette for Cloudflare Workers (no DOM-based colors)\nconst colors = [\n '#0066CC', '#CC0066', '#66CC00', '#CC6600', '#6600CC', '#00CC66',\n '#CC0000', '#0000CC', '#00CCCC', '#CCCC00', '#CC00CC', '#666666'\n]\n\nexport { createDebug }\nexport default createDebug\n\n/**\n * Check if the given namespace is enabled in Cloudflare Workers.\n * Since there's no localStorage, we check environment variables or global DEBUG.\n * `namespace` is the name that is passed into debug.\n * `env` is an optional environment object that can contain DEBUG setting.\n */\nfunction isEnabled (namespace:string, env?:Record<string, string>):boolean {\n // Determine the DEBUG value from env parameter, global, or process.env\n const DEBUG = env?.DEBUG ||\n (typeof globalThis !== 'undefined' && (globalThis as any).DEBUG) ||\n (typeof process !== 'undefined' && process.env?.DEBUG)\n\n // If no namespace (DEV mode), check if there's no DEBUG variable\n if (namespace === 'DEV') {\n // We want to log iff there is no DEBUG variable.\n if (!DEBUG) {\n return true\n }\n return false\n }\n\n // No DEBUG variable set\n if (!DEBUG) return false\n\n // Check for wildcard\n if (DEBUG === '*') return true\n\n // Check namespace vs DEBUG env var\n const envVars = createRegexFromEnvVar(DEBUG)\n return envVars.some(regex => regex.test(namespace))\n}\n\n/**\n * Map %j to `JSON.stringify()`, since Cloudflare Workers don't\n * have Web Inspectors.\n */\nfunction createFormatters () {\n return {\n j: function (v:any) {\n try {\n return JSON.stringify(v)\n } catch (error) {\n return '[UnexpectedJSONParseError]: ' + String(error)\n }\n }\n }\n}\n\nfunction logger (\n namespace:string,\n args:any[],\n { prevTime, color },\n env?:Record<string, string>\n) {\n args = args || []\n if (!isEnabled(namespace, env)) return\n\n // Set `diff` timestamp\n const curr = Number(new Date())\n const diff = curr - (prevTime || curr)\n prevTime = curr\n\n args[0] = coerce(args[0])\n const formatters = createFormatters()\n\n if (typeof args[0] !== 'string') {\n // Anything else let's inspect with %O\n args.unshift('%O')\n }\n\n // Apply any `formatters` transformations\n let index = 0\n args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n // If we encounter an escaped %, then don't increase the\n // array index\n if (match === '%%') return '%'\n\n index++\n\n const formatter = formatters[format]\n if (typeof formatter === 'function') {\n const val = args[index]\n match = formatter.call(globalThis, val)\n\n // Now we need to remove `args[index]` since it's inlined\n // in the `format`\n args.splice(index, 1)\n index--\n }\n return match\n })\n\n // Apply Cloudflare-specific formatting (no colors in Workers typically)\n const _args = formatArgs({\n diff,\n color,\n useColors: shouldUseColors(),\n namespace\n }, args)\n\n log(..._args)\n}\n\nfunction shouldUseColors ():boolean {\n // Cloudflare Workers typically don't support colors in console output\n // But we can detect if we're in a development environment\n return false\n}\n\n/**\n * Format log arguments for Cloudflare Workers (no color support typically).\n * Mutates the given args.\n */\nfunction formatArgs ({ diff, namespace }:{\n diff:number,\n color:number,\n namespace:string,\n useColors:boolean\n}, args:string[]) {\n args[0] = namespace + ' ' + args[0] + ' +' + humanize(diff, {})\n return args\n}\n\nfunction createDebug (namespace?:string, env?:Record<string, string>):Debugger;\nfunction createDebug (enabled:boolean):Debugger;\nfunction createDebug (\n namespaceOrEnabled?:string|boolean,\n env?:Record<string, string>\n):Debugger {\n // Handle the case where first parameter is a boolean\n if (typeof namespaceOrEnabled === 'boolean') {\n if (namespaceOrEnabled === false) return noop\n // If namespaceOrEnabled is true, use DEV mode with forced logging\n return createDebug('DEV', { DEBUG: '*' })\n }\n\n const prevTime = Number(new Date())\n const color = selectColor(\n typeof namespaceOrEnabled === 'string' ?\n namespaceOrEnabled :\n generateRandomString(10),\n colors\n )\n\n const actualNamespace = typeof namespaceOrEnabled === 'string' ?\n namespaceOrEnabled :\n 'DEV'\n\n // Handle environment parameter\n let envObj:Record<string, string>|undefined\n if (typeof env === 'object') {\n envObj = env\n }\n\n const debug = function (...args:any[]) {\n return logger(\n actualNamespace,\n args,\n { prevTime, color },\n envObj\n )\n }\n\n debug.extend = function (extension:string):Debugger {\n const extendedNamespace = actualNamespace + ':' + extension\n return createDebug(extendedNamespace, envObj)\n }\n\n return debug\n}\n", "/**\n * Helpers.\n */\n\nconst s = 1000\nconst m = s * 60\nconst h = m * 60\nconst d = h * 24\nconst w = d * 7\nconst 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\nexport default function (val, options:{ long?:boolean } = {}) {\n options = options || {}\n const 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 const 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 const n = parseFloat(match[1])\n const 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 const 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 const 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 const isPlural = msAbs >= n * 1.5\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '')\n}\n", "/**\n* Coerce `val`.\n*\n* @param {unknown} val\n* @return {string}\n*/\nexport function coerce (val:unknown):string {\n if (val instanceof Error) {\n return val.stack || val.message\n }\n\n return String(val)\n}\n\n/**\n * Selects a color for a debug namespace\n * @param {string} namespace The namespace string for the debug instance to be colored\n * @return {number|string} An ANSI color code for the given namespace\n */\nexport function selectColor (\n namespace:string,\n colors:string[]|number[]\n):number|string {\n let hash = 0\n\n for (let i = 0; i < namespace.length; i++) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i)\n hash |= 0 // Convert to 32bit integer\n }\n\n return colors[Math.abs(hash) % colors.length]\n}\n\nexport function createRegexFromEnvVar (names:string):RegExp[] {\n const split = names.split(/[\\s,]+/).filter(Boolean)\n const regexs = split\n .map(word => word.replace(/\\*/g, '.*?'))\n .map(r => new RegExp('^' + r + '$'))\n\n return regexs\n}\n\nexport type Debugger = {\n (...args: any[]): void;\n extend: (namespace: string) => Debugger;\n}\n\n/**\n * Use this to create a random namespace in the case that `debug`\n * is called without any arguments.\n * @param {number} length Lenght of the random string\n * @returns {string}\n */\nexport function generateRandomString (length = 6):string {\n return Math.random().toString(20).substring(2, length)\n}\n", "import { type Debugger } from './index.js'\n\nexport const noop:Debugger = function (_args:any[]) {}\nnoop.extend = function (_namespace:string) { return noop }\n\n"],
5
+ "mappings": "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",
6
+ "names": ["cloudflare_exports", "__export", "coerce", "createDebug", "createRegexFromEnvVar", "cloudflare_default", "generateRandomString", "selectColor", "__toCommonJS", "ms_default", "val", "options", "type", "parse", "fmtLong", "fmtShort", "__name", "str", "match", "n", "ms", "msAbs", "plural", "name", "isPlural", "coerce", "val", "__name", "selectColor", "namespace", "colors", "hash", "i", "createRegexFromEnvVar", "names", "word", "r", "generateRandomString", "length", "noop", "__name", "_args", "_namespace", "log", "colors", "cloudflare_default", "createDebug", "isEnabled", "namespace", "env", "DEBUG", "createRegexFromEnvVar", "regex", "__name", "createFormatters", "v", "error", "logger", "args", "prevTime", "color", "curr", "diff", "coerce", "formatters", "index", "match", "format", "formatter", "val", "_args", "formatArgs", "shouldUseColors", "log", "ms_default", "namespaceOrEnabled", "noop", "selectColor", "generateRandomString", "colors", "actualNamespace", "envObj", "debug", "extension", "extendedNamespace"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var E=Object.defineProperty;var t=(e,n)=>E(e,"name",{value:n,configurable:!0});function l(e,n={}){n=n||{};let r=typeof e;if(r==="string"&&e.length>0)return R(e);if(r==="number"&&isFinite(e))return n.long?M(e):S(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}t(l,"default");function R(e){if(e=String(e),e.length>100)return;let n=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!n)return;let r=parseFloat(n[1]);switch((n[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return r*315576e5;case"weeks":case"week":case"w":return r*6048e5;case"days":case"day":case"d":return r*864e5;case"hours":case"hour":case"hrs":case"hr":case"h":return r*36e5;case"minutes":case"minute":case"mins":case"min":case"m":return r*6e4;case"seconds":case"second":case"secs":case"sec":case"s":return r*1e3;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}t(R,"parse");function S(e){let n=Math.abs(e);return n>=864e5?Math.round(e/864e5)+"d":n>=36e5?Math.round(e/36e5)+"h":n>=6e4?Math.round(e/6e4)+"m":n>=1e3?Math.round(e/1e3)+"s":e+"ms"}t(S,"fmtShort");function M(e){let n=Math.abs(e);return n>=864e5?f(e,n,864e5,"day"):n>=36e5?f(e,n,36e5,"hour"):n>=6e4?f(e,n,6e4,"minute"):n>=1e3?f(e,n,1e3,"second"):e+" ms"}t(M,"fmtLong");function f(e,n,r,s){let o=n>=r*1.5;return Math.round(e/r)+" "+s+(o?"s":"")}t(f,"plural");function h(e){return e instanceof Error?e.stack||e.message:String(e)}t(h,"coerce");function y(e,n){let r=0;for(let s=0;s<e.length;s++)r=(r<<5)-r+e.charCodeAt(s),r|=0;return n[Math.abs(r)%n.length]}t(y,"selectColor");function b(e){return e.split(/[\s,]+/).filter(Boolean).map(s=>s.replace(/\*/g,".*?")).map(s=>new RegExp("^"+s+"$"))}t(b,"createRegexFromEnvVar");function C(e=6){return Math.random().toString(20).substring(2,e)}t(C,"generateRandomString");var g=t(function(e){},"noop");g.extend=function(e){return g};var N=console.log||(()=>{}),U=["#0066CC","#CC0066","#66CC00","#CC6600","#6600CC","#00CC66","#CC0000","#0000CC","#00CCCC","#CCCC00","#CC00CC","#666666"];var Z=m;function V(e,n){let r=n?.DEBUG||typeof globalThis<"u"&&globalThis.DEBUG||typeof process<"u"&&process.env?.DEBUG;return e==="DEV"?!r:r?r==="*"?!0:b(r).some(o=>o.test(e)):!1}t(V,"isEnabled");function B(){return{j:t(function(e){try{return JSON.stringify(e)}catch(n){return"[UnexpectedJSONParseError]: "+String(n)}},"j")}}t(B,"createFormatters");function k(e,n,{prevTime:r,color:s},o){if(n=n||[],!V(e,o))return;let c=Number(new Date),a=c-(r||c);r=c,n[0]=h(n[0]);let u=B();typeof n[0]!="string"&&n.unshift("%O");let i=0;n[0]=n[0].replace(/%([a-zA-Z%])/g,(d,D)=>{if(d==="%%")return"%";i++;let p=u[D];if(typeof p=="function"){let w=n[i];d=p.call(globalThis,w),n.splice(i,1),i--}return d});let x=F({diff:a,color:s,useColors:A(),namespace:e},n);N(...x)}t(k,"logger");function A(){return!1}t(A,"shouldUseColors");function F({diff:e,namespace:n},r){return r[0]=n+" "+r[0]+" +"+l(e,{}),r}t(F,"formatArgs");function m(e,n){if(typeof e=="boolean")return e===!1?g:m("DEV",{DEBUG:"*"});let r=Number(new Date),s=y(typeof e=="string"?e:C(10),U),o=typeof e=="string"?e:"DEV",c;typeof n=="object"&&(c=n);let a=t(function(...u){return k(o,u,{prevTime:r,color:s},c)},"debug");return a.extend=function(u){let i=o+":"+u;return m(i,c)},a}t(m,"createDebug");export{m as createDebug,Z as default};
1
+ var E=Object.defineProperty;var t=(e,n)=>E(e,"name",{value:n,configurable:!0});function l(e,n={}){n=n||{};let r=typeof e;if(r==="string"&&e.length>0)return R(e);if(r==="number"&&isFinite(e))return n.long?M(e):S(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}t(l,"default");function R(e){if(e=String(e),e.length>100)return;let n=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!n)return;let r=parseFloat(n[1]);switch((n[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return r*315576e5;case"weeks":case"week":case"w":return r*6048e5;case"days":case"day":case"d":return r*864e5;case"hours":case"hour":case"hrs":case"hr":case"h":return r*36e5;case"minutes":case"minute":case"mins":case"min":case"m":return r*6e4;case"seconds":case"second":case"secs":case"sec":case"s":return r*1e3;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}t(R,"parse");function S(e){let n=Math.abs(e);return n>=864e5?Math.round(e/864e5)+"d":n>=36e5?Math.round(e/36e5)+"h":n>=6e4?Math.round(e/6e4)+"m":n>=1e3?Math.round(e/1e3)+"s":e+"ms"}t(S,"fmtShort");function M(e){let n=Math.abs(e);return n>=864e5?f(e,n,864e5,"day"):n>=36e5?f(e,n,36e5,"hour"):n>=6e4?f(e,n,6e4,"minute"):n>=1e3?f(e,n,1e3,"second"):e+" ms"}t(M,"fmtLong");function f(e,n,r,s){let o=n>=r*1.5;return Math.round(e/r)+" "+s+(o?"s":"")}t(f,"plural");function h(e){return e instanceof Error?e.stack||e.message:String(e)}t(h,"coerce");function y(e,n){let r=0;for(let s=0;s<e.length;s++)r=(r<<5)-r+e.charCodeAt(s),r|=0;return n[Math.abs(r)%n.length]}t(y,"selectColor");function b(e){return e.split(/[\s,]+/).filter(Boolean).map(s=>s.replace(/\*/g,".*?")).map(s=>new RegExp("^"+s+"$"))}t(b,"createRegexFromEnvVar");function C(e=6){return Math.random().toString(20).substring(2,e)}t(C,"generateRandomString");var g=t(function(e){},"noop");g.extend=function(e){return g};var N=console.log||(()=>{}),U=["#0066CC","#CC0066","#66CC00","#CC6600","#6600CC","#00CC66","#CC0000","#0000CC","#00CCCC","#CCCC00","#CC00CC","#666666"];var Z=m;function V(e,n){let r=n?.DEBUG||typeof globalThis<"u"&&globalThis.DEBUG||typeof process<"u"&&process.env?.DEBUG;return e==="DEV"?!r:r?r==="*"?!0:b(r).some(o=>o.test(e)):!1}t(V,"isEnabled");function B(){return{j:t(function(e){try{return JSON.stringify(e)}catch(n){return"[UnexpectedJSONParseError]: "+String(n)}},"j")}}t(B,"createFormatters");function k(e,n,{prevTime:r,color:s},o){if(n=n||[],!V(e,o))return;let c=Number(new Date),a=c-(r||c);r=c,n[0]=h(n[0]);let u=B();typeof n[0]!="string"&&n.unshift("%O");let i=0;n[0]=n[0].replace(/%([a-zA-Z%])/g,(d,D)=>{if(d==="%%")return"%";i++;let p=u[D];if(typeof p=="function"){let w=n[i];d=p.call(globalThis,w),n.splice(i,1),i--}return d});let x=F({diff:a,color:s,useColors:A(),namespace:e},n);N(...x)}t(k,"logger");function A(){return!1}t(A,"shouldUseColors");function F({diff:e,namespace:n},r){return r[0]=n+" "+r[0]+" +"+l(e,{}),r}t(F,"formatArgs");function m(e,n){if(typeof e=="boolean")return e===!1?g:m("DEV",{DEBUG:"*"});let r=Number(new Date),s=y(typeof e=="string"?e:C(10),U),o=typeof e=="string"?e:"DEV",c;typeof n=="object"&&(c=n);let a=t(function(...u){return k(o,u,{prevTime:r,color:s},c)},"debug");return a.extend=function(u){let i=o+":"+u;return m(i,c)},a}t(m,"createDebug");export{h as coerce,m as createDebug,b as createRegexFromEnvVar,Z as default,C as generateRandomString,y as selectColor};
2
2
  //# sourceMappingURL=index.min.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/ms.ts", "../../src/common.ts", "../../src/noop.ts", "../../src/cloudflare/index.ts"],
4
- "sourcesContent": ["/**\n * Helpers.\n */\n\nconst s = 1000\nconst m = s * 60\nconst h = m * 60\nconst d = h * 24\nconst w = d * 7\nconst 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\nexport default function (val, options:{ long?:boolean } = {}) {\n options = options || {}\n const 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 const 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 const n = parseFloat(match[1])\n const 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 const 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 const 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 const isPlural = msAbs >= n * 1.5\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '')\n}\n", "/**\n* Coerce `val`.\n*\n* @param {unknown} val\n* @return {string}\n*/\nexport function coerce (val:unknown):string {\n if (val instanceof Error) {\n return val.stack || val.message\n }\n\n return String(val)\n}\n\n/**\n * Selects a color for a debug namespace\n * @param {string} namespace The namespace string for the debug instance to be colored\n * @return {number|string} An ANSI color code for the given namespace\n */\nexport function selectColor (\n namespace:string,\n colors:string[]|number[]\n):number|string {\n let hash = 0\n\n for (let i = 0; i < namespace.length; i++) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i)\n hash |= 0 // Convert to 32bit integer\n }\n\n return colors[Math.abs(hash) % colors.length]\n}\n\nexport function createRegexFromEnvVar (names:string):RegExp[] {\n const split = names.split(/[\\s,]+/).filter(Boolean)\n const regexs = split\n .map(word => word.replace(/\\*/g, '.*?'))\n .map(r => new RegExp('^' + r + '$'))\n\n return regexs\n}\n\nexport type Debugger = {\n (...args: any[]): void;\n extend: (namespace: string) => Debugger;\n}\n\n/**\n * Use this to create a random namespace in the case that `debug`\n * is called without any arguments.\n * @param {number} length Lenght of the random string\n * @returns {string}\n */\nexport function generateRandomString (length = 6):string {\n return Math.random().toString(20).substring(2, length)\n}\n", "import { type Debugger } from './common.js'\n\nexport const noop:Debugger = function (_args:any[]) {}\nnoop.extend = function (_namespace:string) { return noop }\n\n", "import humanize from '../ms.js'\nimport {\n generateRandomString,\n coerce,\n selectColor,\n createRegexFromEnvVar,\n type Debugger\n} from '../common.js'\nimport { noop } from '../noop.js'\n\n// Cloudflare Workers have a limited set of Web APIs\n// No localStorage, document, or navigator\nconst log = console.log || (() => {})\n\n// Simple color palette for Cloudflare Workers (no DOM-based colors)\nconst colors = [\n '#0066CC', '#CC0066', '#66CC00', '#CC6600', '#6600CC', '#00CC66',\n '#CC0000', '#0000CC', '#00CCCC', '#CCCC00', '#CC00CC', '#666666'\n]\n\nexport { createDebug }\nexport default createDebug\n\n/**\n * Check if the given namespace is enabled in Cloudflare Workers.\n * Since there's no localStorage, we check environment variables or global DEBUG.\n * `namespace` is the name that is passed into debug.\n * `env` is an optional environment object that can contain DEBUG setting.\n */\nfunction isEnabled (namespace:string, env?:Record<string, string>):boolean {\n // Determine the DEBUG value from env parameter, global, or process.env\n const DEBUG = env?.DEBUG ||\n (typeof globalThis !== 'undefined' && (globalThis as any).DEBUG) ||\n (typeof process !== 'undefined' && process.env?.DEBUG)\n\n // If no namespace (DEV mode), check if there's no DEBUG variable\n if (namespace === 'DEV') {\n // We want to log iff there is no DEBUG variable.\n if (!DEBUG) {\n return true\n }\n return false\n }\n\n // No DEBUG variable set\n if (!DEBUG) return false\n\n // Check for wildcard\n if (DEBUG === '*') return true\n\n // Check namespace vs DEBUG env var\n const envVars = createRegexFromEnvVar(DEBUG)\n return envVars.some(regex => regex.test(namespace))\n}\n\n/**\n * Map %j to `JSON.stringify()`, since Cloudflare Workers don't\n * have Web Inspectors.\n */\nfunction createFormatters () {\n return {\n j: function (v:any) {\n try {\n return JSON.stringify(v)\n } catch (error) {\n return '[UnexpectedJSONParseError]: ' + String(error)\n }\n }\n }\n}\n\nfunction logger (\n namespace:string,\n args:any[],\n { prevTime, color },\n env?:Record<string, string>\n) {\n args = args || []\n if (!isEnabled(namespace, env)) return\n\n // Set `diff` timestamp\n const curr = Number(new Date())\n const diff = curr - (prevTime || curr)\n prevTime = curr\n\n args[0] = coerce(args[0])\n const formatters = createFormatters()\n\n if (typeof args[0] !== 'string') {\n // Anything else let's inspect with %O\n args.unshift('%O')\n }\n\n // Apply any `formatters` transformations\n let index = 0\n args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n // If we encounter an escaped %, then don't increase the\n // array index\n if (match === '%%') return '%'\n\n index++\n\n const formatter = formatters[format]\n if (typeof formatter === 'function') {\n const val = args[index]\n match = formatter.call(globalThis, val)\n\n // Now we need to remove `args[index]` since it's inlined\n // in the `format`\n args.splice(index, 1)\n index--\n }\n return match\n })\n\n // Apply Cloudflare-specific formatting (no colors in Workers typically)\n const _args = formatArgs({\n diff,\n color,\n useColors: shouldUseColors(),\n namespace\n }, args)\n\n log(..._args)\n}\n\nfunction shouldUseColors ():boolean {\n // Cloudflare Workers typically don't support colors in console output\n // But we can detect if we're in a development environment\n return false\n}\n\n/**\n * Format log arguments for Cloudflare Workers (no color support typically).\n * Mutates the given args.\n */\nfunction formatArgs ({ diff, namespace }:{\n diff:number,\n color:number,\n namespace:string,\n useColors:boolean\n}, args:string[]) {\n args[0] = namespace + ' ' + args[0] + ' +' + humanize(diff, {})\n return args\n}\n\nfunction createDebug (namespace?:string, env?:Record<string, string>):Debugger;\nfunction createDebug (enabled:boolean):Debugger;\nfunction createDebug (\n namespaceOrEnabled?:string|boolean,\n env?:Record<string, string>\n):Debugger {\n // Handle the case where first parameter is a boolean\n if (typeof namespaceOrEnabled === 'boolean') {\n if (namespaceOrEnabled === false) return noop\n // If namespaceOrEnabled is true, use DEV mode with forced logging\n return createDebug('DEV', { DEBUG: '*' })\n }\n\n const prevTime = Number(new Date())\n const color = selectColor(\n typeof namespaceOrEnabled === 'string' ?\n namespaceOrEnabled :\n generateRandomString(10),\n colors\n )\n\n const actualNamespace = typeof namespaceOrEnabled === 'string' ?\n namespaceOrEnabled :\n 'DEV'\n\n // Handle environment parameter\n let envObj:Record<string, string>|undefined\n if (typeof env === 'object') {\n envObj = env\n }\n\n const debug = function (...args:any[]) {\n return logger(\n actualNamespace,\n args,\n { prevTime, color },\n envObj\n )\n }\n\n debug.extend = function (extension:string):Debugger {\n const extendedNamespace = actualNamespace + ':' + extension\n return createDebug(extendedNamespace, envObj)\n }\n\n return debug\n}\n"],
5
- "mappings": "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",
6
- "names": ["ms_default", "val", "options", "type", "parse", "fmtLong", "fmtShort", "__name", "str", "match", "n", "ms", "msAbs", "plural", "name", "isPlural", "coerce", "val", "__name", "selectColor", "namespace", "colors", "hash", "i", "createRegexFromEnvVar", "names", "word", "r", "generateRandomString", "length", "noop", "__name", "_args", "_namespace", "log", "colors", "index_default", "createDebug", "isEnabled", "namespace", "env", "DEBUG", "createRegexFromEnvVar", "regex", "__name", "createFormatters", "v", "error", "logger", "args", "prevTime", "color", "curr", "diff", "coerce", "formatters", "index", "match", "format", "formatter", "val", "_args", "formatArgs", "shouldUseColors", "log", "ms_default", "namespaceOrEnabled", "noop", "selectColor", "generateRandomString", "colors", "actualNamespace", "envObj", "debug", "extension", "extendedNamespace"]
3
+ "sources": ["../../src/ms.ts", "../../src/index.ts", "../../src/noop.ts", "../../src/cloudflare/index.ts"],
4
+ "sourcesContent": ["/**\n * Helpers.\n */\n\nconst s = 1000\nconst m = s * 60\nconst h = m * 60\nconst d = h * 24\nconst w = d * 7\nconst 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\nexport default function (val, options:{ long?:boolean } = {}) {\n options = options || {}\n const 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 const 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 const n = parseFloat(match[1])\n const 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 const 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 const 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 const isPlural = msAbs >= n * 1.5\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '')\n}\n", "/**\n* Coerce `val`.\n*\n* @param {unknown} val\n* @return {string}\n*/\nexport function coerce (val:unknown):string {\n if (val instanceof Error) {\n return val.stack || val.message\n }\n\n return String(val)\n}\n\n/**\n * Selects a color for a debug namespace\n * @param {string} namespace The namespace string for the debug instance to be colored\n * @return {number|string} An ANSI color code for the given namespace\n */\nexport function selectColor (\n namespace:string,\n colors:string[]|number[]\n):number|string {\n let hash = 0\n\n for (let i = 0; i < namespace.length; i++) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i)\n hash |= 0 // Convert to 32bit integer\n }\n\n return colors[Math.abs(hash) % colors.length]\n}\n\nexport function createRegexFromEnvVar (names:string):RegExp[] {\n const split = names.split(/[\\s,]+/).filter(Boolean)\n const regexs = split\n .map(word => word.replace(/\\*/g, '.*?'))\n .map(r => new RegExp('^' + r + '$'))\n\n return regexs\n}\n\nexport type Debugger = {\n (...args: any[]): void;\n extend: (namespace: string) => Debugger;\n}\n\n/**\n * Use this to create a random namespace in the case that `debug`\n * is called without any arguments.\n * @param {number} length Lenght of the random string\n * @returns {string}\n */\nexport function generateRandomString (length = 6):string {\n return Math.random().toString(20).substring(2, length)\n}\n", "import { type Debugger } from './index.js'\n\nexport const noop:Debugger = function (_args:any[]) {}\nnoop.extend = function (_namespace:string) { return noop }\n\n", "import humanize from '../ms.js'\nimport {\n generateRandomString,\n coerce,\n selectColor,\n createRegexFromEnvVar,\n type Debugger\n} from '../index.js'\nimport { noop } from '../noop.js'\n\nexport * from '../index.js'\n\n// Cloudflare Workers have a limited set of Web APIs\n// No localStorage, document, or navigator\nconst log = console.log || (() => {})\n\n// Simple color palette for Cloudflare Workers (no DOM-based colors)\nconst colors = [\n '#0066CC', '#CC0066', '#66CC00', '#CC6600', '#6600CC', '#00CC66',\n '#CC0000', '#0000CC', '#00CCCC', '#CCCC00', '#CC00CC', '#666666'\n]\n\nexport { createDebug }\nexport default createDebug\n\n/**\n * Check if the given namespace is enabled in Cloudflare Workers.\n * Since there's no localStorage, we check environment variables or global DEBUG.\n * `namespace` is the name that is passed into debug.\n * `env` is an optional environment object that can contain DEBUG setting.\n */\nfunction isEnabled (namespace:string, env?:Record<string, string>):boolean {\n // Determine the DEBUG value from env parameter, global, or process.env\n const DEBUG = env?.DEBUG ||\n (typeof globalThis !== 'undefined' && (globalThis as any).DEBUG) ||\n (typeof process !== 'undefined' && process.env?.DEBUG)\n\n // If no namespace (DEV mode), check if there's no DEBUG variable\n if (namespace === 'DEV') {\n // We want to log iff there is no DEBUG variable.\n if (!DEBUG) {\n return true\n }\n return false\n }\n\n // No DEBUG variable set\n if (!DEBUG) return false\n\n // Check for wildcard\n if (DEBUG === '*') return true\n\n // Check namespace vs DEBUG env var\n const envVars = createRegexFromEnvVar(DEBUG)\n return envVars.some(regex => regex.test(namespace))\n}\n\n/**\n * Map %j to `JSON.stringify()`, since Cloudflare Workers don't\n * have Web Inspectors.\n */\nfunction createFormatters () {\n return {\n j: function (v:any) {\n try {\n return JSON.stringify(v)\n } catch (error) {\n return '[UnexpectedJSONParseError]: ' + String(error)\n }\n }\n }\n}\n\nfunction logger (\n namespace:string,\n args:any[],\n { prevTime, color },\n env?:Record<string, string>\n) {\n args = args || []\n if (!isEnabled(namespace, env)) return\n\n // Set `diff` timestamp\n const curr = Number(new Date())\n const diff = curr - (prevTime || curr)\n prevTime = curr\n\n args[0] = coerce(args[0])\n const formatters = createFormatters()\n\n if (typeof args[0] !== 'string') {\n // Anything else let's inspect with %O\n args.unshift('%O')\n }\n\n // Apply any `formatters` transformations\n let index = 0\n args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n // If we encounter an escaped %, then don't increase the\n // array index\n if (match === '%%') return '%'\n\n index++\n\n const formatter = formatters[format]\n if (typeof formatter === 'function') {\n const val = args[index]\n match = formatter.call(globalThis, val)\n\n // Now we need to remove `args[index]` since it's inlined\n // in the `format`\n args.splice(index, 1)\n index--\n }\n return match\n })\n\n // Apply Cloudflare-specific formatting (no colors in Workers typically)\n const _args = formatArgs({\n diff,\n color,\n useColors: shouldUseColors(),\n namespace\n }, args)\n\n log(..._args)\n}\n\nfunction shouldUseColors ():boolean {\n // Cloudflare Workers typically don't support colors in console output\n // But we can detect if we're in a development environment\n return false\n}\n\n/**\n * Format log arguments for Cloudflare Workers (no color support typically).\n * Mutates the given args.\n */\nfunction formatArgs ({ diff, namespace }:{\n diff:number,\n color:number,\n namespace:string,\n useColors:boolean\n}, args:string[]) {\n args[0] = namespace + ' ' + args[0] + ' +' + humanize(diff, {})\n return args\n}\n\nfunction createDebug (namespace?:string, env?:Record<string, string>):Debugger;\nfunction createDebug (enabled:boolean):Debugger;\nfunction createDebug (\n namespaceOrEnabled?:string|boolean,\n env?:Record<string, string>\n):Debugger {\n // Handle the case where first parameter is a boolean\n if (typeof namespaceOrEnabled === 'boolean') {\n if (namespaceOrEnabled === false) return noop\n // If namespaceOrEnabled is true, use DEV mode with forced logging\n return createDebug('DEV', { DEBUG: '*' })\n }\n\n const prevTime = Number(new Date())\n const color = selectColor(\n typeof namespaceOrEnabled === 'string' ?\n namespaceOrEnabled :\n generateRandomString(10),\n colors\n )\n\n const actualNamespace = typeof namespaceOrEnabled === 'string' ?\n namespaceOrEnabled :\n 'DEV'\n\n // Handle environment parameter\n let envObj:Record<string, string>|undefined\n if (typeof env === 'object') {\n envObj = env\n }\n\n const debug = function (...args:any[]) {\n return logger(\n actualNamespace,\n args,\n { prevTime, color },\n envObj\n )\n }\n\n debug.extend = function (extension:string):Debugger {\n const extendedNamespace = actualNamespace + ':' + extension\n return createDebug(extendedNamespace, envObj)\n }\n\n return debug\n}\n"],
5
+ "mappings": "+EAyBe,SAARA,EAAkBC,EAAKC,EAA4B,CAAC,EAAG,CAC1DA,EAAUA,GAAW,CAAC,EACtB,IAAMC,EAAO,OAAOF,EACpB,GAAIE,IAAS,UAAYF,EAAI,OAAS,EAClC,OAAOG,EAAMH,CAAG,EACb,GAAIE,IAAS,UAAY,SAASF,CAAG,EACxC,OAAOC,EAAQ,KAAOG,EAAQJ,CAAG,EAAIK,EAASL,CAAG,EAErD,MAAM,IAAI,MACN,wDACF,KAAK,UAAUA,CAAG,CACpB,CACJ,CAZOM,EAAAP,EAAA,WAsBP,SAASI,EAAOI,EAAK,CAEjB,GADAA,EAAM,OAAOA,CAAG,EACZA,EAAI,OAAS,IACb,OAEJ,IAAMC,EAAQ,mIAAmI,KAC7ID,CACJ,EACA,GAAI,CAACC,EACD,OAEJ,IAAMC,EAAI,WAAWD,EAAM,CAAC,CAAC,EAE7B,QADcA,EAAM,CAAC,GAAK,MAAM,YAAY,EAC9B,CACV,IAAK,QACL,IAAK,OACL,IAAK,MACL,IAAK,KACL,IAAK,IACD,OAAOC,EAAI,SACf,IAAK,QACL,IAAK,OACL,IAAK,IACD,OAAOA,EAAI,OACf,IAAK,OACL,IAAK,MACL,IAAK,IACD,OAAOA,EAAI,MACf,IAAK,QACL,IAAK,OACL,IAAK,MACL,IAAK,KACL,IAAK,IACD,OAAOA,EAAI,KACf,IAAK,UACL,IAAK,SACL,IAAK,OACL,IAAK,MACL,IAAK,IACD,OAAOA,EAAI,IACf,IAAK,UACL,IAAK,SACL,IAAK,OACL,IAAK,MACL,IAAK,IACD,OAAOA,EAAI,IACf,IAAK,eACL,IAAK,cACL,IAAK,QACL,IAAK,OACL,IAAK,KACD,OAAOA,EACX,QACI,MACR,CACJ,CAvDSH,EAAAH,EAAA,SAiET,SAASE,EAAUK,EAAI,CACnB,IAAMC,EAAQ,KAAK,IAAID,CAAE,EACzB,OAAIC,GAAS,MACF,KAAK,MAAMD,EAAK,KAAC,EAAI,IAE5BC,GAAS,KACF,KAAK,MAAMD,EAAK,IAAC,EAAI,IAE5BC,GAAS,IACF,KAAK,MAAMD,EAAK,GAAC,EAAI,IAE5BC,GAAS,IACF,KAAK,MAAMD,EAAK,GAAC,EAAI,IAEzBA,EAAK,IAChB,CAfSJ,EAAAD,EAAA,YAyBT,SAASD,EAASM,EAAI,CAClB,IAAMC,EAAQ,KAAK,IAAID,CAAE,EACzB,OAAIC,GAAS,MACFC,EAAOF,EAAIC,EAAO,MAAG,KAAK,EAEjCA,GAAS,KACFC,EAAOF,EAAIC,EAAO,KAAG,MAAM,EAElCA,GAAS,IACFC,EAAOF,EAAIC,EAAO,IAAG,QAAQ,EAEpCA,GAAS,IACFC,EAAOF,EAAIC,EAAO,IAAG,QAAQ,EAEjCD,EAAK,KAChB,CAfSJ,EAAAF,EAAA,WAqBT,SAASQ,EAAQF,EAAIC,EAAOF,EAAGI,EAAM,CACjC,IAAMC,EAAWH,GAASF,EAAI,IAC9B,OAAO,KAAK,MAAMC,EAAKD,CAAC,EAAI,IAAMI,GAAQC,EAAW,IAAM,GAC/D,CAHSR,EAAAM,EAAA,UCxJF,SAASG,EAAQC,EAAoB,CACxC,OAAIA,aAAe,MACRA,EAAI,OAASA,EAAI,QAGrB,OAAOA,CAAG,CACrB,CANgBC,EAAAF,EAAA,UAaT,SAASG,EACZC,EACAC,EACY,CACZ,IAAIC,EAAO,EAEX,QAASC,EAAI,EAAGA,EAAIH,EAAU,OAAQG,IAClCD,GAASA,GAAQ,GAAKA,EAAQF,EAAU,WAAWG,CAAC,EACpDD,GAAQ,EAGZ,OAAOD,EAAO,KAAK,IAAIC,CAAI,EAAID,EAAO,MAAM,CAChD,CAZgBH,EAAAC,EAAA,eAcT,SAASK,EAAuBC,EAAuB,CAM1D,OALcA,EAAM,MAAM,QAAQ,EAAE,OAAO,OAAO,EAE7C,IAAIC,GAAQA,EAAK,QAAQ,MAAO,KAAK,CAAC,EACtC,IAAIC,GAAK,IAAI,OAAO,IAAMA,EAAI,GAAG,CAAC,CAG3C,CAPgBT,EAAAM,EAAA,yBAoBT,SAASI,EAAsBC,EAAS,EAAU,CACrD,OAAO,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,EAAGA,CAAM,CACzD,CAFgBX,EAAAU,EAAA,wBCnDT,IAAME,EAAgBC,EAAA,SAAUC,EAAa,CAAC,EAAxB,QAC7BF,EAAK,OAAS,SAAUG,EAAmB,CAAE,OAAOH,CAAK,ECWzD,IAAMI,EAAM,QAAQ,MAAQ,IAAM,CAAC,GAG7BC,EAAS,CACX,UAAW,UAAW,UAAW,UAAW,UAAW,UACvD,UAAW,UAAW,UAAW,UAAW,UAAW,SAC3D,EAGA,IAAOC,EAAQC,EAQf,SAASC,EAAWC,EAAkBC,EAAqC,CAEvE,IAAMC,EAAQD,GAAK,OACd,OAAO,WAAe,KAAgB,WAAmB,OACzD,OAAO,QAAY,KAAe,QAAQ,KAAK,MAGpD,OAAID,IAAc,MAET,CAAAE,EAOJA,EAGDA,IAAU,IAAY,GAGVC,EAAsBD,CAAK,EAC5B,KAAKE,GAASA,EAAM,KAAKJ,CAAS,CAAC,EAP/B,EAQvB,CAxBSK,EAAAN,EAAA,aA8BT,SAASO,GAAoB,CACzB,MAAO,CACH,EAAGD,EAAA,SAAUE,EAAO,CAChB,GAAI,CACA,OAAO,KAAK,UAAUA,CAAC,CAC3B,OAASC,EAAO,CACZ,MAAO,+BAAiC,OAAOA,CAAK,CACxD,CACJ,EANG,IAOP,CACJ,CAVSH,EAAAC,EAAA,oBAYT,SAASG,EACLT,EACAU,EACA,CAAE,SAAAC,EAAU,MAAAC,CAAM,EAClBX,EACF,CAEE,GADAS,EAAOA,GAAQ,CAAC,EACZ,CAACX,EAAUC,EAAWC,CAAG,EAAG,OAGhC,IAAMY,EAAO,OAAO,IAAI,IAAM,EACxBC,EAAOD,GAAQF,GAAYE,GACjCF,EAAWE,EAEXH,EAAK,CAAC,EAAIK,EAAOL,EAAK,CAAC,CAAC,EACxB,IAAMM,EAAaV,EAAiB,EAEhC,OAAOI,EAAK,CAAC,GAAM,UAEnBA,EAAK,QAAQ,IAAI,EAIrB,IAAIO,EAAQ,EACZP,EAAK,CAAC,EAAIA,EAAK,CAAC,EAAE,QAAQ,gBAAiB,CAACQ,EAAOC,IAAW,CAG1D,GAAID,IAAU,KAAM,MAAO,IAE3BD,IAEA,IAAMG,EAAYJ,EAAWG,CAAM,EACnC,GAAI,OAAOC,GAAc,WAAY,CACjC,IAAMC,EAAMX,EAAKO,CAAK,EACtBC,EAAQE,EAAU,KAAK,WAAYC,CAAG,EAItCX,EAAK,OAAOO,EAAO,CAAC,EACpBA,GACJ,CACA,OAAOC,CACX,CAAC,EAGD,IAAMI,EAAQC,EAAW,CACrB,KAAAT,EACA,MAAAF,EACA,UAAWY,EAAgB,EAC3B,UAAAxB,CACJ,EAAGU,CAAI,EAEPe,EAAI,GAAGH,CAAK,CAChB,CArDSjB,EAAAI,EAAA,UAuDT,SAASe,GAA2B,CAGhC,MAAO,EACX,CAJSnB,EAAAmB,EAAA,mBAUT,SAASD,EAAY,CAAE,KAAAT,EAAM,UAAAd,CAAU,EAKpCU,EAAe,CACd,OAAAA,EAAK,CAAC,EAAIV,EAAY,IAAMU,EAAK,CAAC,EAAI,KAAOgB,EAASZ,EAAM,CAAC,CAAC,EACvDJ,CACX,CARSL,EAAAkB,EAAA,cAYT,SAASzB,EACL6B,EACA1B,EACO,CAEP,GAAI,OAAO0B,GAAuB,UAC9B,OAAIA,IAAuB,GAAcC,EAElC9B,EAAY,MAAO,CAAE,MAAO,GAAI,CAAC,EAG5C,IAAMa,EAAW,OAAO,IAAI,IAAM,EAC5BC,EAAQiB,EACV,OAAOF,GAAuB,SAC1BA,EACAG,EAAqB,EAAE,EAC3BC,CACJ,EAEMC,EAAkB,OAAOL,GAAuB,SAClDA,EACA,MAGAM,EACA,OAAOhC,GAAQ,WACfgC,EAAShC,GAGb,IAAMiC,EAAQ7B,EAAA,YAAaK,EAAY,CACnC,OAAOD,EACHuB,EACAtB,EACA,CAAE,SAAAC,EAAU,MAAAC,CAAM,EAClBqB,CACJ,CACJ,EAPc,SASd,OAAAC,EAAM,OAAS,SAAUC,EAA2B,CAChD,IAAMC,EAAoBJ,EAAkB,IAAMG,EAClD,OAAOrC,EAAYsC,EAAmBH,CAAM,CAChD,EAEOC,CACX,CA5CS7B,EAAAP,EAAA",
6
+ "names": ["ms_default", "val", "options", "type", "parse", "fmtLong", "fmtShort", "__name", "str", "match", "n", "ms", "msAbs", "plural", "name", "isPlural", "coerce", "val", "__name", "selectColor", "namespace", "colors", "hash", "i", "createRegexFromEnvVar", "names", "word", "r", "generateRandomString", "length", "noop", "__name", "_args", "_namespace", "log", "colors", "cloudflare_default", "createDebug", "isEnabled", "namespace", "env", "DEBUG", "createRegexFromEnvVar", "regex", "__name", "createFormatters", "v", "error", "logger", "args", "prevTime", "color", "curr", "diff", "coerce", "formatters", "index", "match", "format", "formatter", "val", "_args", "formatArgs", "shouldUseColors", "log", "ms_default", "namespaceOrEnabled", "noop", "selectColor", "generateRandomString", "colors", "actualNamespace", "envObj", "debug", "extension", "extendedNamespace"]
7
7
  }