@kb-labs/devkit 1.4.0 → 2.9.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/assets/claude/CLAUDE.md.snippet +30 -0
- package/assets/claude/manifest.json +47 -0
- package/assets/claude/skills/kb-labs-create-plugin/SKILL.md +144 -0
- package/assets/claude/skills/kb-labs-create-product/SKILL.md +144 -0
- package/assets/claude/skills/kb-labs-explore/SKILL.md +119 -0
- package/assets/claude/skills/kb-labs-quickstart/SKILL.md +72 -0
- package/assets/claude/skills/kb-labs-troubleshoot/SKILL.md +150 -0
- package/assets/claude/skills/kb-labs-update/SKILL.md +89 -0
- package/package.json +29 -29
- package/tsconfig/spa.json +7 -0
- package/vitest/node.js +8 -2
- package/vitest/react.js +8 -2
- package/.cursorrules +0 -32
- package/.github/CODEOWNERS +0 -2
- package/.github/actions/setup-node-pnpm/action.yml +0 -47
- package/.github/workflow-templates/ci.yml +0 -13
- package/.github/workflow-templates/deploy.yml +0 -28
- package/.github/workflow-templates/docker-build.yml +0 -25
- package/.github/workflow-templates/drift-check.yml +0 -10
- package/.github/workflow-templates/profiles-validate.yml +0 -16
- package/.github/workflow-templates/release.yml +0 -8
- package/.github/workflows/ci-reusable.yml +0 -131
- package/.github/workflows/deploy-reusable.yml +0 -110
- package/.github/workflows/docker-build-reusable.yml +0 -110
- package/.github/workflows/drift-check-reusable.yml +0 -23
- package/.github/workflows/fixtures.yml +0 -74
- package/.github/workflows/profiles-validate-reusable.yml +0 -67
- package/.github/workflows/release-reusable.yml +0 -50
- package/.vscode/settings.json +0 -23
- package/tsconfig/dist/__tests__/cache.spec.d.ts +0 -6
- package/tsconfig/dist/__tests__/cache.spec.d.ts.map +0 -1
- package/tsconfig/dist/__tests__/cache.spec.js +0 -85
- package/tsconfig/dist/__tests__/cache.spec.js.map +0 -1
- package/tsconfig/dist/__tests__/fs-atomic.spec.d.ts +0 -6
- package/tsconfig/dist/__tests__/fs-atomic.spec.d.ts.map +0 -1
- package/tsconfig/dist/__tests__/fs-atomic.spec.js +0 -153
- package/tsconfig/dist/__tests__/fs-atomic.spec.js.map +0 -1
- package/tsconfig/dist/__tests__/init-workspace.spec.d.ts +0 -6
- package/tsconfig/dist/__tests__/init-workspace.spec.d.ts.map +0 -1
- package/tsconfig/dist/__tests__/init-workspace.spec.js +0 -99
- package/tsconfig/dist/__tests__/init-workspace.spec.js.map +0 -1
- package/tsconfig/dist/__tests__/kb-error.spec.d.ts +0 -6
- package/tsconfig/dist/__tests__/kb-error.spec.d.ts.map +0 -1
- package/tsconfig/dist/__tests__/kb-error.spec.js +0 -190
- package/tsconfig/dist/__tests__/kb-error.spec.js.map +0 -1
- package/tsconfig/dist/__tests__/preset-lockfile.spec.d.ts +0 -6
- package/tsconfig/dist/__tests__/preset-lockfile.spec.d.ts.map +0 -1
- package/tsconfig/dist/__tests__/preset-lockfile.spec.js +0 -142
- package/tsconfig/dist/__tests__/preset-lockfile.spec.js.map +0 -1
- package/tsconfig/dist/__tests__/product-config-profiles.spec.d.ts +0 -6
- package/tsconfig/dist/__tests__/product-config-profiles.spec.d.ts.map +0 -1
- package/tsconfig/dist/__tests__/product-config-profiles.spec.js +0 -100
- package/tsconfig/dist/__tests__/product-config-profiles.spec.js.map +0 -1
- package/tsconfig/dist/__tests__/product-config.spec.d.ts +0 -6
- package/tsconfig/dist/__tests__/product-config.spec.d.ts.map +0 -1
- package/tsconfig/dist/__tests__/product-config.spec.js +0 -298
- package/tsconfig/dist/__tests__/product-config.spec.js.map +0 -1
- package/tsconfig/dist/__tests__/runtime.spec.d.ts +0 -2
- package/tsconfig/dist/__tests__/runtime.spec.d.ts.map +0 -1
- package/tsconfig/dist/__tests__/runtime.spec.js +0 -127
- package/tsconfig/dist/__tests__/runtime.spec.js.map +0 -1
- package/tsconfig/dist/__tests__/upsert-lockfile.spec.d.ts +0 -6
- package/tsconfig/dist/__tests__/upsert-lockfile.spec.d.ts.map +0 -1
- package/tsconfig/dist/__tests__/upsert-lockfile.spec.js +0 -251
- package/tsconfig/dist/__tests__/upsert-lockfile.spec.js.map +0 -1
- package/tsconfig/dist/__tests__/validate-config.spec.d.ts +0 -2
- package/tsconfig/dist/__tests__/validate-config.spec.d.ts.map +0 -1
- package/tsconfig/dist/__tests__/validate-config.spec.js +0 -14
- package/tsconfig/dist/__tests__/validate-config.spec.js.map +0 -1
- package/tsconfig/dist/api/init-workspace.d.ts +0 -10
- package/tsconfig/dist/api/init-workspace.d.ts.map +0 -1
- package/tsconfig/dist/api/init-workspace.js +0 -191
- package/tsconfig/dist/api/init-workspace.js.map +0 -1
- package/tsconfig/dist/api/product-config.d.ts +0 -21
- package/tsconfig/dist/api/product-config.d.ts.map +0 -1
- package/tsconfig/dist/api/product-config.js +0 -192
- package/tsconfig/dist/api/product-config.js.map +0 -1
- package/tsconfig/dist/api/read-config.d.ts +0 -22
- package/tsconfig/dist/api/read-config.d.ts.map +0 -1
- package/tsconfig/dist/api/read-config.js +0 -105
- package/tsconfig/dist/api/read-config.js.map +0 -1
- package/tsconfig/dist/api/upsert-lockfile.d.ts +0 -10
- package/tsconfig/dist/api/upsert-lockfile.d.ts.map +0 -1
- package/tsconfig/dist/api/upsert-lockfile.js +0 -63
- package/tsconfig/dist/api/upsert-lockfile.js.map +0 -1
- package/tsconfig/dist/cache/fs-cache.d.ts +0 -38
- package/tsconfig/dist/cache/fs-cache.d.ts.map +0 -1
- package/tsconfig/dist/cache/fs-cache.js +0 -142
- package/tsconfig/dist/cache/fs-cache.js.map +0 -1
- package/tsconfig/dist/errors/kb-error.d.ts +0 -32
- package/tsconfig/dist/errors/kb-error.d.ts.map +0 -1
- package/tsconfig/dist/errors/kb-error.js +0 -54
- package/tsconfig/dist/errors/kb-error.js.map +0 -1
- package/tsconfig/dist/fs/__tests__/fs.spec.d.ts +0 -2
- package/tsconfig/dist/fs/__tests__/fs.spec.d.ts.map +0 -1
- package/tsconfig/dist/fs/__tests__/fs.spec.js +0 -22
- package/tsconfig/dist/fs/__tests__/fs.spec.js.map +0 -1
- package/tsconfig/dist/fs/fs.d.ts +0 -6
- package/tsconfig/dist/fs/fs.d.ts.map +0 -1
- package/tsconfig/dist/fs/fs.js +0 -12
- package/tsconfig/dist/fs/fs.js.map +0 -1
- package/tsconfig/dist/fs/index.d.ts +0 -2
- package/tsconfig/dist/fs/index.d.ts.map +0 -1
- package/tsconfig/dist/fs/index.js +0 -2
- package/tsconfig/dist/fs/index.js.map +0 -1
- package/tsconfig/dist/hash/config-hash.d.ts +0 -17
- package/tsconfig/dist/hash/config-hash.d.ts.map +0 -1
- package/tsconfig/dist/hash/config-hash.js +0 -55
- package/tsconfig/dist/hash/config-hash.js.map +0 -1
- package/tsconfig/dist/index.d.ts +0 -5
- package/tsconfig/dist/index.d.ts.map +0 -1
- package/tsconfig/dist/index.js +0 -5
- package/tsconfig/dist/index.js.map +0 -1
- package/tsconfig/dist/lockfile/lockfile.d.ts +0 -54
- package/tsconfig/dist/lockfile/lockfile.d.ts.map +0 -1
- package/tsconfig/dist/lockfile/lockfile.js +0 -141
- package/tsconfig/dist/lockfile/lockfile.js.map +0 -1
- package/tsconfig/dist/logging/__tests__/logger.spec.d.ts +0 -2
- package/tsconfig/dist/logging/__tests__/logger.spec.d.ts.map +0 -1
- package/tsconfig/dist/logging/__tests__/logger.spec.js +0 -65
- package/tsconfig/dist/logging/__tests__/logger.spec.js.map +0 -1
- package/tsconfig/dist/logging/__tests__/redaction.spec.d.ts +0 -2
- package/tsconfig/dist/logging/__tests__/redaction.spec.d.ts.map +0 -1
- package/tsconfig/dist/logging/__tests__/redaction.spec.js +0 -34
- package/tsconfig/dist/logging/__tests__/redaction.spec.js.map +0 -1
- package/tsconfig/dist/logging/__tests__/sinks-and-env.spec.d.ts +0 -2
- package/tsconfig/dist/logging/__tests__/sinks-and-env.spec.d.ts.map +0 -1
- package/tsconfig/dist/logging/__tests__/sinks-and-env.spec.js +0 -90
- package/tsconfig/dist/logging/__tests__/sinks-and-env.spec.js.map +0 -1
- package/tsconfig/dist/logging/index.d.ts +0 -6
- package/tsconfig/dist/logging/index.d.ts.map +0 -1
- package/tsconfig/dist/logging/index.js +0 -6
- package/tsconfig/dist/logging/index.js.map +0 -1
- package/tsconfig/dist/logging/logger.d.ts +0 -9
- package/tsconfig/dist/logging/logger.d.ts.map +0 -1
- package/tsconfig/dist/logging/logger.js +0 -101
- package/tsconfig/dist/logging/logger.js.map +0 -1
- package/tsconfig/dist/logging/redaction.d.ts +0 -7
- package/tsconfig/dist/logging/redaction.d.ts.map +0 -1
- package/tsconfig/dist/logging/redaction.js +0 -23
- package/tsconfig/dist/logging/redaction.js.map +0 -1
- package/tsconfig/dist/logging/sinks/json.d.ts +0 -4
- package/tsconfig/dist/logging/sinks/json.d.ts.map +0 -1
- package/tsconfig/dist/logging/sinks/json.js +0 -23
- package/tsconfig/dist/logging/sinks/json.js.map +0 -1
- package/tsconfig/dist/logging/sinks/stdout.d.ts +0 -3
- package/tsconfig/dist/logging/sinks/stdout.d.ts.map +0 -1
- package/tsconfig/dist/logging/sinks/stdout.js +0 -24
- package/tsconfig/dist/logging/sinks/stdout.js.map +0 -1
- package/tsconfig/dist/logging/types/index.d.ts +0 -2
- package/tsconfig/dist/logging/types/index.d.ts.map +0 -1
- package/tsconfig/dist/logging/types/index.js +0 -2
- package/tsconfig/dist/logging/types/index.js.map +0 -1
- package/tsconfig/dist/logging/types/types.d.ts +0 -37
- package/tsconfig/dist/logging/types/types.d.ts.map +0 -1
- package/tsconfig/dist/logging/types/types.js +0 -2
- package/tsconfig/dist/logging/types/types.js.map +0 -1
- package/tsconfig/dist/merge/layered-merge.d.ts +0 -16
- package/tsconfig/dist/merge/layered-merge.d.ts.map +0 -1
- package/tsconfig/dist/merge/layered-merge.js +0 -97
- package/tsconfig/dist/merge/layered-merge.js.map +0 -1
- package/tsconfig/dist/preset/resolve-preset.d.ts +0 -29
- package/tsconfig/dist/preset/resolve-preset.d.ts.map +0 -1
- package/tsconfig/dist/preset/resolve-preset.js +0 -104
- package/tsconfig/dist/preset/resolve-preset.js.map +0 -1
- package/tsconfig/dist/repo/__tests__/repo.spec.d.ts +0 -2
- package/tsconfig/dist/repo/__tests__/repo.spec.d.ts.map +0 -1
- package/tsconfig/dist/repo/__tests__/repo.spec.js +0 -25
- package/tsconfig/dist/repo/__tests__/repo.spec.js.map +0 -1
- package/tsconfig/dist/repo/index.d.ts +0 -2
- package/tsconfig/dist/repo/index.d.ts.map +0 -1
- package/tsconfig/dist/repo/index.js +0 -2
- package/tsconfig/dist/repo/index.js.map +0 -1
- package/tsconfig/dist/repo/repo.d.ts +0 -6
- package/tsconfig/dist/repo/repo.d.ts.map +0 -1
- package/tsconfig/dist/repo/repo.js +0 -25
- package/tsconfig/dist/repo/repo.js.map +0 -1
- package/tsconfig/dist/runtime/index.d.ts +0 -2
- package/tsconfig/dist/runtime/index.d.ts.map +0 -1
- package/tsconfig/dist/runtime/index.js +0 -2
- package/tsconfig/dist/runtime/index.js.map +0 -1
- package/tsconfig/dist/runtime/runtime.d.ts +0 -46
- package/tsconfig/dist/runtime/runtime.d.ts.map +0 -1
- package/tsconfig/dist/runtime/runtime.js +0 -126
- package/tsconfig/dist/runtime/runtime.js.map +0 -1
- package/tsconfig/dist/tsconfig.tools.tsbuildinfo +0 -1
- package/tsconfig/dist/tsconfig.tsbuildinfo +0 -1
- package/tsconfig/dist/types/index.d.ts +0 -2
- package/tsconfig/dist/types/index.d.ts.map +0 -1
- package/tsconfig/dist/types/index.js +0 -2
- package/tsconfig/dist/types/index.js.map +0 -1
- package/tsconfig/dist/types/init.d.ts +0 -34
- package/tsconfig/dist/types/init.d.ts.map +0 -1
- package/tsconfig/dist/types/init.js +0 -6
- package/tsconfig/dist/types/init.js.map +0 -1
- package/tsconfig/dist/types/preset.d.ts +0 -27
- package/tsconfig/dist/types/preset.d.ts.map +0 -1
- package/tsconfig/dist/types/preset.js +0 -6
- package/tsconfig/dist/types/preset.js.map +0 -1
- package/tsconfig/dist/types/types.d.ts +0 -6
- package/tsconfig/dist/types/types.d.ts.map +0 -1
- package/tsconfig/dist/types/types.js +0 -2
- package/tsconfig/dist/types/types.js.map +0 -1
- package/tsconfig/dist/utils/__tests__/env.spec.d.ts +0 -2
- package/tsconfig/dist/utils/__tests__/env.spec.d.ts.map +0 -1
- package/tsconfig/dist/utils/__tests__/env.spec.js +0 -33
- package/tsconfig/dist/utils/__tests__/env.spec.js.map +0 -1
- package/tsconfig/dist/utils/env.d.ts +0 -7
- package/tsconfig/dist/utils/env.d.ts.map +0 -1
- package/tsconfig/dist/utils/env.js +0 -25
- package/tsconfig/dist/utils/env.js.map +0 -1
- package/tsconfig/dist/utils/fs-atomic.d.ts +0 -15
- package/tsconfig/dist/utils/fs-atomic.d.ts.map +0 -1
- package/tsconfig/dist/utils/fs-atomic.js +0 -45
- package/tsconfig/dist/utils/fs-atomic.js.map +0 -1
- package/tsconfig/dist/utils/index.d.ts +0 -3
- package/tsconfig/dist/utils/index.d.ts.map +0 -1
- package/tsconfig/dist/utils/index.js +0 -3
- package/tsconfig/dist/utils/index.js.map +0 -1
- package/tsconfig/dist/utils/paths.d.ts +0 -21
- package/tsconfig/dist/utils/paths.d.ts.map +0 -1
- package/tsconfig/dist/utils/paths.js +0 -32
- package/tsconfig/dist/utils/paths.js.map +0 -1
- package/tsconfig/dist/utils/product-normalize.d.ts +0 -27
- package/tsconfig/dist/utils/product-normalize.d.ts.map +0 -1
- package/tsconfig/dist/utils/product-normalize.js +0 -45
- package/tsconfig/dist/utils/product-normalize.js.map +0 -1
- package/tsconfig/dist/validation/validate-config.d.ts +0 -7
- package/tsconfig/dist/validation/validate-config.d.ts.map +0 -1
- package/tsconfig/dist/validation/validate-config.js +0 -22
- package/tsconfig/dist/validation/validate-config.js.map +0 -1
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
|
|
2
|
-
import { configureLogger, configureFromEnv, addSink, getLogger, createRedactor, jsonSink, stdoutSink } from '..';
|
|
3
|
-
describe.sequential('configureFromEnv', () => {
|
|
4
|
-
const orig = { ...process.env };
|
|
5
|
-
afterEach(() => { process.env = { ...orig }; });
|
|
6
|
-
it('sets log level and category filter (array)', async () => {
|
|
7
|
-
process.env.LOG_LEVEL = 'debug';
|
|
8
|
-
process.env.LOG_CATEGORY_FILTER = 'a,b';
|
|
9
|
-
configureLogger({ sinks: [], clock: () => new Date('2020-01-01T00:00:00.000Z') });
|
|
10
|
-
configureFromEnv(process.env);
|
|
11
|
-
const records = [];
|
|
12
|
-
addSink({ handle: r => { records.push(r); } });
|
|
13
|
-
getLogger('a').debug('x');
|
|
14
|
-
getLogger('c').debug('y');
|
|
15
|
-
await new Promise(r => setTimeout(r, 0));
|
|
16
|
-
expect(records.length).toBe(1);
|
|
17
|
-
expect(records[0].level).toBe('debug');
|
|
18
|
-
expect(records[0].category).toBe('a');
|
|
19
|
-
});
|
|
20
|
-
it('supports regex category filter', async () => {
|
|
21
|
-
process.env.LOG_LEVEL = 'info';
|
|
22
|
-
process.env.LOG_CATEGORY_FILTER = '/^api:/';
|
|
23
|
-
configureLogger({ sinks: [], clock: () => new Date('2020-01-01T00:00:00.000Z') });
|
|
24
|
-
configureFromEnv(process.env);
|
|
25
|
-
const records = [];
|
|
26
|
-
addSink({ handle: r => { records.push(r); } });
|
|
27
|
-
getLogger('api:get').info('pass');
|
|
28
|
-
getLogger('db').info('skip');
|
|
29
|
-
await new Promise(r => setTimeout(r, 0));
|
|
30
|
-
expect(records.map(r => r.category)).toEqual(['api:get']);
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
describe.sequential('redactor', () => {
|
|
34
|
-
beforeEach(() => {
|
|
35
|
-
configureLogger({ sinks: [], level: 'debug', categoryFilter: /.*/, clock: () => new Date('2020-01-01T00:00:00.000Z') });
|
|
36
|
-
});
|
|
37
|
-
it('applies redaction before fanout', async () => {
|
|
38
|
-
const redact = createRedactor({
|
|
39
|
-
keys: ['token'],
|
|
40
|
-
mask: '***',
|
|
41
|
-
});
|
|
42
|
-
const seen = [];
|
|
43
|
-
configureLogger({ redactor: (r) => redact(r), sinks: [{ handle: r => { seen.push(r); } }] });
|
|
44
|
-
getLogger('x').info('ok', { token: 'secret', keep: 1 });
|
|
45
|
-
await Promise.resolve();
|
|
46
|
-
await new Promise(r => setTimeout(r, 1));
|
|
47
|
-
expect(seen[0].meta).toEqual({ token: '***', keep: 1 });
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
describe.sequential('sinks', () => {
|
|
51
|
-
beforeEach(() => {
|
|
52
|
-
configureLogger({ sinks: [], level: 'debug', categoryFilter: /.*/, clock: () => new Date('2020-01-01T00:00:00.000Z') });
|
|
53
|
-
});
|
|
54
|
-
it('jsonSink writes stable JSON to stdout', async () => {
|
|
55
|
-
const spy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
|
|
56
|
-
addSink(jsonSink);
|
|
57
|
-
getLogger('cat').info('hello', { a: 1 });
|
|
58
|
-
await Promise.resolve();
|
|
59
|
-
await new Promise(r => setTimeout(r, 1));
|
|
60
|
-
expect(spy).toHaveBeenCalled();
|
|
61
|
-
const call = spy.mock.calls[0]?.[0];
|
|
62
|
-
const obj = JSON.parse(call.trim());
|
|
63
|
-
expect(obj).toEqual({ time: '2020-01-01T00:00:00.000Z', level: 'info', category: 'cat', msg: 'hello', meta: { a: 1 } });
|
|
64
|
-
spy.mockRestore();
|
|
65
|
-
});
|
|
66
|
-
it('stdoutSink routes based on level and formats line', async () => {
|
|
67
|
-
const logSpy = vi.spyOn(console, 'log').mockImplementation(() => { });
|
|
68
|
-
const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => { });
|
|
69
|
-
const errSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
|
|
70
|
-
const dbgSpy = vi.spyOn(console, 'debug').mockImplementation(() => { });
|
|
71
|
-
configureLogger({ level: 'debug' });
|
|
72
|
-
addSink(stdoutSink);
|
|
73
|
-
const l = getLogger('svc');
|
|
74
|
-
l.debug('d');
|
|
75
|
-
l.info('i', { x: 1 });
|
|
76
|
-
l.warn('w');
|
|
77
|
-
l.error('e');
|
|
78
|
-
await Promise.resolve();
|
|
79
|
-
await new Promise(r => setTimeout(r, 1));
|
|
80
|
-
expect(dbgSpy).toHaveBeenCalled();
|
|
81
|
-
expect(logSpy).toHaveBeenCalledWith('[2020-01-01T00:00:00.000Z] INFO svc: i', { x: 1 });
|
|
82
|
-
expect(warnSpy).toHaveBeenCalled();
|
|
83
|
-
expect(errSpy).toHaveBeenCalled();
|
|
84
|
-
logSpy.mockRestore();
|
|
85
|
-
warnSpy.mockRestore();
|
|
86
|
-
errSpy.mockRestore();
|
|
87
|
-
dbgSpy.mockRestore();
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
//# sourceMappingURL=sinks-and-env.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sinks-and-env.spec.js","sourceRoot":"","sources":["../../../../../kb-labs-core/packages/sys/src/logging/__tests__/sinks-and-env.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export * from "./types";
|
|
2
|
-
export { configureLogger, configureFromEnv, addSink, removeSink, setLogLevel, getLogger } from "./logger";
|
|
3
|
-
export { createRedactor } from "./redaction";
|
|
4
|
-
export { stdoutSink } from "./sinks/stdout";
|
|
5
|
-
export { jsonSink } from "./sinks/json";
|
|
6
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../kb-labs-core/packages/sys/src/logging/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1G,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export * from "./types";
|
|
2
|
-
export { configureLogger, configureFromEnv, addSink, removeSink, setLogLevel, getLogger } from "./logger";
|
|
3
|
-
export { createRedactor } from "./redaction";
|
|
4
|
-
export { stdoutSink } from "./sinks/stdout";
|
|
5
|
-
export { jsonSink } from "./sinks/json";
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../kb-labs-core/packages/sys/src/logging/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1G,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { ConfigureOpts, LogLevel, LogSink, Logger } from "./types";
|
|
2
|
-
export declare function configureLogger(opts: ConfigureOpts): void;
|
|
3
|
-
export declare function addSink(sink: LogSink): void;
|
|
4
|
-
export declare function removeSink(sink: LogSink): void;
|
|
5
|
-
export declare function setLogLevel(level: LogLevel): void;
|
|
6
|
-
export declare function getLogger(category?: string): Logger;
|
|
7
|
-
/** Generic ENV bootstrap (no product-specific vars). */
|
|
8
|
-
export declare function configureFromEnv(env?: NodeJS.ProcessEnv): void;
|
|
9
|
-
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../kb-labs-core/packages/sys/src/logging/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAa,OAAO,EAAE,MAAM,EAAY,MAAM,SAAS,CAAC;AAU7F,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAMzD;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAsB;AAClE,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAA2C;AAC1F,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAyB;AAoD3E,wBAAgB,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wDAAwD;AACxD,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,IAAI,CAa3E"}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
const LEVEL_ORDER = { debug: 10, info: 20, warn: 30, error: 40 };
|
|
2
|
-
let globalLevel = "info";
|
|
3
|
-
let sinks = [];
|
|
4
|
-
let redactor = null;
|
|
5
|
-
let categoryFilter;
|
|
6
|
-
let clock = () => new Date();
|
|
7
|
-
export function configureLogger(opts) {
|
|
8
|
-
if (opts.level) {
|
|
9
|
-
globalLevel = opts.level;
|
|
10
|
-
}
|
|
11
|
-
if (opts.sinks) {
|
|
12
|
-
sinks = [...opts.sinks];
|
|
13
|
-
}
|
|
14
|
-
if (opts.redactor !== undefined) {
|
|
15
|
-
redactor = opts.redactor;
|
|
16
|
-
}
|
|
17
|
-
if (opts.categoryFilter !== undefined) {
|
|
18
|
-
categoryFilter = opts.categoryFilter;
|
|
19
|
-
}
|
|
20
|
-
if (opts.clock) {
|
|
21
|
-
clock = opts.clock;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
export function addSink(sink) { sinks.push(sink); }
|
|
25
|
-
export function removeSink(sink) { sinks = sinks.filter(s => s !== sink); }
|
|
26
|
-
export function setLogLevel(level) { globalLevel = level; }
|
|
27
|
-
function allowedCategory(cat) {
|
|
28
|
-
if (!categoryFilter) {
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
if (Array.isArray(categoryFilter)) {
|
|
32
|
-
return !cat ? false : categoryFilter.includes(cat);
|
|
33
|
-
}
|
|
34
|
-
return !!cat && categoryFilter.test(cat);
|
|
35
|
-
}
|
|
36
|
-
async function fanout(rec) {
|
|
37
|
-
const prepared = redactor ? redactor(rec) : rec;
|
|
38
|
-
for (const s of sinks) {
|
|
39
|
-
try {
|
|
40
|
-
await s.handle(prepared);
|
|
41
|
-
}
|
|
42
|
-
catch { /* never throw */ }
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
function baseLogger(bindings) {
|
|
46
|
-
const boundCat = bindings?.category;
|
|
47
|
-
const boundMeta = bindings?.meta ?? {};
|
|
48
|
-
function emit(level, msg, meta) {
|
|
49
|
-
if (LEVEL_ORDER[level] < LEVEL_ORDER[globalLevel]) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
if (!allowedCategory(boundCat)) {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
let err;
|
|
56
|
-
let attach;
|
|
57
|
-
if (meta instanceof Error) {
|
|
58
|
-
err = { name: meta.name, message: meta.message, stack: meta.stack };
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
attach = meta;
|
|
62
|
-
}
|
|
63
|
-
const rec = {
|
|
64
|
-
time: clock().toISOString(),
|
|
65
|
-
level,
|
|
66
|
-
category: boundCat,
|
|
67
|
-
msg,
|
|
68
|
-
meta: Object.keys(boundMeta).length || attach ? { ...boundMeta, ...attach } : undefined,
|
|
69
|
-
err,
|
|
70
|
-
};
|
|
71
|
-
void fanout(rec);
|
|
72
|
-
}
|
|
73
|
-
return {
|
|
74
|
-
debug: (m, m2) => emit("debug", m, m2),
|
|
75
|
-
info: (m, m2) => emit("info", m, m2),
|
|
76
|
-
warn: (m, m2) => emit("warn", m, m2),
|
|
77
|
-
error: (m, m2) => emit("error", m, m2),
|
|
78
|
-
child: (b) => baseLogger({ category: b.category ?? boundCat, meta: { ...boundMeta, ...(b.meta ?? {}) } }),
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
export function getLogger(category) {
|
|
82
|
-
return baseLogger({ category });
|
|
83
|
-
}
|
|
84
|
-
/** Generic ENV bootstrap (no product-specific vars). */
|
|
85
|
-
export function configureFromEnv(env = process.env) {
|
|
86
|
-
const lvl = (env.LOG_LEVEL ?? "").toLowerCase();
|
|
87
|
-
if (lvl === "debug" || lvl === "info" || lvl === "warn" || lvl === "error") {
|
|
88
|
-
setLogLevel(lvl);
|
|
89
|
-
}
|
|
90
|
-
const filter = env.LOG_CATEGORY_FILTER;
|
|
91
|
-
if (filter?.length) {
|
|
92
|
-
if (filter.startsWith("/") && filter.endsWith("/")) {
|
|
93
|
-
const re = new RegExp(filter.slice(1, -1));
|
|
94
|
-
configureLogger({ categoryFilter: re });
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
configureLogger({ categoryFilter: filter.split(",").map(s => s.trim()).filter(Boolean) });
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
//# sourceMappingURL=logger.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../kb-labs-core/packages/sys/src/logging/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../../../../kb-labs-core/packages/sys/src/logging/redaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnD,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,QAAQ,CAoBlF"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/** Simple key-based redactor; masks values by key in meta recursively. */
|
|
2
|
-
export function createRedactor(opts) {
|
|
3
|
-
const keys = new Set((opts?.keys ?? ["token", "apiKey", "authorization"]).map(k => k.toLowerCase()));
|
|
4
|
-
const mask = opts?.mask ?? "****";
|
|
5
|
-
function redactValue(v, path = []) {
|
|
6
|
-
if (v && typeof v === "object" && !Array.isArray(v)) {
|
|
7
|
-
const out = {};
|
|
8
|
-
for (const [k, val] of Object.entries(v)) {
|
|
9
|
-
out[k] = keys.has(k.toLowerCase()) ? mask : redactValue(val, path.concat(k));
|
|
10
|
-
}
|
|
11
|
-
return out;
|
|
12
|
-
}
|
|
13
|
-
if (Array.isArray(v)) {
|
|
14
|
-
return v.map((x) => redactValue(x, path));
|
|
15
|
-
}
|
|
16
|
-
return v;
|
|
17
|
-
}
|
|
18
|
-
return (rec) => {
|
|
19
|
-
const meta = rec.meta ? redactValue(rec.meta) : undefined;
|
|
20
|
-
return meta ? { ...rec, meta } : rec;
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=redaction.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"redaction.js","sourceRoot":"","sources":["../../../../kb-labs-core/packages/sys/src/logging/redaction.ts"],"names":[],"mappings":"AAEA,0EAA0E;AAC1E,MAAM,UAAU,cAAc,CAAC,IAAyC;IACpE,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACrG,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,MAAM,CAAC;IAElC,SAAS,WAAW,CAAC,CAAU,EAAE,OAAiB,EAAE;QAChD,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,MAAM,GAAG,GAA4B,EAAE,CAAC;YACxC,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAQ,CAAC,EAAE,CAAC;gBAC9C,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACjF,CAAC;YACD,OAAO,GAAG,CAAC;QACf,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAAA,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAAA,CAAC;QAClE,OAAO,CAAC,CAAC;IACb,CAAC;IAED,OAAO,CAAC,GAAc,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAA6B,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACzC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../../../kb-labs-core/packages/sys/src/logging/sinks/json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnD,qDAAqD;AACrD,eAAO,MAAM,QAAQ,EAAE,OAYtB,CAAC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/** Deterministic JSON sink for CI/log collectors. */
|
|
2
|
-
export const jsonSink = {
|
|
3
|
-
handle(rec) {
|
|
4
|
-
// Ensure stable order: time, level, category, msg, err, meta
|
|
5
|
-
const payload = {};
|
|
6
|
-
payload.time = rec.time;
|
|
7
|
-
payload.level = rec.level;
|
|
8
|
-
if (rec.category) {
|
|
9
|
-
payload.category = rec.category;
|
|
10
|
-
}
|
|
11
|
-
if (rec.msg) {
|
|
12
|
-
payload.msg = rec.msg;
|
|
13
|
-
}
|
|
14
|
-
if (rec.err) {
|
|
15
|
-
payload.err = rec.err;
|
|
16
|
-
}
|
|
17
|
-
if (rec.meta) {
|
|
18
|
-
payload.meta = rec.meta;
|
|
19
|
-
}
|
|
20
|
-
process.stdout.write(JSON.stringify(payload) + "\n");
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=json.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../../../../kb-labs-core/packages/sys/src/logging/sinks/json.ts"],"names":[],"mappings":"AAEA,qDAAqD;AACrD,MAAM,CAAC,MAAM,QAAQ,GAAY;IAC7B,MAAM,CAAC,GAAc;QACjB,6DAA6D;QAC7D,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACxB,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QAC1B,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YAAA,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAAA,CAAC;QACpD,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YAAA,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;QAAA,CAAC;QACrC,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YAAA,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;QAAA,CAAC;QACrC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YAAA,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QAAA,CAAC;QACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACzD,CAAC;CACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stdout.d.ts","sourceRoot":"","sources":["../../../../../kb-labs-core/packages/sys/src/logging/sinks/stdout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnD,eAAO,MAAM,UAAU,EAAE,OAkBxB,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export const stdoutSink = {
|
|
2
|
-
handle(rec) {
|
|
3
|
-
const line = `[${rec.time}] ${rec.level.toUpperCase()}${rec.category ? ` ${rec.category}` : ""}: ${rec.msg ?? ""}`;
|
|
4
|
-
if (rec.level === "error") {
|
|
5
|
-
if (rec.err) {
|
|
6
|
-
console.error(line, rec.meta ?? {}, rec.err);
|
|
7
|
-
}
|
|
8
|
-
else {
|
|
9
|
-
console.error(line, rec.meta ?? {});
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
else if (rec.level === "warn") {
|
|
13
|
-
console.warn(line, rec.meta ?? {});
|
|
14
|
-
}
|
|
15
|
-
else if (rec.level === "info") {
|
|
16
|
-
console.log(line, rec.meta ?? {});
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
// debug
|
|
20
|
-
console.debug(line, rec.meta ?? {});
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
//# sourceMappingURL=stdout.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stdout.js","sourceRoot":"","sources":["../../../../../kb-labs-core/packages/sys/src/logging/sinks/stdout.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAY;IAC/B,MAAM,CAAC,GAAc;QACjB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;QACnH,IAAI,GAAG,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YACxB,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACxC,CAAC;QACL,CAAC;aAAM,IAAI,GAAG,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,GAAG,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACJ,QAAQ;YACR,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;CACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../kb-labs-core/packages/sys/src/logging/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../kb-labs-core/packages/sys/src/logging/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
export type LogLevel = "debug" | "info" | "warn" | "error";
|
|
2
|
-
export interface LogRecord {
|
|
3
|
-
time: string;
|
|
4
|
-
level: LogLevel;
|
|
5
|
-
category?: string;
|
|
6
|
-
msg?: string;
|
|
7
|
-
err?: {
|
|
8
|
-
name: string;
|
|
9
|
-
message: string;
|
|
10
|
-
stack?: string;
|
|
11
|
-
};
|
|
12
|
-
meta?: Record<string, unknown>;
|
|
13
|
-
}
|
|
14
|
-
export interface LogSink {
|
|
15
|
-
handle(rec: LogRecord): void | Promise<void>;
|
|
16
|
-
}
|
|
17
|
-
export interface Redactor {
|
|
18
|
-
(rec: LogRecord): LogRecord;
|
|
19
|
-
}
|
|
20
|
-
export interface ConfigureOpts {
|
|
21
|
-
level?: LogLevel;
|
|
22
|
-
sinks?: LogSink[];
|
|
23
|
-
redactor?: Redactor | null;
|
|
24
|
-
categoryFilter?: string[] | RegExp;
|
|
25
|
-
clock?: () => Date;
|
|
26
|
-
}
|
|
27
|
-
export interface Logger {
|
|
28
|
-
debug(msg: string, meta?: Record<string, unknown>): void;
|
|
29
|
-
info(msg: string, meta?: Record<string, unknown>): void;
|
|
30
|
-
warn(msg: string, meta?: Record<string, unknown>): void;
|
|
31
|
-
error(msg: string, meta?: Record<string, unknown> | Error): void;
|
|
32
|
-
child(bindings: {
|
|
33
|
-
category?: string;
|
|
34
|
-
meta?: Record<string, unknown>;
|
|
35
|
-
}): Logger;
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../kb-labs-core/packages/sys/src/logging/types/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,OAAO;IACpB,MAAM,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,QAAQ;IACrB,CAAC,GAAG,EAAE,SAAS,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC1B,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,MAAM;IACnB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;IACjE,KAAK,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,MAAM,CAAC;CAClF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../kb-labs-core/packages/sys/src/logging/types/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module @kb-labs/core/config/merge/layered-merge
|
|
3
|
-
* Layered merge with trace for configuration layers
|
|
4
|
-
*/
|
|
5
|
-
import type { ConfigLayer, MergeTrace } from '../types';
|
|
6
|
-
export interface LayeredMergeResult {
|
|
7
|
-
merged: any;
|
|
8
|
-
trace: MergeTrace[];
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Merge configuration layers with detailed trace
|
|
12
|
-
* Arrays are overwritten (not merged)
|
|
13
|
-
* Objects are deeply merged
|
|
14
|
-
*/
|
|
15
|
-
export declare function layeredMergeWithTrace(layers: ConfigLayer[]): LayeredMergeResult;
|
|
16
|
-
//# sourceMappingURL=layered-merge.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"layered-merge.d.ts","sourceRoot":"","sources":["../../../../kb-labs-core/packages/config/src/merge/layered-merge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,kBAAkB,CAmE/E"}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module @kb-labs/core/config/merge/layered-merge
|
|
3
|
-
* Layered merge with trace for configuration layers
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Merge configuration layers with detailed trace
|
|
7
|
-
* Arrays are overwritten (not merged)
|
|
8
|
-
* Objects are deeply merged
|
|
9
|
-
*/
|
|
10
|
-
export function layeredMergeWithTrace(layers) {
|
|
11
|
-
const trace = [];
|
|
12
|
-
const isPlainObject = (v) => v && typeof v === 'object' && !Array.isArray(v) && Object.getPrototypeOf(v) === Object.prototype;
|
|
13
|
-
const merge = (base, overlay, layer, path = []) => {
|
|
14
|
-
// Handle array overwrite
|
|
15
|
-
if (Array.isArray(base) && Array.isArray(overlay)) {
|
|
16
|
-
trace.push({
|
|
17
|
-
path: path.join('.'),
|
|
18
|
-
source: layer.source,
|
|
19
|
-
type: 'overwriteArray',
|
|
20
|
-
layer: layer.label,
|
|
21
|
-
profileKey: layer.source.includes('profile') ? extractProfileKey(layer.source) : undefined,
|
|
22
|
-
profileRef: layer.source.includes('profile') ? extractProfileRef(layer.source) : undefined,
|
|
23
|
-
presetRef: layer.source.includes('preset') ? extractPresetRef(layer.source) : undefined,
|
|
24
|
-
version: extractVersion(layer.source),
|
|
25
|
-
});
|
|
26
|
-
return overlay;
|
|
27
|
-
}
|
|
28
|
-
// Handle object merge
|
|
29
|
-
if (isPlainObject(base) && isPlainObject(overlay)) {
|
|
30
|
-
const result = { ...base };
|
|
31
|
-
for (const [key, value] of Object.entries(overlay)) {
|
|
32
|
-
if (key in base) {
|
|
33
|
-
result[key] = merge(base[key], value, layer, [...path, key]);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
trace.push({
|
|
37
|
-
path: [...path, key].join('.'),
|
|
38
|
-
source: layer.source,
|
|
39
|
-
type: 'set',
|
|
40
|
-
layer: layer.label,
|
|
41
|
-
profileKey: layer.source.includes('profile') ? extractProfileKey(layer.source) : undefined,
|
|
42
|
-
profileRef: layer.source.includes('profile') ? extractProfileRef(layer.source) : undefined,
|
|
43
|
-
presetRef: layer.source.includes('preset') ? extractPresetRef(layer.source) : undefined,
|
|
44
|
-
version: extractVersion(layer.source),
|
|
45
|
-
});
|
|
46
|
-
result[key] = value;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return result;
|
|
50
|
-
}
|
|
51
|
-
// Different types or primitive values - overlay wins
|
|
52
|
-
trace.push({
|
|
53
|
-
path: path.join('.'),
|
|
54
|
-
source: layer.source,
|
|
55
|
-
type: 'set',
|
|
56
|
-
layer: layer.label,
|
|
57
|
-
profileKey: layer.source.includes('profile') ? extractProfileKey(layer.source) : undefined,
|
|
58
|
-
profileRef: layer.source.includes('profile') ? extractProfileRef(layer.source) : undefined,
|
|
59
|
-
presetRef: layer.source.includes('preset') ? extractPresetRef(layer.source) : undefined,
|
|
60
|
-
version: extractVersion(layer.source),
|
|
61
|
-
});
|
|
62
|
-
return overlay ?? base;
|
|
63
|
-
};
|
|
64
|
-
const merged = layers.reduce((acc, layer) => {
|
|
65
|
-
return merge(acc, layer.value, layer);
|
|
66
|
-
}, {});
|
|
67
|
-
return { merged, trace };
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Extract profile key from source string
|
|
71
|
-
*/
|
|
72
|
-
function extractProfileKey(source) {
|
|
73
|
-
const match = source.match(/profile[^:]*:([^@]+)/);
|
|
74
|
-
return match?.[1];
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Extract profile ref from source string
|
|
78
|
-
*/
|
|
79
|
-
function extractProfileRef(source) {
|
|
80
|
-
const match = source.match(/profile[^:]*:[^@]+@(.+)/);
|
|
81
|
-
return match?.[1];
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Extract preset ref from source string
|
|
85
|
-
*/
|
|
86
|
-
function extractPresetRef(source) {
|
|
87
|
-
const match = source.match(/preset[^:]*:@(.+)/);
|
|
88
|
-
return match?.[1];
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Extract version from source string
|
|
92
|
-
*/
|
|
93
|
-
function extractVersion(source) {
|
|
94
|
-
const match = source.match(/@([^:]+)/);
|
|
95
|
-
return match?.[1];
|
|
96
|
-
}
|
|
97
|
-
//# sourceMappingURL=layered-merge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"layered-merge.js","sourceRoot":"","sources":["../../../../kb-labs-core/packages/config/src/merge/layered-merge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAqB;IACzD,MAAM,KAAK,GAAiB,EAAE,CAAC;IAE/B,MAAM,aAAa,GAAG,CAAC,CAAM,EAA4B,EAAE,CACzD,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC;IAEnG,MAAM,KAAK,GAAG,CAAC,IAAS,EAAE,OAAY,EAAE,KAAkB,EAAE,OAAiB,EAAE,EAAO,EAAE;QACtF,yBAAyB;QACzB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC1F,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC1F,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;gBACvF,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC;aACtC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,sBAAsB;QACtB,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAClD,MAAM,MAAM,GAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;YAEhC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnD,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;oBAChB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC/D,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,IAAI,CAAC;wBACT,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;wBAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,IAAI,EAAE,KAAK;wBACX,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;wBAC1F,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;wBAC1F,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;wBACvF,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC;qBACtC,CAAC,CAAC;oBACH,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtB,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,qDAAqD;QACrD,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;YAC1F,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;YAC1F,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;YACvF,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC;SACtC,CAAC,CAAC;QAEH,OAAO,OAAO,IAAI,IAAI,CAAC;IACzB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC1C,OAAO,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,MAAc;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACnD,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,MAAc;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACtD,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,MAAc;IACtC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAChD,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,MAAc;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACvC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module @kb-labs/core/config/preset/resolve-preset
|
|
3
|
-
* Org preset resolution with offline-first npm package loading
|
|
4
|
-
*/
|
|
5
|
-
import type { ProductId } from '../types';
|
|
6
|
-
export interface PresetInfo {
|
|
7
|
-
name: string;
|
|
8
|
-
version: string;
|
|
9
|
-
path: string;
|
|
10
|
-
config: any;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Resolve org preset package (offline-first)
|
|
14
|
-
*/
|
|
15
|
-
export declare function resolvePreset(presetRef: string, cwd: string): Promise<PresetInfo>;
|
|
16
|
-
/**
|
|
17
|
-
* Get preset config for a specific product
|
|
18
|
-
*/
|
|
19
|
-
export declare function getPresetConfigForProduct(preset: PresetInfo, product: ProductId): any;
|
|
20
|
-
/**
|
|
21
|
-
* Get preset metadata
|
|
22
|
-
*/
|
|
23
|
-
export declare function getPresetMetadata(preset: PresetInfo): {
|
|
24
|
-
name: string;
|
|
25
|
-
version: string;
|
|
26
|
-
path: string;
|
|
27
|
-
products: string[];
|
|
28
|
-
};
|
|
29
|
-
//# sourceMappingURL=resolve-preset.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-preset.d.ts","sourceRoot":"","sources":["../../../../kb-labs-core/packages/config/src/preset/resolve-preset.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,GAAG,CAAC;CACb;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,UAAU,CAAC,CAuBrB;AAkFD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,SAAS,GACjB,GAAG,CAGL;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAOA"}
|