functype-log 0.60.5 → 0.60.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"LogLayerAdapter.js","names":[],"sources":["../../src/adapter/LogLayerAdapter.ts"],"sourcesContent":["import { IO } from \"functype\"\nimport type { ILogLayer } from \"loglayer\"\n\nimport type { Logger, LogLevel, LogMetadata } from \"../logger/Logger\"\n\nconst makeMethod =\n (logLayer: ILogLayer, level: LogLevel, baseError?: Error) =>\n (message: string, metadata?: LogMetadata): IO<never, never, void> =>\n IO.sync(() => {\n const base = metadata ? logLayer.withMetadata(metadata) : logLayer\n const entry = baseError ? base.withError(baseError) : base\n entry[level](message)\n })\n\nexport const logLayerAdapter = (logLayer: ILogLayer, baseError?: Error): Logger => ({\n trace: makeMethod(logLayer, \"trace\", baseError),\n debug: makeMethod(logLayer, \"debug\", baseError),\n info: makeMethod(logLayer, \"info\", baseError),\n warn: makeMethod(logLayer, \"warn\", baseError),\n error: makeMethod(logLayer, \"error\", baseError),\n fatal: makeMethod(logLayer, \"fatal\", baseError),\n withError: (err: Error) => logLayerAdapter(logLayer, err),\n withContext: (ctx: LogMetadata) => logLayerAdapter(logLayer.withContext(ctx), baseError),\n child: (ctx?: LogMetadata) => {\n const childLog = logLayer.child()\n return ctx ? logLayerAdapter(childLog.withContext(ctx)) : logLayerAdapter(childLog)\n },\n})\n"],"mappings":"8BAKA,MAAM,GACH,EAAqB,EAAiB,KACtC,EAAiB,IAChB,EAAG,SAAW,CACZ,IAAM,EAAO,EAAW,EAAS,aAAa,EAAS,CAAG,GAC5C,EAAY,EAAK,UAAU,EAAU,CAAG,GAChD,GAAO,EAAQ,EACrB,CAEO,GAAmB,EAAqB,KAA+B,CAClF,MAAO,EAAW,EAAU,QAAS,EAAU,CAC/C,MAAO,EAAW,EAAU,QAAS,EAAU,CAC/C,KAAM,EAAW,EAAU,OAAQ,EAAU,CAC7C,KAAM,EAAW,EAAU,OAAQ,EAAU,CAC7C,MAAO,EAAW,EAAU,QAAS,EAAU,CAC/C,MAAO,EAAW,EAAU,QAAS,EAAU,CAC/C,UAAY,GAAe,EAAgB,EAAU,EAAI,CACzD,YAAc,GAAqB,EAAgB,EAAS,YAAY,EAAI,CAAE,EAAU,CACxF,MAAQ,GAAsB,CAC5B,IAAM,EAAW,EAAS,OAAO,CACjC,OAAa,EAAN,EAAsB,EAAS,YAAY,EAAI,CAAoB,EAAS,EAEtF"}
1
+ {"version":3,"file":"LogLayerAdapter.js","names":[],"sources":["../../src/adapter/LogLayerAdapter.ts"],"sourcesContent":["import { IO } from \"functype\"\nimport type { ILogLayer } from \"loglayer\"\n\nimport type { Logger, LogLevel, LogMetadata } from \"../logger/Logger\"\n\nconst makeMethod =\n (logLayer: ILogLayer, level: LogLevel, baseError?: Error) =>\n (message: string, metadata?: LogMetadata): IO<never, never, void> =>\n IO.sync(() => {\n const base = metadata ? logLayer.withMetadata(metadata) : logLayer\n const entry = baseError ? base.withError(baseError) : base\n entry[level](message)\n })\n\nexport const logLayerAdapter = (logLayer: ILogLayer, baseError?: Error): Logger => ({\n trace: makeMethod(logLayer, \"trace\", baseError),\n debug: makeMethod(logLayer, \"debug\", baseError),\n info: makeMethod(logLayer, \"info\", baseError),\n warn: makeMethod(logLayer, \"warn\", baseError),\n error: makeMethod(logLayer, \"error\", baseError),\n fatal: makeMethod(logLayer, \"fatal\", baseError),\n withError: (err: Error) => logLayerAdapter(logLayer, err),\n withContext: (ctx: LogMetadata) => logLayerAdapter(logLayer.withContext(ctx), baseError),\n child: (ctx?: LogMetadata) => {\n const childLog = logLayer.child()\n return ctx ? logLayerAdapter(childLog.withContext(ctx)) : logLayerAdapter(childLog)\n },\n})\n"],"mappings":"8BAKA,MAAM,GACH,EAAqB,EAAiB,KACtC,EAAiB,IAChB,EAAG,SAAW,CACZ,IAAM,EAAO,EAAW,EAAS,aAAa,CAAQ,EAAI,GAC5C,EAAY,EAAK,UAAU,CAAS,EAAI,GAChD,GAAO,CAAO,CACtB,CAAC,EAEQ,GAAmB,EAAqB,KAA+B,CAClF,MAAO,EAAW,EAAU,QAAS,CAAS,EAC9C,MAAO,EAAW,EAAU,QAAS,CAAS,EAC9C,KAAM,EAAW,EAAU,OAAQ,CAAS,EAC5C,KAAM,EAAW,EAAU,OAAQ,CAAS,EAC5C,MAAO,EAAW,EAAU,QAAS,CAAS,EAC9C,MAAO,EAAW,EAAU,QAAS,CAAS,EAC9C,UAAY,GAAe,EAAgB,EAAU,CAAG,EACxD,YAAc,GAAqB,EAAgB,EAAS,YAAY,CAAG,EAAG,CAAS,EACvF,MAAQ,GAAsB,CAC5B,IAAM,EAAW,EAAS,MAAM,EAChC,OAAa,EAAN,EAAsB,EAAS,YAAY,CAAG,EAAqB,CAAQ,CACpF,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"DirectLogger.js","names":[],"sources":["../../src/direct/DirectLogger.ts"],"sourcesContent":["import type { ConsoleLoggerOptions } from \"../layers/ConsoleLogger\"\nimport { createConsoleLogger } from \"../layers/ConsoleLogger\"\nimport { silentLogger } from \"../layers/SilentLogger\"\nimport type { Logger, LogMetadata } from \"../logger/Logger\"\n\nexport type DirectLogger = {\n readonly trace: (message: string, metadata?: LogMetadata) => void\n readonly debug: (message: string, metadata?: LogMetadata) => void\n readonly info: (message: string, metadata?: LogMetadata) => void\n readonly warn: (message: string, metadata?: LogMetadata) => void\n readonly error: (message: string, metadata?: LogMetadata) => void\n readonly fatal: (message: string, metadata?: LogMetadata) => void\n readonly withError: (error: Error) => DirectLogger\n readonly withContext: (context: LogMetadata) => DirectLogger\n readonly child: (context?: LogMetadata) => DirectLogger\n}\n\nexport const toDirectLogger = (logger: Logger): DirectLogger => ({\n trace: (msg, meta) => logger.trace(msg, meta).runSyncOrThrow(),\n debug: (msg, meta) => logger.debug(msg, meta).runSyncOrThrow(),\n info: (msg, meta) => logger.info(msg, meta).runSyncOrThrow(),\n warn: (msg, meta) => logger.warn(msg, meta).runSyncOrThrow(),\n error: (msg, meta) => logger.error(msg, meta).runSyncOrThrow(),\n fatal: (msg, meta) => logger.fatal(msg, meta).runSyncOrThrow(),\n withError: (err) => toDirectLogger(logger.withError(err)),\n withContext: (ctx) => toDirectLogger(logger.withContext(ctx)),\n child: (ctx) => toDirectLogger(logger.child(ctx)),\n})\n\nexport const createDirectConsoleLogger = (options?: ConsoleLoggerOptions): DirectLogger =>\n toDirectLogger(createConsoleLogger(options))\n\nexport const directSilentLogger: DirectLogger = toDirectLogger(silentLogger)\n"],"mappings":"0HAiBA,MAAa,EAAkB,IAAkC,CAC/D,OAAQ,EAAK,IAAS,EAAO,MAAM,EAAK,EAAK,CAAC,gBAAgB,CAC9D,OAAQ,EAAK,IAAS,EAAO,MAAM,EAAK,EAAK,CAAC,gBAAgB,CAC9D,MAAO,EAAK,IAAS,EAAO,KAAK,EAAK,EAAK,CAAC,gBAAgB,CAC5D,MAAO,EAAK,IAAS,EAAO,KAAK,EAAK,EAAK,CAAC,gBAAgB,CAC5D,OAAQ,EAAK,IAAS,EAAO,MAAM,EAAK,EAAK,CAAC,gBAAgB,CAC9D,OAAQ,EAAK,IAAS,EAAO,MAAM,EAAK,EAAK,CAAC,gBAAgB,CAC9D,UAAY,GAAQ,EAAe,EAAO,UAAU,EAAI,CAAC,CACzD,YAAc,GAAQ,EAAe,EAAO,YAAY,EAAI,CAAC,CAC7D,MAAQ,GAAQ,EAAe,EAAO,MAAM,EAAI,CAAC,CAClD,EAEY,EAA6B,GACxC,EAAe,EAAoB,EAAQ,CAAC,CAEjC,EAAmC,EAAe,EAAa"}
1
+ {"version":3,"file":"DirectLogger.js","names":[],"sources":["../../src/direct/DirectLogger.ts"],"sourcesContent":["import type { ConsoleLoggerOptions } from \"../layers/ConsoleLogger\"\nimport { createConsoleLogger } from \"../layers/ConsoleLogger\"\nimport { silentLogger } from \"../layers/SilentLogger\"\nimport type { Logger, LogMetadata } from \"../logger/Logger\"\n\nexport type DirectLogger = {\n readonly trace: (message: string, metadata?: LogMetadata) => void\n readonly debug: (message: string, metadata?: LogMetadata) => void\n readonly info: (message: string, metadata?: LogMetadata) => void\n readonly warn: (message: string, metadata?: LogMetadata) => void\n readonly error: (message: string, metadata?: LogMetadata) => void\n readonly fatal: (message: string, metadata?: LogMetadata) => void\n readonly withError: (error: Error) => DirectLogger\n readonly withContext: (context: LogMetadata) => DirectLogger\n readonly child: (context?: LogMetadata) => DirectLogger\n}\n\nexport const toDirectLogger = (logger: Logger): DirectLogger => ({\n trace: (msg, meta) => logger.trace(msg, meta).runSyncOrThrow(),\n debug: (msg, meta) => logger.debug(msg, meta).runSyncOrThrow(),\n info: (msg, meta) => logger.info(msg, meta).runSyncOrThrow(),\n warn: (msg, meta) => logger.warn(msg, meta).runSyncOrThrow(),\n error: (msg, meta) => logger.error(msg, meta).runSyncOrThrow(),\n fatal: (msg, meta) => logger.fatal(msg, meta).runSyncOrThrow(),\n withError: (err) => toDirectLogger(logger.withError(err)),\n withContext: (ctx) => toDirectLogger(logger.withContext(ctx)),\n child: (ctx) => toDirectLogger(logger.child(ctx)),\n})\n\nexport const createDirectConsoleLogger = (options?: ConsoleLoggerOptions): DirectLogger =>\n toDirectLogger(createConsoleLogger(options))\n\nexport const directSilentLogger: DirectLogger = toDirectLogger(silentLogger)\n"],"mappings":"0HAiBA,MAAa,EAAkB,IAAkC,CAC/D,OAAQ,EAAK,IAAS,EAAO,MAAM,EAAK,CAAI,EAAE,eAAe,EAC7D,OAAQ,EAAK,IAAS,EAAO,MAAM,EAAK,CAAI,EAAE,eAAe,EAC7D,MAAO,EAAK,IAAS,EAAO,KAAK,EAAK,CAAI,EAAE,eAAe,EAC3D,MAAO,EAAK,IAAS,EAAO,KAAK,EAAK,CAAI,EAAE,eAAe,EAC3D,OAAQ,EAAK,IAAS,EAAO,MAAM,EAAK,CAAI,EAAE,eAAe,EAC7D,OAAQ,EAAK,IAAS,EAAO,MAAM,EAAK,CAAI,EAAE,eAAe,EAC7D,UAAY,GAAQ,EAAe,EAAO,UAAU,CAAG,CAAC,EACxD,YAAc,GAAQ,EAAe,EAAO,YAAY,CAAG,CAAC,EAC5D,MAAQ,GAAQ,EAAe,EAAO,MAAM,CAAG,CAAC,CAClD,GAEa,EAA6B,GACxC,EAAe,EAAoB,CAAO,CAAC,EAEhC,EAAmC,EAAe,CAAY"}
@@ -1 +1 @@
1
- {"version":3,"file":"DirectTestLogger.js","names":[],"sources":["../../src/direct/DirectTestLogger.ts"],"sourcesContent":["import { List } from \"functype\"\n\nimport type { LogEntry, LogLevel, LogMetadata } from \"../logger/Logger\"\nimport type { DirectLogger } from \"./DirectLogger\"\n\nexport type DirectTestLoggerHandle = {\n readonly logger: DirectLogger\n readonly entries: () => List<LogEntry>\n readonly clear: () => void\n readonly hasEntry: (level: LogLevel, messagePattern: string | RegExp) => boolean\n}\n\nconst createLoggerFromStore = (store: LogEntry[], baseContext: LogMetadata, baseError?: Error): DirectLogger => {\n const makeMethod =\n (level: LogLevel) =>\n (message: string, metadata?: LogMetadata): void => {\n store.push({\n level,\n message,\n metadata: Object.keys(baseContext).length > 0 || metadata ? { ...baseContext, ...metadata } : undefined,\n error: baseError,\n timestamp: new Date(),\n })\n }\n\n return {\n trace: makeMethod(\"trace\"),\n debug: makeMethod(\"debug\"),\n info: makeMethod(\"info\"),\n warn: makeMethod(\"warn\"),\n error: makeMethod(\"error\"),\n fatal: makeMethod(\"fatal\"),\n withError: (err: Error) => createLoggerFromStore(store, baseContext, err),\n withContext: (ctx: LogMetadata) => createLoggerFromStore(store, { ...baseContext, ...ctx }, baseError),\n child: (ctx?: LogMetadata) => createLoggerFromStore(store, { ...baseContext, ...ctx }, undefined),\n }\n}\n\nexport const createDirectTestLogger = (): DirectTestLoggerHandle => {\n const store: LogEntry[] = []\n\n return {\n logger: createLoggerFromStore(store, {}),\n entries: () => List(store),\n clear: () => {\n store.length = 0\n },\n hasEntry: (level: LogLevel, messagePattern: string | RegExp) =>\n store.some(\n (e) =>\n e.level === level &&\n (typeof messagePattern === \"string\" ? e.message.includes(messagePattern) : messagePattern.test(e.message)),\n ),\n }\n}\n"],"mappings":"gCAYA,MAAM,GAAyB,EAAmB,EAA0B,IAAoC,CAC9G,IAAM,EACH,IACA,EAAiB,IAAiC,CACjD,EAAM,KAAK,CACT,QACA,UACA,SAAU,OAAO,KAAK,EAAY,CAAC,OAAS,GAAK,EAAW,CAAE,GAAG,EAAa,GAAG,EAAU,CAAG,IAAA,GAC9F,MAAO,EACP,UAAW,IAAI,KAChB,CAAC,EAGN,MAAO,CACL,MAAO,EAAW,QAAQ,CAC1B,MAAO,EAAW,QAAQ,CAC1B,KAAM,EAAW,OAAO,CACxB,KAAM,EAAW,OAAO,CACxB,MAAO,EAAW,QAAQ,CAC1B,MAAO,EAAW,QAAQ,CAC1B,UAAY,GAAe,EAAsB,EAAO,EAAa,EAAI,CACzE,YAAc,GAAqB,EAAsB,EAAO,CAAE,GAAG,EAAa,GAAG,EAAK,CAAE,EAAU,CACtG,MAAQ,GAAsB,EAAsB,EAAO,CAAE,GAAG,EAAa,GAAG,EAAK,CAAE,IAAA,GAAU,CAClG,EAGU,MAAuD,CAClE,IAAM,EAAoB,EAAE,CAE5B,MAAO,CACL,OAAQ,EAAsB,EAAO,EAAE,CAAC,CACxC,YAAe,EAAK,EAAM,CAC1B,UAAa,CACX,EAAM,OAAS,GAEjB,UAAW,EAAiB,IAC1B,EAAM,KACH,GACC,EAAE,QAAU,IACX,OAAO,GAAmB,SAAW,EAAE,QAAQ,SAAS,EAAe,CAAG,EAAe,KAAK,EAAE,QAAQ,EAC5G,CACJ"}
1
+ {"version":3,"file":"DirectTestLogger.js","names":[],"sources":["../../src/direct/DirectTestLogger.ts"],"sourcesContent":["import { List } from \"functype\"\n\nimport type { LogEntry, LogLevel, LogMetadata } from \"../logger/Logger\"\nimport type { DirectLogger } from \"./DirectLogger\"\n\nexport type DirectTestLoggerHandle = {\n readonly logger: DirectLogger\n readonly entries: () => List<LogEntry>\n readonly clear: () => void\n readonly hasEntry: (level: LogLevel, messagePattern: string | RegExp) => boolean\n}\n\nconst createLoggerFromStore = (store: LogEntry[], baseContext: LogMetadata, baseError?: Error): DirectLogger => {\n const makeMethod =\n (level: LogLevel) =>\n (message: string, metadata?: LogMetadata): void => {\n store.push({\n level,\n message,\n metadata: Object.keys(baseContext).length > 0 || metadata ? { ...baseContext, ...metadata } : undefined,\n error: baseError,\n timestamp: new Date(),\n })\n }\n\n return {\n trace: makeMethod(\"trace\"),\n debug: makeMethod(\"debug\"),\n info: makeMethod(\"info\"),\n warn: makeMethod(\"warn\"),\n error: makeMethod(\"error\"),\n fatal: makeMethod(\"fatal\"),\n withError: (err: Error) => createLoggerFromStore(store, baseContext, err),\n withContext: (ctx: LogMetadata) => createLoggerFromStore(store, { ...baseContext, ...ctx }, baseError),\n child: (ctx?: LogMetadata) => createLoggerFromStore(store, { ...baseContext, ...ctx }, undefined),\n }\n}\n\nexport const createDirectTestLogger = (): DirectTestLoggerHandle => {\n const store: LogEntry[] = []\n\n return {\n logger: createLoggerFromStore(store, {}),\n entries: () => List(store),\n clear: () => {\n store.length = 0\n },\n hasEntry: (level: LogLevel, messagePattern: string | RegExp) =>\n store.some(\n (e) =>\n e.level === level &&\n (typeof messagePattern === \"string\" ? e.message.includes(messagePattern) : messagePattern.test(e.message)),\n ),\n }\n}\n"],"mappings":"gCAYA,MAAM,GAAyB,EAAmB,EAA0B,IAAoC,CAC9G,IAAM,EACH,IACA,EAAiB,IAAiC,CACjD,EAAM,KAAK,CACT,QACA,UACA,SAAU,OAAO,KAAK,CAAW,EAAE,OAAS,GAAK,EAAW,CAAE,GAAG,EAAa,GAAG,CAAS,EAAI,IAAA,GAC9F,MAAO,EACP,UAAW,IAAI,IACjB,CAAC,CACH,EAEF,MAAO,CACL,MAAO,EAAW,OAAO,EACzB,MAAO,EAAW,OAAO,EACzB,KAAM,EAAW,MAAM,EACvB,KAAM,EAAW,MAAM,EACvB,MAAO,EAAW,OAAO,EACzB,MAAO,EAAW,OAAO,EACzB,UAAY,GAAe,EAAsB,EAAO,EAAa,CAAG,EACxE,YAAc,GAAqB,EAAsB,EAAO,CAAE,GAAG,EAAa,GAAG,CAAI,EAAG,CAAS,EACrG,MAAQ,GAAsB,EAAsB,EAAO,CAAE,GAAG,EAAa,GAAG,CAAI,EAAG,IAAA,EAAS,CAClG,CACF,EAEa,MAAuD,CAClE,IAAM,EAAoB,CAAC,EAE3B,MAAO,CACL,OAAQ,EAAsB,EAAO,CAAC,CAAC,EACvC,YAAe,EAAK,CAAK,EACzB,UAAa,CACX,EAAM,OAAS,CACjB,EACA,UAAW,EAAiB,IAC1B,EAAM,KACH,GACC,EAAE,QAAU,IACX,OAAO,GAAmB,SAAW,EAAE,QAAQ,SAAS,CAAc,EAAI,EAAe,KAAK,EAAE,OAAO,EAC5G,CACJ,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConsoleLogger.js","names":[],"sources":["../../src/layers/ConsoleLogger.ts"],"sourcesContent":["import { ConsoleTransport, LogLayer } from \"loglayer\"\n\nimport { logLayerAdapter } from \"../adapter/LogLayerAdapter\"\nimport type { Logger, LogLevel } from \"../logger/Logger\"\n\nexport type ConsoleLoggerOptions = {\n readonly level?: LogLevel\n readonly prefix?: string\n}\n\nexport const createConsoleLogger = (options?: ConsoleLoggerOptions): Logger => {\n const logLayer = new LogLayer({\n transport: new ConsoleTransport({ logger: console }),\n ...(options?.prefix ? { prefix: options.prefix } : {}),\n })\n\n return logLayerAdapter(logLayer)\n}\n"],"mappings":"0HAUA,MAAa,EAAuB,GAM3B,EAAgB,IALF,EAAS,CAC5B,UAAW,IAAI,EAAiB,CAAE,OAAQ,QAAS,CAAC,CACpD,GAAI,GAAS,OAAS,CAAE,OAAQ,EAAQ,OAAQ,CAAG,EAAE,CACtD,CAE8B,CAAC"}
1
+ {"version":3,"file":"ConsoleLogger.js","names":[],"sources":["../../src/layers/ConsoleLogger.ts"],"sourcesContent":["import { ConsoleTransport, LogLayer } from \"loglayer\"\n\nimport { logLayerAdapter } from \"../adapter/LogLayerAdapter\"\nimport type { Logger, LogLevel } from \"../logger/Logger\"\n\nexport type ConsoleLoggerOptions = {\n readonly level?: LogLevel\n readonly prefix?: string\n}\n\nexport const createConsoleLogger = (options?: ConsoleLoggerOptions): Logger => {\n const logLayer = new LogLayer({\n transport: new ConsoleTransport({ logger: console }),\n ...(options?.prefix ? { prefix: options.prefix } : {}),\n })\n\n return logLayerAdapter(logLayer)\n}\n"],"mappings":"0HAUA,MAAa,EAAuB,GAM3B,EAAgB,IALF,EAAS,CAC5B,UAAW,IAAI,EAAiB,CAAE,OAAQ,OAAQ,CAAC,EACnD,GAAI,GAAS,OAAS,CAAE,OAAQ,EAAQ,MAAO,EAAI,CAAC,CACtD,CAE8B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"LoggerLayer.js","names":[],"sources":["../../src/layers/LoggerLayer.ts"],"sourcesContent":["import { Layer } from \"functype\"\nimport type { ILogLayer } from \"loglayer\"\n\nimport { logLayerAdapter } from \"../adapter/LogLayerAdapter\"\nimport { Logger } from \"../logger/Logger\"\nimport type { ConsoleLoggerOptions } from \"./ConsoleLogger\"\nimport { createConsoleLogger } from \"./ConsoleLogger\"\nimport { silentLogger } from \"./SilentLogger\"\n\nexport const LoggerLive = {\n /** From an existing LogLayer instance — escape hatch for power users (pino, winston, datadog, etc.) */\n fromLogLayer: (logLayer: ILogLayer): Layer<never, never, Logger> => Layer.succeed(Logger, logLayerAdapter(logLayer)),\n\n /** Console logger — zero config, great for dev */\n console: (options?: ConsoleLoggerOptions): Layer<never, never, Logger> =>\n Layer.sync(Logger, () => createConsoleLogger(options)),\n\n /** Silent/noop logger — for testing or suppression */\n silent: (): Layer<never, never, Logger> => Layer.succeed(Logger, silentLogger),\n}\n"],"mappings":"wPASA,MAAa,EAAa,CAExB,aAAe,GAAqD,EAAM,QAAQ,EAAQ,EAAgB,EAAS,CAAC,CAGpH,QAAU,GACR,EAAM,KAAK,MAAc,EAAoB,EAAQ,CAAC,CAGxD,WAA2C,EAAM,QAAQ,EAAQ,EAAa,CAC/E"}
1
+ {"version":3,"file":"LoggerLayer.js","names":[],"sources":["../../src/layers/LoggerLayer.ts"],"sourcesContent":["import { Layer } from \"functype\"\nimport type { ILogLayer } from \"loglayer\"\n\nimport { logLayerAdapter } from \"../adapter/LogLayerAdapter\"\nimport { Logger } from \"../logger/Logger\"\nimport type { ConsoleLoggerOptions } from \"./ConsoleLogger\"\nimport { createConsoleLogger } from \"./ConsoleLogger\"\nimport { silentLogger } from \"./SilentLogger\"\n\nexport const LoggerLive = {\n /** From an existing LogLayer instance — escape hatch for power users (pino, winston, datadog, etc.) */\n fromLogLayer: (logLayer: ILogLayer): Layer<never, never, Logger> => Layer.succeed(Logger, logLayerAdapter(logLayer)),\n\n /** Console logger — zero config, great for dev */\n console: (options?: ConsoleLoggerOptions): Layer<never, never, Logger> =>\n Layer.sync(Logger, () => createConsoleLogger(options)),\n\n /** Silent/noop logger — for testing or suppression */\n silent: (): Layer<never, never, Logger> => Layer.succeed(Logger, silentLogger),\n}\n"],"mappings":"wPASA,MAAa,EAAa,CAExB,aAAe,GAAqD,EAAM,QAAQ,EAAQ,EAAgB,CAAQ,CAAC,EAGnH,QAAU,GACR,EAAM,KAAK,MAAc,EAAoB,CAAO,CAAC,EAGvD,WAA2C,EAAM,QAAQ,EAAQ,CAAY,CAC/E"}
@@ -1 +1 @@
1
- {"version":3,"file":"SilentLogger.js","names":[],"sources":["../../src/layers/SilentLogger.ts"],"sourcesContent":["import { IO } from \"functype\"\n\nimport type { Logger, LogMetadata } from \"../logger/Logger\"\n\nconst noop = (_message: string, _metadata?: LogMetadata): IO<never, never, void> => IO.succeed(undefined as void)\n\nexport const silentLogger: Logger = {\n trace: noop,\n debug: noop,\n info: noop,\n warn: noop,\n error: noop,\n fatal: noop,\n withError: () => silentLogger,\n withContext: () => silentLogger,\n child: () => silentLogger,\n}\n"],"mappings":"8BAIA,MAAM,GAAQ,EAAkB,IAAoD,EAAG,QAAQ,IAAA,GAAkB,CAEpG,EAAuB,CAClC,MAAO,EACP,MAAO,EACP,KAAM,EACN,KAAM,EACN,MAAO,EACP,MAAO,EACP,cAAiB,EACjB,gBAAmB,EACnB,UAAa,EACd"}
1
+ {"version":3,"file":"SilentLogger.js","names":[],"sources":["../../src/layers/SilentLogger.ts"],"sourcesContent":["import { IO } from \"functype\"\n\nimport type { Logger, LogMetadata } from \"../logger/Logger\"\n\nconst noop = (_message: string, _metadata?: LogMetadata): IO<never, never, void> => IO.succeed(undefined as void)\n\nexport const silentLogger: Logger = {\n trace: noop,\n debug: noop,\n info: noop,\n warn: noop,\n error: noop,\n fatal: noop,\n withError: () => silentLogger,\n withContext: () => silentLogger,\n child: () => silentLogger,\n}\n"],"mappings":"8BAIA,MAAM,GAAQ,EAAkB,IAAoD,EAAG,QAAQ,IAAA,EAAiB,EAEnG,EAAuB,CAClC,MAAO,EACP,MAAO,EACP,KAAM,EACN,KAAM,EACN,MAAO,EACP,MAAO,EACP,cAAiB,EACjB,gBAAmB,EACnB,UAAa,CACf"}
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.js","names":[],"sources":["../../src/logger/Logger.ts"],"sourcesContent":["import type { IO } from \"functype\"\nimport { Tag } from \"functype\"\n\nexport type LogLevel = \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\"\n\nexport type LogMetadata = Record<string, unknown>\n\nexport type LogEntry = {\n readonly level: LogLevel\n readonly message: string\n readonly metadata?: LogMetadata\n readonly error?: Error\n readonly timestamp: Date\n}\n\nexport type Logger = {\n readonly trace: (message: string, metadata?: LogMetadata) => IO<never, never, void>\n readonly debug: (message: string, metadata?: LogMetadata) => IO<never, never, void>\n readonly info: (message: string, metadata?: LogMetadata) => IO<never, never, void>\n readonly warn: (message: string, metadata?: LogMetadata) => IO<never, never, void>\n readonly error: (message: string, metadata?: LogMetadata) => IO<never, never, void>\n readonly fatal: (message: string, metadata?: LogMetadata) => IO<never, never, void>\n readonly withError: (error: Error) => Logger\n readonly withContext: (context: LogMetadata) => Logger\n readonly child: (context?: LogMetadata) => Logger\n}\n\nexport const Logger = Tag<Logger>(\"Logger\")\n"],"mappings":"+BA2BA,MAAa,EAAS,EAAY,SAAS"}
1
+ {"version":3,"file":"Logger.js","names":[],"sources":["../../src/logger/Logger.ts"],"sourcesContent":["import type { IO } from \"functype\"\nimport { Tag } from \"functype\"\n\nexport type LogLevel = \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\"\n\nexport type LogMetadata = Record<string, unknown>\n\nexport type LogEntry = {\n readonly level: LogLevel\n readonly message: string\n readonly metadata?: LogMetadata\n readonly error?: Error\n readonly timestamp: Date\n}\n\nexport type Logger = {\n readonly trace: (message: string, metadata?: LogMetadata) => IO<never, never, void>\n readonly debug: (message: string, metadata?: LogMetadata) => IO<never, never, void>\n readonly info: (message: string, metadata?: LogMetadata) => IO<never, never, void>\n readonly warn: (message: string, metadata?: LogMetadata) => IO<never, never, void>\n readonly error: (message: string, metadata?: LogMetadata) => IO<never, never, void>\n readonly fatal: (message: string, metadata?: LogMetadata) => IO<never, never, void>\n readonly withError: (error: Error) => Logger\n readonly withContext: (context: LogMetadata) => Logger\n readonly child: (context?: LogMetadata) => Logger\n}\n\nexport const Logger = Tag<Logger>(\"Logger\")\n"],"mappings":"+BA2BA,MAAa,EAAS,EAAY,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"LogMiddleware.js","names":["IOImpl","LoggerTag"],"sources":["../../src/middleware/LogMiddleware.ts"],"sourcesContent":["import type { IO } from \"functype\"\nimport { IO as IOImpl } from \"functype\"\n\nimport type { Logger, LogLevel } from \"../logger/Logger\"\nimport { Logger as LoggerTag } from \"../logger/Logger\"\n\n/** Wrap any IO with start/complete/error logging at debug level */\nexport const withLogging = <R, E, A>(name: string, effect: IO<R, E, A>): IO<R | Logger, E, A> =>\n IOImpl.gen(function* () {\n const log = yield* IOImpl.service(LoggerTag)\n yield* log.debug(`${name}: starting`)\n const result = yield* effect\n yield* log.debug(`${name}: completed`)\n return result\n }) as unknown as IO<R | Logger, E, A>\n\n/** Create a tap function that logs at the specified level */\nexport const tapLog =\n <A>(level: LogLevel, message: string | ((a: A) => string)) =>\n <R, E>(effect: IO<R, E, A>): IO<R | Logger, E, A> =>\n IOImpl.gen(function* () {\n const result = yield* effect\n const log = yield* IOImpl.service(LoggerTag)\n const msg = typeof message === \"string\" ? message : message(result)\n yield* log[level](msg)\n return result\n }) as unknown as IO<R | Logger, E, A>\n"],"mappings":"2EAOA,MAAa,GAAwB,EAAc,IACjDA,EAAO,IAAI,WAAa,CACtB,IAAM,EAAM,MAAOA,EAAO,QAAQC,EAAU,CAC5C,MAAO,EAAI,MAAM,GAAG,EAAK,YAAY,CACrC,IAAM,EAAS,MAAO,EAEtB,OADA,MAAO,EAAI,MAAM,GAAG,EAAK,aAAa,CAC/B,GACP,CAGS,GACP,EAAiB,IACd,GACLD,EAAO,IAAI,WAAa,CACtB,IAAM,EAAS,MAAO,EAChB,EAAM,MAAOA,EAAO,QAAQC,EAAU,CACtC,EAAM,OAAO,GAAY,SAAW,EAAU,EAAQ,EAAO,CAEnE,OADA,MAAO,EAAI,GAAO,EAAI,CACf,GACP"}
1
+ {"version":3,"file":"LogMiddleware.js","names":["IOImpl","LoggerTag"],"sources":["../../src/middleware/LogMiddleware.ts"],"sourcesContent":["import type { IO } from \"functype\"\nimport { IO as IOImpl } from \"functype\"\n\nimport type { Logger, LogLevel } from \"../logger/Logger\"\nimport { Logger as LoggerTag } from \"../logger/Logger\"\n\n/** Wrap any IO with start/complete/error logging at debug level */\nexport const withLogging = <R, E, A>(name: string, effect: IO<R, E, A>): IO<R | Logger, E, A> =>\n IOImpl.gen(function* () {\n const log = yield* IOImpl.service(LoggerTag)\n yield* log.debug(`${name}: starting`)\n const result = yield* effect\n yield* log.debug(`${name}: completed`)\n return result\n }) as unknown as IO<R | Logger, E, A>\n\n/** Create a tap function that logs at the specified level */\nexport const tapLog =\n <A>(level: LogLevel, message: string | ((a: A) => string)) =>\n <R, E>(effect: IO<R, E, A>): IO<R | Logger, E, A> =>\n IOImpl.gen(function* () {\n const result = yield* effect\n const log = yield* IOImpl.service(LoggerTag)\n const msg = typeof message === \"string\" ? message : message(result)\n yield* log[level](msg)\n return result\n }) as unknown as IO<R | Logger, E, A>\n"],"mappings":"2EAOA,MAAa,GAAwB,EAAc,IACjDA,EAAO,IAAI,WAAa,CACtB,IAAM,EAAM,MAAOA,EAAO,QAAQC,CAAS,EAC3C,MAAO,EAAI,MAAM,GAAG,EAAK,WAAW,EACpC,IAAM,EAAS,MAAO,EAEtB,OADA,MAAO,EAAI,MAAM,GAAG,EAAK,YAAY,EAC9B,CACT,CAAC,EAGU,GACP,EAAiB,IACd,GACLD,EAAO,IAAI,WAAa,CACtB,IAAM,EAAS,MAAO,EAChB,EAAM,MAAOA,EAAO,QAAQC,CAAS,EACrC,EAAM,OAAO,GAAY,SAAW,EAAU,EAAQ,CAAM,EAElE,OADA,MAAO,EAAI,GAAO,CAAG,EACd,CACT,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TestLogger.js","names":[],"sources":["../../src/testing/TestLogger.ts"],"sourcesContent":["import { IO, List } from \"functype\"\n\nimport type { LogEntry, Logger, LogLevel, LogMetadata } from \"../logger/Logger\"\n\nexport type TestLoggerHandle = {\n readonly logger: Logger\n readonly entries: () => List<LogEntry>\n readonly clear: () => void\n readonly hasEntry: (level: LogLevel, messagePattern: string | RegExp) => boolean\n}\n\nconst createLoggerFromStore = (store: LogEntry[], baseContext: LogMetadata, baseError?: Error): Logger => {\n const makeMethod =\n (level: LogLevel) =>\n (message: string, metadata?: LogMetadata): IO<never, never, void> =>\n IO.sync(() => {\n store.push({\n level,\n message,\n metadata: Object.keys(baseContext).length > 0 || metadata ? { ...baseContext, ...metadata } : undefined,\n error: baseError,\n timestamp: new Date(),\n })\n })\n\n return {\n trace: makeMethod(\"trace\"),\n debug: makeMethod(\"debug\"),\n info: makeMethod(\"info\"),\n warn: makeMethod(\"warn\"),\n error: makeMethod(\"error\"),\n fatal: makeMethod(\"fatal\"),\n withError: (err: Error) => createLoggerFromStore(store, baseContext, err),\n withContext: (ctx: LogMetadata) => createLoggerFromStore(store, { ...baseContext, ...ctx }, baseError),\n child: (ctx?: LogMetadata) => createLoggerFromStore(store, { ...baseContext, ...ctx }, undefined),\n }\n}\n\nexport const createTestLogger = (): TestLoggerHandle => {\n const store: LogEntry[] = []\n\n return {\n logger: createLoggerFromStore(store, {}),\n entries: () => List(store),\n clear: () => {\n store.length = 0\n },\n hasEntry: (level: LogLevel, messagePattern: string | RegExp) =>\n store.some(\n (e) =>\n e.level === level &&\n (typeof messagePattern === \"string\" ? e.message.includes(messagePattern) : messagePattern.test(e.message)),\n ),\n }\n}\n"],"mappings":"wCAWA,MAAM,GAAyB,EAAmB,EAA0B,IAA8B,CACxG,IAAM,EACH,IACA,EAAiB,IAChB,EAAG,SAAW,CACZ,EAAM,KAAK,CACT,QACA,UACA,SAAU,OAAO,KAAK,EAAY,CAAC,OAAS,GAAK,EAAW,CAAE,GAAG,EAAa,GAAG,EAAU,CAAG,IAAA,GAC9F,MAAO,EACP,UAAW,IAAI,KAChB,CAAC,EACF,CAEN,MAAO,CACL,MAAO,EAAW,QAAQ,CAC1B,MAAO,EAAW,QAAQ,CAC1B,KAAM,EAAW,OAAO,CACxB,KAAM,EAAW,OAAO,CACxB,MAAO,EAAW,QAAQ,CAC1B,MAAO,EAAW,QAAQ,CAC1B,UAAY,GAAe,EAAsB,EAAO,EAAa,EAAI,CACzE,YAAc,GAAqB,EAAsB,EAAO,CAAE,GAAG,EAAa,GAAG,EAAK,CAAE,EAAU,CACtG,MAAQ,GAAsB,EAAsB,EAAO,CAAE,GAAG,EAAa,GAAG,EAAK,CAAE,IAAA,GAAU,CAClG,EAGU,MAA2C,CACtD,IAAM,EAAoB,EAAE,CAE5B,MAAO,CACL,OAAQ,EAAsB,EAAO,EAAE,CAAC,CACxC,YAAe,EAAK,EAAM,CAC1B,UAAa,CACX,EAAM,OAAS,GAEjB,UAAW,EAAiB,IAC1B,EAAM,KACH,GACC,EAAE,QAAU,IACX,OAAO,GAAmB,SAAW,EAAE,QAAQ,SAAS,EAAe,CAAG,EAAe,KAAK,EAAE,QAAQ,EAC5G,CACJ"}
1
+ {"version":3,"file":"TestLogger.js","names":[],"sources":["../../src/testing/TestLogger.ts"],"sourcesContent":["import { IO, List } from \"functype\"\n\nimport type { LogEntry, Logger, LogLevel, LogMetadata } from \"../logger/Logger\"\n\nexport type TestLoggerHandle = {\n readonly logger: Logger\n readonly entries: () => List<LogEntry>\n readonly clear: () => void\n readonly hasEntry: (level: LogLevel, messagePattern: string | RegExp) => boolean\n}\n\nconst createLoggerFromStore = (store: LogEntry[], baseContext: LogMetadata, baseError?: Error): Logger => {\n const makeMethod =\n (level: LogLevel) =>\n (message: string, metadata?: LogMetadata): IO<never, never, void> =>\n IO.sync(() => {\n store.push({\n level,\n message,\n metadata: Object.keys(baseContext).length > 0 || metadata ? { ...baseContext, ...metadata } : undefined,\n error: baseError,\n timestamp: new Date(),\n })\n })\n\n return {\n trace: makeMethod(\"trace\"),\n debug: makeMethod(\"debug\"),\n info: makeMethod(\"info\"),\n warn: makeMethod(\"warn\"),\n error: makeMethod(\"error\"),\n fatal: makeMethod(\"fatal\"),\n withError: (err: Error) => createLoggerFromStore(store, baseContext, err),\n withContext: (ctx: LogMetadata) => createLoggerFromStore(store, { ...baseContext, ...ctx }, baseError),\n child: (ctx?: LogMetadata) => createLoggerFromStore(store, { ...baseContext, ...ctx }, undefined),\n }\n}\n\nexport const createTestLogger = (): TestLoggerHandle => {\n const store: LogEntry[] = []\n\n return {\n logger: createLoggerFromStore(store, {}),\n entries: () => List(store),\n clear: () => {\n store.length = 0\n },\n hasEntry: (level: LogLevel, messagePattern: string | RegExp) =>\n store.some(\n (e) =>\n e.level === level &&\n (typeof messagePattern === \"string\" ? e.message.includes(messagePattern) : messagePattern.test(e.message)),\n ),\n }\n}\n"],"mappings":"wCAWA,MAAM,GAAyB,EAAmB,EAA0B,IAA8B,CACxG,IAAM,EACH,IACA,EAAiB,IAChB,EAAG,SAAW,CACZ,EAAM,KAAK,CACT,QACA,UACA,SAAU,OAAO,KAAK,CAAW,EAAE,OAAS,GAAK,EAAW,CAAE,GAAG,EAAa,GAAG,CAAS,EAAI,IAAA,GAC9F,MAAO,EACP,UAAW,IAAI,IACjB,CAAC,CACH,CAAC,EAEL,MAAO,CACL,MAAO,EAAW,OAAO,EACzB,MAAO,EAAW,OAAO,EACzB,KAAM,EAAW,MAAM,EACvB,KAAM,EAAW,MAAM,EACvB,MAAO,EAAW,OAAO,EACzB,MAAO,EAAW,OAAO,EACzB,UAAY,GAAe,EAAsB,EAAO,EAAa,CAAG,EACxE,YAAc,GAAqB,EAAsB,EAAO,CAAE,GAAG,EAAa,GAAG,CAAI,EAAG,CAAS,EACrG,MAAQ,GAAsB,EAAsB,EAAO,CAAE,GAAG,EAAa,GAAG,CAAI,EAAG,IAAA,EAAS,CAClG,CACF,EAEa,MAA2C,CACtD,IAAM,EAAoB,CAAC,EAE3B,MAAO,CACL,OAAQ,EAAsB,EAAO,CAAC,CAAC,EACvC,YAAe,EAAK,CAAK,EACzB,UAAa,CACX,EAAM,OAAS,CACjB,EACA,UAAW,EAAiB,IAC1B,EAAM,KACH,GACC,EAAE,QAAU,IACX,OAAO,GAAmB,SAAW,EAAE,QAAQ,SAAS,CAAc,EAAI,EAAe,KAAK,EAAE,OAAO,EAC5G,CACJ,CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "functype-log",
3
- "version": "0.60.5",
3
+ "version": "0.60.6",
4
4
  "description": "IO-native logging for functype — wraps LogLayer with Tag/Layer DI, structured logging, and test utilities",
5
5
  "keywords": [
6
6
  "functype",
@@ -20,16 +20,16 @@
20
20
  "directory": "packages/functype-log"
21
21
  },
22
22
  "peerDependencies": {
23
- "functype": "^0.60.5"
23
+ "functype": "^0.60.6"
24
24
  },
25
25
  "dependencies": {
26
- "loglayer": "^9.1.0"
26
+ "loglayer": "^9.1.1"
27
27
  },
28
28
  "devDependencies": {
29
- "@types/node": "^24.12.2",
29
+ "@types/node": "^24.12.4",
30
30
  "ts-builds": "^2.8.0",
31
31
  "tsdown": "^0.22.0",
32
- "functype": "^0.60.5"
32
+ "functype": "^0.60.6"
33
33
  },
34
34
  "type": "module",
35
35
  "main": "./dist/index.js",