@substrate-system/debug 0.9.21 → 0.9.23

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 (66) 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 +1 -0
  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 +3 -3
  10. package/dist/browser/index.min.js +1 -1
  11. package/dist/browser/index.min.js.map +3 -3
  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 +1 -0
  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 +3 -3
  28. package/dist/cloudflare/index.min.js +1 -1
  29. package/dist/cloudflare/index.min.js.map +3 -3
  30. package/dist/index.cjs +54 -0
  31. package/dist/index.cjs.map +7 -0
  32. package/dist/index.js +35 -0
  33. package/dist/index.js.map +7 -0
  34. package/dist/index.min.cjs +2 -0
  35. package/dist/index.min.cjs.map +7 -0
  36. package/dist/index.min.js +2 -0
  37. package/dist/index.min.js.map +7 -0
  38. package/dist/ms.cjs +140 -0
  39. package/dist/ms.cjs.map +7 -0
  40. package/dist/ms.js +121 -0
  41. package/dist/ms.js.map +7 -0
  42. package/dist/ms.min.cjs +2 -0
  43. package/dist/ms.min.cjs.map +7 -0
  44. package/dist/ms.min.js +2 -0
  45. package/dist/ms.min.js.map +7 -0
  46. package/dist/node/index.cjs +22 -155
  47. package/dist/node/index.cjs.map +4 -4
  48. package/dist/{node.d.ts → node/index.d.ts} +3 -6
  49. package/dist/node/index.d.ts.map +1 -0
  50. package/dist/node/index.js +17 -148
  51. package/dist/node/index.js.map +3 -3
  52. package/dist/node/index.min.cjs +4 -4
  53. package/dist/node/index.min.cjs.map +4 -4
  54. package/dist/node/index.min.js +4 -4
  55. package/dist/node/index.min.js.map +4 -4
  56. package/dist/noop.cjs +30 -0
  57. package/dist/noop.cjs.map +7 -0
  58. package/dist/noop.js +11 -0
  59. package/dist/noop.js.map +7 -0
  60. package/dist/noop.min.cjs +2 -0
  61. package/dist/noop.min.cjs.map +7 -0
  62. package/dist/noop.min.js +2 -0
  63. package/dist/noop.min.js.map +7 -0
  64. package/package.json +11 -8
  65. package/dist/meta.json +0 -116
  66. package/dist/node.d.ts.map +0 -1
@@ -18,6 +18,7 @@ var __copyProps = (to, from, except, desc) => {
18
18
  }
19
19
  return to;
20
20
  };
21
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
21
22
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
23
  // If the importer is in node compatibility mode or this is not an ESM
23
24
  // file that has been converted to a CommonJS file using a Babel-
@@ -27,159 +28,24 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
27
28
  mod
28
29
  ));
29
30
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
-
31
- // src/node.ts
32
- var node_exports = {};
33
- __export(node_exports, {
31
+ var index_exports = {};
32
+ __export(index_exports, {
34
33
  createDebug: () => createDebug,
35
- default: () => node_default
34
+ default: () => index_default
36
35
  });
37
- module.exports = __toCommonJS(node_exports);
38
- var import_self = require("@substrate-system/util/node/self");
36
+ module.exports = __toCommonJS(index_exports);
39
37
  var import_supports_color = __toESM(require("supports-color"), 1);
40
-
41
- // src/ms.ts
42
- var s = 1e3;
43
- var m = s * 60;
44
- var h = m * 60;
45
- var d = h * 24;
46
- var w = d * 7;
47
- var y = d * 365.25;
48
- function ms_default(val, options = {}) {
49
- options = options || {};
50
- const type = typeof val;
51
- if (type === "string" && val.length > 0) {
52
- return parse(val);
53
- } else if (type === "number" && isFinite(val)) {
54
- return options.long ? fmtLong(val) : fmtShort(val);
55
- }
56
- throw new Error(
57
- "val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
58
- );
59
- }
60
- __name(ms_default, "default");
61
- function parse(str) {
62
- str = String(str);
63
- if (str.length > 100) {
64
- return;
65
- }
66
- 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(
67
- str
68
- );
69
- if (!match) {
70
- return;
71
- }
72
- const n = parseFloat(match[1]);
73
- const type = (match[2] || "ms").toLowerCase();
74
- switch (type) {
75
- case "years":
76
- case "year":
77
- case "yrs":
78
- case "yr":
79
- case "y":
80
- return n * y;
81
- case "weeks":
82
- case "week":
83
- case "w":
84
- return n * w;
85
- case "days":
86
- case "day":
87
- case "d":
88
- return n * d;
89
- case "hours":
90
- case "hour":
91
- case "hrs":
92
- case "hr":
93
- case "h":
94
- return n * h;
95
- case "minutes":
96
- case "minute":
97
- case "mins":
98
- case "min":
99
- case "m":
100
- return n * m;
101
- case "seconds":
102
- case "second":
103
- case "secs":
104
- case "sec":
105
- case "s":
106
- return n * s;
107
- case "milliseconds":
108
- case "millisecond":
109
- case "msecs":
110
- case "msec":
111
- case "ms":
112
- return n;
113
- default:
114
- return void 0;
115
- }
116
- }
117
- __name(parse, "parse");
118
- function fmtShort(ms) {
119
- const msAbs = Math.abs(ms);
120
- if (msAbs >= d) {
121
- return Math.round(ms / d) + "d";
122
- }
123
- if (msAbs >= h) {
124
- return Math.round(ms / h) + "h";
125
- }
126
- if (msAbs >= m) {
127
- return Math.round(ms / m) + "m";
128
- }
129
- if (msAbs >= s) {
130
- return Math.round(ms / s) + "s";
131
- }
132
- return ms + "ms";
133
- }
134
- __name(fmtShort, "fmtShort");
135
- function fmtLong(ms) {
136
- const msAbs = Math.abs(ms);
137
- if (msAbs >= d) {
138
- return plural(ms, msAbs, d, "day");
139
- }
140
- if (msAbs >= h) {
141
- return plural(ms, msAbs, h, "hour");
142
- }
143
- if (msAbs >= m) {
144
- return plural(ms, msAbs, m, "minute");
145
- }
146
- if (msAbs >= s) {
147
- return plural(ms, msAbs, s, "second");
148
- }
149
- return ms + " ms";
150
- }
151
- __name(fmtLong, "fmtLong");
152
- function plural(ms, msAbs, n, name) {
153
- const isPlural = msAbs >= n * 1.5;
154
- return Math.round(ms / n) + " " + name + (isPlural ? "s" : "");
155
- }
156
- __name(plural, "plural");
157
-
158
- // src/node.ts
159
38
  var import_node_tty = __toESM(require("node:tty"), 1);
160
39
  var import_node_util = __toESM(require("node:util"), 1);
161
-
162
- // src/index.ts
163
- function coerce(val) {
164
- if (val instanceof Error) {
165
- return val.stack || val.message;
166
- }
167
- return String(val);
168
- }
169
- __name(coerce, "coerce");
170
- function createRegexFromEnvVar(names) {
171
- const split = names.split(/[\s,]+/).filter(Boolean);
172
- const regexs = split.map((word) => word.replace(/\*/g, ".*?")).map((r) => new RegExp("^" + r + "$"));
173
- return regexs;
174
- }
175
- __name(createRegexFromEnvVar, "createRegexFromEnvVar");
176
- function generateRandomString(length = 6) {
177
- return Math.random().toString(20).substring(2, length);
178
- }
179
- __name(generateRandomString, "generateRandomString");
180
-
181
- // src/node.ts
182
- var colors = import_supports_color.default && // @ts-expect-error ???
40
+ var import__ = require("../index.js");
41
+ var import_ms = __toESM(require("../ms.js"), 1);
42
+ __reExport(index_exports, require("../index.js"), module.exports);
43
+ (function() {
44
+ if (typeof self === "undefined" && typeof global === "object") {
45
+ global.self = global;
46
+ }
47
+ })();
48
+ const colors = import_supports_color.default && // @ts-expect-error ???
183
49
  (import_supports_color.default.stderr || import_supports_color.default).level >= 2 ? [
184
50
  20,
185
51
  21,
@@ -285,10 +151,10 @@ function createFormatters(useColors, inspectOpts = {}) {
285
151
  };
286
152
  }
287
153
  __name(createFormatters, "createFormatters");
288
- var randomNamespace = "";
154
+ let randomNamespace = "";
289
155
  function createDebug(namespace, env) {
290
156
  let prevTime = Number(/* @__PURE__ */ new Date());
291
- if (!randomNamespace) randomNamespace = generateRandomString(10);
157
+ if (!randomNamespace) randomNamespace = (0, import__.generateRandomString)(10);
292
158
  const _namespace = namespace || randomNamespace;
293
159
  const color = selectColor(_namespace, colors);
294
160
  function debug(...args) {
@@ -307,12 +173,12 @@ __name(createDebug, "createDebug");
307
173
  createDebug.shouldLog = function(envString) {
308
174
  return envString && (envString === "development" || envString === "test");
309
175
  };
310
- var node_default = createDebug;
176
+ var index_default = createDebug;
311
177
  function logger(namespace, args, { prevTime, color }) {
312
178
  const curr = Number(/* @__PURE__ */ new Date());
313
179
  const diff = curr - (prevTime || curr);
314
180
  prevTime = curr;
315
- args[0] = coerce(args[0]);
181
+ args[0] = (0, import__.coerce)(args[0]);
316
182
  const formatters = createFormatters(shouldUseColors());
317
183
  if (typeof args[0] !== "string") {
318
184
  args.unshift("%O");
@@ -345,7 +211,7 @@ function isEnabled(namespace, _env) {
345
211
  return !!createDebug.shouldLog(env.NODE_ENV);
346
212
  }
347
213
  if (!env.DEBUG) return false;
348
- const envVars = createRegexFromEnvVar(env.DEBUG);
214
+ const envVars = (0, import__.createRegexFromEnvVar)(env.DEBUG);
349
215
  return envVars.some((regex) => regex.test(namespace));
350
216
  }
351
217
  __name(isEnabled, "isEnabled");
@@ -356,7 +222,7 @@ function formatArgs({ diff, color, namespace, useColors }, args) {
356
222
  const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c);
357
223
  const prefix = ` ${colorCode};1m${namespace} \x1B[0m`;
358
224
  args[0] = prefix + args[0].split("\n").join("\n" + prefix);
359
- args.push(colorCode + "m+" + ms_default(diff) + "\x1B[0m");
225
+ args.push(colorCode + "m+" + (0, import_ms.default)(diff) + "\x1B[0m");
360
226
  } else {
361
227
  args[0] = getDate() + " " + namespace + " " + args[0];
362
228
  }
@@ -374,6 +240,7 @@ function selectColor(namespace, colors2) {
374
240
  __name(selectColor, "selectColor");
375
241
  // Annotate the CommonJS export names for ESM import in node:
376
242
  0 && (module.exports = {
377
- createDebug
243
+ createDebug,
244
+ ...require("../index.js")
378
245
  });
379
246
  //# sourceMappingURL=index.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/node.ts", "../../src/ms.ts", "../../src/index.ts"],
4
- "sourcesContent": ["import '@substrate-system/util/node/self'\nimport supportsColor from 'supports-color'\nimport ms from './ms.js'\nimport tty from 'node:tty'\nimport util from 'node:util'\nimport { generateRandomString, coerce, createRegexFromEnvVar } from './index.js'\n\nconst colors:number[] = (supportsColor &&\n // @ts-expect-error ???\n (supportsColor.stderr || supportsColor).level >= 2) ? ([\n 20,\n 21,\n 26,\n 27,\n 32,\n 33,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 56,\n 57,\n 62,\n 63,\n 68,\n 69,\n 74,\n 75,\n 76,\n 77,\n 78,\n 79,\n 80,\n 81,\n 92,\n 93,\n 98,\n 99,\n 112,\n 113,\n 128,\n 129,\n 134,\n 135,\n 148,\n 149,\n 160,\n 161,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 171,\n 172,\n 173,\n 178,\n 179,\n 184,\n 185,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 203,\n 204,\n 205,\n 206,\n 207,\n 208,\n 209,\n 214,\n 215,\n 220,\n 221\n ]) :\n ([6, 2, 3, 4, 5, 1])\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\nfunction shouldUseColors ():boolean {\n return tty.isatty(process.stderr.fd) || !!process.env.FORCE_COLOR\n}\n\nfunction getDate ():string {\n return new Date().toISOString()\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\nfunction log (...args:any[]):boolean {\n return process.stderr.write(util.format(...args) + '\\n')\n}\n\n/**\n * Mutate formatters\n * Map %o to `util.inspect()`, all on a single line.\n */\nfunction createFormatters (useColors:boolean, inspectOpts = {}) {\n return {\n o: function (v) {\n return util.inspect(v, Object.assign({}, inspectOpts, {\n colors: useColors\n }))\n .split('\\n')\n .map(str => str.trim())\n .join(' ')\n },\n\n O: function (v) {\n return util.inspect(v, Object.assign({}, inspectOpts, {\n colors: shouldUseColors()\n }))\n }\n }\n}\n\nlet randomNamespace:string = ''\n\nexport interface Debugger {\n (...args: any[]): void;\n extend: (namespace: string) => Debugger;\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {string} namespace\n * @return {Function}\n */\nexport function createDebug (namespace?:string|null, env?:Record<string, any>):Debugger {\n // eslint-disable-next-line\n let prevTime = Number(new Date())\n if (!randomNamespace) randomNamespace = generateRandomString(10)\n const _namespace = namespace || randomNamespace\n const color = selectColor(_namespace, colors)\n\n function debug (...args:any[]) {\n if (isEnabled(namespace, env)) {\n return logger(namespace || 'DEV', args, { prevTime, color })\n }\n }\n\n debug.extend = function (extension: string):Debugger {\n const extendedNamespace = _namespace + ':' + extension\n return createDebug(extendedNamespace, env)\n }\n\n return debug as Debugger\n}\n\ncreateDebug.shouldLog = function (envString:string) {\n return (envString && (envString === 'development' || envString === 'test'))\n}\n\nexport default createDebug\n\nfunction logger (namespace:string, args:any[], { prevTime, color }) {\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(shouldUseColors())\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(self, 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 env-specific formatting (colors, etc.)\n const _args = formatArgs({\n diff,\n color,\n useColors: shouldUseColors(),\n namespace\n }, args)\n\n log(..._args)\n}\n\n/**\n * Check if the given namespace is enabled.\n */\nfunction isEnabled (namespace?:string|null, _env?:Record<string, string>):boolean {\n const env = _env || process.env\n\n // if no namespace, and we are in dev mode\n if (!namespace) {\n return !!createDebug.shouldLog(env.NODE_ENV!)\n }\n\n // there is a namespace\n if (!env.DEBUG) return false // if no env DEBUG mode\n\n // else check namespace vs DEBUG env var\n const envVars = createRegexFromEnvVar(env.DEBUG)\n return envVars.some(regex => regex.test(namespace))\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n */\nfunction formatArgs ({ diff, color, namespace, useColors }:{\n diff:number,\n color:number,\n namespace:string,\n useColors:boolean\n}, args:string[]):string[] {\n args = args || []\n\n if (useColors) {\n const c = color\n const colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c)\n const prefix = ` ${colorCode};1m${namespace} \\u001B[0m`\n\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix)\n args.push(colorCode + 'm+' + ms(diff) + '\\u001B[0m')\n } else {\n args[0] = getDate() + ' ' + namespace + ' ' + args[0]\n }\n\n return args\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 * @param {number[]} colors The namespace string for the debug instance to be colored\n * @return {number} An ANSI color code for the given namespace\n */\nfunction selectColor (namespace:string, colors:number[]):number {\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", "/**\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"],
5
- "mappings": "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",
6
- "names": ["supportsColor", "tty", "util", "colors"]
3
+ "sources": ["../../src/node/index.ts"],
4
+ "sourcesContent": ["import supportsColor from 'supports-color'\nimport tty from 'node:tty'\nimport util from 'node:util'\nimport {\n generateRandomString,\n coerce,\n createRegexFromEnvVar,\n type Debugger\n} from '../index.js'\nimport ms from '../ms.js'\n\nexport * from '../index.js'\n\n(function () {\n if (typeof self === 'undefined' && typeof global === 'object') {\n // @ts-expect-error self\n global.self = global\n }\n})()\n\nconst colors:number[] = (supportsColor &&\n // @ts-expect-error ???\n (supportsColor.stderr || supportsColor).level >= 2) ? ([\n 20,\n 21,\n 26,\n 27,\n 32,\n 33,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 56,\n 57,\n 62,\n 63,\n 68,\n 69,\n 74,\n 75,\n 76,\n 77,\n 78,\n 79,\n 80,\n 81,\n 92,\n 93,\n 98,\n 99,\n 112,\n 113,\n 128,\n 129,\n 134,\n 135,\n 148,\n 149,\n 160,\n 161,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 171,\n 172,\n 173,\n 178,\n 179,\n 184,\n 185,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 203,\n 204,\n 205,\n 206,\n 207,\n 208,\n 209,\n 214,\n 215,\n 220,\n 221\n ]) :\n ([6, 2, 3, 4, 5, 1])\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\nfunction shouldUseColors ():boolean {\n return tty.isatty(process.stderr.fd) || !!process.env.FORCE_COLOR\n}\n\nfunction getDate ():string {\n return new Date().toISOString()\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\nfunction log (...args:any[]):boolean {\n return process.stderr.write(util.format(...args) + '\\n')\n}\n\n/**\n * Mutate formatters\n * Map %o to `util.inspect()`, all on a single line.\n */\nfunction createFormatters (useColors:boolean, inspectOpts = {}) {\n return {\n o: function (v) {\n return util.inspect(v, Object.assign({}, inspectOpts, {\n colors: useColors\n }))\n .split('\\n')\n .map(str => str.trim())\n .join(' ')\n },\n\n O: function (v) {\n return util.inspect(v, Object.assign({}, inspectOpts, {\n colors: shouldUseColors()\n }))\n }\n }\n}\n\nlet randomNamespace:string = ''\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {string} namespace\n * @return {Function}\n */\nexport function createDebug (namespace?:string|null, env?:Record<string, any>):Debugger {\n // eslint-disable-next-line\n let prevTime = Number(new Date())\n if (!randomNamespace) randomNamespace = generateRandomString(10)\n const _namespace = namespace || randomNamespace\n const color = selectColor(_namespace, colors)\n\n function debug (...args:any[]) {\n if (isEnabled(namespace, env)) {\n return logger(namespace || 'DEV', args, { prevTime, color })\n }\n }\n\n debug.extend = function (extension: string):Debugger {\n const extendedNamespace = _namespace + ':' + extension\n return createDebug(extendedNamespace, env)\n }\n\n return debug as Debugger\n}\n\ncreateDebug.shouldLog = function (envString:string) {\n return (envString && (envString === 'development' || envString === 'test'))\n}\n\nexport default createDebug\n\nfunction logger (namespace:string, args:any[], { prevTime, color }) {\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(shouldUseColors())\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(self, 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 env-specific formatting (colors, etc.)\n const _args = formatArgs({\n diff,\n color,\n useColors: shouldUseColors(),\n namespace\n }, args)\n\n log(..._args)\n}\n\n/**\n * Check if the given namespace is enabled.\n */\nfunction isEnabled (namespace?:string|null, _env?:Record<string, string>):boolean {\n const env = _env || process.env\n\n // if no namespace, and we are in dev mode\n if (!namespace) {\n return !!createDebug.shouldLog(env.NODE_ENV!)\n }\n\n // there is a namespace\n if (!env.DEBUG) return false // if no env DEBUG mode\n\n // else check namespace vs DEBUG env var\n const envVars = createRegexFromEnvVar(env.DEBUG)\n return envVars.some(regex => regex.test(namespace))\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n */\nfunction formatArgs ({ diff, color, namespace, useColors }:{\n diff:number,\n color:number,\n namespace:string,\n useColors:boolean\n}, args:string[]):string[] {\n args = args || []\n\n if (useColors) {\n const c = color\n const colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c)\n const prefix = ` ${colorCode};1m${namespace} \\u001B[0m`\n\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix)\n args.push(colorCode + 'm+' + ms(diff) + '\\u001B[0m')\n } else {\n args[0] = getDate() + ' ' + namespace + ' ' + args[0]\n }\n\n return args\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 * @param {number[]} colors The namespace string for the debug instance to be colored\n * @return {number} An ANSI color code for the given namespace\n */\nfunction selectColor (namespace:string, colors:number[]):number {\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"],
5
+ "mappings": "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",
6
+ "names": ["supportsColor", "tty", "util", "ms", "colors"]
7
7
  }
@@ -1,8 +1,5 @@
1
- import '@substrate-system/util/node/self';
2
- export interface Debugger {
3
- (...args: any[]): void;
4
- extend: (namespace: string) => Debugger;
5
- }
1
+ import { type Debugger } from '../index.js';
2
+ export * from '../index.js';
6
3
  /**
7
4
  * Create a debugger with the given `namespace`.
8
5
  *
@@ -14,4 +11,4 @@ export declare namespace createDebug {
14
11
  var shouldLog: (envString: string) => boolean | "";
15
12
  }
16
13
  export default createDebug;
17
- //# sourceMappingURL=node.d.ts.map
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAIH,KAAK,QAAQ,EAChB,MAAM,aAAa,CAAA;AAGpB,cAAc,aAAa,CAAA;AAsI3B;;;;;GAKG;AACH,wBAAgB,WAAW,CAAE,SAAS,CAAC,EAAC,MAAM,GAAC,IAAI,EAAE,GAAG,CAAC,EAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAE,QAAQ,CAmBtF;yBAnBe,WAAW;+BAqBiB,MAAM;;AAIlD,eAAe,WAAW,CAAA"}
@@ -1,152 +1,21 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
-
4
- // src/node.ts
5
- import "@substrate-system/util/node/self";
6
3
  import supportsColor from "supports-color";
7
-
8
- // src/ms.ts
9
- var s = 1e3;
10
- var m = s * 60;
11
- var h = m * 60;
12
- var d = h * 24;
13
- var w = d * 7;
14
- var y = d * 365.25;
15
- function ms_default(val, options = {}) {
16
- options = options || {};
17
- const type = typeof val;
18
- if (type === "string" && val.length > 0) {
19
- return parse(val);
20
- } else if (type === "number" && isFinite(val)) {
21
- return options.long ? fmtLong(val) : fmtShort(val);
22
- }
23
- throw new Error(
24
- "val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
25
- );
26
- }
27
- __name(ms_default, "default");
28
- function parse(str) {
29
- str = String(str);
30
- if (str.length > 100) {
31
- return;
32
- }
33
- 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(
34
- str
35
- );
36
- if (!match) {
37
- return;
38
- }
39
- const n = parseFloat(match[1]);
40
- const type = (match[2] || "ms").toLowerCase();
41
- switch (type) {
42
- case "years":
43
- case "year":
44
- case "yrs":
45
- case "yr":
46
- case "y":
47
- return n * y;
48
- case "weeks":
49
- case "week":
50
- case "w":
51
- return n * w;
52
- case "days":
53
- case "day":
54
- case "d":
55
- return n * d;
56
- case "hours":
57
- case "hour":
58
- case "hrs":
59
- case "hr":
60
- case "h":
61
- return n * h;
62
- case "minutes":
63
- case "minute":
64
- case "mins":
65
- case "min":
66
- case "m":
67
- return n * m;
68
- case "seconds":
69
- case "second":
70
- case "secs":
71
- case "sec":
72
- case "s":
73
- return n * s;
74
- case "milliseconds":
75
- case "millisecond":
76
- case "msecs":
77
- case "msec":
78
- case "ms":
79
- return n;
80
- default:
81
- return void 0;
82
- }
83
- }
84
- __name(parse, "parse");
85
- function fmtShort(ms) {
86
- const msAbs = Math.abs(ms);
87
- if (msAbs >= d) {
88
- return Math.round(ms / d) + "d";
89
- }
90
- if (msAbs >= h) {
91
- return Math.round(ms / h) + "h";
92
- }
93
- if (msAbs >= m) {
94
- return Math.round(ms / m) + "m";
95
- }
96
- if (msAbs >= s) {
97
- return Math.round(ms / s) + "s";
98
- }
99
- return ms + "ms";
100
- }
101
- __name(fmtShort, "fmtShort");
102
- function fmtLong(ms) {
103
- const msAbs = Math.abs(ms);
104
- if (msAbs >= d) {
105
- return plural(ms, msAbs, d, "day");
106
- }
107
- if (msAbs >= h) {
108
- return plural(ms, msAbs, h, "hour");
109
- }
110
- if (msAbs >= m) {
111
- return plural(ms, msAbs, m, "minute");
112
- }
113
- if (msAbs >= s) {
114
- return plural(ms, msAbs, s, "second");
115
- }
116
- return ms + " ms";
117
- }
118
- __name(fmtLong, "fmtLong");
119
- function plural(ms, msAbs, n, name) {
120
- const isPlural = msAbs >= n * 1.5;
121
- return Math.round(ms / n) + " " + name + (isPlural ? "s" : "");
122
- }
123
- __name(plural, "plural");
124
-
125
- // src/node.ts
126
4
  import tty from "node:tty";
127
5
  import util from "node:util";
128
-
129
- // src/index.ts
130
- function coerce(val) {
131
- if (val instanceof Error) {
132
- return val.stack || val.message;
133
- }
134
- return String(val);
135
- }
136
- __name(coerce, "coerce");
137
- function createRegexFromEnvVar(names) {
138
- const split = names.split(/[\s,]+/).filter(Boolean);
139
- const regexs = split.map((word) => word.replace(/\*/g, ".*?")).map((r) => new RegExp("^" + r + "$"));
140
- return regexs;
141
- }
142
- __name(createRegexFromEnvVar, "createRegexFromEnvVar");
143
- function generateRandomString(length = 6) {
144
- return Math.random().toString(20).substring(2, length);
145
- }
146
- __name(generateRandomString, "generateRandomString");
147
-
148
- // src/node.ts
149
- var colors = supportsColor && // @ts-expect-error ???
6
+ import {
7
+ generateRandomString,
8
+ coerce,
9
+ createRegexFromEnvVar
10
+ } from "../index.js";
11
+ import ms from "../ms.js";
12
+ export * from "../index.js";
13
+ (function() {
14
+ if (typeof self === "undefined" && typeof global === "object") {
15
+ global.self = global;
16
+ }
17
+ })();
18
+ const colors = supportsColor && // @ts-expect-error ???
150
19
  (supportsColor.stderr || supportsColor).level >= 2 ? [
151
20
  20,
152
21
  21,
@@ -252,7 +121,7 @@ function createFormatters(useColors, inspectOpts = {}) {
252
121
  };
253
122
  }
254
123
  __name(createFormatters, "createFormatters");
255
- var randomNamespace = "";
124
+ let randomNamespace = "";
256
125
  function createDebug(namespace, env) {
257
126
  let prevTime = Number(/* @__PURE__ */ new Date());
258
127
  if (!randomNamespace) randomNamespace = generateRandomString(10);
@@ -274,7 +143,7 @@ __name(createDebug, "createDebug");
274
143
  createDebug.shouldLog = function(envString) {
275
144
  return envString && (envString === "development" || envString === "test");
276
145
  };
277
- var node_default = createDebug;
146
+ var index_default = createDebug;
278
147
  function logger(namespace, args, { prevTime, color }) {
279
148
  const curr = Number(/* @__PURE__ */ new Date());
280
149
  const diff = curr - (prevTime || curr);
@@ -323,7 +192,7 @@ function formatArgs({ diff, color, namespace, useColors }, args) {
323
192
  const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c);
324
193
  const prefix = ` ${colorCode};1m${namespace} \x1B[0m`;
325
194
  args[0] = prefix + args[0].split("\n").join("\n" + prefix);
326
- args.push(colorCode + "m+" + ms_default(diff) + "\x1B[0m");
195
+ args.push(colorCode + "m+" + ms(diff) + "\x1B[0m");
327
196
  } else {
328
197
  args[0] = getDate() + " " + namespace + " " + args[0];
329
198
  }
@@ -341,6 +210,6 @@ function selectColor(namespace, colors2) {
341
210
  __name(selectColor, "selectColor");
342
211
  export {
343
212
  createDebug,
344
- node_default as default
213
+ index_default as default
345
214
  };
346
215
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/node.ts", "../../src/ms.ts", "../../src/index.ts"],
4
- "sourcesContent": ["import '@substrate-system/util/node/self'\nimport supportsColor from 'supports-color'\nimport ms from './ms.js'\nimport tty from 'node:tty'\nimport util from 'node:util'\nimport { generateRandomString, coerce, createRegexFromEnvVar } from './index.js'\n\nconst colors:number[] = (supportsColor &&\n // @ts-expect-error ???\n (supportsColor.stderr || supportsColor).level >= 2) ? ([\n 20,\n 21,\n 26,\n 27,\n 32,\n 33,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 56,\n 57,\n 62,\n 63,\n 68,\n 69,\n 74,\n 75,\n 76,\n 77,\n 78,\n 79,\n 80,\n 81,\n 92,\n 93,\n 98,\n 99,\n 112,\n 113,\n 128,\n 129,\n 134,\n 135,\n 148,\n 149,\n 160,\n 161,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 171,\n 172,\n 173,\n 178,\n 179,\n 184,\n 185,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 203,\n 204,\n 205,\n 206,\n 207,\n 208,\n 209,\n 214,\n 215,\n 220,\n 221\n ]) :\n ([6, 2, 3, 4, 5, 1])\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\nfunction shouldUseColors ():boolean {\n return tty.isatty(process.stderr.fd) || !!process.env.FORCE_COLOR\n}\n\nfunction getDate ():string {\n return new Date().toISOString()\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\nfunction log (...args:any[]):boolean {\n return process.stderr.write(util.format(...args) + '\\n')\n}\n\n/**\n * Mutate formatters\n * Map %o to `util.inspect()`, all on a single line.\n */\nfunction createFormatters (useColors:boolean, inspectOpts = {}) {\n return {\n o: function (v) {\n return util.inspect(v, Object.assign({}, inspectOpts, {\n colors: useColors\n }))\n .split('\\n')\n .map(str => str.trim())\n .join(' ')\n },\n\n O: function (v) {\n return util.inspect(v, Object.assign({}, inspectOpts, {\n colors: shouldUseColors()\n }))\n }\n }\n}\n\nlet randomNamespace:string = ''\n\nexport interface Debugger {\n (...args: any[]): void;\n extend: (namespace: string) => Debugger;\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {string} namespace\n * @return {Function}\n */\nexport function createDebug (namespace?:string|null, env?:Record<string, any>):Debugger {\n // eslint-disable-next-line\n let prevTime = Number(new Date())\n if (!randomNamespace) randomNamespace = generateRandomString(10)\n const _namespace = namespace || randomNamespace\n const color = selectColor(_namespace, colors)\n\n function debug (...args:any[]) {\n if (isEnabled(namespace, env)) {\n return logger(namespace || 'DEV', args, { prevTime, color })\n }\n }\n\n debug.extend = function (extension: string):Debugger {\n const extendedNamespace = _namespace + ':' + extension\n return createDebug(extendedNamespace, env)\n }\n\n return debug as Debugger\n}\n\ncreateDebug.shouldLog = function (envString:string) {\n return (envString && (envString === 'development' || envString === 'test'))\n}\n\nexport default createDebug\n\nfunction logger (namespace:string, args:any[], { prevTime, color }) {\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(shouldUseColors())\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(self, 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 env-specific formatting (colors, etc.)\n const _args = formatArgs({\n diff,\n color,\n useColors: shouldUseColors(),\n namespace\n }, args)\n\n log(..._args)\n}\n\n/**\n * Check if the given namespace is enabled.\n */\nfunction isEnabled (namespace?:string|null, _env?:Record<string, string>):boolean {\n const env = _env || process.env\n\n // if no namespace, and we are in dev mode\n if (!namespace) {\n return !!createDebug.shouldLog(env.NODE_ENV!)\n }\n\n // there is a namespace\n if (!env.DEBUG) return false // if no env DEBUG mode\n\n // else check namespace vs DEBUG env var\n const envVars = createRegexFromEnvVar(env.DEBUG)\n return envVars.some(regex => regex.test(namespace))\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n */\nfunction formatArgs ({ diff, color, namespace, useColors }:{\n diff:number,\n color:number,\n namespace:string,\n useColors:boolean\n}, args:string[]):string[] {\n args = args || []\n\n if (useColors) {\n const c = color\n const colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c)\n const prefix = ` ${colorCode};1m${namespace} \\u001B[0m`\n\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix)\n args.push(colorCode + 'm+' + ms(diff) + '\\u001B[0m')\n } else {\n args[0] = getDate() + ' ' + namespace + ' ' + args[0]\n }\n\n return args\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 * @param {number[]} colors The namespace string for the debug instance to be colored\n * @return {number} An ANSI color code for the given namespace\n */\nfunction selectColor (namespace:string, colors:number[]):number {\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", "/**\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"],
5
- "mappings": "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",
3
+ "sources": ["../../src/node/index.ts"],
4
+ "sourcesContent": ["import supportsColor from 'supports-color'\nimport tty from 'node:tty'\nimport util from 'node:util'\nimport {\n generateRandomString,\n coerce,\n createRegexFromEnvVar,\n type Debugger\n} from '../index.js'\nimport ms from '../ms.js'\n\nexport * from '../index.js'\n\n(function () {\n if (typeof self === 'undefined' && typeof global === 'object') {\n // @ts-expect-error self\n global.self = global\n }\n})()\n\nconst colors:number[] = (supportsColor &&\n // @ts-expect-error ???\n (supportsColor.stderr || supportsColor).level >= 2) ? ([\n 20,\n 21,\n 26,\n 27,\n 32,\n 33,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 56,\n 57,\n 62,\n 63,\n 68,\n 69,\n 74,\n 75,\n 76,\n 77,\n 78,\n 79,\n 80,\n 81,\n 92,\n 93,\n 98,\n 99,\n 112,\n 113,\n 128,\n 129,\n 134,\n 135,\n 148,\n 149,\n 160,\n 161,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 171,\n 172,\n 173,\n 178,\n 179,\n 184,\n 185,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 203,\n 204,\n 205,\n 206,\n 207,\n 208,\n 209,\n 214,\n 215,\n 220,\n 221\n ]) :\n ([6, 2, 3, 4, 5, 1])\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\nfunction shouldUseColors ():boolean {\n return tty.isatty(process.stderr.fd) || !!process.env.FORCE_COLOR\n}\n\nfunction getDate ():string {\n return new Date().toISOString()\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\nfunction log (...args:any[]):boolean {\n return process.stderr.write(util.format(...args) + '\\n')\n}\n\n/**\n * Mutate formatters\n * Map %o to `util.inspect()`, all on a single line.\n */\nfunction createFormatters (useColors:boolean, inspectOpts = {}) {\n return {\n o: function (v) {\n return util.inspect(v, Object.assign({}, inspectOpts, {\n colors: useColors\n }))\n .split('\\n')\n .map(str => str.trim())\n .join(' ')\n },\n\n O: function (v) {\n return util.inspect(v, Object.assign({}, inspectOpts, {\n colors: shouldUseColors()\n }))\n }\n }\n}\n\nlet randomNamespace:string = ''\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {string} namespace\n * @return {Function}\n */\nexport function createDebug (namespace?:string|null, env?:Record<string, any>):Debugger {\n // eslint-disable-next-line\n let prevTime = Number(new Date())\n if (!randomNamespace) randomNamespace = generateRandomString(10)\n const _namespace = namespace || randomNamespace\n const color = selectColor(_namespace, colors)\n\n function debug (...args:any[]) {\n if (isEnabled(namespace, env)) {\n return logger(namespace || 'DEV', args, { prevTime, color })\n }\n }\n\n debug.extend = function (extension: string):Debugger {\n const extendedNamespace = _namespace + ':' + extension\n return createDebug(extendedNamespace, env)\n }\n\n return debug as Debugger\n}\n\ncreateDebug.shouldLog = function (envString:string) {\n return (envString && (envString === 'development' || envString === 'test'))\n}\n\nexport default createDebug\n\nfunction logger (namespace:string, args:any[], { prevTime, color }) {\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(shouldUseColors())\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(self, 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 env-specific formatting (colors, etc.)\n const _args = formatArgs({\n diff,\n color,\n useColors: shouldUseColors(),\n namespace\n }, args)\n\n log(..._args)\n}\n\n/**\n * Check if the given namespace is enabled.\n */\nfunction isEnabled (namespace?:string|null, _env?:Record<string, string>):boolean {\n const env = _env || process.env\n\n // if no namespace, and we are in dev mode\n if (!namespace) {\n return !!createDebug.shouldLog(env.NODE_ENV!)\n }\n\n // there is a namespace\n if (!env.DEBUG) return false // if no env DEBUG mode\n\n // else check namespace vs DEBUG env var\n const envVars = createRegexFromEnvVar(env.DEBUG)\n return envVars.some(regex => regex.test(namespace))\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n */\nfunction formatArgs ({ diff, color, namespace, useColors }:{\n diff:number,\n color:number,\n namespace:string,\n useColors:boolean\n}, args:string[]):string[] {\n args = args || []\n\n if (useColors) {\n const c = color\n const colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c)\n const prefix = ` ${colorCode};1m${namespace} \\u001B[0m`\n\n args[0] = prefix + args[0].split('\\n').join('\\n' + prefix)\n args.push(colorCode + 'm+' + ms(diff) + '\\u001B[0m')\n } else {\n args[0] = getDate() + ' ' + namespace + ' ' + args[0]\n }\n\n return args\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 * @param {number[]} colors The namespace string for the debug instance to be colored\n * @return {number} An ANSI color code for the given namespace\n */\nfunction selectColor (namespace:string, colors:number[]):number {\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"],
5
+ "mappings": "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",
6
6
  "names": ["colors"]
7
7
  }