@bazariodev/docket 0.0.0 → 1.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 +61 -0
- package/README.md +742 -169
- package/dist/browser/index.cjs +2 -2
- package/dist/browser/index.js +2 -2
- package/dist/{chunk-LRCHwVuE.js → chunk---OIebMz.js} +31 -3
- package/dist/chunk---OIebMz.js.map +1 -0
- package/dist/{chunk-CEhpwtwJ.cjs → chunk-BMmKUicm.cjs} +9 -3
- package/dist/chunk-BMmKUicm.cjs.map +1 -0
- package/dist/{chunk-B-SP8Od_.js → chunk-CJmlBW-M.js} +69 -26
- package/dist/chunk-CJmlBW-M.js.map +1 -0
- package/dist/{chunk-DYcNnkOV.js → chunk-D1NggH6k.js} +2 -2
- package/dist/{chunk-DYcNnkOV.js.map → chunk-D1NggH6k.js.map} +1 -1
- package/dist/{chunk-Bvq4tF_F.cjs → chunk-DEyTe0f4.cjs} +68 -26
- package/dist/chunk-DEyTe0f4.cjs.map +1 -0
- package/dist/{chunk-BLf-eCDO.cjs → chunk-DLnBMRjo.cjs} +3 -1
- package/dist/chunk-DLnBMRjo.cjs.map +1 -0
- package/dist/{chunk-CSS3f4_M.js → chunk-Da877R_E.js} +4 -2
- package/dist/chunk-Da877R_E.js.map +1 -0
- package/dist/{chunk-7ld72rnl.js → chunk-De6BoS1P.js} +9 -3
- package/dist/chunk-De6BoS1P.js.map +1 -0
- package/dist/{chunk-CXZYNALm.cjs → chunk-Dl2KJDqt.cjs} +31 -2
- package/dist/chunk-Dl2KJDqt.cjs.map +1 -0
- package/dist/{chunk-DqK_3eFr.cjs → chunk-DlZYLPaU.cjs} +2 -2
- package/dist/{chunk-DqK_3eFr.cjs.map → chunk-DlZYLPaU.cjs.map} +1 -1
- package/dist/client/index.cjs +167 -0
- package/dist/client/index.cjs.map +1 -0
- package/dist/client/index.d.cts +40 -0
- package/dist/client/index.d.ts +40 -0
- package/dist/client/index.js +165 -0
- package/dist/client/index.js.map +1 -0
- package/dist/constants.d.cts +2 -4
- package/dist/constants.d.ts +2 -4
- package/dist/core/constants.d.cts +2 -0
- package/dist/core/constants.d.ts +2 -0
- package/dist/export/index.cjs +43 -15
- package/dist/export/index.cjs.map +1 -1
- package/dist/export/index.js +43 -15
- package/dist/export/index.js.map +1 -1
- package/dist/history/index.cjs +22 -1188
- package/dist/history/index.cjs.map +1 -1
- package/dist/history/index.d.cts +10 -112
- package/dist/history/index.d.ts +10 -112
- package/dist/history/index.js +22 -1188
- package/dist/history/index.js.map +1 -1
- package/dist/index.cjs +5 -5
- package/dist/index.d.cts +8 -4
- package/dist/index.d.ts +8 -4
- package/dist/index.js +5 -5
- package/dist/indexeddb/index.cjs +18 -7
- package/dist/indexeddb/index.cjs.map +1 -1
- package/dist/indexeddb/index.d.cts +19 -4
- package/dist/indexeddb/index.d.ts +19 -4
- package/dist/indexeddb/index.js +18 -8
- package/dist/indexeddb/index.js.map +1 -1
- package/dist/redaction/index.cjs +4 -2
- package/dist/redaction/index.cjs.map +1 -1
- package/dist/redaction/index.js +4 -2
- package/dist/redaction/index.js.map +1 -1
- package/dist/sip/index.cjs +1 -1
- package/dist/sip/index.js +1 -1
- package/dist/storage/contracts.d.cts +0 -4
- package/dist/storage/contracts.d.ts +0 -4
- package/dist/upload/constants.d.cts +17 -0
- package/dist/upload/constants.d.ts +17 -0
- package/dist/upload/index.cjs +246 -0
- package/dist/upload/index.cjs.map +1 -0
- package/dist/upload/index.d.cts +51 -0
- package/dist/upload/index.d.ts +51 -0
- package/dist/upload/index.js +244 -0
- package/dist/upload/index.js.map +1 -0
- package/package.json +25 -2
- package/dist/chunk-7ld72rnl.js.map +0 -1
- package/dist/chunk-B-SP8Od_.js.map +0 -1
- package/dist/chunk-BLf-eCDO.cjs.map +0 -1
- package/dist/chunk-Bvq4tF_F.cjs.map +0 -1
- package/dist/chunk-CEhpwtwJ.cjs.map +0 -1
- package/dist/chunk-CSS3f4_M.js.map +0 -1
- package/dist/chunk-CXZYNALm.cjs.map +0 -1
- package/dist/chunk-LRCHwVuE.js.map +0 -1
- package/dist/core/errors.d.cts +0 -8
- package/dist/core/errors.d.ts +0 -8
- package/dist/history/constants.d.cts +0 -35
- package/dist/history/constants.d.ts +0 -35
- package/dist/sip/constants.d.cts +0 -5
- package/dist/sip/constants.d.ts +0 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-DEyTe0f4.cjs","sources":["../src/core/errors.js","../src/core/levels.js","../src/core/hub.js"],"sourcesContent":["import { LOGGING_ERROR_CODES } from './constants.js';\n\nexport const LOGGING_ERRORS = /* @__PURE__ */ Object.freeze({\n [LOGGING_ERROR_CODES.RECURSIVE_LOGGING]: 'Recursive logging is rejected',\n [LOGGING_ERROR_CODES.ROOT_LOGGER_CACHE_LIMIT]:\n 'Root logger cache exceeds 1000 pairs',\n [LOGGING_ERROR_CODES.STOPPED]: 'Logging is stopped',\n});\n\nexport function loggingError(code) {\n return Object.assign(new Error(LOGGING_ERRORS[code]), { code });\n}\n","import { assertLevel, define, levelRank, positive } from './common.js';\nimport { LOGGING_ERROR_SOURCES, LOGGING_LIMITS } from './constants.js';\n\nexport function createLevels(options, reportError) {\n const { now, scheduler, levelStorage, areas } = options;\n const maxDuration = positive(\n options.maxOverrideMs ?? LOGGING_LIMITS.DEFAULT_LEVEL_OVERRIDE_MS,\n 'maxOverrideMs',\n );\n const states = new Map();\n let stopped = false;\n for (const { id, level = 'info' } of areas) {\n assertLevel(level);\n if (typeof id !== 'string' || !id || states.has(id))\n throw new TypeError('Areas must have unique non-empty IDs');\n states.set(id, {\n level,\n defaultLevel: level,\n rank: levelRank(level),\n until: undefined,\n timer: undefined,\n });\n }\n const requireArea = (area) => {\n const state = states.get(area);\n if (!state) throw new TypeError('Unknown log area');\n return state;\n };\n\n function save() {\n if (!levelStorage || stopped) return;\n const overrides = {};\n for (const [id, state] of states)\n if (state.until)\n define(overrides, id, { level: state.level, until: state.until });\n try {\n levelStorage.storage.setItem(levelStorage.key, JSON.stringify(overrides));\n } catch (error) {\n reportError(error, LOGGING_ERROR_SOURCES.STORAGE);\n }\n }\n\n function reset(state) {\n scheduler.clearTimeout(state.timer);\n state.timer = undefined;\n state.until = undefined;\n state.level = state.defaultLevel;\n state.rank = levelRank(state.level);\n }\n\n function apply(state, level, until) {\n reset(state);\n state.level = level;\n state.rank = levelRank(level);\n state.until = until;\n state.timer = scheduler.setTimeout(\n () => {\n if (stopped) return;\n if (until > now()) {\n apply(state, level, until);\n return;\n }\n reset(state);\n save();\n },\n Math.min(LOGGING_LIMITS.MAX_TIMER_DELAY_MS, Math.max(0, until - now())),\n );\n }\n\n function reloadLevels() {\n if (stopped) return;\n for (const state of states.values()) reset(state);\n if (!levelStorage) return;\n try {\n const saved = JSON.parse(\n levelStorage.storage.getItem(levelStorage.key) ?? '{}',\n );\n if (!saved || typeof saved !== 'object') return;\n const time = now();\n for (const [id, state] of states) {\n const override = Object.hasOwn(saved, id) && saved[id];\n if (\n override &&\n levelRank(override.level) >= 0 &&\n Number.isFinite(override.until) &&\n override.until > time\n )\n apply(\n state,\n override.level,\n Math.min(override.until, time + maxDuration),\n );\n }\n } catch (error) {\n reportError(error, LOGGING_ERROR_SOURCES.STORAGE);\n }\n }\n reloadLevels();\n return {\n requireArea,\n enabled(area, level) {\n const state = requireArea(area);\n if (state.until && state.until <= now()) {\n reset(state);\n save();\n }\n return levelRank(level) >= state.rank;\n },\n\n setLevel(area, level, { durationMs = maxDuration } = {}) {\n assertLevel(level);\n positive(durationMs, 'durationMs');\n const state = requireArea(area);\n if (stopped) return;\n apply(state, level, now() + Math.min(durationMs, maxDuration));\n save();\n },\n\n resetLevel(area) {\n if (stopped) return;\n if (area !== undefined) reset(requireArea(area));\n else for (const state of states.values()) reset(state);\n save();\n },\n reloadLevels,\n getLevels() {\n const result = {};\n for (const [id, state] of states) {\n if (state.until && state.until <= now()) {\n reset(state);\n save();\n }\n define(\n result,\n id,\n Object.freeze({\n level: state.level,\n defaultLevel: state.defaultLevel,\n ...(state.until ? { until: state.until } : {}),\n }),\n );\n }\n return Object.freeze(result);\n },\n\n stop() {\n stopped = true;\n for (const state of states.values()) scheduler.clearTimeout(state.timer);\n },\n };\n}\n","import {\n assertStormLimit,\n copyBindings,\n copyMetadata,\n scheduler as hostScheduler,\n randomHex,\n report,\n resolveLimits,\n} from './common.js';\nimport {\n LEVELS,\n LOGGING_ERROR_CODES,\n LOGGING_ERROR_SOURCES,\n LOGGING_LIMITS,\n} from './constants.js';\nimport { ownRecord } from './conversion.js';\nimport { loggingError } from './errors.js';\nimport { createLevels } from './levels.js';\n\nexport function createLogging(options) {\n if (\n !Array.isArray(options?.areas) ||\n !options.redactor ||\n typeof options.redactor.redact !== 'function'\n )\n throw new TypeError('Areas and an explicit redactor are required');\n const {\n redactor,\n now = Date.now,\n monotonicNow = () => globalThis.performance?.now() ?? Date.now(),\n scheduler = hostScheduler,\n stormLimit = LOGGING_LIMITS.DEFAULT_STORM_LIMIT,\n } = options;\n const limits = resolveLimits(redactor.limits);\n if (\n !redactor.limits ||\n Object.keys(limits).some((key) => !Object.hasOwn(redactor.limits, key))\n )\n throw new TypeError('Redactor limits are required');\n assertStormLimit(stormLimit);\n const runId = options.createRunId?.() ?? randomHex(16);\n if (typeof runId !== 'string' || !runId)\n throw new TypeError('Invalid run ID');\n const sinks = new Set();\n const roots = new Map();\n const storms = new Map();\n let context = copyBindings(options.context);\n let seq = 0;\n let closed = false;\n let busy = false;\n let scopeReported = false;\n let reporting = false;\n let stormTimer;\n let stopPromise;\n\n function onError(error, source) {\n if (reporting) return;\n reporting = true;\n const wasBusy = busy;\n busy = true;\n report(options.onError, error, source);\n busy = wasBusy;\n reporting = false;\n }\n for (const sink of options.sinks ?? []) addSink(sink);\n const levels = createLevels({ ...options, now, scheduler }, onError);\n\n function emit(\n area,\n scope,\n binding,\n level,\n message,\n data,\n callOptions,\n bypass = false,\n ) {\n try {\n if (busy) {\n onError(\n loggingError(LOGGING_ERROR_CODES.RECURSIVE_LOGGING),\n LOGGING_ERROR_SOURCES.REENTRY,\n );\n return;\n }\n if (\n closed ||\n options.isActive?.() === false ||\n closed ||\n sinks.size === 0 ||\n (!bypass && !levels.enabled(area, level))\n )\n return;\n if (!bypass && stormLimit !== false) {\n const key = JSON.stringify([area, scope]);\n let counter = storms.get(key);\n if (!counter) {\n const cacheKey =\n storms.size < LOGGING_LIMITS.STORM_SCOPE_PAIRS ? key : 'overflow';\n counter = storms.get(cacheKey);\n if (!counter) {\n counter = {\n area,\n scope,\n start: monotonicNow(),\n count: 0,\n dropped: 0,\n };\n storms.set(cacheKey, counter);\n }\n }\n const time = monotonicNow();\n if (\n time - counter.start >= LOGGING_LIMITS.STORM_WINDOW_MS ||\n time < counter.start\n ) {\n counter.start = time;\n counter.count = 0;\n }\n if (counter.count++ >= stormLimit) {\n counter.dropped++;\n if (stormTimer === undefined)\n stormTimer = scheduler.setTimeout(\n summarize,\n LOGGING_LIMITS.STORM_SUMMARY_DELAY_MS,\n );\n return;\n }\n }\n const registrations = Array.from(sinks);\n busy = true;\n try {\n let value;\n let metadata;\n try {\n if (callOptions !== undefined) {\n if (\n !callOptions ||\n typeof callOptions !== 'object' ||\n Array.isArray(callOptions)\n )\n throw new TypeError('Invalid log options');\n const descriptor = Object.getOwnPropertyDescriptor(\n callOptions,\n 'metadata',\n );\n if (descriptor && !Object.hasOwn(descriptor, 'value'))\n throw new TypeError('Invalid log options');\n metadata = copyMetadata(descriptor?.value);\n if (options.isActive?.() === false || closed || sinks.size === 0)\n return;\n }\n value = typeof data === 'function' ? data() : data;\n } catch (error) {\n onError(error, LOGGING_ERROR_SOURCES.DATA);\n return;\n }\n if (options.isActive?.() === false || closed || sinks.size === 0)\n return;\n let record;\n try {\n const draft = {\n runId,\n seq: ++seq,\n at: now(),\n area,\n scope,\n level,\n message,\n context: { ...context, ...binding },\n data: value,\n };\n if (metadata) draft.metadata = metadata;\n record = ownRecord(redactor.redact(draft), limits);\n const actual = record.metadata;\n const keys = metadata ? Object.keys(metadata) : [];\n if (\n (actual ? Object.keys(actual).length : 0) !== keys.length ||\n keys.some(\n (key) =>\n !Object.hasOwn(actual, key) || actual[key] !== metadata[key],\n )\n )\n throw new TypeError('Invalid redactor metadata');\n } catch (error) {\n onError(error, LOGGING_ERROR_SOURCES.REDACTOR);\n return;\n }\n if (options.isActive?.() === false || closed) return;\n for (const registration of registrations) {\n if (\n options.isActive?.() === false ||\n closed ||\n !sinks.has(registration)\n )\n continue;\n try {\n registration.sink.write(record);\n } catch (error) {\n onError(error, LOGGING_ERROR_SOURCES.SINK);\n }\n }\n } finally {\n busy = false;\n }\n } catch (error) {\n busy = false;\n onError(error, LOGGING_ERROR_SOURCES.DATA);\n }\n }\n\n function summarize() {\n stormTimer = undefined;\n for (const counter of storms.values()) {\n if (!counter.dropped) continue;\n const dropped = counter.dropped;\n counter.dropped = 0;\n emit(\n counter.area,\n counter.scope,\n {},\n 'warn',\n 'logging.suppressed',\n { scope: counter.scope, dropped },\n undefined,\n true,\n );\n }\n }\n\n function logger(area, scope, binding = {}) {\n const result = {};\n for (const level of Object.values(LEVELS))\n result[level] = (message, data, callOptions) =>\n emit(area, scope, binding, level, message, data, callOptions);\n result.child = ({\n scope: childScope = scope,\n context: childContext = {},\n } = {}) =>\n logger(area, childScope, { ...binding, ...copyBindings(childContext) });\n return Object.freeze(result);\n }\n\n function addSink(sink) {\n if (!sink || typeof sink.write !== 'function')\n throw new TypeError('A sink must have write');\n if (closed) throw loggingError(LOGGING_ERROR_CODES.STOPPED);\n const registration = { sink };\n sinks.add(registration);\n return () => {\n sinks.delete(registration);\n };\n }\n\n async function lifecycle(registrations, methods) {\n const failures = [];\n for (const method of methods) {\n await Promise.all(\n registrations.map(async ({ sink }) => {\n try {\n const previous = busy;\n busy = true;\n let result;\n try {\n result = sink[method]?.();\n } finally {\n busy = previous;\n }\n await result;\n } catch (error) {\n failures.push(error);\n onError(error, LOGGING_ERROR_SOURCES.SINK);\n }\n }),\n );\n }\n if (failures.length)\n throw new AggregateError(failures, 'Logging lifecycle failed');\n }\n return Object.freeze({\n runId,\n getLogger(area, scope) {\n levels.requireArea(area);\n if (typeof scope !== 'string')\n throw new TypeError('Scope must be a string');\n const key = JSON.stringify([area, scope]);\n const cached = roots.get(key);\n if (cached) return cached;\n const created = logger(area, scope);\n if (roots.size < LOGGING_LIMITS.ROOT_LOGGER_CACHE_PAIRS) {\n roots.set(key, created);\n return created;\n }\n if (!scopeReported) {\n scopeReported = true;\n onError(\n loggingError(LOGGING_ERROR_CODES.ROOT_LOGGER_CACHE_LIMIT),\n LOGGING_ERROR_SOURCES.SCOPE,\n );\n }\n return created;\n },\n\n setContext(values) {\n context = { ...context, ...copyBindings(values) };\n for (const key of Object.keys(context))\n if (context[key] === undefined) delete context[key];\n },\n setLevel: levels.setLevel,\n resetLevel: levels.resetLevel,\n reloadLevels: levels.reloadLevels,\n getLevels: levels.getLevels,\n addSink,\n flush() {\n const registrations = Array.from(sinks);\n return Promise.resolve().then(() => lifecycle(registrations, ['flush']));\n },\n\n stop() {\n if (!stopPromise) {\n closed = true;\n levels.stop();\n scheduler.clearTimeout(stormTimer);\n const registrations = Array.from(sinks);\n stopPromise = Promise.resolve().then(() =>\n lifecycle(registrations, ['flush', 'stop']),\n );\n }\n return stopPromise;\n },\n });\n}\n"],"names":["LOGGING_ERROR_CODES","positive","LOGGING_LIMITS","assertLevel","levelRank","define","LOGGING_ERROR_SOURCES","hostScheduler","resolveLimits","assertStormLimit","randomHex","copyBindings","report","copyMetadata","ownRecord","LEVELS"],"mappings":"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"}
|
|
@@ -7,6 +7,8 @@ const LEVELS = /* @__PURE__ */ Object.freeze({
|
|
|
7
7
|
ERROR: 'error',
|
|
8
8
|
});
|
|
9
9
|
const LOGGING_LIMITS = /* @__PURE__ */ Object.freeze({
|
|
10
|
+
METADATA_KEYS: 16,
|
|
11
|
+
METADATA_KEY_LENGTH: 64,
|
|
10
12
|
ROOT_LOGGER_CACHE_PAIRS: 1000,
|
|
11
13
|
STORM_SCOPE_PAIRS: 1000,
|
|
12
14
|
STORM_WINDOW_MS: 1000,
|
|
@@ -50,4 +52,4 @@ exports.LOGGING_ERROR_CODES = LOGGING_ERROR_CODES;
|
|
|
50
52
|
exports.LOGGING_ERROR_SOURCES = LOGGING_ERROR_SOURCES;
|
|
51
53
|
exports.LOGGING_LIMITS = LOGGING_LIMITS;
|
|
52
54
|
exports.MARKERS = MARKERS;
|
|
53
|
-
//# sourceMappingURL=chunk-
|
|
55
|
+
//# sourceMappingURL=chunk-DLnBMRjo.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-DLnBMRjo.cjs","sources":["../src/core/constants.js"],"sourcesContent":["export const LEVELS = /* @__PURE__ */ Object.freeze({\n DEBUG: 'debug',\n INFO: 'info',\n WARN: 'warn',\n ERROR: 'error',\n});\nexport const LOGGING_LIMITS = /* @__PURE__ */ Object.freeze({\n METADATA_KEYS: 16,\n METADATA_KEY_LENGTH: 64,\n ROOT_LOGGER_CACHE_PAIRS: 1000,\n STORM_SCOPE_PAIRS: 1000,\n STORM_WINDOW_MS: 1000,\n STORM_SUMMARY_DELAY_MS: 1000,\n DEFAULT_LEVEL_OVERRIDE_MS: 86_400_000,\n MAX_TIMER_DELAY_MS: 2_147_483_647,\n DEFAULT_STORM_LIMIT: 100,\n});\nexport const LOGGING_ERROR_CODES = /* @__PURE__ */ Object.freeze({\n RECURSIVE_LOGGING: 'recursive-logging',\n ROOT_LOGGER_CACHE_LIMIT: 'root-logger-cache-limit',\n STOPPED: 'stopped',\n});\nexport const LOGGING_ERROR_SOURCES = /* @__PURE__ */ Object.freeze({\n DATA: 'data',\n REDACTOR: 'redactor',\n SINK: 'sink',\n STORAGE: 'storage',\n SCOPE: 'scope',\n REENTRY: 'reentry',\n});\nexport const LIMITS = /* @__PURE__ */ Object.freeze({\n maxDepth: 6,\n maxStringLength: 16_384,\n maxArrayLength: 100,\n maxKeys: 100,\n maxNodes: 1000,\n maxRecordSize: 65_536,\n});\nexport const MARKERS = /* @__PURE__ */ Object.freeze({\n LIMIT: '[truncated]',\n CYCLE: '[circular]',\n ACCESSOR: '[accessor]',\n UNSUPPORTED: '[unsupported]',\n MASK: '[redacted]',\n});\n"],"names":[],"mappings":";;AAAY,MAAC,MAAM,mBAAmB,MAAM,CAAC,MAAM,CAAC;AACpD,EAAE,KAAK,EAAE,OAAO;AAChB,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,KAAK,EAAE,OAAO;AAChB,CAAC;AACW,MAAC,cAAc,mBAAmB,MAAM,CAAC,MAAM,CAAC;AAC5D,EAAE,aAAa,EAAE,EAAE;AACnB,EAAE,mBAAmB,EAAE,EAAE;AACzB,EAAE,uBAAuB,EAAE,IAAI;AAC/B,EAAE,iBAAiB,EAAE,IAAI;AACzB,EAAE,eAAe,EAAE,IAAI;AACvB,EAAE,sBAAsB,EAAE,IAAI;AAC9B,EAAE,yBAAyB,EAAE,UAAU;AACvC,EAAE,kBAAkB,EAAE,aAAa;AACnC,EAAE,mBAAmB,EAAE,GAAG;AAC1B,CAAC;AACW,MAAC,mBAAmB,mBAAmB,MAAM,CAAC,MAAM,CAAC;AACjE,EAAE,iBAAiB,EAAE,mBAAmB;AACxC,EAAE,uBAAuB,EAAE,yBAAyB;AACpD,EAAE,OAAO,EAAE,SAAS;AACpB,CAAC;AACW,MAAC,qBAAqB,mBAAmB,MAAM,CAAC,MAAM,CAAC;AACnE,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,QAAQ,EAAE,UAAU;AACtB,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,OAAO,EAAE,SAAS;AACpB,EAAE,KAAK,EAAE,OAAO;AAChB,EAAE,OAAO,EAAE,SAAS;AACpB,CAAC;AACW,MAAC,MAAM,mBAAmB,MAAM,CAAC,MAAM,CAAC;AACpD,EAAE,QAAQ,EAAE,CAAC;AACb,EAAE,eAAe,EAAE,MAAM;AACzB,EAAE,cAAc,EAAE,GAAG;AACrB,EAAE,OAAO,EAAE,GAAG;AACd,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,aAAa,EAAE,MAAM;AACvB,CAAC;AACW,MAAC,OAAO,mBAAmB,MAAM,CAAC,MAAM,CAAC;AACrD,EAAE,KAAK,EAAE,aAAa;AACtB,EAAE,KAAK,EAAE,YAAY;AACrB,EAAE,QAAQ,EAAE,YAAY;AACxB,EAAE,WAAW,EAAE,eAAe;AAC9B,EAAE,IAAI,EAAE,YAAY;AACpB,CAAC;;;;;;;"}
|
|
@@ -5,6 +5,8 @@ const LEVELS = /* @__PURE__ */ Object.freeze({
|
|
|
5
5
|
ERROR: 'error',
|
|
6
6
|
});
|
|
7
7
|
const LOGGING_LIMITS = /* @__PURE__ */ Object.freeze({
|
|
8
|
+
METADATA_KEYS: 16,
|
|
9
|
+
METADATA_KEY_LENGTH: 64,
|
|
8
10
|
ROOT_LOGGER_CACHE_PAIRS: 1000,
|
|
9
11
|
STORM_SCOPE_PAIRS: 1000,
|
|
10
12
|
STORM_WINDOW_MS: 1000,
|
|
@@ -42,5 +44,5 @@ const MARKERS = /* @__PURE__ */ Object.freeze({
|
|
|
42
44
|
MASK: '[redacted]',
|
|
43
45
|
});
|
|
44
46
|
|
|
45
|
-
export { LEVELS as L, MARKERS as M, LIMITS as a,
|
|
46
|
-
//# sourceMappingURL=chunk-
|
|
47
|
+
export { LEVELS as L, MARKERS as M, LIMITS as a, LOGGING_LIMITS as b, LOGGING_ERROR_CODES as c, LOGGING_ERROR_SOURCES as d };
|
|
48
|
+
//# sourceMappingURL=chunk-Da877R_E.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-Da877R_E.js","sources":["../src/core/constants.js"],"sourcesContent":["export const LEVELS = /* @__PURE__ */ Object.freeze({\n DEBUG: 'debug',\n INFO: 'info',\n WARN: 'warn',\n ERROR: 'error',\n});\nexport const LOGGING_LIMITS = /* @__PURE__ */ Object.freeze({\n METADATA_KEYS: 16,\n METADATA_KEY_LENGTH: 64,\n ROOT_LOGGER_CACHE_PAIRS: 1000,\n STORM_SCOPE_PAIRS: 1000,\n STORM_WINDOW_MS: 1000,\n STORM_SUMMARY_DELAY_MS: 1000,\n DEFAULT_LEVEL_OVERRIDE_MS: 86_400_000,\n MAX_TIMER_DELAY_MS: 2_147_483_647,\n DEFAULT_STORM_LIMIT: 100,\n});\nexport const LOGGING_ERROR_CODES = /* @__PURE__ */ Object.freeze({\n RECURSIVE_LOGGING: 'recursive-logging',\n ROOT_LOGGER_CACHE_LIMIT: 'root-logger-cache-limit',\n STOPPED: 'stopped',\n});\nexport const LOGGING_ERROR_SOURCES = /* @__PURE__ */ Object.freeze({\n DATA: 'data',\n REDACTOR: 'redactor',\n SINK: 'sink',\n STORAGE: 'storage',\n SCOPE: 'scope',\n REENTRY: 'reentry',\n});\nexport const LIMITS = /* @__PURE__ */ Object.freeze({\n maxDepth: 6,\n maxStringLength: 16_384,\n maxArrayLength: 100,\n maxKeys: 100,\n maxNodes: 1000,\n maxRecordSize: 65_536,\n});\nexport const MARKERS = /* @__PURE__ */ Object.freeze({\n LIMIT: '[truncated]',\n CYCLE: '[circular]',\n ACCESSOR: '[accessor]',\n UNSUPPORTED: '[unsupported]',\n MASK: '[redacted]',\n});\n"],"names":[],"mappings":"AAAY,MAAC,MAAM,mBAAmB,MAAM,CAAC,MAAM,CAAC;AACpD,EAAE,KAAK,EAAE,OAAO;AAChB,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,KAAK,EAAE,OAAO;AAChB,CAAC;AACW,MAAC,cAAc,mBAAmB,MAAM,CAAC,MAAM,CAAC;AAC5D,EAAE,aAAa,EAAE,EAAE;AACnB,EAAE,mBAAmB,EAAE,EAAE;AACzB,EAAE,uBAAuB,EAAE,IAAI;AAC/B,EAAE,iBAAiB,EAAE,IAAI;AACzB,EAAE,eAAe,EAAE,IAAI;AACvB,EAAE,sBAAsB,EAAE,IAAI;AAC9B,EAAE,yBAAyB,EAAE,UAAU;AACvC,EAAE,kBAAkB,EAAE,aAAa;AACnC,EAAE,mBAAmB,EAAE,GAAG;AAC1B,CAAC;AACW,MAAC,mBAAmB,mBAAmB,MAAM,CAAC,MAAM,CAAC;AACjE,EAAE,iBAAiB,EAAE,mBAAmB;AACxC,EAAE,uBAAuB,EAAE,yBAAyB;AACpD,EAAE,OAAO,EAAE,SAAS;AACpB,CAAC;AACW,MAAC,qBAAqB,mBAAmB,MAAM,CAAC,MAAM,CAAC;AACnE,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,QAAQ,EAAE,UAAU;AACtB,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,OAAO,EAAE,SAAS;AACpB,EAAE,KAAK,EAAE,OAAO;AAChB,EAAE,OAAO,EAAE,SAAS;AACpB,CAAC;AACW,MAAC,MAAM,mBAAmB,MAAM,CAAC,MAAM,CAAC;AACpD,EAAE,QAAQ,EAAE,CAAC;AACb,EAAE,eAAe,EAAE,MAAM;AACzB,EAAE,cAAc,EAAE,GAAG;AACrB,EAAE,OAAO,EAAE,GAAG;AACd,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,aAAa,EAAE,MAAM;AACvB,CAAC;AACW,MAAC,OAAO,mBAAmB,MAAM,CAAC,MAAM,CAAC;AACrD,EAAE,KAAK,EAAE,aAAa;AACtB,EAAE,KAAK,EAAE,YAAY;AACrB,EAAE,QAAQ,EAAE,YAAY;AACxB,EAAE,WAAW,EAAE,eAAe;AAC9B,EAAE,IAAI,EAAE,YAAY;AACpB,CAAC;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { d as define, o as own } from './chunk
|
|
2
|
-
import { M as MARKERS, L as LEVELS } from './chunk-
|
|
1
|
+
import { c as copyMetadata, d as define, o as own } from './chunk---OIebMz.js';
|
|
2
|
+
import { M as MARKERS, L as LEVELS } from './chunk-Da877R_E.js';
|
|
3
3
|
|
|
4
4
|
const errorKeys = ['name', 'message', 'stack', 'cause', 'errors', 'fields'];
|
|
5
5
|
const recordKeys = [
|
|
@@ -15,6 +15,7 @@ const recordKeys = [
|
|
|
15
15
|
'context',
|
|
16
16
|
'error',
|
|
17
17
|
'truncated',
|
|
18
|
+
'metadata',
|
|
18
19
|
];
|
|
19
20
|
|
|
20
21
|
function errorShape(keys, descriptors) {
|
|
@@ -315,6 +316,11 @@ function ownJson(value, limits, { record = false } = {}) {
|
|
|
315
316
|
childDepth = depth;
|
|
316
317
|
childOverflow = descriptor.value === MARKERS.LIMIT;
|
|
317
318
|
}
|
|
319
|
+
if (kind === 'record' && key === 'metadata') {
|
|
320
|
+
const metadata = copyMetadata(descriptor.value);
|
|
321
|
+
if (metadata) define(result, key, metadata);
|
|
322
|
+
continue;
|
|
323
|
+
}
|
|
318
324
|
define(
|
|
319
325
|
result,
|
|
320
326
|
key,
|
|
@@ -373,4 +379,4 @@ function ownRecord(record, limits) {
|
|
|
373
379
|
}
|
|
374
380
|
|
|
375
381
|
export { ownRecord as a, ownJson as o };
|
|
376
|
-
//# sourceMappingURL=chunk-
|
|
382
|
+
//# sourceMappingURL=chunk-De6BoS1P.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-De6BoS1P.js","sources":["../src/core/conversion.js"],"sourcesContent":["import { copyMetadata, define, own } from './common.js';\nimport { LEVELS, MARKERS } from './constants.js';\n\nconst errorKeys = ['name', 'message', 'stack', 'cause', 'errors', 'fields'];\nconst recordKeys = [\n 'runId',\n 'seq',\n 'at',\n 'level',\n 'area',\n 'scope',\n 'message',\n 'redactionVersion',\n 'fields',\n 'context',\n 'error',\n 'truncated',\n 'metadata',\n];\n\nfunction errorShape(keys, descriptors) {\n return (\n keys.every((key) => errorKeys.includes(key)) &&\n typeof descriptors.get('name')?.value === 'string' &&\n typeof descriptors.get('message')?.value === 'string' &&\n (!descriptors.has('stack') ||\n typeof descriptors.get('stack').value === 'string')\n );\n}\n\nfunction errorMarker({ array, keys, descriptors }) {\n return (\n !array &&\n keys.length === 2 &&\n descriptors.get('name')?.value === 'Error' &&\n descriptors.get('message')?.value === MARKERS.LIMIT\n );\n}\n\nfunction arrayIndex(key, length) {\n const index = typeof key === 'string' ? Number(key) : -1;\n return (\n Number.isSafeInteger(index) &&\n index >= 0 &&\n index < length &&\n String(index) === key\n );\n}\n\nexport function ownJson(value, limits, { record = false } = {}) {\n let nodes = 0;\n let classifiedNodes = 0;\n const ancestors = new Set();\n const snapshots = new WeakMap();\n const classifications = new WeakMap();\n const classifying = new Set();\n\n function inspect(value, kind = '') {\n const cached = snapshots.get(value);\n if (cached) return cached;\n const array = Array.isArray(value);\n const length = array ? own(value, 'length') : 0;\n if (\n array &&\n (!Number.isSafeInteger(length) ||\n length < 0 ||\n length > limits.maxArrayLength + 1)\n )\n throw new TypeError('Invalid redactor bounds');\n const keys = Reflect.ownKeys(value).filter(\n (key) => !(array && key === 'length'),\n );\n const ceiling =\n kind === 'marker'\n ? 2\n : kind === 'record'\n ? recordKeys.length\n : Math.max(limits.maxKeys + 1, errorKeys.length);\n if (\n (array && keys.length > limits.maxArrayLength + 1) ||\n (!array && keys.length > ceiling)\n )\n throw new TypeError('Invalid redactor bounds');\n const descriptors = new Map();\n for (const key of keys) {\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (!descriptor || !Object.hasOwn(descriptor, 'value'))\n throw new TypeError('Invalid redactor property');\n descriptors.set(key, descriptor);\n }\n const snapshot = { array, length, keys, descriptors };\n snapshots.set(value, snapshot);\n return snapshot;\n }\n\n function errorRelationships({ descriptors }, depth) {\n const fields = descriptors.get('fields');\n if (\n fields &&\n (!fields.value ||\n typeof fields.value !== 'object' ||\n Array.isArray(fields.value))\n )\n return false;\n const cause = descriptors.get('cause');\n if (cause && !canonicalError(cause.value, depth + 1)) return false;\n const errors = descriptors.get('errors');\n if (!errors) return true;\n if (!Array.isArray(errors.value)) return false;\n const { length, keys, descriptors: children } = inspect(errors.value);\n if (length !== keys.length || !keys.every((key) => arrayIndex(key, length)))\n return false;\n for (const key of keys)\n if (!canonicalError(children.get(key).value, depth + 1)) return false;\n return (\n length <= limits.maxArrayLength ||\n errorMarker(inspect(children.get(String(length - 1)).value))\n );\n }\n\n function canonicalError(value, depth) {\n if (!value || typeof value !== 'object' || Array.isArray(value))\n return false;\n const cached = classifications.get(value);\n if (cached !== undefined) return cached;\n if (classifying.has(value)) return false;\n const snapshot = inspect(\n value,\n depth > limits.maxDepth || classifiedNodes >= limits.maxNodes\n ? 'marker'\n : '',\n );\n if (!errorShape(snapshot.keys, snapshot.descriptors)) {\n classifications.set(value, false);\n return false;\n }\n if (errorMarker(snapshot)) {\n classifications.set(value, true);\n return true;\n }\n if (depth > limits.maxDepth) return false;\n if (++classifiedNodes > limits.maxNodes)\n throw new TypeError('Invalid redactor bounds');\n classifying.add(value);\n const valid = errorRelationships(snapshot, depth);\n classifying.delete(value);\n classifications.set(value, valid);\n return valid;\n }\n\n function charge(kind, marker) {\n if (\n !marker &&\n ![\n 'record',\n 'header',\n 'fixed',\n 'error-name',\n 'error-text',\n 'errors',\n 'error-fields',\n 'boxed-fields',\n ].includes(kind) &&\n ++nodes > limits.maxNodes\n )\n throw new TypeError('Invalid redactor bounds');\n }\n\n function copy(value, depth, kind = '', overflow = false) {\n const compound = value && typeof value === 'object';\n const marker = overflow && value === MARKERS.LIMIT;\n if (!compound) {\n if (\n [\n 'error',\n 'errors',\n 'error-fields',\n 'record',\n 'fields',\n 'context',\n ].includes(kind)\n )\n throw new TypeError('Invalid redactor JSON');\n charge(kind, marker);\n if (depth > limits.maxDepth && value !== MARKERS.LIMIT)\n throw new TypeError('Invalid redactor bounds');\n if (\n value === null ||\n typeof value === 'boolean' ||\n (typeof value === 'number' && Number.isFinite(value))\n )\n return value;\n if (\n typeof value === 'string' &&\n (value.length <= limits.maxStringLength ||\n Object.values(MARKERS).includes(value) ||\n (kind === 'fixed' && value.length <= 64) ||\n (kind === 'error-name' && value === 'Error'))\n )\n return value;\n throw new TypeError('Invalid redactor JSON');\n }\n if (ancestors.has(value)) throw new TypeError('Invalid redactor JSON');\n if (\n depth > limits.maxDepth &&\n kind !== 'errors' &&\n !(overflow && kind === 'error')\n )\n throw new TypeError('Invalid redactor bounds');\n const { array, length, keys, descriptors } = inspect(\n value,\n depth > limits.maxDepth && kind === 'error' ? 'marker' : kind,\n );\n if (\n (kind === 'errors' && !array) ||\n (['record', 'error', 'error-fields', 'fields', 'context'].includes(\n kind,\n ) &&\n array)\n )\n throw new TypeError('Invalid redactor JSON');\n const shapedError = !array && errorShape(keys, descriptors);\n if (kind === 'error' && !shapedError)\n throw new TypeError('Invalid serialized error');\n if (!kind && shapedError && canonicalError(value, depth)) kind = 'error';\n if (kind === 'fields' && keys.length === 1 && keys[0] === 'value')\n kind = 'boxed-fields';\n const overflowMarker =\n overflow && kind === 'error' && errorMarker({ array, keys, descriptors });\n if (overflowMarker)\n return Object.freeze({ name: 'Error', message: MARKERS.LIMIT });\n if (depth > limits.maxDepth && kind !== 'errors')\n throw new TypeError('Invalid redactor bounds');\n charge(kind, false);\n const schema = kind === 'record' || kind === 'error';\n const keyLimit = schema\n ? kind === 'record'\n ? recordKeys.length\n : errorKeys.length\n : array\n ? limits.maxArrayLength\n : limits.maxKeys;\n const lastKey = array && length ? String(length - 1) : '';\n const last = descriptors.get(lastKey)?.value;\n const markerCount = array\n ? Number(\n last === MARKERS.LIMIT ||\n (kind === 'errors' && last && typeof last === 'object'),\n )\n : Number(descriptors.get(MARKERS.LIMIT)?.value === MARKERS.LIMIT);\n if (\n keys.length > keyLimit + markerCount ||\n (array &&\n (length !== keys.length ||\n length > limits.maxArrayLength + markerCount))\n )\n throw new TypeError('Invalid redactor bounds');\n if (kind === 'record' && keys.some((key) => !recordKeys.includes(key)))\n throw new TypeError('Invalid record property');\n const result = array ? [] : {};\n ancestors.add(value);\n for (const key of keys) {\n if (array && !arrayIndex(key, length))\n throw new TypeError('Invalid redactor index');\n const descriptor = descriptors.get(key);\n if (\n typeof key !== 'string' ||\n (!schema &&\n !array &&\n kind !== 'boxed-fields' &&\n key.length > limits.maxStringLength &&\n !Object.values(MARKERS).includes(key)) ||\n !Object.hasOwn(descriptor, 'value')\n )\n throw new TypeError('Invalid redactor property');\n let childKind = '';\n let childDepth = depth + 1;\n let childOverflow =\n (array &&\n key === lastKey &&\n (last === MARKERS.LIMIT || (kind === 'errors' && markerCount))) ||\n (key === MARKERS.LIMIT && descriptor.value === MARKERS.LIMIT);\n if (kind === 'record') {\n childDepth = 0;\n childKind = 'header';\n if (key === 'context') childKind = 'context';\n if (key === 'fields') childKind = 'fields';\n if (key === 'error') {\n childKind = 'error';\n childOverflow = true;\n }\n if (['runId', 'level', 'redactionVersion'].includes(key))\n childKind = 'fixed';\n } else if (kind === 'error') {\n switch (key) {\n case 'cause':\n childKind = 'error';\n childOverflow = true;\n break;\n case 'errors':\n childKind = 'errors';\n break;\n case 'fields':\n childKind = 'error-fields';\n childDepth = depth;\n break;\n default:\n childKind = key === 'name' ? 'error-name' : 'error-text';\n childDepth = depth;\n }\n } else if (kind === 'errors') {\n childKind = 'error';\n childDepth = depth;\n if (depth > limits.maxDepth) childOverflow = true;\n } else if (kind === 'boxed-fields') {\n childDepth = depth;\n childOverflow = descriptor.value === MARKERS.LIMIT;\n }\n if (kind === 'record' && key === 'metadata') {\n const metadata = copyMetadata(descriptor.value);\n if (metadata) define(result, key, metadata);\n continue;\n }\n define(\n result,\n key,\n copy(descriptor.value, childDepth, childKind, childOverflow),\n );\n }\n\n if (array && length > limits.maxArrayLength) {\n const end = result[length - 1];\n if (\n end !== MARKERS.LIMIT &&\n !(\n kind === 'errors' &&\n end &&\n typeof end === 'object' &&\n Object.keys(end).length === 2 &&\n end.name === 'Error' &&\n end.message === MARKERS.LIMIT\n )\n )\n throw new TypeError('Invalid redactor bounds');\n }\n\n ancestors.delete(value);\n return Object.freeze(result);\n }\n const result = copy(value, 0, record ? 'record' : '');\n if (JSON.stringify(result).length > limits.maxRecordSize)\n throw new TypeError('Invalid record size');\n return result;\n}\n\nexport function ownRecord(record, limits) {\n const result = ownJson(record, limits, { record: true });\n for (const key of ['runId', 'area', 'scope', 'message', 'redactionVersion'])\n if (typeof result[key] !== 'string')\n throw new TypeError('Invalid record header');\n if (\n !Number.isSafeInteger(result.seq) ||\n result.seq < 1 ||\n !Number.isFinite(result.at) ||\n !Object.values(LEVELS).includes(result.level)\n )\n throw new TypeError('Invalid record header');\n if (\n result.context !== undefined &&\n Object.values(result.context).some(\n (value) => typeof value !== 'string' && typeof value !== 'number',\n )\n )\n throw new TypeError('Invalid record context');\n\n if (result.truncated !== undefined && result.truncated !== true)\n throw new TypeError('Invalid truncation flag');\n return result;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var constants = require('./chunk-
|
|
3
|
+
var constants = require('./chunk-DLnBMRjo.cjs');
|
|
4
4
|
|
|
5
5
|
const levelOrder = Object.values(constants.LEVELS);
|
|
6
6
|
|
|
@@ -58,6 +58,34 @@ function own(value, key) {
|
|
|
58
58
|
return Object.getOwnPropertyDescriptor(value, key)?.value;
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
+
function copyMetadata(value) {
|
|
62
|
+
if (value === undefined) return undefined;
|
|
63
|
+
if (
|
|
64
|
+
!value ||
|
|
65
|
+
typeof value !== 'object' ||
|
|
66
|
+
![Object.prototype, null].includes(Object.getPrototypeOf(value))
|
|
67
|
+
)
|
|
68
|
+
throw new TypeError('Invalid metadata');
|
|
69
|
+
const keys = Reflect.ownKeys(value);
|
|
70
|
+
if (keys.length > constants.LOGGING_LIMITS.METADATA_KEYS)
|
|
71
|
+
throw new TypeError('Invalid metadata');
|
|
72
|
+
const result = {};
|
|
73
|
+
for (const key of keys) {
|
|
74
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
75
|
+
if (
|
|
76
|
+
typeof key !== 'string' ||
|
|
77
|
+
!key.length ||
|
|
78
|
+
key.length > constants.LOGGING_LIMITS.METADATA_KEY_LENGTH ||
|
|
79
|
+
!descriptor?.enumerable ||
|
|
80
|
+
!Object.hasOwn(descriptor, 'value') ||
|
|
81
|
+
typeof descriptor.value !== 'boolean'
|
|
82
|
+
)
|
|
83
|
+
throw new TypeError('Invalid metadata');
|
|
84
|
+
define(result, key, descriptor.value);
|
|
85
|
+
}
|
|
86
|
+
return keys.length ? Object.freeze(result) : undefined;
|
|
87
|
+
}
|
|
88
|
+
|
|
61
89
|
function isError(value) {
|
|
62
90
|
try {
|
|
63
91
|
return Error.isError?.(value) || value instanceof Error;
|
|
@@ -111,6 +139,7 @@ function validateQuery(query = {}) {
|
|
|
111
139
|
exports.assertLevel = assertLevel;
|
|
112
140
|
exports.assertStormLimit = assertStormLimit;
|
|
113
141
|
exports.copyBindings = copyBindings;
|
|
142
|
+
exports.copyMetadata = copyMetadata;
|
|
114
143
|
exports.define = define;
|
|
115
144
|
exports.isError = isError;
|
|
116
145
|
exports.levelRank = levelRank;
|
|
@@ -121,4 +150,4 @@ exports.report = report;
|
|
|
121
150
|
exports.resolveLimits = resolveLimits;
|
|
122
151
|
exports.scheduler = scheduler;
|
|
123
152
|
exports.validateQuery = validateQuery;
|
|
124
|
-
//# sourceMappingURL=chunk-
|
|
153
|
+
//# sourceMappingURL=chunk-Dl2KJDqt.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-Dl2KJDqt.cjs","sources":["../src/core/common.js"],"sourcesContent":["import { LEVELS, LIMITS, LOGGING_LIMITS } from './constants.js';\n\nconst levelOrder = Object.values(LEVELS);\n\nexport const scheduler = Object.freeze({\n setTimeout: (callback, delay) => globalThis.setTimeout(callback, delay),\n clearTimeout: (handle) => globalThis.clearTimeout(handle),\n});\nexport const levelRank = (level) => levelOrder.indexOf(level);\n\nexport function assertLevel(level) {\n if (levelRank(level) < 0) throw new TypeError('Invalid log level');\n}\n\nexport function assertStormLimit(value) {\n if (\n value !== undefined &&\n value !== false &&\n (!Number.isSafeInteger(value) || value < 1)\n )\n throw new TypeError('Invalid storm limit');\n}\n\nexport function positive(value, name) {\n if (!Number.isSafeInteger(value) || value < 1)\n throw new TypeError(`${name} must be a positive safe integer`);\n return value;\n}\n\nexport function resolveLimits(limits = {}) {\n const result = {};\n for (const [key, fallback] of Object.entries(LIMITS))\n result[key] = positive(limits[key] ?? fallback, key);\n return Object.freeze(result);\n}\n\nexport function report(callback, ...args) {\n try {\n const result = callback?.(...args);\n if (result) Promise.resolve(result).catch(() => {});\n } catch {\n /* The reporter cannot interrupt cleanup. */\n }\n}\n\nexport function define(target, key, value) {\n Object.defineProperty(target, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true,\n });\n}\n\nexport function own(value, key) {\n return Object.getOwnPropertyDescriptor(value, key)?.value;\n}\n\nexport function copyMetadata(value) {\n if (value === undefined) return undefined;\n if (\n !value ||\n typeof value !== 'object' ||\n ![Object.prototype, null].includes(Object.getPrototypeOf(value))\n )\n throw new TypeError('Invalid metadata');\n const keys = Reflect.ownKeys(value);\n if (keys.length > LOGGING_LIMITS.METADATA_KEYS)\n throw new TypeError('Invalid metadata');\n const result = {};\n for (const key of keys) {\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (\n typeof key !== 'string' ||\n !key.length ||\n key.length > LOGGING_LIMITS.METADATA_KEY_LENGTH ||\n !descriptor?.enumerable ||\n !Object.hasOwn(descriptor, 'value') ||\n typeof descriptor.value !== 'boolean'\n )\n throw new TypeError('Invalid metadata');\n define(result, key, descriptor.value);\n }\n return keys.length ? Object.freeze(result) : undefined;\n}\n\nexport function isError(value) {\n try {\n return Error.isError?.(value) || value instanceof Error;\n } catch {\n return false;\n }\n}\n\nexport function randomHex(length) {\n if (!globalThis.crypto?.getRandomValues)\n throw new Error('Cryptographic randomness is unavailable');\n return Array.from(\n globalThis.crypto.getRandomValues(new Uint8Array(length)),\n (byte) => byte.toString(16).padStart(2, '0'),\n ).join('');\n}\n\nexport function copyBindings(value = {}) {\n const result = {};\n for (const key of Reflect.ownKeys(value)) {\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (\n typeof key === 'string' &&\n descriptor?.enumerable &&\n Object.hasOwn(descriptor, 'value')\n )\n Object.defineProperty(result, key, descriptor);\n }\n return result;\n}\n\nexport function validateQuery(query = {}) {\n const { from, to, areas } = query;\n if (\n (from !== undefined && !Number.isFinite(from)) ||\n (to !== undefined && !Number.isFinite(to)) ||\n (from ?? -Infinity) > (to ?? Infinity)\n )\n throw new TypeError('Invalid record time range');\n if (\n areas !== undefined &&\n (!Array.isArray(areas) || areas.some((area) => typeof area !== 'string'))\n )\n throw new TypeError('Invalid record areas');\n return (record) =>\n (!areas || areas.includes(record.area)) &&\n record.at >= (from ?? -Infinity) &&\n record.at <= (to ?? Infinity);\n}\n"],"names":["LEVELS","LIMITS","LOGGING_LIMITS"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var common = require('./chunk-
|
|
3
|
+
var common = require('./chunk-Dl2KJDqt.cjs');
|
|
4
4
|
|
|
5
5
|
function escapeText(value) {
|
|
6
6
|
return String(value).replace(
|
|
@@ -50,4 +50,4 @@ function createConsoleSink({
|
|
|
50
50
|
|
|
51
51
|
exports.createConsoleSink = createConsoleSink;
|
|
52
52
|
exports.formatRecord = formatRecord;
|
|
53
|
-
//# sourceMappingURL=chunk-
|
|
53
|
+
//# sourceMappingURL=chunk-DlZYLPaU.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-
|
|
1
|
+
{"version":3,"file":"chunk-DlZYLPaU.cjs","sources":["../src/core/format.js"],"sourcesContent":["import { assertLevel, levelRank } from './common.js';\n\nfunction escapeText(value) {\n return String(value).replace(\n // biome-ignore lint/suspicious/noControlCharactersInRegex: Escape record control characters.\n /[\\u0000-\\u001f\\u007f-\\u009f\\u2028\\u2029\\u202a-\\u202e\\u2066-\\u2069]/g,\n (character) =>\n `\\\\u${character.charCodeAt(0).toString(16).padStart(4, '0')}`,\n );\n}\n\nfunction quote(value) {\n const text = escapeText(value);\n return /[\\s=\"\\\\]/.test(text) ? JSON.stringify(text) : text;\n}\n\nexport function formatRecord(record) {\n const { at, level, area, scope, message, runId, context, fields, error } =\n record;\n let header = `${new Date(at).toISOString()} ${level.toUpperCase()} area=${quote(area)} scope=${quote(scope)} message=${quote(message)} runId=${quote(runId)}`;\n for (const values of [context, fields])\n for (const [key, value] of Object.entries(values ?? {}))\n header += ` ${quote(key)}=${quote(typeof value === 'object' ? JSON.stringify(value) : value)}`;\n if (error)\n header += `\\n ${escapeText(error.name)}: ${escapeText(error.message)}${\n error.stack\n ? `\\n${error.stack\n .split(/\\r?\\n/)\n .map((line) => ` ${escapeText(line)}`)\n .join('\\n')}`\n : ''\n }${error.cause ? `\\n cause=${escapeText(JSON.stringify(error.cause))}` : ''}${error.errors ? `\\n errors=${escapeText(JSON.stringify(error.errors))}` : ''}${error.fields ? `\\n fields=${escapeText(JSON.stringify(error.fields))}` : ''}`;\n return header;\n}\n\nexport function createConsoleSink({\n level = 'debug',\n console: output = globalThis.console,\n} = {}) {\n assertLevel(level);\n return Object.freeze({\n write(record) {\n if (levelRank(record.level) >= levelRank(level))\n output[record.level](formatRecord(record));\n },\n });\n}\n"],"names":["assertLevel","levelRank"],"mappings":";;;;AAEA,SAAS,UAAU,CAAC,KAAK,EAAE;AAC3B,EAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO;AAC9B;AACA,IAAI,qEAAqE;AACzE,IAAI,CAAC,SAAS;AACd,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACnE,GAAG;AACH;;AAEA,SAAS,KAAK,CAAC,KAAK,EAAE;AACtB,EAAE,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC;AAChC,EAAE,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI;AAC5D;;AAEO,SAAS,YAAY,CAAC,MAAM,EAAE;AACrC,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;AAC1E,IAAI,MAAM;AACV,EAAE,IAAI,MAAM,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/J,EAAE,KAAK,MAAM,MAAM,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;AACxC,IAAI,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;AAC3D,MAAM,MAAM,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,KAAK,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;AACpG,EAAE,IAAI,KAAK;AACX,IAAI,MAAM,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC5E,MAAM,KAAK,CAAC;AACZ,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC;AACrB,aAAa,KAAK,CAAC,OAAO;AAC1B,aAAa,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACpD,aAAa,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,UAAU;AACV,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACtP,EAAE,OAAO,MAAM;AACf;;AAEO,SAAS,iBAAiB,CAAC;AAClC,EAAE,KAAK,GAAG,OAAO;AACjB,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO;AACtC,CAAC,GAAG,EAAE,EAAE;AACR,EAAEA,kBAAW,CAAC,KAAK,CAAC;AACpB,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,IAAI,KAAK,CAAC,MAAM,EAAE;AAClB,MAAM,IAAIC,gBAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAIA,gBAAS,CAAC,KAAK,CAAC;AACrD,QAAQ,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAClD,IAAI,CAAC;AACL,GAAG,CAAC;AACJ;;;"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var hub = require('../chunk-DEyTe0f4.cjs');
|
|
4
|
+
var history_index = require('../history/index.cjs');
|
|
5
|
+
var upload_index = require('../upload/index.cjs');
|
|
6
|
+
require('../chunk-Dl2KJDqt.cjs');
|
|
7
|
+
require('../chunk-DLnBMRjo.cjs');
|
|
8
|
+
require('../chunk-BMmKUicm.cjs');
|
|
9
|
+
require('@bazariodev/coordination');
|
|
10
|
+
|
|
11
|
+
const CLIENT_DEFAULTS = Object.freeze({
|
|
12
|
+
MAX_HISTORY_RECORDS: 1000,
|
|
13
|
+
MAX_BATCH_RECORDS: 100,
|
|
14
|
+
INTERVAL_MS: 5000,
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
const HISTORY_METHODS = Object.freeze({
|
|
18
|
+
REQUIRED: Object.freeze(['write', 'query', 'clear']),
|
|
19
|
+
OPTIONAL: Object.freeze(['flush', 'stop', 'getStatus']),
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
function resolveHistory(history) {
|
|
23
|
+
if (history === false) return undefined;
|
|
24
|
+
if (history === undefined)
|
|
25
|
+
return history_index.createMemoryHistory({
|
|
26
|
+
maxRecords: CLIENT_DEFAULTS.MAX_HISTORY_RECORDS,
|
|
27
|
+
});
|
|
28
|
+
if (!history || typeof history !== 'object')
|
|
29
|
+
throw new TypeError('Invalid history options');
|
|
30
|
+
if (
|
|
31
|
+
!HISTORY_METHODS.REQUIRED.some((method) => method in history) &&
|
|
32
|
+
!HISTORY_METHODS.OPTIONAL.some((method) => method in history)
|
|
33
|
+
)
|
|
34
|
+
return history_index.createMemoryHistory(history);
|
|
35
|
+
if (
|
|
36
|
+
HISTORY_METHODS.REQUIRED.some(
|
|
37
|
+
(method) => typeof history[method] !== 'function',
|
|
38
|
+
)
|
|
39
|
+
)
|
|
40
|
+
throw new TypeError('A history client requires write, query, and clear');
|
|
41
|
+
for (const method of HISTORY_METHODS.OPTIONAL)
|
|
42
|
+
if (history[method] !== undefined && typeof history[method] !== 'function')
|
|
43
|
+
throw new TypeError(`Invalid history ${method}`);
|
|
44
|
+
return history;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function createDocket(options) {
|
|
48
|
+
if (!options || typeof options !== 'object')
|
|
49
|
+
throw new TypeError('Docket options are required');
|
|
50
|
+
const {
|
|
51
|
+
areas,
|
|
52
|
+
redactor,
|
|
53
|
+
sinks: suppliedSinks,
|
|
54
|
+
context,
|
|
55
|
+
levelStorage,
|
|
56
|
+
maxOverrideMs,
|
|
57
|
+
stormLimit,
|
|
58
|
+
scheduler,
|
|
59
|
+
now,
|
|
60
|
+
monotonicNow,
|
|
61
|
+
createRunId,
|
|
62
|
+
onError,
|
|
63
|
+
history: historyOption,
|
|
64
|
+
upload: uploadOption,
|
|
65
|
+
isActive: isApplicationActive,
|
|
66
|
+
} = options;
|
|
67
|
+
const history = resolveHistory(historyOption);
|
|
68
|
+
let upload;
|
|
69
|
+
let uploadOptions;
|
|
70
|
+
let outbox;
|
|
71
|
+
if (uploadOption !== undefined && uploadOption !== false) {
|
|
72
|
+
if (!uploadOption || typeof uploadOption !== 'object')
|
|
73
|
+
throw new TypeError('Invalid upload options');
|
|
74
|
+
outbox = uploadOption.outbox;
|
|
75
|
+
if (
|
|
76
|
+
!outbox ||
|
|
77
|
+
outbox === history ||
|
|
78
|
+
typeof outbox.clear !== 'function' ||
|
|
79
|
+
typeof outbox.stop !== 'function'
|
|
80
|
+
)
|
|
81
|
+
throw new TypeError('Upload requires a separate outbox client');
|
|
82
|
+
const {
|
|
83
|
+
maxBatchRecords = CLIENT_DEFAULTS.MAX_BATCH_RECORDS,
|
|
84
|
+
intervalMs = CLIENT_DEFAULTS.INTERVAL_MS,
|
|
85
|
+
scheduler,
|
|
86
|
+
onError,
|
|
87
|
+
send,
|
|
88
|
+
} = uploadOption;
|
|
89
|
+
if (typeof send !== 'function')
|
|
90
|
+
throw new TypeError('An upload callback is required');
|
|
91
|
+
uploadOptions = {
|
|
92
|
+
maxBatchRecords,
|
|
93
|
+
intervalMs,
|
|
94
|
+
scheduler,
|
|
95
|
+
onError,
|
|
96
|
+
send: (records, signal, token) =>
|
|
97
|
+
send.call(uploadOption, records, signal, token),
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
const sinks = [...(suppliedSinks ?? [])];
|
|
101
|
+
if (history) sinks.push(history);
|
|
102
|
+
for (const sink of sinks)
|
|
103
|
+
if (!sink || typeof sink.write !== 'function')
|
|
104
|
+
throw new TypeError('A sink must have write');
|
|
105
|
+
let closed = false;
|
|
106
|
+
const logging = hub.createLogging({
|
|
107
|
+
areas,
|
|
108
|
+
redactor,
|
|
109
|
+
context,
|
|
110
|
+
levelStorage,
|
|
111
|
+
maxOverrideMs,
|
|
112
|
+
stormLimit,
|
|
113
|
+
scheduler,
|
|
114
|
+
now,
|
|
115
|
+
monotonicNow,
|
|
116
|
+
createRunId: createRunId ? () => createRunId.call(options) : createRunId,
|
|
117
|
+
onError,
|
|
118
|
+
isActive() {
|
|
119
|
+
if (closed) return false;
|
|
120
|
+
const active = isApplicationActive?.call(options);
|
|
121
|
+
return !closed && active !== false;
|
|
122
|
+
},
|
|
123
|
+
sinks: [],
|
|
124
|
+
});
|
|
125
|
+
const detachments = [];
|
|
126
|
+
try {
|
|
127
|
+
if (uploadOptions) upload = upload_index.createUploadSink(uploadOptions, outbox);
|
|
128
|
+
if (upload) sinks.push(upload);
|
|
129
|
+
for (const sink of sinks) detachments.push(logging.addSink(sink));
|
|
130
|
+
} catch (error) {
|
|
131
|
+
for (const detach of detachments) detach();
|
|
132
|
+
void upload?.stop();
|
|
133
|
+
void logging.stop().catch(() => {});
|
|
134
|
+
throw error;
|
|
135
|
+
}
|
|
136
|
+
let stopped;
|
|
137
|
+
return Object.freeze({
|
|
138
|
+
...logging,
|
|
139
|
+
history,
|
|
140
|
+
upload,
|
|
141
|
+
outbox,
|
|
142
|
+
stop() {
|
|
143
|
+
if (stopped) return stopped;
|
|
144
|
+
closed = true;
|
|
145
|
+
stopped = Promise.resolve().then(async () => {
|
|
146
|
+
const failures = [];
|
|
147
|
+
try {
|
|
148
|
+
await logging.stop();
|
|
149
|
+
} catch (error) {
|
|
150
|
+
failures.push(error);
|
|
151
|
+
}
|
|
152
|
+
try {
|
|
153
|
+
await outbox?.stop();
|
|
154
|
+
} catch (error) {
|
|
155
|
+
failures.push(error);
|
|
156
|
+
}
|
|
157
|
+
if (failures.length)
|
|
158
|
+
throw new AggregateError(failures, 'Docket shutdown failed');
|
|
159
|
+
});
|
|
160
|
+
void upload?.stop();
|
|
161
|
+
return stopped;
|
|
162
|
+
},
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
exports.createDocket = createDocket;
|
|
167
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/client/constants.js","../../src/client/index.js"],"sourcesContent":["export const CLIENT_DEFAULTS = Object.freeze({\n MAX_HISTORY_RECORDS: 1000,\n MAX_BATCH_RECORDS: 100,\n INTERVAL_MS: 5000,\n});\n\nexport const HISTORY_METHODS = Object.freeze({\n REQUIRED: Object.freeze(['write', 'query', 'clear']),\n OPTIONAL: Object.freeze(['flush', 'stop', 'getStatus']),\n});\n","import { createLogging } from '../core/hub.js';\nimport { createMemoryHistory } from '../history/index.js';\nimport { createUploadSink } from '../upload/index.js';\nimport { CLIENT_DEFAULTS, HISTORY_METHODS } from './constants.js';\n\nfunction resolveHistory(history) {\n if (history === false) return undefined;\n if (history === undefined)\n return createMemoryHistory({\n maxRecords: CLIENT_DEFAULTS.MAX_HISTORY_RECORDS,\n });\n if (!history || typeof history !== 'object')\n throw new TypeError('Invalid history options');\n if (\n !HISTORY_METHODS.REQUIRED.some((method) => method in history) &&\n !HISTORY_METHODS.OPTIONAL.some((method) => method in history)\n )\n return createMemoryHistory(history);\n if (\n HISTORY_METHODS.REQUIRED.some(\n (method) => typeof history[method] !== 'function',\n )\n )\n throw new TypeError('A history client requires write, query, and clear');\n for (const method of HISTORY_METHODS.OPTIONAL)\n if (history[method] !== undefined && typeof history[method] !== 'function')\n throw new TypeError(`Invalid history ${method}`);\n return history;\n}\n\nexport function createDocket(options) {\n if (!options || typeof options !== 'object')\n throw new TypeError('Docket options are required');\n const {\n areas,\n redactor,\n sinks: suppliedSinks,\n context,\n levelStorage,\n maxOverrideMs,\n stormLimit,\n scheduler,\n now,\n monotonicNow,\n createRunId,\n onError,\n history: historyOption,\n upload: uploadOption,\n isActive: isApplicationActive,\n } = options;\n const history = resolveHistory(historyOption);\n let upload;\n let uploadOptions;\n let outbox;\n if (uploadOption !== undefined && uploadOption !== false) {\n if (!uploadOption || typeof uploadOption !== 'object')\n throw new TypeError('Invalid upload options');\n outbox = uploadOption.outbox;\n if (\n !outbox ||\n outbox === history ||\n typeof outbox.clear !== 'function' ||\n typeof outbox.stop !== 'function'\n )\n throw new TypeError('Upload requires a separate outbox client');\n const {\n maxBatchRecords = CLIENT_DEFAULTS.MAX_BATCH_RECORDS,\n intervalMs = CLIENT_DEFAULTS.INTERVAL_MS,\n scheduler,\n onError,\n send,\n } = uploadOption;\n if (typeof send !== 'function')\n throw new TypeError('An upload callback is required');\n uploadOptions = {\n maxBatchRecords,\n intervalMs,\n scheduler,\n onError,\n send: (records, signal, token) =>\n send.call(uploadOption, records, signal, token),\n };\n }\n const sinks = [...(suppliedSinks ?? [])];\n if (history) sinks.push(history);\n for (const sink of sinks)\n if (!sink || typeof sink.write !== 'function')\n throw new TypeError('A sink must have write');\n let closed = false;\n const logging = createLogging({\n areas,\n redactor,\n context,\n levelStorage,\n maxOverrideMs,\n stormLimit,\n scheduler,\n now,\n monotonicNow,\n createRunId: createRunId ? () => createRunId.call(options) : createRunId,\n onError,\n isActive() {\n if (closed) return false;\n const active = isApplicationActive?.call(options);\n return !closed && active !== false;\n },\n sinks: [],\n });\n const detachments = [];\n try {\n if (uploadOptions) upload = createUploadSink(uploadOptions, outbox);\n if (upload) sinks.push(upload);\n for (const sink of sinks) detachments.push(logging.addSink(sink));\n } catch (error) {\n for (const detach of detachments) detach();\n void upload?.stop();\n void logging.stop().catch(() => {});\n throw error;\n }\n let stopped;\n return Object.freeze({\n ...logging,\n history,\n upload,\n outbox,\n stop() {\n if (stopped) return stopped;\n closed = true;\n stopped = Promise.resolve().then(async () => {\n const failures = [];\n try {\n await logging.stop();\n } catch (error) {\n failures.push(error);\n }\n try {\n await outbox?.stop();\n } catch (error) {\n failures.push(error);\n }\n if (failures.length)\n throw new AggregateError(failures, 'Docket shutdown failed');\n });\n void upload?.stop();\n return stopped;\n },\n });\n}\n"],"names":["createMemoryHistory","createLogging","createUploadSink"],"mappings":";;;;;;;;;;AAAO,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7C,EAAE,mBAAmB,EAAE,IAAI;AAC3B,EAAE,iBAAiB,EAAE,GAAG;AACxB,EAAE,WAAW,EAAE,IAAI;AACnB,CAAC,CAAC;;AAEK,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7C,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACtD,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AACzD,CAAC,CAAC;;ACJF,SAAS,cAAc,CAAC,OAAO,EAAE;AACjC,EAAE,IAAI,OAAO,KAAK,KAAK,EAAE,OAAO,SAAS;AACzC,EAAE,IAAI,OAAO,KAAK,SAAS;AAC3B,IAAI,OAAOA,iCAAmB,CAAC;AAC/B,MAAM,UAAU,EAAE,eAAe,CAAC,mBAAmB;AACrD,KAAK,CAAC;AACN,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;AAC7C,IAAI,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC;AAClD,EAAE;AACF,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC;AACjE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO;AAChE;AACA,IAAI,OAAOA,iCAAmB,CAAC,OAAO,CAAC;AACvC,EAAE;AACF,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI;AACjC,MAAM,CAAC,MAAM,KAAK,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,UAAU;AACvD;AACA;AACA,IAAI,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC;AAC5E,EAAE,KAAK,MAAM,MAAM,IAAI,eAAe,CAAC,QAAQ;AAC/C,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,UAAU;AAC9E,MAAM,MAAM,IAAI,SAAS,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;AACtD,EAAE,OAAO,OAAO;AAChB;;AAEO,SAAS,YAAY,CAAC,OAAO,EAAE;AACtC,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;AAC7C,IAAI,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC;AACtD,EAAE,MAAM;AACR,IAAI,KAAK;AACT,IAAI,QAAQ;AACZ,IAAI,KAAK,EAAE,aAAa;AACxB,IAAI,OAAO;AACX,IAAI,YAAY;AAChB,IAAI,aAAa;AACjB,IAAI,UAAU;AACd,IAAI,SAAS;AACb,IAAI,GAAG;AACP,IAAI,YAAY;AAChB,IAAI,WAAW;AACf,IAAI,OAAO;AACX,IAAI,OAAO,EAAE,aAAa;AAC1B,IAAI,MAAM,EAAE,YAAY;AACxB,IAAI,QAAQ,EAAE,mBAAmB;AACjC,GAAG,GAAG,OAAO;AACb,EAAE,MAAM,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC;AAC/C,EAAE,IAAI,MAAM;AACZ,EAAE,IAAI,aAAa;AACnB,EAAE,IAAI,MAAM;AACZ,EAAE,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,KAAK,EAAE;AAC5D,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ;AACzD,MAAM,MAAM,IAAI,SAAS,CAAC,wBAAwB,CAAC;AACnD,IAAI,MAAM,GAAG,YAAY,CAAC,MAAM;AAChC,IAAI;AACJ,MAAM,CAAC,MAAM;AACb,MAAM,MAAM,KAAK,OAAO;AACxB,MAAM,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU;AACxC,MAAM,OAAO,MAAM,CAAC,IAAI,KAAK;AAC7B;AACA,MAAM,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC;AACrE,IAAI,MAAM;AACV,MAAM,eAAe,GAAG,eAAe,CAAC,iBAAiB;AACzD,MAAM,UAAU,GAAG,eAAe,CAAC,WAAW;AAC9C,MAAM,SAAS;AACf,MAAM,OAAO;AACb,MAAM,IAAI;AACV,KAAK,GAAG,YAAY;AACpB,IAAI,IAAI,OAAO,IAAI,KAAK,UAAU;AAClC,MAAM,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC;AAC3D,IAAI,aAAa,GAAG;AACpB,MAAM,eAAe;AACrB,MAAM,UAAU;AAChB,MAAM,SAAS;AACf,MAAM,OAAO;AACb,MAAM,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK;AACnC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC;AACvD,KAAK;AACL,EAAE;AACF,EAAE,MAAM,KAAK,GAAG,CAAC,IAAI,aAAa,IAAI,EAAE,CAAC,CAAC;AAC1C,EAAE,IAAI,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AAClC,EAAE,KAAK,MAAM,IAAI,IAAI,KAAK;AAC1B,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU;AACjD,MAAM,MAAM,IAAI,SAAS,CAAC,wBAAwB,CAAC;AACnD,EAAE,IAAI,MAAM,GAAG,KAAK;AACpB,EAAE,MAAM,OAAO,GAAGC,iBAAa,CAAC;AAChC,IAAI,KAAK;AACT,IAAI,QAAQ;AACZ,IAAI,OAAO;AACX,IAAI,YAAY;AAChB,IAAI,aAAa;AACjB,IAAI,UAAU;AACd,IAAI,SAAS;AACb,IAAI,GAAG;AACP,IAAI,YAAY;AAChB,IAAI,WAAW,EAAE,WAAW,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,WAAW;AAC5E,IAAI,OAAO;AACX,IAAI,QAAQ,GAAG;AACf,MAAM,IAAI,MAAM,EAAE,OAAO,KAAK;AAC9B,MAAM,MAAM,MAAM,GAAG,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC;AACvD,MAAM,OAAO,CAAC,MAAM,IAAI,MAAM,KAAK,KAAK;AACxC,IAAI,CAAC;AACL,IAAI,KAAK,EAAE,EAAE;AACb,GAAG,CAAC;AACJ,EAAE,MAAM,WAAW,GAAG,EAAE;AACxB,EAAE,IAAI;AACN,IAAI,IAAI,aAAa,EAAE,MAAM,GAAGC,6BAAgB,CAAC,aAAa,EAAE,MAAM,CAAC;AACvE,IAAI,IAAI,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AAClC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACrE,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE;AAClB,IAAI,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,MAAM,EAAE;AAC9C,IAAI,KAAK,MAAM,EAAE,IAAI,EAAE;AACvB,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACvC,IAAI,MAAM,KAAK;AACf,EAAE;AACF,EAAE,IAAI,OAAO;AACb,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,IAAI,GAAG,OAAO;AACd,IAAI,OAAO;AACX,IAAI,MAAM;AACV,IAAI,MAAM;AACV,IAAI,IAAI,GAAG;AACX,MAAM,IAAI,OAAO,EAAE,OAAO,OAAO;AACjC,MAAM,MAAM,GAAG,IAAI;AACnB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY;AACnD,QAAQ,MAAM,QAAQ,GAAG,EAAE;AAC3B,QAAQ,IAAI;AACZ,UAAU,MAAM,OAAO,CAAC,IAAI,EAAE;AAC9B,QAAQ,CAAC,CAAC,OAAO,KAAK,EAAE;AACxB,UAAU,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9B,QAAQ;AACR,QAAQ,IAAI;AACZ,UAAU,MAAM,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAQ,CAAC,CAAC,OAAO,KAAK,EAAE;AACxB,UAAU,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9B,QAAQ;AACR,QAAQ,IAAI,QAAQ,CAAC,MAAM;AAC3B,UAAU,MAAM,IAAI,cAAc,CAAC,QAAQ,EAAE,wBAAwB,CAAC;AACtE,MAAM,CAAC,CAAC;AACR,MAAM,KAAK,MAAM,EAAE,IAAI,EAAE;AACzB,MAAM,OAAO,OAAO;AACpB,IAAI,CAAC;AACL,GAAG,CAAC;AACJ;;"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { MemoryHistoryOptions } from "../history/index.cjs";
|
|
2
|
+
import type { Logging, LoggingOptions, LogSink, LogSource } from "../index.cjs";
|
|
3
|
+
import type {
|
|
4
|
+
UploadOutbox,
|
|
5
|
+
UploadSink,
|
|
6
|
+
UploadSinkOptions,
|
|
7
|
+
} from "../upload/index.cjs";
|
|
8
|
+
|
|
9
|
+
export type HistoryClient = LogSink &
|
|
10
|
+
LogSource &
|
|
11
|
+
Readonly<{
|
|
12
|
+
clear(): void | Promise<void>;
|
|
13
|
+
}>;
|
|
14
|
+
export type OutboxClient = UploadOutbox &
|
|
15
|
+
Readonly<{
|
|
16
|
+
clear(): Promise<void>;
|
|
17
|
+
stop(): Promise<void>;
|
|
18
|
+
}>;
|
|
19
|
+
export type DocketUploadOptions = Readonly<{
|
|
20
|
+
outbox: OutboxClient;
|
|
21
|
+
send: UploadSinkOptions['send'];
|
|
22
|
+
maxBatchRecords?: number;
|
|
23
|
+
intervalMs?: number;
|
|
24
|
+
scheduler?: UploadSinkOptions['scheduler'];
|
|
25
|
+
onError?: UploadSinkOptions['onError'];
|
|
26
|
+
}>;
|
|
27
|
+
export type DocketOptions<TArea extends string> = LoggingOptions<TArea> &
|
|
28
|
+
Readonly<{
|
|
29
|
+
history?: false | MemoryHistoryOptions | HistoryClient;
|
|
30
|
+
upload?: false | DocketUploadOptions;
|
|
31
|
+
}>;
|
|
32
|
+
export type Docket<TArea extends string> = Logging<TArea> &
|
|
33
|
+
Readonly<{
|
|
34
|
+
history: HistoryClient | undefined;
|
|
35
|
+
upload: UploadSink | undefined;
|
|
36
|
+
outbox: OutboxClient | undefined;
|
|
37
|
+
}>;
|
|
38
|
+
export declare function createDocket<TArea extends string>(
|
|
39
|
+
options: DocketOptions<TArea>,
|
|
40
|
+
): Docket<TArea>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { MemoryHistoryOptions } from '../history/index.js';
|
|
2
|
+
import type { Logging, LoggingOptions, LogSink, LogSource } from '../index.js';
|
|
3
|
+
import type {
|
|
4
|
+
UploadOutbox,
|
|
5
|
+
UploadSink,
|
|
6
|
+
UploadSinkOptions,
|
|
7
|
+
} from '../upload/index.js';
|
|
8
|
+
|
|
9
|
+
export type HistoryClient = LogSink &
|
|
10
|
+
LogSource &
|
|
11
|
+
Readonly<{
|
|
12
|
+
clear(): void | Promise<void>;
|
|
13
|
+
}>;
|
|
14
|
+
export type OutboxClient = UploadOutbox &
|
|
15
|
+
Readonly<{
|
|
16
|
+
clear(): Promise<void>;
|
|
17
|
+
stop(): Promise<void>;
|
|
18
|
+
}>;
|
|
19
|
+
export type DocketUploadOptions = Readonly<{
|
|
20
|
+
outbox: OutboxClient;
|
|
21
|
+
send: UploadSinkOptions['send'];
|
|
22
|
+
maxBatchRecords?: number;
|
|
23
|
+
intervalMs?: number;
|
|
24
|
+
scheduler?: UploadSinkOptions['scheduler'];
|
|
25
|
+
onError?: UploadSinkOptions['onError'];
|
|
26
|
+
}>;
|
|
27
|
+
export type DocketOptions<TArea extends string> = LoggingOptions<TArea> &
|
|
28
|
+
Readonly<{
|
|
29
|
+
history?: false | MemoryHistoryOptions | HistoryClient;
|
|
30
|
+
upload?: false | DocketUploadOptions;
|
|
31
|
+
}>;
|
|
32
|
+
export type Docket<TArea extends string> = Logging<TArea> &
|
|
33
|
+
Readonly<{
|
|
34
|
+
history: HistoryClient | undefined;
|
|
35
|
+
upload: UploadSink | undefined;
|
|
36
|
+
outbox: OutboxClient | undefined;
|
|
37
|
+
}>;
|
|
38
|
+
export declare function createDocket<TArea extends string>(
|
|
39
|
+
options: DocketOptions<TArea>,
|
|
40
|
+
): Docket<TArea>;
|