@alwatr/logger 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.1.0](https://github.com/Alwatr/nanolib/compare/@alwatr/logger@3.0.1...@alwatr/logger@3.1.0) (2024-01-06)
7
+
8
+ ### Features
9
+
10
+ * **logger:** definePackage ([dfd090e](https://github.com/Alwatr/nanolib/commit/dfd090ebd691c9a589370094d49f950524f71369)) by @AliMD
11
+
12
+ ## [3.0.1](https://github.com/Alwatr/nanolib/compare/@alwatr/logger@3.0.0...@alwatr/logger@3.0.1) (2024-01-03)
13
+
14
+ **Note:** Version bump only for package @alwatr/logger
15
+
6
16
  # 3.0.0 (2024-01-03)
7
17
 
8
18
  ### Bug Fixes
@@ -0,0 +1,16 @@
1
+ import type { AlwatrLogger } from './type.js';
2
+ /**
3
+ * Global define package for managing package versions to prevent version conflicts and return package level logger.
4
+ * @param packageName package name including scope. e.g. `@scope/package-name`
5
+ * @param version package version (optional)
6
+ * @returns AlwatrLogger for the package
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const logger = definePackage('@scope/package-name', __package_version__);
11
+ *
12
+ * logger.logMethodArgs?.('myMethod', {a, b});
13
+ * ```
14
+ */
15
+ export declare function definePackage(packageName: string, version?: string): AlwatrLogger;
16
+ //# sourceMappingURL=define-package.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-package.d.ts","sourceRoot":"","sources":["../src/define-package.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AAE5C;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,SAAO,GAAG,YAAY,CAK/E"}
@@ -0,0 +1,16 @@
1
+ import type { AlwatrLogger } from './type.js';
2
+ /**
3
+ * Create a logger function for fancy console debug with custom scope.
4
+ *
5
+ * - **color** is optional and automatically select from internal fancy color list.
6
+ * - **debug** is optional and automatically detect from localStorage `ALWATR_DEBUG` item or `process.env.ALWATR_DEBUG`
7
+ *
8
+ * Example:
9
+ *
10
+ * ```ts
11
+ * import {createLogger} from 'https://esm.run/@alwatr/logger';
12
+ * const logger = createLogger('logger/demo');
13
+ * ```
14
+ */
15
+ export declare const createLogger: (domain: string, debugMode?: boolean) => AlwatrLogger;
16
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AA0D5C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,WAAY,MAAM,0BAAiC,YAsD3E,CAAC"}
package/dist/main.cjs CHANGED
@@ -1,7 +1,7 @@
1
- /* @alwatr/logger v3.0.0 */
2
- "use strict";var d=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var _=(e,o)=>{for(var n in o)d(e,n,{get:o[n],enumerable:!0})},x=(e,o,n,s)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of a(o))!C.call(e,t)&&t!==n&&d(e,t,{get:()=>o[t],enumerable:!(s=p(o,t))||s.enumerable});return e};var $=e=>x(d({},"__esModule",{value:!0}),e);var A={};_(A,{createLogger:()=>y,debugMode:()=>u});module.exports=$(A);var f=require("@alwatr/dedupe"),c=require("@alwatr/platform-info");(0,f.definePackage)("@alwatr/logger","3.0.0");var u=c.platformInfo.development||c.platformInfo.isCli?process.env.DEBUG!==void 0&&process.env.DEBUG!=="":typeof localStorage<"u"&&localStorage.getItem("debug")==="1",b=c.platformInfo.isCli?["0;36","0;35","0;34","0;33","0;32"]:["#35b997","#f05561","#ee224a","#91c13e","#22af4b","#f0e995","#0fe995","#0f89ca","#08b9a5","#fee851","#ee573d","#f9df30","#1da2dc","#f05123","#ee2524"],i=0,h=()=>{let e=b[i];return i++,i>=b.length&&(i=0),e},r={scope:c.platformInfo.isCli?"\x1B[{{color}}m":"color: {{color}};",reset:c.platformInfo.isCli?"\x1B[0m":"color: inherit;"},l=c.platformInfo.isCli?"%s%s%s":"%c%s%c",m=e=>{e=e.trim();let o=e.charAt(0);return o!=="["&&o!=="{"&&o!=="<"&&(e="["+e+"]"),e},y=(e,o=u)=>{let n=h(),s=r.scope.replace("{{color}}",n);e=m(e);let t={banner:c.platformInfo.isCli?console.log.bind(console,`\x1B[1;37;45m {{{ %s }}} ${r.reset}`):console.log.bind(console,"%c%s","font-size: 2rem; background-color: #5858e8; color: #fff; padding: 1rem 4rem; border-radius: 0.5rem;"),accident:c.platformInfo.isCli?console.warn.bind(console,`${s}⚠️
3
- %s\x1B[33m.%s() Accident \`%s\`!${r.reset}`,e):console.warn.bind(console,"%c%s%c.%s() Accident `%s`!",s,e,r.reset),error:c.platformInfo.isCli?console.error.bind(console,`${s}❌
4
- %s\x1B[31m.%s() Error \`%s\`${r.reset}
5
- `,e):console.error.bind(console,"%c%s%c.%s() Error `%s`\n",s,e,r.reset)};return o?{...t,logProperty:console.debug.bind(console,l+".%s = %o;",s,e,r.reset),logMethod:console.debug.bind(console,l+".%s();",s,e,r.reset),logModule:console.debug.bind(console,l+"/%s.js;",s,e,r.reset),logMethodArgs:console.debug.bind(console,l+".%s(%o);",s,e,r.reset),logMethodFull:console.debug.bind(console,l+".%s(%o) => %o",s,e,r.reset),logOther:console.debug.bind(console,l,s,e,r.reset),incident:c.platformInfo.isCli?console.log.bind(console,`${s}🚸
6
- %s${r.reset}.%s() Incident \`%s\`!${r.reset}`,e):console.log.bind(console,"%c%s%c.%s() Incident `%s`!",s,e,"color: orange;"),time:g=>console.time(e+"."+g+" duration time"),timeEnd:g=>console.timeEnd(e+"."+g+" duration time")}:t};0&&(module.exports={createLogger,debugMode});
1
+ /* @alwatr/logger v3.1.0 */
2
+ "use strict";var f=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var _=(e,o)=>{for(var n in o)f(e,n,{get:o[n],enumerable:!0})},A=(e,o,n,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let c of m(o))!x.call(e,c)&&c!==n&&f(e,c,{get:()=>o[c],enumerable:!(r=a(o,c))||r.enumerable});return e};var C=e=>A(f({},"__esModule",{value:!0}),e);var L={};_(L,{createLogger:()=>d,definePackage:()=>w});module.exports=C(L);var p=require("@alwatr/dedupe"),t=require("@alwatr/platform-info");(0,p.definePackage)("@alwatr/logger","3.1.0");var y=t.platformInfo.development||t.platformInfo.isCli?process.env.DEBUG!==void 0&&process.env.DEBUG!=="":typeof localStorage<"u"&&localStorage.getItem("debug")==="1",b=t.platformInfo.isCli?["0;36","0;35","0;34","0;33","0;32"]:["#35b997","#f05561","#ee224a","#91c13e","#22af4b","#f0e995","#0fe995","#0f89ca","#08b9a5","#fee851","#ee573d","#f9df30","#1da2dc","#f05123","#ee2524"],i=0,$=()=>{let e=b[i];return i++,i>=b.length&&(i=0),e},s={scope:t.platformInfo.isCli?"\x1B[{{color}}m":"color: {{color}};",reset:t.platformInfo.isCli?"\x1B[0m":"color: inherit;"},l=t.platformInfo.isCli?"%s%s%s":"%c%s%c",h=e=>{e=e.trim();let o=e.charAt(0);return o!=="["&&o!=="{"&&o!=="<"&&(e="["+e+"]"),e},d=(e,o=y)=>{let n=$(),r=s.scope.replace("{{color}}",n);e=h(e);let c={debugMode:o,banner:t.platformInfo.isCli?console.log.bind(console,`\x1B[1;37;45m {{{ %s }}} ${s.reset}`):console.log.bind(console,"%c%s","font-size: 2rem; background-color: #5858e8; color: #fff; padding: 1rem 4rem; border-radius: 0.5rem;"),accident:t.platformInfo.isCli?console.warn.bind(console,`${r}⚠️
3
+ %s\x1B[33m.%s() Accident \`%s\`!${s.reset}`,e):console.warn.bind(console,"%c%s%c.%s() Accident `%s`!",r,e,s.reset),error:t.platformInfo.isCli?console.error.bind(console,`${r}❌
4
+ %s\x1B[31m.%s() Error \`%s\`${s.reset}
5
+ `,e):console.error.bind(console,"%c%s%c.%s() Error `%s`\n",r,e,s.reset)};return o?{...c,logProperty:console.debug.bind(console,l+".%s = %o;",r,e,s.reset),logMethod:console.debug.bind(console,l+".%s();",r,e,s.reset),logModule:console.debug.bind(console,l+"/%s.js;",r,e,s.reset),logMethodArgs:console.debug.bind(console,l+".%s(%o);",r,e,s.reset),logMethodFull:console.debug.bind(console,l+".%s(%o) => %o",r,e,s.reset),logOther:console.debug.bind(console,l,r,e,s.reset),incident:t.platformInfo.isCli?console.log.bind(console,`${r}🚸
6
+ %s${s.reset}.%s() Incident \`%s\`!${s.reset}`,e):console.log.bind(console,"%c%s%c.%s() Incident `%s`!",r,e,"color: orange;"),time:g=>console.time(e+"."+g+" duration time"),timeEnd:g=>console.timeEnd(e+"."+g+" duration time")}:c};var u=require("@alwatr/dedupe");function w(e,o="v?"){let n=d(`{${e}}`);return n.logMethodArgs?.("define-package",{packageName:e,version:o}),(0,u.definePackage)(e,o),n}0&&(module.exports={createLogger,definePackage});
7
7
  //# sourceMappingURL=main.cjs.map
package/dist/main.cjs.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/main.ts"],
4
- "sourcesContent": ["import {definePackage} from '@alwatr/dedupe';\nimport {platformInfo} from '@alwatr/platform-info';\n\nimport type {AlwatrLogger} from './type.js';\n\ndefinePackage('@alwatr/logger', __package_version__);\n\nexport const debugMode = platformInfo.development || platformInfo.isCli\n ? process.env.DEBUG !== undefined && process.env.DEBUG !== ''\n : typeof localStorage !== 'undefined' && localStorage.getItem('debug') === '1';\n\n/**\n * Color list storage for logger.\n */\nconst colorList = platformInfo.isCli\n ? ['0;36', '0;35', '0;34', '0;33', '0;32'] // red and white omitted\n : [\n '#35b997',\n '#f05561',\n '#ee224a',\n '#91c13e',\n '#22af4b',\n '#f0e995',\n '#0fe995',\n '#0f89ca',\n '#08b9a5',\n '#fee851',\n '#ee573d',\n '#f9df30',\n '#1da2dc',\n '#f05123',\n '#ee2524',\n ];\n\nlet _colorIndex = 0;\nconst _getNextColor = (): string => {\n const color = colorList[_colorIndex];\n _colorIndex++;\n if (_colorIndex >= colorList.length) {\n _colorIndex = 0;\n }\n return color;\n};\n\nconst _style = {\n scope: platformInfo.isCli ? '\\x1b[{{color}}m' : 'color: {{color}};',\n reset: platformInfo.isCli ? '\\x1b[0m' : 'color: inherit;',\n};\n\nconst _keySection = platformInfo.isCli ? '%s%s%s' : '%c%s%c';\n\nconst _sanitizeDomain = (domain: string): string => {\n domain = domain.trim();\n const first = domain.charAt(0);\n if (first !== '[' && first !== '{' && first !== '<') {\n domain = '[' + domain + ']';\n }\n return domain;\n};\n\n/**\n * Create a logger function for fancy console debug with custom scope.\n *\n * - **color** is optional and automatically select from internal fancy color list.\n * - **debug** is optional and automatically detect from localStorage `ALWATR_DEBUG` item or `process.env.ALWATR_DEBUG`\n *\n * Example:\n *\n * ```ts\n * import {createLogger} from 'https://esm.run/@alwatr/logger';\n * const logger = createLogger('logger/demo');\n * ```\n */\nexport const createLogger = (domain: string, debugMode_ = debugMode): AlwatrLogger => {\n const color = _getNextColor();\n const styleScope = _style.scope.replace('{{color}}', color);\n domain = _sanitizeDomain(domain);\n\n /**\n * Required logger object, accident, error always reported even when the devMode is false.\n */\n const requiredItems: AlwatrLogger = {\n banner: platformInfo.isCli\n ? console.log.bind(console, `\\x1b[1;37;45m {{{ %s }}} ${_style.reset}`)\n : console.log.bind(\n console,\n '%c%s',\n 'font-size: 2rem; background-color: #5858e8; color: #fff; padding: 1rem 4rem; border-radius: 0.5rem;',\n ),\n\n accident: platformInfo.isCli\n ? console.warn.bind(console, `${styleScope}⚠️\\n%s\\x1b[33m.%s() Accident \\`%s\\`!${_style.reset}`, domain)\n : console.warn.bind(console, '%c%s%c.%s() Accident `%s`!', styleScope, domain, _style.reset),\n\n error: platformInfo.isCli\n ? console.error.bind(console, `${styleScope}❌\\n%s\\x1b[31m.%s() Error \\`%s\\`${_style.reset}\\n`, domain)\n : console.error.bind(console, '%c%s%c.%s() Error `%s`\\n', styleScope, domain, _style.reset),\n };\n\n if (!debugMode_) {\n return requiredItems;\n }\n // else\n return {\n ...requiredItems,\n\n logProperty: console.debug.bind(console, _keySection + '.%s = %o;', styleScope, domain, _style.reset),\n\n logMethod: console.debug.bind(console, _keySection + '.%s();', styleScope, domain, _style.reset),\n\n logModule: console.debug.bind(console, _keySection + '/%s.js;', styleScope, domain, _style.reset),\n\n logMethodArgs: console.debug.bind(console, _keySection + '.%s(%o);', styleScope, domain, _style.reset),\n\n logMethodFull: console.debug.bind(console, _keySection + '.%s(%o) => %o', styleScope, domain, _style.reset),\n\n logOther: console.debug.bind(console, _keySection, styleScope, domain, _style.reset),\n\n incident: platformInfo.isCli\n ? console.log.bind(console, `${styleScope}🚸\\n%s${_style.reset}.%s() Incident \\`%s\\`!${_style.reset}`, domain)\n : console.log.bind(console, '%c%s%c.%s() Incident `%s`!', styleScope, domain, 'color: orange;'),\n\n time: (label: string) => console.time(domain + '.' + label + ' duration time'),\n timeEnd: (label: string) => console.timeEnd(domain + '.' + label + ' duration time'),\n } as const;\n};\n"],
5
- "mappings": ";yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kBAAAE,EAAA,cAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAA4B,0BAC5BC,EAA2B,oCAI3B,iBAAc,iBAAkB,OAAmB,EAE5C,IAAMH,EAAY,eAAa,aAAe,eAAa,MAC9D,QAAQ,IAAI,QAAU,QAAa,QAAQ,IAAI,QAAU,GACzD,OAAO,aAAiB,KAAe,aAAa,QAAQ,OAAO,IAAM,IAKvEI,EAAY,eAAa,MAC3B,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,MAAM,EACvC,CACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACF,EAEEC,EAAc,EACZC,EAAgB,IAAc,CAClC,IAAMC,EAAQH,EAAUC,CAAW,EACnC,OAAAA,IACIA,GAAeD,EAAU,SAC3BC,EAAc,GAETE,CACT,EAEMC,EAAS,CACb,MAAO,eAAa,MAAQ,kBAAoB,oBAChD,MAAO,eAAa,MAAQ,UAAY,iBAC1C,EAEMC,EAAc,eAAa,MAAQ,SAAW,SAE9CC,EAAmBC,GAA2B,CAClDA,EAASA,EAAO,KAAK,EACrB,IAAMC,EAAQD,EAAO,OAAO,CAAC,EAC7B,OAAIC,IAAU,KAAOA,IAAU,KAAOA,IAAU,MAC9CD,EAAS,IAAMA,EAAS,KAEnBA,CACT,EAeaZ,EAAe,CAACY,EAAgBE,EAAab,IAA4B,CACpF,IAAMO,EAAQD,EAAc,EACtBQ,EAAaN,EAAO,MAAM,QAAQ,YAAaD,CAAK,EAC1DI,EAASD,EAAgBC,CAAM,EAK/B,IAAMI,EAA8B,CAClC,OAAQ,eAAa,MACjB,QAAQ,IAAI,KAAK,QAAS,4BAA4BP,EAAO,KAAK,EAAE,EACpE,QAAQ,IAAI,KACZ,QACA,OACA,qGACF,EAEF,SAAU,eAAa,MACnB,QAAQ,KAAK,KAAK,QAAS,GAAGM,CAAU;AAAA,kCAAuCN,EAAO,KAAK,GAAIG,CAAM,EACrG,QAAQ,KAAK,KAAK,QAAS,6BAA8BG,EAAYH,EAAQH,EAAO,KAAK,EAE7F,MAAO,eAAa,MAChB,QAAQ,MAAM,KAAK,QAAS,GAAGM,CAAU;AAAA,8BAAkCN,EAAO,KAAK;AAAA,EAAMG,CAAM,EACnG,QAAQ,MAAM,KAAK,QAAS,2BAA4BG,EAAYH,EAAQH,EAAO,KAAK,CAC9F,EAEA,OAAKK,EAIE,CACL,GAAGE,EAEH,YAAa,QAAQ,MAAM,KAAK,QAASN,EAAc,YAAaK,EAAYH,EAAQH,EAAO,KAAK,EAEpG,UAAW,QAAQ,MAAM,KAAK,QAASC,EAAc,SAAUK,EAAYH,EAAQH,EAAO,KAAK,EAE/F,UAAW,QAAQ,MAAM,KAAK,QAASC,EAAc,UAAWK,EAAYH,EAAQH,EAAO,KAAK,EAEhG,cAAe,QAAQ,MAAM,KAAK,QAASC,EAAc,WAAYK,EAAYH,EAAQH,EAAO,KAAK,EAErG,cAAe,QAAQ,MAAM,KAAK,QAASC,EAAc,gBAAiBK,EAAYH,EAAQH,EAAO,KAAK,EAE1G,SAAU,QAAQ,MAAM,KAAK,QAASC,EAAaK,EAAYH,EAAQH,EAAO,KAAK,EAEnF,SAAU,eAAa,MACnB,QAAQ,IAAI,KAAK,QAAS,GAAGM,CAAU;AAAA,IAASN,EAAO,KAAK,yBAAyBA,EAAO,KAAK,GAAIG,CAAM,EAC3G,QAAQ,IAAI,KAAK,QAAS,6BAA8BG,EAAYH,EAAQ,gBAAgB,EAEhG,KAAOK,GAAkB,QAAQ,KAAKL,EAAS,IAAMK,EAAQ,gBAAgB,EAC7E,QAAUA,GAAkB,QAAQ,QAAQL,EAAS,IAAMK,EAAQ,gBAAgB,CACrF,EAxBSD,CAyBX",
6
- "names": ["main_exports", "__export", "createLogger", "debugMode", "__toCommonJS", "import_dedupe", "import_platform_info", "colorList", "_colorIndex", "_getNextColor", "color", "_style", "_keySection", "_sanitizeDomain", "domain", "first", "debugMode_", "styleScope", "requiredItems", "label"]
3
+ "sources": ["../src/main.ts", "../src/logger.ts", "../src/define-package.ts"],
4
+ "sourcesContent": ["export * from './logger';\nexport * from './define-package';\nexport * from './type';\n", "import {definePackage} from '@alwatr/dedupe';\nimport {platformInfo} from '@alwatr/platform-info';\n\nimport type {AlwatrLogger} from './type.js';\n\ndefinePackage('@alwatr/logger', __package_version__);\n\nconst defaultDebugMode =\n platformInfo.development || platformInfo.isCli\n ? process.env.DEBUG !== undefined && process.env.DEBUG !== ''\n : typeof localStorage !== 'undefined' && localStorage.getItem('debug') === '1';\n\n/**\n * Color list storage for logger.\n */\nconst colorList = platformInfo.isCli\n ? ['0;36', '0;35', '0;34', '0;33', '0;32'] // red and white omitted\n : [\n '#35b997',\n '#f05561',\n '#ee224a',\n '#91c13e',\n '#22af4b',\n '#f0e995',\n '#0fe995',\n '#0f89ca',\n '#08b9a5',\n '#fee851',\n '#ee573d',\n '#f9df30',\n '#1da2dc',\n '#f05123',\n '#ee2524',\n ];\n\nlet _colorIndex = 0;\nconst _getNextColor = (): string => {\n const color = colorList[_colorIndex];\n _colorIndex++;\n if (_colorIndex >= colorList.length) {\n _colorIndex = 0;\n }\n return color;\n};\n\nconst _style = {\n scope: platformInfo.isCli ? '\\x1b[{{color}}m' : 'color: {{color}};',\n reset: platformInfo.isCli ? '\\x1b[0m' : 'color: inherit;',\n};\n\nconst _keySection = platformInfo.isCli ? '%s%s%s' : '%c%s%c';\n\nconst _sanitizeDomain = (domain: string): string => {\n domain = domain.trim();\n const first = domain.charAt(0);\n if (first !== '[' && first !== '{' && first !== '<') {\n domain = '[' + domain + ']';\n }\n return domain;\n};\n\n/**\n * Create a logger function for fancy console debug with custom scope.\n *\n * - **color** is optional and automatically select from internal fancy color list.\n * - **debug** is optional and automatically detect from localStorage `ALWATR_DEBUG` item or `process.env.ALWATR_DEBUG`\n *\n * Example:\n *\n * ```ts\n * import {createLogger} from 'https://esm.run/@alwatr/logger';\n * const logger = createLogger('logger/demo');\n * ```\n */\nexport const createLogger = (domain: string, debugMode = defaultDebugMode): AlwatrLogger => {\n const color = _getNextColor();\n const styleScope = _style.scope.replace('{{color}}', color);\n domain = _sanitizeDomain(domain);\n\n /**\n * Required logger object, accident, error always reported even when the devMode is false.\n */\n const requiredItems: AlwatrLogger = {\n debugMode,\n\n banner: platformInfo.isCli\n ? console.log.bind(console, `\\x1b[1;37;45m {{{ %s }}} ${_style.reset}`)\n : console.log.bind(\n console,\n '%c%s',\n 'font-size: 2rem; background-color: #5858e8; color: #fff; padding: 1rem 4rem; border-radius: 0.5rem;',\n ),\n\n accident: platformInfo.isCli\n ? console.warn.bind(console, `${styleScope}⚠️\\n%s\\x1b[33m.%s() Accident \\`%s\\`!${_style.reset}`, domain)\n : console.warn.bind(console, '%c%s%c.%s() Accident `%s`!', styleScope, domain, _style.reset),\n\n error: platformInfo.isCli\n ? console.error.bind(console, `${styleScope}❌\\n%s\\x1b[31m.%s() Error \\`%s\\`${_style.reset}\\n`, domain)\n : console.error.bind(console, '%c%s%c.%s() Error `%s`\\n', styleScope, domain, _style.reset),\n };\n\n if (!debugMode) {\n return requiredItems;\n }\n // else\n return {\n ...requiredItems,\n\n logProperty: console.debug.bind(console, _keySection + '.%s = %o;', styleScope, domain, _style.reset),\n\n logMethod: console.debug.bind(console, _keySection + '.%s();', styleScope, domain, _style.reset),\n\n logModule: console.debug.bind(console, _keySection + '/%s.js;', styleScope, domain, _style.reset),\n\n logMethodArgs: console.debug.bind(console, _keySection + '.%s(%o);', styleScope, domain, _style.reset),\n\n logMethodFull: console.debug.bind(console, _keySection + '.%s(%o) => %o', styleScope, domain, _style.reset),\n\n logOther: console.debug.bind(console, _keySection, styleScope, domain, _style.reset),\n\n incident: platformInfo.isCli\n ? console.log.bind(console, `${styleScope}🚸\\n%s${_style.reset}.%s() Incident \\`%s\\`!${_style.reset}`, domain)\n : console.log.bind(console, '%c%s%c.%s() Incident `%s`!', styleScope, domain, 'color: orange;'),\n\n time: (label: string) => console.time(domain + '.' + label + ' duration time'),\n timeEnd: (label: string) => console.timeEnd(domain + '.' + label + ' duration time'),\n } as const;\n};\n", "import {definePackage as definePackage_} from '@alwatr/dedupe';\n\nimport {createLogger} from './logger.js';\n\nimport type {AlwatrLogger} from './type.js';\n\n/**\n * Global define package for managing package versions to prevent version conflicts and return package level logger.\n * @param packageName package name including scope. e.g. `@scope/package-name`\n * @param version package version (optional)\n * @returns AlwatrLogger for the package\n *\n * @example\n * ```typescript\n * const logger = definePackage('@scope/package-name', __package_version__);\n *\n * logger.logMethodArgs?.('myMethod', {a, b});\n * ```\n */\nexport function definePackage(packageName: string, version = 'v?'): AlwatrLogger {\n const logger = createLogger(`{${packageName}}`);\n logger.logMethodArgs?.('define-package', {packageName, version});\n definePackage_(packageName, version);\n return logger;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["main_exports", "__export", "createLogger", "definePackage", "__toCommonJS", "import_dedupe", "import_platform_info", "defaultDebugMode", "colorList", "_colorIndex", "_getNextColor", "color", "_style", "_keySection", "_sanitizeDomain", "domain", "first", "createLogger", "debugMode", "styleScope", "requiredItems", "label", "import_dedupe", "definePackage", "packageName", "version", "logger", "createLogger", "definePackage_"]
7
7
  }
package/dist/main.d.ts CHANGED
@@ -1,17 +1,4 @@
1
- import type { AlwatrLogger } from './type.js';
2
- export declare const debugMode: boolean;
3
- /**
4
- * Create a logger function for fancy console debug with custom scope.
5
- *
6
- * - **color** is optional and automatically select from internal fancy color list.
7
- * - **debug** is optional and automatically detect from localStorage `ALWATR_DEBUG` item or `process.env.ALWATR_DEBUG`
8
- *
9
- * Example:
10
- *
11
- * ```ts
12
- * import {createLogger} from 'https://esm.run/@alwatr/logger';
13
- * const logger = createLogger('logger/demo');
14
- * ```
15
- */
16
- export declare const createLogger: (domain: string, debugMode_?: boolean) => AlwatrLogger;
1
+ export * from './logger';
2
+ export * from './define-package';
3
+ export * from './type';
17
4
  //# sourceMappingURL=main.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AAI5C,eAAO,MAAM,SAAS,SAE0D,CAAC;AAmDjF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,WAAY,MAAM,2BAA2B,YAoDrE,CAAC"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC"}
package/dist/main.mjs CHANGED
@@ -1,7 +1,7 @@
1
- /* @alwatr/logger v3.0.0 */
2
- import{definePackage as b}from"@alwatr/dedupe";import{platformInfo as r}from"@alwatr/platform-info";b("@alwatr/logger","3.0.0");var f=r.development||r.isCli?process.env.DEBUG!==void 0&&process.env.DEBUG!=="":typeof localStorage<"u"&&localStorage.getItem("debug")==="1",g=r.isCli?["0;36","0;35","0;34","0;33","0;32"]:["#35b997","#f05561","#ee224a","#91c13e","#22af4b","#f0e995","#0fe995","#0f89ca","#08b9a5","#fee851","#ee573d","#f9df30","#1da2dc","#f05123","#ee2524"],n=0,u=()=>{let e=g[n];return n++,n>=g.length&&(n=0),e},o={scope:r.isCli?"\x1B[{{color}}m":"color: {{color}};",reset:r.isCli?"\x1B[0m":"color: inherit;"},c=r.isCli?"%s%s%s":"%c%s%c",p=e=>{e=e.trim();let t=e.charAt(0);return t!=="["&&t!=="{"&&t!=="<"&&(e="["+e+"]"),e},_=(e,t=f)=>{let d=u(),s=o.scope.replace("{{color}}",d);e=p(e);let i={banner:r.isCli?console.log.bind(console,`\x1B[1;37;45m {{{ %s }}} ${o.reset}`):console.log.bind(console,"%c%s","font-size: 2rem; background-color: #5858e8; color: #fff; padding: 1rem 4rem; border-radius: 0.5rem;"),accident:r.isCli?console.warn.bind(console,`${s}⚠️
3
- %s\x1B[33m.%s() Accident \`%s\`!${o.reset}`,e):console.warn.bind(console,"%c%s%c.%s() Accident `%s`!",s,e,o.reset),error:r.isCli?console.error.bind(console,`${s}❌
1
+ /* @alwatr/logger v3.1.0 */
2
+ import{definePackage as b}from"@alwatr/dedupe";import{platformInfo as s}from"@alwatr/platform-info";b("@alwatr/logger","3.1.0");var p=s.development||s.isCli?process.env.DEBUG!==void 0&&process.env.DEBUG!=="":typeof localStorage<"u"&&localStorage.getItem("debug")==="1",f=s.isCli?["0;36","0;35","0;34","0;33","0;32"]:["#35b997","#f05561","#ee224a","#91c13e","#22af4b","#f0e995","#0fe995","#0f89ca","#08b9a5","#fee851","#ee573d","#f9df30","#1da2dc","#f05123","#ee2524"],l=0,u=()=>{let e=f[l];return l++,l>=f.length&&(l=0),e},o={scope:s.isCli?"\x1B[{{color}}m":"color: {{color}};",reset:s.isCli?"\x1B[0m":"color: inherit;"},n=s.isCli?"%s%s%s":"%c%s%c",a=e=>{e=e.trim();let t=e.charAt(0);return t!=="["&&t!=="{"&&t!=="<"&&(e="["+e+"]"),e},d=(e,t=p)=>{let c=u(),r=o.scope.replace("{{color}}",c);e=a(e);let g={debugMode:t,banner:s.isCli?console.log.bind(console,`\x1B[1;37;45m {{{ %s }}} ${o.reset}`):console.log.bind(console,"%c%s","font-size: 2rem; background-color: #5858e8; color: #fff; padding: 1rem 4rem; border-radius: 0.5rem;"),accident:s.isCli?console.warn.bind(console,`${r}⚠️
3
+ %s\x1B[33m.%s() Accident \`%s\`!${o.reset}`,e):console.warn.bind(console,"%c%s%c.%s() Accident `%s`!",r,e,o.reset),error:s.isCli?console.error.bind(console,`${r}❌
4
4
  %s\x1B[31m.%s() Error \`%s\`${o.reset}
5
- `,e):console.error.bind(console,"%c%s%c.%s() Error `%s`\n",s,e,o.reset)};return t?{...i,logProperty:console.debug.bind(console,c+".%s = %o;",s,e,o.reset),logMethod:console.debug.bind(console,c+".%s();",s,e,o.reset),logModule:console.debug.bind(console,c+"/%s.js;",s,e,o.reset),logMethodArgs:console.debug.bind(console,c+".%s(%o);",s,e,o.reset),logMethodFull:console.debug.bind(console,c+".%s(%o) => %o",s,e,o.reset),logOther:console.debug.bind(console,c,s,e,o.reset),incident:r.isCli?console.log.bind(console,`${s}🚸
6
- %s${o.reset}.%s() Incident \`%s\`!${o.reset}`,e):console.log.bind(console,"%c%s%c.%s() Incident `%s`!",s,e,"color: orange;"),time:l=>console.time(e+"."+l+" duration time"),timeEnd:l=>console.timeEnd(e+"."+l+" duration time")}:i};export{_ as createLogger,f as debugMode};
5
+ `,e):console.error.bind(console,"%c%s%c.%s() Error `%s`\n",r,e,o.reset)};return t?{...g,logProperty:console.debug.bind(console,n+".%s = %o;",r,e,o.reset),logMethod:console.debug.bind(console,n+".%s();",r,e,o.reset),logModule:console.debug.bind(console,n+"/%s.js;",r,e,o.reset),logMethodArgs:console.debug.bind(console,n+".%s(%o);",r,e,o.reset),logMethodFull:console.debug.bind(console,n+".%s(%o) => %o",r,e,o.reset),logOther:console.debug.bind(console,n,r,e,o.reset),incident:s.isCli?console.log.bind(console,`${r}🚸
6
+ %s${o.reset}.%s() Incident \`%s\`!${o.reset}`,e):console.log.bind(console,"%c%s%c.%s() Incident `%s`!",r,e,"color: orange;"),time:i=>console.time(e+"."+i+" duration time"),timeEnd:i=>console.timeEnd(e+"."+i+" duration time")}:g};import{definePackage as m}from"@alwatr/dedupe";function $(e,t="v?"){let c=d(`{${e}}`);return c.logMethodArgs?.("define-package",{packageName:e,version:t}),m(e,t),c}export{d as createLogger,$ as definePackage};
7
7
  //# sourceMappingURL=main.mjs.map
package/dist/main.mjs.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/main.ts"],
4
- "sourcesContent": ["import {definePackage} from '@alwatr/dedupe';\nimport {platformInfo} from '@alwatr/platform-info';\n\nimport type {AlwatrLogger} from './type.js';\n\ndefinePackage('@alwatr/logger', __package_version__);\n\nexport const debugMode = platformInfo.development || platformInfo.isCli\n ? process.env.DEBUG !== undefined && process.env.DEBUG !== ''\n : typeof localStorage !== 'undefined' && localStorage.getItem('debug') === '1';\n\n/**\n * Color list storage for logger.\n */\nconst colorList = platformInfo.isCli\n ? ['0;36', '0;35', '0;34', '0;33', '0;32'] // red and white omitted\n : [\n '#35b997',\n '#f05561',\n '#ee224a',\n '#91c13e',\n '#22af4b',\n '#f0e995',\n '#0fe995',\n '#0f89ca',\n '#08b9a5',\n '#fee851',\n '#ee573d',\n '#f9df30',\n '#1da2dc',\n '#f05123',\n '#ee2524',\n ];\n\nlet _colorIndex = 0;\nconst _getNextColor = (): string => {\n const color = colorList[_colorIndex];\n _colorIndex++;\n if (_colorIndex >= colorList.length) {\n _colorIndex = 0;\n }\n return color;\n};\n\nconst _style = {\n scope: platformInfo.isCli ? '\\x1b[{{color}}m' : 'color: {{color}};',\n reset: platformInfo.isCli ? '\\x1b[0m' : 'color: inherit;',\n};\n\nconst _keySection = platformInfo.isCli ? '%s%s%s' : '%c%s%c';\n\nconst _sanitizeDomain = (domain: string): string => {\n domain = domain.trim();\n const first = domain.charAt(0);\n if (first !== '[' && first !== '{' && first !== '<') {\n domain = '[' + domain + ']';\n }\n return domain;\n};\n\n/**\n * Create a logger function for fancy console debug with custom scope.\n *\n * - **color** is optional and automatically select from internal fancy color list.\n * - **debug** is optional and automatically detect from localStorage `ALWATR_DEBUG` item or `process.env.ALWATR_DEBUG`\n *\n * Example:\n *\n * ```ts\n * import {createLogger} from 'https://esm.run/@alwatr/logger';\n * const logger = createLogger('logger/demo');\n * ```\n */\nexport const createLogger = (domain: string, debugMode_ = debugMode): AlwatrLogger => {\n const color = _getNextColor();\n const styleScope = _style.scope.replace('{{color}}', color);\n domain = _sanitizeDomain(domain);\n\n /**\n * Required logger object, accident, error always reported even when the devMode is false.\n */\n const requiredItems: AlwatrLogger = {\n banner: platformInfo.isCli\n ? console.log.bind(console, `\\x1b[1;37;45m {{{ %s }}} ${_style.reset}`)\n : console.log.bind(\n console,\n '%c%s',\n 'font-size: 2rem; background-color: #5858e8; color: #fff; padding: 1rem 4rem; border-radius: 0.5rem;',\n ),\n\n accident: platformInfo.isCli\n ? console.warn.bind(console, `${styleScope}⚠️\\n%s\\x1b[33m.%s() Accident \\`%s\\`!${_style.reset}`, domain)\n : console.warn.bind(console, '%c%s%c.%s() Accident `%s`!', styleScope, domain, _style.reset),\n\n error: platformInfo.isCli\n ? console.error.bind(console, `${styleScope}❌\\n%s\\x1b[31m.%s() Error \\`%s\\`${_style.reset}\\n`, domain)\n : console.error.bind(console, '%c%s%c.%s() Error `%s`\\n', styleScope, domain, _style.reset),\n };\n\n if (!debugMode_) {\n return requiredItems;\n }\n // else\n return {\n ...requiredItems,\n\n logProperty: console.debug.bind(console, _keySection + '.%s = %o;', styleScope, domain, _style.reset),\n\n logMethod: console.debug.bind(console, _keySection + '.%s();', styleScope, domain, _style.reset),\n\n logModule: console.debug.bind(console, _keySection + '/%s.js;', styleScope, domain, _style.reset),\n\n logMethodArgs: console.debug.bind(console, _keySection + '.%s(%o);', styleScope, domain, _style.reset),\n\n logMethodFull: console.debug.bind(console, _keySection + '.%s(%o) => %o', styleScope, domain, _style.reset),\n\n logOther: console.debug.bind(console, _keySection, styleScope, domain, _style.reset),\n\n incident: platformInfo.isCli\n ? console.log.bind(console, `${styleScope}🚸\\n%s${_style.reset}.%s() Incident \\`%s\\`!${_style.reset}`, domain)\n : console.log.bind(console, '%c%s%c.%s() Incident `%s`!', styleScope, domain, 'color: orange;'),\n\n time: (label: string) => console.time(domain + '.' + label + ' duration time'),\n timeEnd: (label: string) => console.timeEnd(domain + '.' + label + ' duration time'),\n } as const;\n};\n"],
5
- "mappings": ";AAAA,OAAQ,iBAAAA,MAAoB,iBAC5B,OAAQ,gBAAAC,MAAmB,wBAI3BD,EAAc,iBAAkB,OAAmB,EAE5C,IAAME,EAAYD,EAAa,aAAeA,EAAa,MAC9D,QAAQ,IAAI,QAAU,QAAa,QAAQ,IAAI,QAAU,GACzD,OAAO,aAAiB,KAAe,aAAa,QAAQ,OAAO,IAAM,IAKvEE,EAAYF,EAAa,MAC3B,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,MAAM,EACvC,CACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACF,EAEEG,EAAc,EACZC,EAAgB,IAAc,CAClC,IAAMC,EAAQH,EAAUC,CAAW,EACnC,OAAAA,IACIA,GAAeD,EAAU,SAC3BC,EAAc,GAETE,CACT,EAEMC,EAAS,CACb,MAAON,EAAa,MAAQ,kBAAoB,oBAChD,MAAOA,EAAa,MAAQ,UAAY,iBAC1C,EAEMO,EAAcP,EAAa,MAAQ,SAAW,SAE9CQ,EAAmBC,GAA2B,CAClDA,EAASA,EAAO,KAAK,EACrB,IAAMC,EAAQD,EAAO,OAAO,CAAC,EAC7B,OAAIC,IAAU,KAAOA,IAAU,KAAOA,IAAU,MAC9CD,EAAS,IAAMA,EAAS,KAEnBA,CACT,EAeaE,EAAe,CAACF,EAAgBG,EAAaX,IAA4B,CACpF,IAAMI,EAAQD,EAAc,EACtBS,EAAaP,EAAO,MAAM,QAAQ,YAAaD,CAAK,EAC1DI,EAASD,EAAgBC,CAAM,EAK/B,IAAMK,EAA8B,CAClC,OAAQd,EAAa,MACjB,QAAQ,IAAI,KAAK,QAAS,4BAA4BM,EAAO,KAAK,EAAE,EACpE,QAAQ,IAAI,KACZ,QACA,OACA,qGACF,EAEF,SAAUN,EAAa,MACnB,QAAQ,KAAK,KAAK,QAAS,GAAGa,CAAU;AAAA,kCAAuCP,EAAO,KAAK,GAAIG,CAAM,EACrG,QAAQ,KAAK,KAAK,QAAS,6BAA8BI,EAAYJ,EAAQH,EAAO,KAAK,EAE7F,MAAON,EAAa,MAChB,QAAQ,MAAM,KAAK,QAAS,GAAGa,CAAU;AAAA,8BAAkCP,EAAO,KAAK;AAAA,EAAMG,CAAM,EACnG,QAAQ,MAAM,KAAK,QAAS,2BAA4BI,EAAYJ,EAAQH,EAAO,KAAK,CAC9F,EAEA,OAAKM,EAIE,CACL,GAAGE,EAEH,YAAa,QAAQ,MAAM,KAAK,QAASP,EAAc,YAAaM,EAAYJ,EAAQH,EAAO,KAAK,EAEpG,UAAW,QAAQ,MAAM,KAAK,QAASC,EAAc,SAAUM,EAAYJ,EAAQH,EAAO,KAAK,EAE/F,UAAW,QAAQ,MAAM,KAAK,QAASC,EAAc,UAAWM,EAAYJ,EAAQH,EAAO,KAAK,EAEhG,cAAe,QAAQ,MAAM,KAAK,QAASC,EAAc,WAAYM,EAAYJ,EAAQH,EAAO,KAAK,EAErG,cAAe,QAAQ,MAAM,KAAK,QAASC,EAAc,gBAAiBM,EAAYJ,EAAQH,EAAO,KAAK,EAE1G,SAAU,QAAQ,MAAM,KAAK,QAASC,EAAaM,EAAYJ,EAAQH,EAAO,KAAK,EAEnF,SAAUN,EAAa,MACnB,QAAQ,IAAI,KAAK,QAAS,GAAGa,CAAU;AAAA,IAASP,EAAO,KAAK,yBAAyBA,EAAO,KAAK,GAAIG,CAAM,EAC3G,QAAQ,IAAI,KAAK,QAAS,6BAA8BI,EAAYJ,EAAQ,gBAAgB,EAEhG,KAAOM,GAAkB,QAAQ,KAAKN,EAAS,IAAMM,EAAQ,gBAAgB,EAC7E,QAAUA,GAAkB,QAAQ,QAAQN,EAAS,IAAMM,EAAQ,gBAAgB,CACrF,EAxBSD,CAyBX",
6
- "names": ["definePackage", "platformInfo", "debugMode", "colorList", "_colorIndex", "_getNextColor", "color", "_style", "_keySection", "_sanitizeDomain", "domain", "first", "createLogger", "debugMode_", "styleScope", "requiredItems", "label"]
3
+ "sources": ["../src/logger.ts", "../src/define-package.ts"],
4
+ "sourcesContent": ["import {definePackage} from '@alwatr/dedupe';\nimport {platformInfo} from '@alwatr/platform-info';\n\nimport type {AlwatrLogger} from './type.js';\n\ndefinePackage('@alwatr/logger', __package_version__);\n\nconst defaultDebugMode =\n platformInfo.development || platformInfo.isCli\n ? process.env.DEBUG !== undefined && process.env.DEBUG !== ''\n : typeof localStorage !== 'undefined' && localStorage.getItem('debug') === '1';\n\n/**\n * Color list storage for logger.\n */\nconst colorList = platformInfo.isCli\n ? ['0;36', '0;35', '0;34', '0;33', '0;32'] // red and white omitted\n : [\n '#35b997',\n '#f05561',\n '#ee224a',\n '#91c13e',\n '#22af4b',\n '#f0e995',\n '#0fe995',\n '#0f89ca',\n '#08b9a5',\n '#fee851',\n '#ee573d',\n '#f9df30',\n '#1da2dc',\n '#f05123',\n '#ee2524',\n ];\n\nlet _colorIndex = 0;\nconst _getNextColor = (): string => {\n const color = colorList[_colorIndex];\n _colorIndex++;\n if (_colorIndex >= colorList.length) {\n _colorIndex = 0;\n }\n return color;\n};\n\nconst _style = {\n scope: platformInfo.isCli ? '\\x1b[{{color}}m' : 'color: {{color}};',\n reset: platformInfo.isCli ? '\\x1b[0m' : 'color: inherit;',\n};\n\nconst _keySection = platformInfo.isCli ? '%s%s%s' : '%c%s%c';\n\nconst _sanitizeDomain = (domain: string): string => {\n domain = domain.trim();\n const first = domain.charAt(0);\n if (first !== '[' && first !== '{' && first !== '<') {\n domain = '[' + domain + ']';\n }\n return domain;\n};\n\n/**\n * Create a logger function for fancy console debug with custom scope.\n *\n * - **color** is optional and automatically select from internal fancy color list.\n * - **debug** is optional and automatically detect from localStorage `ALWATR_DEBUG` item or `process.env.ALWATR_DEBUG`\n *\n * Example:\n *\n * ```ts\n * import {createLogger} from 'https://esm.run/@alwatr/logger';\n * const logger = createLogger('logger/demo');\n * ```\n */\nexport const createLogger = (domain: string, debugMode = defaultDebugMode): AlwatrLogger => {\n const color = _getNextColor();\n const styleScope = _style.scope.replace('{{color}}', color);\n domain = _sanitizeDomain(domain);\n\n /**\n * Required logger object, accident, error always reported even when the devMode is false.\n */\n const requiredItems: AlwatrLogger = {\n debugMode,\n\n banner: platformInfo.isCli\n ? console.log.bind(console, `\\x1b[1;37;45m {{{ %s }}} ${_style.reset}`)\n : console.log.bind(\n console,\n '%c%s',\n 'font-size: 2rem; background-color: #5858e8; color: #fff; padding: 1rem 4rem; border-radius: 0.5rem;',\n ),\n\n accident: platformInfo.isCli\n ? console.warn.bind(console, `${styleScope}⚠️\\n%s\\x1b[33m.%s() Accident \\`%s\\`!${_style.reset}`, domain)\n : console.warn.bind(console, '%c%s%c.%s() Accident `%s`!', styleScope, domain, _style.reset),\n\n error: platformInfo.isCli\n ? console.error.bind(console, `${styleScope}❌\\n%s\\x1b[31m.%s() Error \\`%s\\`${_style.reset}\\n`, domain)\n : console.error.bind(console, '%c%s%c.%s() Error `%s`\\n', styleScope, domain, _style.reset),\n };\n\n if (!debugMode) {\n return requiredItems;\n }\n // else\n return {\n ...requiredItems,\n\n logProperty: console.debug.bind(console, _keySection + '.%s = %o;', styleScope, domain, _style.reset),\n\n logMethod: console.debug.bind(console, _keySection + '.%s();', styleScope, domain, _style.reset),\n\n logModule: console.debug.bind(console, _keySection + '/%s.js;', styleScope, domain, _style.reset),\n\n logMethodArgs: console.debug.bind(console, _keySection + '.%s(%o);', styleScope, domain, _style.reset),\n\n logMethodFull: console.debug.bind(console, _keySection + '.%s(%o) => %o', styleScope, domain, _style.reset),\n\n logOther: console.debug.bind(console, _keySection, styleScope, domain, _style.reset),\n\n incident: platformInfo.isCli\n ? console.log.bind(console, `${styleScope}🚸\\n%s${_style.reset}.%s() Incident \\`%s\\`!${_style.reset}`, domain)\n : console.log.bind(console, '%c%s%c.%s() Incident `%s`!', styleScope, domain, 'color: orange;'),\n\n time: (label: string) => console.time(domain + '.' + label + ' duration time'),\n timeEnd: (label: string) => console.timeEnd(domain + '.' + label + ' duration time'),\n } as const;\n};\n", "import {definePackage as definePackage_} from '@alwatr/dedupe';\n\nimport {createLogger} from './logger.js';\n\nimport type {AlwatrLogger} from './type.js';\n\n/**\n * Global define package for managing package versions to prevent version conflicts and return package level logger.\n * @param packageName package name including scope. e.g. `@scope/package-name`\n * @param version package version (optional)\n * @returns AlwatrLogger for the package\n *\n * @example\n * ```typescript\n * const logger = definePackage('@scope/package-name', __package_version__);\n *\n * logger.logMethodArgs?.('myMethod', {a, b});\n * ```\n */\nexport function definePackage(packageName: string, version = 'v?'): AlwatrLogger {\n const logger = createLogger(`{${packageName}}`);\n logger.logMethodArgs?.('define-package', {packageName, version});\n definePackage_(packageName, version);\n return logger;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["definePackage", "platformInfo", "defaultDebugMode", "colorList", "_colorIndex", "_getNextColor", "color", "_style", "_keySection", "_sanitizeDomain", "domain", "first", "createLogger", "debugMode", "styleScope", "requiredItems", "label", "definePackage_", "definePackage", "packageName", "version", "logger", "createLogger"]
7
7
  }
package/dist/type.d.ts CHANGED
@@ -1,4 +1,12 @@
1
+ /**
2
+ * Represents the AlwatrLogger interface.
3
+ * The AlwatrLogger provides methods for logging various types of information.
4
+ */
1
5
  export interface AlwatrLogger {
6
+ /**
7
+ * Debug state for current scope base on localStorage `ALWATR_LOG` pattern.
8
+ */
9
+ debugMode: boolean;
2
10
  /**
3
11
  * `console.debug` property change.
4
12
  *
@@ -1 +1 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B;;;;;;;;OAQG;IACH,WAAW,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAErD;;;;;;;;OAQG;IACH,SAAS,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B;;;;;;;;;;OAUG;IACH,SAAS,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC;;;;;;;;;;OAUG;IACH,aAAa,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAEpD;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAErE;;;;;;;;;OASG;IACH,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAElE;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEjE;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAE9D;;;;;;;;OAQG;IACH,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEpC;;;;;;;;OAQG;IACH,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;;;;;;OAQG;IACH,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B;;;;;;;;OAQG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B"}
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,YAAY;IAE3B;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;;;;;;;OAQG;IACH,WAAW,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAErD;;;;;;;;OAQG;IACH,SAAS,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B;;;;;;;;;;OAUG;IACH,SAAS,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC;;;;;;;;;;OAUG;IACH,aAAa,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAEpD;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAErE;;;;;;;;;OASG;IACH,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAElE;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEjE;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAE9D;;;;;;;;OAQG;IACH,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEpC;;;;;;;;OAQG;IACH,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;;;;;;OAQG;IACH,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B;;;;;;;;OAQG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alwatr/logger",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "Fancy colorful console debugger with custom scope written in tiny TypeScript, ES module.",
5
5
  "author": "S. Ali Mihandoost <ali.mihandoost@gmail.com>",
6
6
  "keywords": [
@@ -66,7 +66,7 @@
66
66
  "clean": "rm -rfv dist *.tsbuildinfo"
67
67
  },
68
68
  "dependencies": {
69
- "@alwatr/dedupe": "^0.1.0",
69
+ "@alwatr/dedupe": "^1.0.0",
70
70
  "@alwatr/platform-info": "^1.1.0"
71
71
  },
72
72
  "devDependencies": {
@@ -76,5 +76,5 @@
76
76
  "@types/node": "^20.10.6",
77
77
  "typescript": "^5.3.3"
78
78
  },
79
- "gitHead": "f33492f47adda814385e51f38be86eeef9629e62"
79
+ "gitHead": "b7ed169733e8a1e50973a1cff5a64d4a5e0515ae"
80
80
  }