@kb-labs/devkit 1.4.0 → 2.6.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.
Files changed (231) hide show
  1. package/assets/claude/CLAUDE.md.snippet +30 -0
  2. package/assets/claude/manifest.json +47 -0
  3. package/assets/claude/skills/kb-labs-create-plugin/SKILL.md +144 -0
  4. package/assets/claude/skills/kb-labs-create-product/SKILL.md +144 -0
  5. package/assets/claude/skills/kb-labs-explore/SKILL.md +119 -0
  6. package/assets/claude/skills/kb-labs-quickstart/SKILL.md +72 -0
  7. package/assets/claude/skills/kb-labs-troubleshoot/SKILL.md +150 -0
  8. package/assets/claude/skills/kb-labs-update/SKILL.md +89 -0
  9. package/package.json +7 -6
  10. package/tsconfig/spa.json +7 -0
  11. package/vitest/node.js +8 -2
  12. package/vitest/react.js +8 -2
  13. package/.cursorrules +0 -32
  14. package/.github/CODEOWNERS +0 -2
  15. package/.github/actions/setup-node-pnpm/action.yml +0 -47
  16. package/.github/workflow-templates/ci.yml +0 -13
  17. package/.github/workflow-templates/deploy.yml +0 -28
  18. package/.github/workflow-templates/docker-build.yml +0 -25
  19. package/.github/workflow-templates/drift-check.yml +0 -10
  20. package/.github/workflow-templates/profiles-validate.yml +0 -16
  21. package/.github/workflow-templates/release.yml +0 -8
  22. package/.github/workflows/ci-reusable.yml +0 -131
  23. package/.github/workflows/deploy-reusable.yml +0 -110
  24. package/.github/workflows/docker-build-reusable.yml +0 -110
  25. package/.github/workflows/drift-check-reusable.yml +0 -23
  26. package/.github/workflows/fixtures.yml +0 -74
  27. package/.github/workflows/profiles-validate-reusable.yml +0 -67
  28. package/.github/workflows/release-reusable.yml +0 -50
  29. package/.vscode/settings.json +0 -23
  30. package/tsconfig/dist/__tests__/cache.spec.d.ts +0 -6
  31. package/tsconfig/dist/__tests__/cache.spec.d.ts.map +0 -1
  32. package/tsconfig/dist/__tests__/cache.spec.js +0 -85
  33. package/tsconfig/dist/__tests__/cache.spec.js.map +0 -1
  34. package/tsconfig/dist/__tests__/fs-atomic.spec.d.ts +0 -6
  35. package/tsconfig/dist/__tests__/fs-atomic.spec.d.ts.map +0 -1
  36. package/tsconfig/dist/__tests__/fs-atomic.spec.js +0 -153
  37. package/tsconfig/dist/__tests__/fs-atomic.spec.js.map +0 -1
  38. package/tsconfig/dist/__tests__/init-workspace.spec.d.ts +0 -6
  39. package/tsconfig/dist/__tests__/init-workspace.spec.d.ts.map +0 -1
  40. package/tsconfig/dist/__tests__/init-workspace.spec.js +0 -99
  41. package/tsconfig/dist/__tests__/init-workspace.spec.js.map +0 -1
  42. package/tsconfig/dist/__tests__/kb-error.spec.d.ts +0 -6
  43. package/tsconfig/dist/__tests__/kb-error.spec.d.ts.map +0 -1
  44. package/tsconfig/dist/__tests__/kb-error.spec.js +0 -190
  45. package/tsconfig/dist/__tests__/kb-error.spec.js.map +0 -1
  46. package/tsconfig/dist/__tests__/preset-lockfile.spec.d.ts +0 -6
  47. package/tsconfig/dist/__tests__/preset-lockfile.spec.d.ts.map +0 -1
  48. package/tsconfig/dist/__tests__/preset-lockfile.spec.js +0 -142
  49. package/tsconfig/dist/__tests__/preset-lockfile.spec.js.map +0 -1
  50. package/tsconfig/dist/__tests__/product-config-profiles.spec.d.ts +0 -6
  51. package/tsconfig/dist/__tests__/product-config-profiles.spec.d.ts.map +0 -1
  52. package/tsconfig/dist/__tests__/product-config-profiles.spec.js +0 -100
  53. package/tsconfig/dist/__tests__/product-config-profiles.spec.js.map +0 -1
  54. package/tsconfig/dist/__tests__/product-config.spec.d.ts +0 -6
  55. package/tsconfig/dist/__tests__/product-config.spec.d.ts.map +0 -1
  56. package/tsconfig/dist/__tests__/product-config.spec.js +0 -298
  57. package/tsconfig/dist/__tests__/product-config.spec.js.map +0 -1
  58. package/tsconfig/dist/__tests__/runtime.spec.d.ts +0 -2
  59. package/tsconfig/dist/__tests__/runtime.spec.d.ts.map +0 -1
  60. package/tsconfig/dist/__tests__/runtime.spec.js +0 -127
  61. package/tsconfig/dist/__tests__/runtime.spec.js.map +0 -1
  62. package/tsconfig/dist/__tests__/upsert-lockfile.spec.d.ts +0 -6
  63. package/tsconfig/dist/__tests__/upsert-lockfile.spec.d.ts.map +0 -1
  64. package/tsconfig/dist/__tests__/upsert-lockfile.spec.js +0 -251
  65. package/tsconfig/dist/__tests__/upsert-lockfile.spec.js.map +0 -1
  66. package/tsconfig/dist/__tests__/validate-config.spec.d.ts +0 -2
  67. package/tsconfig/dist/__tests__/validate-config.spec.d.ts.map +0 -1
  68. package/tsconfig/dist/__tests__/validate-config.spec.js +0 -14
  69. package/tsconfig/dist/__tests__/validate-config.spec.js.map +0 -1
  70. package/tsconfig/dist/api/init-workspace.d.ts +0 -10
  71. package/tsconfig/dist/api/init-workspace.d.ts.map +0 -1
  72. package/tsconfig/dist/api/init-workspace.js +0 -191
  73. package/tsconfig/dist/api/init-workspace.js.map +0 -1
  74. package/tsconfig/dist/api/product-config.d.ts +0 -21
  75. package/tsconfig/dist/api/product-config.d.ts.map +0 -1
  76. package/tsconfig/dist/api/product-config.js +0 -192
  77. package/tsconfig/dist/api/product-config.js.map +0 -1
  78. package/tsconfig/dist/api/read-config.d.ts +0 -22
  79. package/tsconfig/dist/api/read-config.d.ts.map +0 -1
  80. package/tsconfig/dist/api/read-config.js +0 -105
  81. package/tsconfig/dist/api/read-config.js.map +0 -1
  82. package/tsconfig/dist/api/upsert-lockfile.d.ts +0 -10
  83. package/tsconfig/dist/api/upsert-lockfile.d.ts.map +0 -1
  84. package/tsconfig/dist/api/upsert-lockfile.js +0 -63
  85. package/tsconfig/dist/api/upsert-lockfile.js.map +0 -1
  86. package/tsconfig/dist/cache/fs-cache.d.ts +0 -38
  87. package/tsconfig/dist/cache/fs-cache.d.ts.map +0 -1
  88. package/tsconfig/dist/cache/fs-cache.js +0 -142
  89. package/tsconfig/dist/cache/fs-cache.js.map +0 -1
  90. package/tsconfig/dist/errors/kb-error.d.ts +0 -32
  91. package/tsconfig/dist/errors/kb-error.d.ts.map +0 -1
  92. package/tsconfig/dist/errors/kb-error.js +0 -54
  93. package/tsconfig/dist/errors/kb-error.js.map +0 -1
  94. package/tsconfig/dist/fs/__tests__/fs.spec.d.ts +0 -2
  95. package/tsconfig/dist/fs/__tests__/fs.spec.d.ts.map +0 -1
  96. package/tsconfig/dist/fs/__tests__/fs.spec.js +0 -22
  97. package/tsconfig/dist/fs/__tests__/fs.spec.js.map +0 -1
  98. package/tsconfig/dist/fs/fs.d.ts +0 -6
  99. package/tsconfig/dist/fs/fs.d.ts.map +0 -1
  100. package/tsconfig/dist/fs/fs.js +0 -12
  101. package/tsconfig/dist/fs/fs.js.map +0 -1
  102. package/tsconfig/dist/fs/index.d.ts +0 -2
  103. package/tsconfig/dist/fs/index.d.ts.map +0 -1
  104. package/tsconfig/dist/fs/index.js +0 -2
  105. package/tsconfig/dist/fs/index.js.map +0 -1
  106. package/tsconfig/dist/hash/config-hash.d.ts +0 -17
  107. package/tsconfig/dist/hash/config-hash.d.ts.map +0 -1
  108. package/tsconfig/dist/hash/config-hash.js +0 -55
  109. package/tsconfig/dist/hash/config-hash.js.map +0 -1
  110. package/tsconfig/dist/index.d.ts +0 -5
  111. package/tsconfig/dist/index.d.ts.map +0 -1
  112. package/tsconfig/dist/index.js +0 -5
  113. package/tsconfig/dist/index.js.map +0 -1
  114. package/tsconfig/dist/lockfile/lockfile.d.ts +0 -54
  115. package/tsconfig/dist/lockfile/lockfile.d.ts.map +0 -1
  116. package/tsconfig/dist/lockfile/lockfile.js +0 -141
  117. package/tsconfig/dist/lockfile/lockfile.js.map +0 -1
  118. package/tsconfig/dist/logging/__tests__/logger.spec.d.ts +0 -2
  119. package/tsconfig/dist/logging/__tests__/logger.spec.d.ts.map +0 -1
  120. package/tsconfig/dist/logging/__tests__/logger.spec.js +0 -65
  121. package/tsconfig/dist/logging/__tests__/logger.spec.js.map +0 -1
  122. package/tsconfig/dist/logging/__tests__/redaction.spec.d.ts +0 -2
  123. package/tsconfig/dist/logging/__tests__/redaction.spec.d.ts.map +0 -1
  124. package/tsconfig/dist/logging/__tests__/redaction.spec.js +0 -34
  125. package/tsconfig/dist/logging/__tests__/redaction.spec.js.map +0 -1
  126. package/tsconfig/dist/logging/__tests__/sinks-and-env.spec.d.ts +0 -2
  127. package/tsconfig/dist/logging/__tests__/sinks-and-env.spec.d.ts.map +0 -1
  128. package/tsconfig/dist/logging/__tests__/sinks-and-env.spec.js +0 -90
  129. package/tsconfig/dist/logging/__tests__/sinks-and-env.spec.js.map +0 -1
  130. package/tsconfig/dist/logging/index.d.ts +0 -6
  131. package/tsconfig/dist/logging/index.d.ts.map +0 -1
  132. package/tsconfig/dist/logging/index.js +0 -6
  133. package/tsconfig/dist/logging/index.js.map +0 -1
  134. package/tsconfig/dist/logging/logger.d.ts +0 -9
  135. package/tsconfig/dist/logging/logger.d.ts.map +0 -1
  136. package/tsconfig/dist/logging/logger.js +0 -101
  137. package/tsconfig/dist/logging/logger.js.map +0 -1
  138. package/tsconfig/dist/logging/redaction.d.ts +0 -7
  139. package/tsconfig/dist/logging/redaction.d.ts.map +0 -1
  140. package/tsconfig/dist/logging/redaction.js +0 -23
  141. package/tsconfig/dist/logging/redaction.js.map +0 -1
  142. package/tsconfig/dist/logging/sinks/json.d.ts +0 -4
  143. package/tsconfig/dist/logging/sinks/json.d.ts.map +0 -1
  144. package/tsconfig/dist/logging/sinks/json.js +0 -23
  145. package/tsconfig/dist/logging/sinks/json.js.map +0 -1
  146. package/tsconfig/dist/logging/sinks/stdout.d.ts +0 -3
  147. package/tsconfig/dist/logging/sinks/stdout.d.ts.map +0 -1
  148. package/tsconfig/dist/logging/sinks/stdout.js +0 -24
  149. package/tsconfig/dist/logging/sinks/stdout.js.map +0 -1
  150. package/tsconfig/dist/logging/types/index.d.ts +0 -2
  151. package/tsconfig/dist/logging/types/index.d.ts.map +0 -1
  152. package/tsconfig/dist/logging/types/index.js +0 -2
  153. package/tsconfig/dist/logging/types/index.js.map +0 -1
  154. package/tsconfig/dist/logging/types/types.d.ts +0 -37
  155. package/tsconfig/dist/logging/types/types.d.ts.map +0 -1
  156. package/tsconfig/dist/logging/types/types.js +0 -2
  157. package/tsconfig/dist/logging/types/types.js.map +0 -1
  158. package/tsconfig/dist/merge/layered-merge.d.ts +0 -16
  159. package/tsconfig/dist/merge/layered-merge.d.ts.map +0 -1
  160. package/tsconfig/dist/merge/layered-merge.js +0 -97
  161. package/tsconfig/dist/merge/layered-merge.js.map +0 -1
  162. package/tsconfig/dist/preset/resolve-preset.d.ts +0 -29
  163. package/tsconfig/dist/preset/resolve-preset.d.ts.map +0 -1
  164. package/tsconfig/dist/preset/resolve-preset.js +0 -104
  165. package/tsconfig/dist/preset/resolve-preset.js.map +0 -1
  166. package/tsconfig/dist/repo/__tests__/repo.spec.d.ts +0 -2
  167. package/tsconfig/dist/repo/__tests__/repo.spec.d.ts.map +0 -1
  168. package/tsconfig/dist/repo/__tests__/repo.spec.js +0 -25
  169. package/tsconfig/dist/repo/__tests__/repo.spec.js.map +0 -1
  170. package/tsconfig/dist/repo/index.d.ts +0 -2
  171. package/tsconfig/dist/repo/index.d.ts.map +0 -1
  172. package/tsconfig/dist/repo/index.js +0 -2
  173. package/tsconfig/dist/repo/index.js.map +0 -1
  174. package/tsconfig/dist/repo/repo.d.ts +0 -6
  175. package/tsconfig/dist/repo/repo.d.ts.map +0 -1
  176. package/tsconfig/dist/repo/repo.js +0 -25
  177. package/tsconfig/dist/repo/repo.js.map +0 -1
  178. package/tsconfig/dist/runtime/index.d.ts +0 -2
  179. package/tsconfig/dist/runtime/index.d.ts.map +0 -1
  180. package/tsconfig/dist/runtime/index.js +0 -2
  181. package/tsconfig/dist/runtime/index.js.map +0 -1
  182. package/tsconfig/dist/runtime/runtime.d.ts +0 -46
  183. package/tsconfig/dist/runtime/runtime.d.ts.map +0 -1
  184. package/tsconfig/dist/runtime/runtime.js +0 -126
  185. package/tsconfig/dist/runtime/runtime.js.map +0 -1
  186. package/tsconfig/dist/tsconfig.tools.tsbuildinfo +0 -1
  187. package/tsconfig/dist/tsconfig.tsbuildinfo +0 -1
  188. package/tsconfig/dist/types/index.d.ts +0 -2
  189. package/tsconfig/dist/types/index.d.ts.map +0 -1
  190. package/tsconfig/dist/types/index.js +0 -2
  191. package/tsconfig/dist/types/index.js.map +0 -1
  192. package/tsconfig/dist/types/init.d.ts +0 -34
  193. package/tsconfig/dist/types/init.d.ts.map +0 -1
  194. package/tsconfig/dist/types/init.js +0 -6
  195. package/tsconfig/dist/types/init.js.map +0 -1
  196. package/tsconfig/dist/types/preset.d.ts +0 -27
  197. package/tsconfig/dist/types/preset.d.ts.map +0 -1
  198. package/tsconfig/dist/types/preset.js +0 -6
  199. package/tsconfig/dist/types/preset.js.map +0 -1
  200. package/tsconfig/dist/types/types.d.ts +0 -6
  201. package/tsconfig/dist/types/types.d.ts.map +0 -1
  202. package/tsconfig/dist/types/types.js +0 -2
  203. package/tsconfig/dist/types/types.js.map +0 -1
  204. package/tsconfig/dist/utils/__tests__/env.spec.d.ts +0 -2
  205. package/tsconfig/dist/utils/__tests__/env.spec.d.ts.map +0 -1
  206. package/tsconfig/dist/utils/__tests__/env.spec.js +0 -33
  207. package/tsconfig/dist/utils/__tests__/env.spec.js.map +0 -1
  208. package/tsconfig/dist/utils/env.d.ts +0 -7
  209. package/tsconfig/dist/utils/env.d.ts.map +0 -1
  210. package/tsconfig/dist/utils/env.js +0 -25
  211. package/tsconfig/dist/utils/env.js.map +0 -1
  212. package/tsconfig/dist/utils/fs-atomic.d.ts +0 -15
  213. package/tsconfig/dist/utils/fs-atomic.d.ts.map +0 -1
  214. package/tsconfig/dist/utils/fs-atomic.js +0 -45
  215. package/tsconfig/dist/utils/fs-atomic.js.map +0 -1
  216. package/tsconfig/dist/utils/index.d.ts +0 -3
  217. package/tsconfig/dist/utils/index.d.ts.map +0 -1
  218. package/tsconfig/dist/utils/index.js +0 -3
  219. package/tsconfig/dist/utils/index.js.map +0 -1
  220. package/tsconfig/dist/utils/paths.d.ts +0 -21
  221. package/tsconfig/dist/utils/paths.d.ts.map +0 -1
  222. package/tsconfig/dist/utils/paths.js +0 -32
  223. package/tsconfig/dist/utils/paths.js.map +0 -1
  224. package/tsconfig/dist/utils/product-normalize.d.ts +0 -27
  225. package/tsconfig/dist/utils/product-normalize.d.ts.map +0 -1
  226. package/tsconfig/dist/utils/product-normalize.js +0 -45
  227. package/tsconfig/dist/utils/product-normalize.js.map +0 -1
  228. package/tsconfig/dist/validation/validate-config.d.ts +0 -7
  229. package/tsconfig/dist/validation/validate-config.d.ts.map +0 -1
  230. package/tsconfig/dist/validation/validate-config.js +0 -22
  231. 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,7 +0,0 @@
1
- import type { Redactor } from "./types";
2
- /** Simple key-based redactor; masks values by key in meta recursively. */
3
- export declare function createRedactor(opts?: {
4
- keys?: string[];
5
- mask?: string;
6
- }): Redactor;
7
- //# sourceMappingURL=redaction.d.ts.map
@@ -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,4 +0,0 @@
1
- import type { LogSink } from "../types";
2
- /** Deterministic JSON sink for CI/log collectors. */
3
- export declare const jsonSink: LogSink;
4
- //# sourceMappingURL=json.d.ts.map
@@ -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,3 +0,0 @@
1
- import type { LogSink } from "../types";
2
- export declare const stdoutSink: LogSink;
3
- //# sourceMappingURL=stdout.d.ts.map
@@ -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,2 +0,0 @@
1
- export * from './types';
2
- //# sourceMappingURL=index.d.ts.map
@@ -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,2 +0,0 @@
1
- export * from './types';
2
- //# sourceMappingURL=index.js.map
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -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":"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"}
@@ -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"}