@substrate-system/debug 0.9.10 → 0.9.13

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.
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/node.ts", "../src/ms.ts", "../src/common.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 './common.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\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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAO;AACP,4BAA0B;;;ACG1B,IAAM,IAAI;AACV,IAAM,IAAI,IAAI;AACd,IAAM,IAAI,IAAI;AACd,IAAM,IAAI,IAAI;AACd,IAAM,IAAI,IAAI;AACd,IAAM,IAAI,IAAI;AAgBC,SAAR,WAAkB,KAAK,UAA4B,CAAC,GAAG;AAC1D,YAAU,WAAW,CAAC;AACtB,QAAM,OAAO,OAAO;AACpB,MAAI,SAAS,YAAY,IAAI,SAAS,GAAG;AACrC,WAAO,MAAM,GAAG;AAAA,EACpB,WAAW,SAAS,YAAY,SAAS,GAAG,GAAG;AAC3C,WAAO,QAAQ,OAAO,QAAQ,GAAG,IAAI,SAAS,GAAG;AAAA,EACrD;AACA,QAAM,IAAI;AAAA,IACN,0DACF,KAAK,UAAU,GAAG;AAAA,EACpB;AACJ;AAZO;AAsBP,SAAS,MAAO,KAAK;AACjB,QAAM,OAAO,GAAG;AAChB,MAAI,IAAI,SAAS,KAAK;AAClB;AAAA,EACJ;AACA,QAAM,QAAQ,mIAAmI;AAAA,IAC7I;AAAA,EACJ;AACA,MAAI,CAAC,OAAO;AACR;AAAA,EACJ;AACA,QAAM,IAAI,WAAW,MAAM,CAAC,CAAC;AAC7B,QAAM,QAAQ,MAAM,CAAC,KAAK,MAAM,YAAY;AAC5C,UAAQ,MAAM;AAAA,IACV,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,aAAO,IAAI;AAAA,IACf,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,aAAO,IAAI;AAAA,IACf,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,aAAO,IAAI;AAAA,IACf,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,aAAO,IAAI;AAAA,IACf,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,aAAO,IAAI;AAAA,IACf,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,aAAO,IAAI;AAAA,IACf,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,aAAO;AAAA,IACX;AACI,aAAO;AAAA,EACf;AACJ;AAvDS;AAiET,SAAS,SAAU,IAAI;AACnB,QAAM,QAAQ,KAAK,IAAI,EAAE;AACzB,MAAI,SAAS,GAAG;AACZ,WAAO,KAAK,MAAM,KAAK,CAAC,IAAI;AAAA,EAChC;AACA,MAAI,SAAS,GAAG;AACZ,WAAO,KAAK,MAAM,KAAK,CAAC,IAAI;AAAA,EAChC;AACA,MAAI,SAAS,GAAG;AACZ,WAAO,KAAK,MAAM,KAAK,CAAC,IAAI;AAAA,EAChC;AACA,MAAI,SAAS,GAAG;AACZ,WAAO,KAAK,MAAM,KAAK,CAAC,IAAI;AAAA,EAChC;AACA,SAAO,KAAK;AAChB;AAfS;AAyBT,SAAS,QAAS,IAAI;AAClB,QAAM,QAAQ,KAAK,IAAI,EAAE;AACzB,MAAI,SAAS,GAAG;AACZ,WAAO,OAAO,IAAI,OAAO,GAAG,KAAK;AAAA,EACrC;AACA,MAAI,SAAS,GAAG;AACZ,WAAO,OAAO,IAAI,OAAO,GAAG,MAAM;AAAA,EACtC;AACA,MAAI,SAAS,GAAG;AACZ,WAAO,OAAO,IAAI,OAAO,GAAG,QAAQ;AAAA,EACxC;AACA,MAAI,SAAS,GAAG;AACZ,WAAO,OAAO,IAAI,OAAO,GAAG,QAAQ;AAAA,EACxC;AACA,SAAO,KAAK;AAChB;AAfS;AAqBT,SAAS,OAAQ,IAAI,OAAO,GAAG,MAAM;AACjC,QAAM,WAAW,SAAS,IAAI;AAC9B,SAAO,KAAK,MAAM,KAAK,CAAC,IAAI,MAAM,QAAQ,WAAW,MAAM;AAC/D;AAHS;;;AD3JT,sBAAgB;AAChB,uBAAiB;;;AEEV,SAAS,OAAQ,KAAoB;AACxC,MAAI,eAAe,OAAO;AACtB,WAAO,IAAI,SAAS,IAAI;AAAA,EAC5B;AAEA,SAAO,OAAO,GAAG;AACrB;AANgB;AA2BT,SAAS,sBAAuB,OAAuB;AAC1D,QAAM,QAAQ,MAAM,MAAM,QAAQ,EAAE,OAAO,OAAO;AAClD,QAAM,SAAS,MACV,IAAI,UAAQ,KAAK,QAAQ,OAAO,KAAK,CAAC,EACtC,IAAI,OAAK,IAAI,OAAO,MAAM,IAAI,GAAG,CAAC;AAEvC,SAAO;AACX;AAPgB;AAeT,SAAS,qBAAsB,SAAS,GAAU;AACrD,SAAO,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,GAAG,MAAM;AACzD;AAFgB;;;AFzChB,IAAM,SAAmB,sBAAAA;AAAA,CAEpB,sBAAAA,QAAc,UAAU,sBAAAA,SAAe,SAAS,IAAM;AAAA,EACnD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,IACC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAKtB,SAAS,kBAA2B;AAChC,SAAO,gBAAAC,QAAI,OAAO,QAAQ,OAAO,EAAE,KAAK,CAAC,CAAC,QAAQ,IAAI;AAC1D;AAFS;AAIT,SAAS,UAAkB;AACvB,UAAO,oBAAI,KAAK,GAAE,YAAY;AAClC;AAFS;AAOT,SAAS,OAAQ,MAAoB;AACjC,SAAO,QAAQ,OAAO,MAAM,iBAAAC,QAAK,OAAO,GAAG,IAAI,IAAI,IAAI;AAC3D;AAFS;AAQT,SAAS,iBAAkB,WAAmB,cAAc,CAAC,GAAG;AAC5D,SAAO;AAAA,IACH,GAAG,gCAAU,GAAG;AACZ,aAAO,iBAAAA,QAAK,QAAQ,GAAG,OAAO,OAAO,CAAC,GAAG,aAAa;AAAA,QAClD,QAAQ;AAAA,MACZ,CAAC,CAAC,EACG,MAAM,IAAI,EACV,IAAI,SAAO,IAAI,KAAK,CAAC,EACrB,KAAK,GAAG;AAAA,IACjB,GAPG;AAAA,IASH,GAAG,gCAAU,GAAG;AACZ,aAAO,iBAAAA,QAAK,QAAQ,GAAG,OAAO,OAAO,CAAC,GAAG,aAAa;AAAA,QAClD,QAAQ,gBAAgB;AAAA,MAC5B,CAAC,CAAC;AAAA,IACN,GAJG;AAAA,EAKP;AACJ;AAjBS;AAmBT,IAAI,kBAAyB;AAatB,SAAS,YAAa,WAAwB,KAAmC;AAEpF,MAAI,WAAW,OAAO,oBAAI,KAAK,CAAC;AAChC,MAAI,CAAC,gBAAiB,mBAAkB,qBAAqB,EAAE;AAC/D,QAAM,aAAa,aAAa;AAChC,QAAM,QAAQ,YAAY,YAAY,MAAM;AAE5C,WAAS,SAAU,MAAY;AAC3B,QAAI,UAAU,WAAW,GAAG,GAAG;AAC3B,aAAO,OAAO,aAAa,OAAO,MAAM,EAAE,UAAU,MAAM,CAAC;AAAA,IAC/D;AAAA,EACJ;AAJS;AAMT,QAAM,SAAS,SAAU,WAA4B;AACjD,UAAM,oBAAoB,aAAa,MAAM;AAC7C,WAAO,YAAY,mBAAmB,GAAG;AAAA,EAC7C;AAEA,SAAO;AACX;AAnBgB;AAqBhB,YAAY,YAAY,SAAU,WAAkB;AAChD,SAAQ,cAAc,cAAc,iBAAiB,cAAc;AACvE;AAEA,IAAO,eAAQ;AAEf,SAAS,OAAQ,WAAkB,MAAY,EAAE,UAAU,MAAM,GAAG;AAEhE,QAAM,OAAO,OAAO,oBAAI,KAAK,CAAC;AAC9B,QAAM,OAAO,QAAQ,YAAY;AACjC,aAAW;AAEX,OAAK,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC;AACxB,QAAM,aAAa,iBAAiB,gBAAgB,CAAC;AAErD,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,MAAM,GAAG;AAIhC,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;AA7CS;AAkDT,SAAS,UAAW,WAAwB,MAAsC;AAC9E,QAAM,MAAM,QAAQ,QAAQ;AAG5B,MAAI,CAAC,WAAW;AACZ,WAAO,CAAC,CAAC,YAAY,UAAU,IAAI,QAAS;AAAA,EAChD;AAGA,MAAI,CAAC,IAAI,MAAO,QAAO;AAGvB,QAAM,UAAU,sBAAsB,IAAI,KAAK;AAC/C,SAAO,QAAQ,KAAK,WAAS,MAAM,KAAK,SAAS,CAAC;AACtD;AAdS;AAmBT,SAAS,WAAY,EAAE,MAAM,OAAO,WAAW,UAAU,GAKtD,MAAwB;AACvB,SAAO,QAAQ,CAAC;AAEhB,MAAI,WAAW;AACX,UAAM,IAAI;AACV,UAAM,YAAY,YAAc,IAAI,IAAI,IAAI,SAAS;AACrD,UAAM,SAAS,KAAK,SAAS,MAAM,SAAS;AAE5C,SAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE,MAAM,IAAI,EAAE,KAAK,OAAO,MAAM;AACzD,SAAK,KAAK,YAAY,OAAO,WAAG,IAAI,IAAI,SAAW;AAAA,EACvD,OAAO;AACH,SAAK,CAAC,IAAI,QAAQ,IAAI,MAAM,YAAY,MAAM,KAAK,CAAC;AAAA,EACxD;AAEA,SAAO;AACX;AApBS;AA4BT,SAAS,YAAa,WAAkBC,SAAwB;AAC5D,MAAI,OAAO;AAEX,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACvC,YAAS,QAAQ,KAAK,OAAQ,UAAU,WAAW,CAAC;AACpD,YAAQ;AAAA,EACZ;AAEA,SAAOA,QAAO,KAAK,IAAI,IAAI,IAAIA,QAAO,MAAM;AAChD;AATS;",
6
+ "names": ["supportsColor", "tty", "util", "colors"]
7
+ }
package/dist/node.d.ts CHANGED
@@ -1,11 +1,15 @@
1
1
  import '@substrate-system/util/node/self';
2
+ export interface Debugger {
3
+ (...args: any[]): void;
4
+ extend: (namespace: string) => Debugger;
5
+ }
2
6
  /**
3
7
  * Create a debugger with the given `namespace`.
4
8
  *
5
9
  * @param {string} namespace
6
10
  * @return {Function}
7
11
  */
8
- export declare function createDebug(namespace?: string | null, env?: Record<string, any>): (...args: any[]) => void;
12
+ export declare function createDebug(namespace?: string | null, env?: Record<string, any>): Debugger;
9
13
  export declare namespace createDebug {
10
14
  var shouldLog: (envString: string) => boolean | "";
11
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAA;AAmIzC;;;;;GAKG;AACH,wBAAgB,WAAW,CAAE,SAAS,CAAC,EAAC,MAAM,GAAC,IAAI,EAAE,GAAG,CAAC,EAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,aAOjD,GAAG,EAAE,UAOhC;yBAde,WAAW;+BAgBiB,MAAM;;AAIlD,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAA;AAoIzC,MAAM,WAAW,QAAQ;IACrB,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,QAAQ,CAAC;CAC3C;AAED;;;;;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"}
package/dist/node.js CHANGED
@@ -1,235 +1,346 @@
1
- import '@substrate-system/util/node/self';
2
- import supportsColor from 'supports-color';
3
- import ms from './ms.js';
4
- import tty from 'tty';
5
- import util from 'util';
6
- import { generateRandomString, coerce, createRegexFromEnvVar } from './common.js';
7
- const colors = (supportsColor &&
8
- // @ts-expect-error ???
9
- (supportsColor.stderr || supportsColor).level >= 2) ? ([
10
- 20,
11
- 21,
12
- 26,
13
- 27,
14
- 32,
15
- 33,
16
- 38,
17
- 39,
18
- 40,
19
- 41,
20
- 42,
21
- 43,
22
- 44,
23
- 45,
24
- 56,
25
- 57,
26
- 62,
27
- 63,
28
- 68,
29
- 69,
30
- 74,
31
- 75,
32
- 76,
33
- 77,
34
- 78,
35
- 79,
36
- 80,
37
- 81,
38
- 92,
39
- 93,
40
- 98,
41
- 99,
42
- 112,
43
- 113,
44
- 128,
45
- 129,
46
- 134,
47
- 135,
48
- 148,
49
- 149,
50
- 160,
51
- 161,
52
- 162,
53
- 163,
54
- 164,
55
- 165,
56
- 166,
57
- 167,
58
- 168,
59
- 169,
60
- 170,
61
- 171,
62
- 172,
63
- 173,
64
- 178,
65
- 179,
66
- 184,
67
- 185,
68
- 196,
69
- 197,
70
- 198,
71
- 199,
72
- 200,
73
- 201,
74
- 202,
75
- 203,
76
- 204,
77
- 205,
78
- 206,
79
- 207,
80
- 208,
81
- 209,
82
- 214,
83
- 215,
84
- 220,
85
- 221
86
- ]) :
87
- ([6, 2, 3, 4, 5, 1]);
88
- /**
89
- * Is stdout a TTY? Colored output is enabled when `true`.
90
- */
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
4
+ // src/node.ts
5
+ import "@substrate-system/util/node/self";
6
+ 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
+ import tty from "node:tty";
127
+ import util from "node:util";
128
+
129
+ // src/common.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 ???
150
+ (supportsColor.stderr || supportsColor).level >= 2 ? [
151
+ 20,
152
+ 21,
153
+ 26,
154
+ 27,
155
+ 32,
156
+ 33,
157
+ 38,
158
+ 39,
159
+ 40,
160
+ 41,
161
+ 42,
162
+ 43,
163
+ 44,
164
+ 45,
165
+ 56,
166
+ 57,
167
+ 62,
168
+ 63,
169
+ 68,
170
+ 69,
171
+ 74,
172
+ 75,
173
+ 76,
174
+ 77,
175
+ 78,
176
+ 79,
177
+ 80,
178
+ 81,
179
+ 92,
180
+ 93,
181
+ 98,
182
+ 99,
183
+ 112,
184
+ 113,
185
+ 128,
186
+ 129,
187
+ 134,
188
+ 135,
189
+ 148,
190
+ 149,
191
+ 160,
192
+ 161,
193
+ 162,
194
+ 163,
195
+ 164,
196
+ 165,
197
+ 166,
198
+ 167,
199
+ 168,
200
+ 169,
201
+ 170,
202
+ 171,
203
+ 172,
204
+ 173,
205
+ 178,
206
+ 179,
207
+ 184,
208
+ 185,
209
+ 196,
210
+ 197,
211
+ 198,
212
+ 199,
213
+ 200,
214
+ 201,
215
+ 202,
216
+ 203,
217
+ 204,
218
+ 205,
219
+ 206,
220
+ 207,
221
+ 208,
222
+ 209,
223
+ 214,
224
+ 215,
225
+ 220,
226
+ 221
227
+ ] : [6, 2, 3, 4, 5, 1];
91
228
  function shouldUseColors() {
92
- return tty.isatty(process.stderr.fd) || !!process.env.FORCE_COLOR;
229
+ return tty.isatty(process.stderr.fd) || !!process.env.FORCE_COLOR;
93
230
  }
231
+ __name(shouldUseColors, "shouldUseColors");
94
232
  function getDate() {
95
- return new Date().toISOString();
233
+ return (/* @__PURE__ */ new Date()).toISOString();
96
234
  }
97
- /**
98
- * Invokes `util.format()` with the specified arguments and writes to stderr.
99
- */
235
+ __name(getDate, "getDate");
100
236
  function log(...args) {
101
- return process.stderr.write(util.format(...args) + '\n');
237
+ return process.stderr.write(util.format(...args) + "\n");
102
238
  }
103
- /**
104
- * Mutate formatters
105
- * Map %o to `util.inspect()`, all on a single line.
106
- */
239
+ __name(log, "log");
107
240
  function createFormatters(useColors, inspectOpts = {}) {
108
- return {
109
- o: function (v) {
110
- return util.inspect(v, Object.assign({}, inspectOpts, {
111
- colors: useColors
112
- }))
113
- .split('\n')
114
- .map(str => str.trim())
115
- .join(' ');
116
- },
117
- O: function (v) {
118
- return util.inspect(v, Object.assign({}, inspectOpts, {
119
- colors: shouldUseColors()
120
- }));
121
- }
122
- };
123
- }
124
- let randomNamespace = '';
125
- /**
126
- * Create a debugger with the given `namespace`.
127
- *
128
- * @param {string} namespace
129
- * @return {Function}
130
- */
131
- export function createDebug(namespace, env) {
132
- // eslint-disable-next-line
133
- let prevTime = Number(new Date());
134
- if (!randomNamespace)
135
- randomNamespace = generateRandomString(10);
136
- const _namespace = namespace || randomNamespace;
137
- const color = selectColor(_namespace, colors);
138
- function debug(...args) {
139
- if (isEnabled(namespace, env)) {
140
- return logger(namespace || 'DEV', args, { prevTime, color });
141
- }
241
+ return {
242
+ o: /* @__PURE__ */ __name(function(v) {
243
+ return util.inspect(v, Object.assign({}, inspectOpts, {
244
+ colors: useColors
245
+ })).split("\n").map((str) => str.trim()).join(" ");
246
+ }, "o"),
247
+ O: /* @__PURE__ */ __name(function(v) {
248
+ return util.inspect(v, Object.assign({}, inspectOpts, {
249
+ colors: shouldUseColors()
250
+ }));
251
+ }, "O")
252
+ };
253
+ }
254
+ __name(createFormatters, "createFormatters");
255
+ var randomNamespace = "";
256
+ function createDebug(namespace, env) {
257
+ let prevTime = Number(/* @__PURE__ */ new Date());
258
+ if (!randomNamespace) randomNamespace = generateRandomString(10);
259
+ const _namespace = namespace || randomNamespace;
260
+ const color = selectColor(_namespace, colors);
261
+ function debug(...args) {
262
+ if (isEnabled(namespace, env)) {
263
+ return logger(namespace || "DEV", args, { prevTime, color });
142
264
  }
143
- return debug;
265
+ }
266
+ __name(debug, "debug");
267
+ debug.extend = function(extension) {
268
+ const extendedNamespace = _namespace + ":" + extension;
269
+ return createDebug(extendedNamespace, env);
270
+ };
271
+ return debug;
144
272
  }
145
- createDebug.shouldLog = function (envString) {
146
- return (envString && (envString === 'development' || envString === 'test'));
273
+ __name(createDebug, "createDebug");
274
+ createDebug.shouldLog = function(envString) {
275
+ return envString && (envString === "development" || envString === "test");
147
276
  };
148
- export default createDebug;
277
+ var node_default = createDebug;
149
278
  function logger(namespace, args, { prevTime, color }) {
150
- // Set `diff` timestamp
151
- const curr = Number(new Date());
152
- const diff = curr - (prevTime || curr);
153
- prevTime = curr;
154
- args[0] = coerce(args[0]);
155
- const formatters = createFormatters(shouldUseColors());
156
- if (typeof args[0] !== 'string') {
157
- // Anything else let's inspect with %O
158
- args.unshift('%O');
279
+ const curr = Number(/* @__PURE__ */ new Date());
280
+ const diff = curr - (prevTime || curr);
281
+ prevTime = curr;
282
+ args[0] = coerce(args[0]);
283
+ const formatters = createFormatters(shouldUseColors());
284
+ if (typeof args[0] !== "string") {
285
+ args.unshift("%O");
286
+ }
287
+ let index = 0;
288
+ args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {
289
+ if (match === "%%") return "%";
290
+ index++;
291
+ const formatter = formatters[format];
292
+ if (typeof formatter === "function") {
293
+ const val = args[index];
294
+ match = formatter.call(self, val);
295
+ args.splice(index, 1);
296
+ index--;
159
297
  }
160
- // Apply any `formatters` transformations
161
- let index = 0;
162
- args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {
163
- // If we encounter an escaped % then don't increase the
164
- // array index
165
- if (match === '%%')
166
- return '%';
167
- index++;
168
- const formatter = formatters[format];
169
- if (typeof formatter === 'function') {
170
- const val = args[index];
171
- match = formatter.call(self, val);
172
- // Now we need to remove `args[index]` since it's inlined
173
- // in the `format`
174
- args.splice(index, 1);
175
- index--;
176
- }
177
- return match;
178
- });
179
- // Apply env-specific formatting (colors, etc.)
180
- const _args = formatArgs({
181
- diff,
182
- color,
183
- useColors: shouldUseColors(),
184
- namespace
185
- }, args);
186
- log(..._args);
187
- }
188
- /**
189
- * Check if the given namespace is enabled.
190
- */
298
+ return match;
299
+ });
300
+ const _args = formatArgs({
301
+ diff,
302
+ color,
303
+ useColors: shouldUseColors(),
304
+ namespace
305
+ }, args);
306
+ log(..._args);
307
+ }
308
+ __name(logger, "logger");
191
309
  function isEnabled(namespace, _env) {
192
- const env = _env || process.env;
193
- // if no namespace, and we are in dev mode
194
- if (!namespace) {
195
- return !!createDebug.shouldLog(env.NODE_ENV);
196
- }
197
- // there is a namespace
198
- if (!env.DEBUG)
199
- return false; // if no env DEBUG mode
200
- // else check namespace vs DEBUG env var
201
- const envVars = createRegexFromEnvVar(env.DEBUG);
202
- return envVars.some(regex => regex.test(namespace));
203
- }
204
- /**
205
- * Adds ANSI color escape codes if enabled.
206
- */
310
+ const env = _env || process.env;
311
+ if (!namespace) {
312
+ return !!createDebug.shouldLog(env.NODE_ENV);
313
+ }
314
+ if (!env.DEBUG) return false;
315
+ const envVars = createRegexFromEnvVar(env.DEBUG);
316
+ return envVars.some((regex) => regex.test(namespace));
317
+ }
318
+ __name(isEnabled, "isEnabled");
207
319
  function formatArgs({ diff, color, namespace, useColors }, args) {
208
- args = args || [];
209
- if (useColors) {
210
- const c = color;
211
- const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c);
212
- const prefix = ` ${colorCode};1m${namespace} \u001B[0m`;
213
- args[0] = prefix + args[0].split('\n').join('\n' + prefix);
214
- args.push(colorCode + 'm+' + ms(diff) + '\u001B[0m');
215
- }
216
- else {
217
- args[0] = getDate() + ' ' + namespace + ' ' + args[0];
218
- }
219
- return args;
220
- }
221
- /**
222
- * Selects a color for a debug namespace
223
- * @param {string} namespace The namespace string for the debug instance to be colored
224
- * @param {number[]} colors The namespace string for the debug instance to be colored
225
- * @return {number} An ANSI color code for the given namespace
226
- */
227
- function selectColor(namespace, colors) {
228
- let hash = 0;
229
- for (let i = 0; i < namespace.length; i++) {
230
- hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
231
- hash |= 0; // Convert to 32bit integer
232
- }
233
- return colors[Math.abs(hash) % colors.length];
320
+ args = args || [];
321
+ if (useColors) {
322
+ const c = color;
323
+ const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c);
324
+ const prefix = ` ${colorCode};1m${namespace} \x1B[0m`;
325
+ args[0] = prefix + args[0].split("\n").join("\n" + prefix);
326
+ args.push(colorCode + "m+" + ms_default(diff) + "\x1B[0m");
327
+ } else {
328
+ args[0] = getDate() + " " + namespace + " " + args[0];
329
+ }
330
+ return args;
234
331
  }
235
- //# sourceMappingURL=node.js.map
332
+ __name(formatArgs, "formatArgs");
333
+ function selectColor(namespace, colors2) {
334
+ let hash = 0;
335
+ for (let i = 0; i < namespace.length; i++) {
336
+ hash = (hash << 5) - hash + namespace.charCodeAt(i);
337
+ hash |= 0;
338
+ }
339
+ return colors2[Math.abs(hash) % colors2.length];
340
+ }
341
+ __name(selectColor, "selectColor");
342
+ export {
343
+ createDebug,
344
+ node_default as default
345
+ };
346
+ //# sourceMappingURL=node.js.map