@mmutils/logger 0.0.0-stage → 0.1.1

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 (59) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1038 -2
  3. package/dist/cjs/index.cjs +72 -0
  4. package/dist/cjs/index.cjs.map +1 -0
  5. package/dist/cjs/levels.cjs +82 -0
  6. package/dist/cjs/levels.cjs.map +1 -0
  7. package/dist/cjs/logger.cjs +576 -0
  8. package/dist/cjs/logger.cjs.map +1 -0
  9. package/dist/cjs/outputs.cjs +24 -0
  10. package/dist/cjs/outputs.cjs.map +1 -0
  11. package/dist/cjs/plugins/columns.cjs +782 -0
  12. package/dist/cjs/plugins/columns.cjs.map +1 -0
  13. package/dist/cjs/plugins/graph.cjs +578 -0
  14. package/dist/cjs/plugins/graph.cjs.map +1 -0
  15. package/dist/cjs/plugins/json.cjs +644 -0
  16. package/dist/cjs/plugins/json.cjs.map +1 -0
  17. package/dist/cjs/plugins/message.cjs +108 -0
  18. package/dist/cjs/plugins/message.cjs.map +1 -0
  19. package/dist/cjs/plugins/shared.cjs +194 -0
  20. package/dist/cjs/plugins/shared.cjs.map +1 -0
  21. package/dist/cjs/time.cjs +234 -0
  22. package/dist/cjs/time.cjs.map +1 -0
  23. package/dist/cjs/utils/text.cjs +646 -0
  24. package/dist/cjs/utils/text.cjs.map +1 -0
  25. package/dist/esm/index.js +11 -0
  26. package/dist/esm/index.js.map +1 -0
  27. package/dist/esm/levels.js +72 -0
  28. package/dist/esm/levels.js.map +1 -0
  29. package/dist/esm/logger.js +572 -0
  30. package/dist/esm/logger.js.map +1 -0
  31. package/dist/esm/outputs.js +21 -0
  32. package/dist/esm/outputs.js.map +1 -0
  33. package/dist/esm/plugins/columns.js +778 -0
  34. package/dist/esm/plugins/columns.js.map +1 -0
  35. package/dist/esm/plugins/graph.js +572 -0
  36. package/dist/esm/plugins/graph.js.map +1 -0
  37. package/dist/esm/plugins/json.js +641 -0
  38. package/dist/esm/plugins/json.js.map +1 -0
  39. package/dist/esm/plugins/message.js +105 -0
  40. package/dist/esm/plugins/message.js.map +1 -0
  41. package/dist/esm/plugins/shared.js +187 -0
  42. package/dist/esm/plugins/shared.js.map +1 -0
  43. package/dist/esm/time.js +231 -0
  44. package/dist/esm/time.js.map +1 -0
  45. package/dist/esm/utils/text.js +621 -0
  46. package/dist/esm/utils/text.js.map +1 -0
  47. package/dist/types/index.d.ts +11 -0
  48. package/dist/types/levels.d.ts +50 -0
  49. package/dist/types/logger.d.ts +245 -0
  50. package/dist/types/outputs.d.ts +12 -0
  51. package/dist/types/plugins/columns.d.ts +151 -0
  52. package/dist/types/plugins/graph.d.ts +243 -0
  53. package/dist/types/plugins/json.d.ts +169 -0
  54. package/dist/types/plugins/message.d.ts +181 -0
  55. package/dist/types/plugins/shared.d.ts +74 -0
  56. package/dist/types/time.d.ts +48 -0
  57. package/dist/types/types.d.ts +176 -0
  58. package/dist/types/utils/text.d.ts +231 -0
  59. package/package.json +85 -4
@@ -0,0 +1,72 @@
1
+ 'use strict';
2
+
3
+ var logger = require('./logger.cjs');
4
+ var time = require('./time.cjs');
5
+ var levels = require('./levels.cjs');
6
+ var outputs = require('./outputs.cjs');
7
+ var message = require('./plugins/message.cjs');
8
+ var json = require('./plugins/json.cjs');
9
+ var graph = require('./plugins/graph.cjs');
10
+ var columns = require('./plugins/columns.cjs');
11
+ var shared = require('./plugins/shared.cjs');
12
+ var text = require('./utils/text.cjs');
13
+
14
+
15
+
16
+ exports.BaseLogger = logger.BaseLogger;
17
+ exports.Logger = logger.Logger;
18
+ exports.templateTransformer = logger.templateTransformer;
19
+ exports.DEFAULT_TIMESTAMP_FORMAT = time.DEFAULT_TIMESTAMP_FORMAT;
20
+ exports.compileTimestamp = time.compileTimestamp;
21
+ exports.LOG_TYPES = levels.LOG_TYPES;
22
+ exports.LOG_TYPE_MAX_LENGTH = levels.LOG_TYPE_MAX_LENGTH;
23
+ exports.LOG_TYPE_VALUES = levels.LOG_TYPE_VALUES;
24
+ exports.LogLevels = levels.LogLevels;
25
+ exports.assertLogLevel = levels.assertLogLevel;
26
+ exports.isLogLevel = levels.isLogLevel;
27
+ exports.isLogType = levels.isLogType;
28
+ exports.shouldLog = levels.shouldLog;
29
+ exports.consoleOutput = outputs.consoleOutput;
30
+ exports.joinedOutput = outputs.joinedOutput;
31
+ exports.messagePlugin = message.messagePlugin;
32
+ exports.renderMessageData = message.renderMessageData;
33
+ exports.jsonPlugin = json.jsonPlugin;
34
+ exports.renderJsonData = json.renderJsonData;
35
+ exports.DEFAULT_GRAPH_LIMITS = graph.DEFAULT_GRAPH_LIMITS;
36
+ exports.formatAxisLabel = graph.formatAxisLabel;
37
+ exports.graphPlugin = graph.graphPlugin;
38
+ exports.renderGraph = graph.renderGraph;
39
+ exports.valuesToBars = graph.valuesToBars;
40
+ exports.DEFAULT_COLUMNS_WRAP = columns.DEFAULT_COLUMNS_WRAP;
41
+ exports.columnsPlugin = columns.columnsPlugin;
42
+ exports.wrapText = columns.wrapText;
43
+ exports.DEFAULT_SYMBOLS = shared.DEFAULT_SYMBOLS;
44
+ exports.DEFAULT_TEXT_STYLES = shared.DEFAULT_TEXT_STYLES;
45
+ exports.headerTemplates = shared.headerTemplates;
46
+ exports.mergeStyleSheets = shared.mergeStyleSheets;
47
+ exports.paint = shared.paint;
48
+ exports.paintUnrenderable = shared.paintUnrenderable;
49
+ exports.DEFAULT_OUTPUT_LIMITS = text.DEFAULT_OUTPUT_LIMITS;
50
+ exports.NO_OUTPUT_LIMITS = text.NO_OUTPUT_LIMITS;
51
+ exports.charWidth = text.charWidth;
52
+ exports.createSanitizer = text.createSanitizer;
53
+ exports.describeBinary = text.describeBinary;
54
+ exports.describeFunction = text.describeFunction;
55
+ exports.describeLeftOut = text.describeLeftOut;
56
+ exports.describeObject = text.describeObject;
57
+ exports.describeThrown = text.describeThrown;
58
+ exports.isForeignError = text.isForeignError;
59
+ exports.justifyLeftRight = text.justifyLeftRight;
60
+ exports.limitKeys = text.limitKeys;
61
+ exports.padTextMiddle = text.padTextMiddle;
62
+ exports.resolveOutputLimits = text.resolveOutputLimits;
63
+ exports.safeStringify = text.safeStringify;
64
+ exports.scaleArray = text.scaleArray;
65
+ exports.splitError = text.splitError;
66
+ exports.stringifyData = text.stringifyData;
67
+ exports.stringifyPrimitive = text.stringifyPrimitive;
68
+ exports.stringifyProperty = text.stringifyProperty;
69
+ exports.textWidth = text.textWidth;
70
+ exports.truncate = text.truncate;
71
+ exports.visibleLength = text.visibleLength;
72
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,82 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Numeric expression of the log levels. The lower the value, the less the
5
+ * output.
6
+ */
7
+ const LogLevels = {
8
+ silent: 100,
9
+ fatal: 200,
10
+ error: 300,
11
+ warning: 400,
12
+ info: 500,
13
+ debug: 600,
14
+ trace: 700,
15
+ verbose: 800,
16
+ };
17
+ /**
18
+ * All log types, ordered by level.
19
+ */
20
+ const LOG_TYPES = [
21
+ 'fatal',
22
+ 'error',
23
+ 'warning',
24
+ 'info',
25
+ 'debug',
26
+ 'trace',
27
+ 'verbose',
28
+ ];
29
+ /**
30
+ * Length of the longest log type name.
31
+ */
32
+ const LOG_TYPE_MAX_LENGTH = LOG_TYPES.reduce((max, type) => Math.max(max, type.length), 0);
33
+ /**
34
+ * Checks if a message of a given type passes the current level.
35
+ */
36
+ const shouldLog = (type, level) => LogLevels[type] <= LogLevels[level];
37
+ /**
38
+ * Numeric values of the log types, without `'silent'`. A plain literal, so
39
+ * V8 keeps fast properties: the lookup runs on every log, filtered ones
40
+ * included. Inherited keys (`'toString'`) give non-numbers, so callers check
41
+ * `typeof value === 'number'`.
42
+ */
43
+ const LOG_TYPE_VALUES = {
44
+ fatal: LogLevels.fatal,
45
+ error: LogLevels.error,
46
+ warning: LogLevels.warning,
47
+ info: LogLevels.info,
48
+ debug: LogLevels.debug,
49
+ trace: LogLevels.trace,
50
+ verbose: LogLevels.verbose,
51
+ };
52
+ /**
53
+ * Runtime check of a log level, e.g. one read from an environment variable.
54
+ */
55
+ const isLogLevel = (value) => typeof value === 'string' && Object.hasOwn(LogLevels, value);
56
+ /**
57
+ * Runtime check of a log type. `'silent'` is a level, not a type.
58
+ */
59
+ const isLogType = (value) => typeof value === 'string' && Object.hasOwn(LOG_TYPE_VALUES, value);
60
+ const describeName = (value) => typeof value === 'string' ? `"${value}"` : typeof value;
61
+ /**
62
+ * @throws RangeError naming the valid levels.
63
+ */
64
+ const assertLogLevel = (value) => {
65
+ if (!isLogLevel(value))
66
+ throw new RangeError(`Unknown log level ${describeName(value)}. Use one of: ${Object.keys(LogLevels).join(', ')}.`);
67
+ };
68
+ /**
69
+ * Error for a log call with an unknown type, naming the valid types.
70
+ */
71
+ const unknownLogTypeError = (value) => new TypeError(`Unknown log type ${describeName(value)}. Use one of: ${LOG_TYPES.join(', ')}.`);
72
+
73
+ exports.LOG_TYPES = LOG_TYPES;
74
+ exports.LOG_TYPE_MAX_LENGTH = LOG_TYPE_MAX_LENGTH;
75
+ exports.LOG_TYPE_VALUES = LOG_TYPE_VALUES;
76
+ exports.LogLevels = LogLevels;
77
+ exports.assertLogLevel = assertLogLevel;
78
+ exports.isLogLevel = isLogLevel;
79
+ exports.isLogType = isLogType;
80
+ exports.shouldLog = shouldLog;
81
+ exports.unknownLogTypeError = unknownLogTypeError;
82
+ //# sourceMappingURL=levels.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"levels.cjs","sources":["../../src/levels.ts"],"sourcesContent":["import type { LogLevel, LogType } from './types.js';\n\n/**\n * Numeric expression of the log levels. The lower the value, the less the\n * output.\n */\nexport const LogLevels = {\n silent: 100,\n fatal: 200,\n error: 300,\n warning: 400,\n info: 500,\n debug: 600,\n trace: 700,\n verbose: 800,\n} as const satisfies Record<LogLevel, number>;\n\n/**\n * All log types, ordered by level.\n */\nexport const LOG_TYPES = [\n 'fatal',\n 'error',\n 'warning',\n 'info',\n 'debug',\n 'trace',\n 'verbose',\n] as const satisfies readonly LogType[];\n\n/**\n * Length of the longest log type name.\n */\nexport const LOG_TYPE_MAX_LENGTH = LOG_TYPES.reduce(\n (max, type) => Math.max(max, type.length),\n 0\n);\n\n/**\n * Checks if a message of a given type passes the current level.\n */\nexport const shouldLog = (type: LogType, level: LogLevel): boolean =>\n LogLevels[type] <= LogLevels[level];\n\n/**\n * Numeric values of the log types, without `'silent'`. A plain literal, so\n * V8 keeps fast properties: the lookup runs on every log, filtered ones\n * included. Inherited keys (`'toString'`) give non-numbers, so callers check\n * `typeof value === 'number'`.\n */\nexport const LOG_TYPE_VALUES: Readonly<Record<string, number | undefined>> = {\n fatal: LogLevels.fatal,\n error: LogLevels.error,\n warning: LogLevels.warning,\n info: LogLevels.info,\n debug: LogLevels.debug,\n trace: LogLevels.trace,\n verbose: LogLevels.verbose,\n} satisfies Record<LogType, number>;\n\n/**\n * Runtime check of a log level, e.g. one read from an environment variable.\n */\nexport const isLogLevel = (value: unknown): value is LogLevel =>\n typeof value === 'string' && Object.hasOwn(LogLevels, value);\n\n/**\n * Runtime check of a log type. `'silent'` is a level, not a type.\n */\nexport const isLogType = (value: unknown): value is LogType =>\n typeof value === 'string' && Object.hasOwn(LOG_TYPE_VALUES, value);\n\nconst describeName = (value: unknown): string =>\n typeof value === 'string' ? `\"${value}\"` : typeof value;\n\n/**\n * @throws RangeError naming the valid levels.\n */\nexport const assertLogLevel: (value: unknown) => asserts value is LogLevel = (\n value\n) => {\n if (!isLogLevel(value))\n throw new RangeError(\n `Unknown log level ${describeName(value)}. Use one of: ${Object.keys(LogLevels).join(', ')}.`\n );\n};\n\n/**\n * Error for a log call with an unknown type, naming the valid types.\n */\nexport const unknownLogTypeError = (value: unknown): TypeError =>\n new TypeError(\n `Unknown log type ${describeName(value)}. Use one of: ${LOG_TYPES.join(', ')}.`\n );\n"],"names":[],"mappings":";;AAEA;;;AAGG;AACI,MAAM,SAAS,GAAG;AACvB,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,OAAO,EAAE,GAAG;;AAGd;;AAEG;AACI,MAAM,SAAS,GAAG;IACvB,OAAO;IACP,OAAO;IACP,SAAS;IACT,MAAM;IACN,OAAO;IACP,OAAO;IACP,SAAS;;AAGX;;AAEG;AACI,MAAM,mBAAmB,GAAG,SAAS,CAAC,MAAM,CACjD,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,EACzC,CAAC;AAGH;;AAEG;MACU,SAAS,GAAG,CAAC,IAAa,EAAE,KAAe,KACtD,SAAS,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,KAAK;AAEpC;;;;;AAKG;AACI,MAAM,eAAe,GAAiD;IAC3E,KAAK,EAAE,SAAS,CAAC,KAAK;IACtB,KAAK,EAAE,SAAS,CAAC,KAAK;IACtB,OAAO,EAAE,SAAS,CAAC,OAAO;IAC1B,IAAI,EAAE,SAAS,CAAC,IAAI;IACpB,KAAK,EAAE,SAAS,CAAC,KAAK;IACtB,KAAK,EAAE,SAAS,CAAC,KAAK;IACtB,OAAO,EAAE,SAAS,CAAC,OAAO;;AAG5B;;AAEG;MACU,UAAU,GAAG,CAAC,KAAc,KACvC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK;AAE7D;;AAEG;MACU,SAAS,GAAG,CAAC,KAAc,KACtC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK;AAEnE,MAAM,YAAY,GAAG,CAAC,KAAc,KAClC,OAAO,KAAK,KAAK,QAAQ,GAAG,IAAI,KAAK,CAAA,CAAA,CAAG,GAAG,OAAO,KAAK;AAEzD;;AAEG;AACI,MAAM,cAAc,GAAkD,CAC3E,KAAK,KACH;AACF,IAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QACpB,MAAM,IAAI,UAAU,CAClB,CAAA,kBAAA,EAAqB,YAAY,CAAC,KAAK,CAAC,CAAA,cAAA,EAAiB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG,CAC9F;AACL;AAEA;;AAEG;AACI,MAAM,mBAAmB,GAAG,CAAC,KAAc,KAChD,IAAI,SAAS,CACX,CAAA,iBAAA,EAAoB,YAAY,CAAC,KAAK,CAAC,CAAA,cAAA,EAAiB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG;;;;;;;;;;"}