@kb-labs/core-config 1.2.0 → 1.3.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 (173) hide show
  1. package/dist/index.d.ts +1016 -25
  2. package/dist/index.js +1533 -29
  3. package/dist/index.js.map +1 -1
  4. package/package.json +2 -2
  5. package/dist/__tests__/cache.spec.d.ts +0 -6
  6. package/dist/__tests__/cache.spec.d.ts.map +0 -1
  7. package/dist/__tests__/cache.spec.js +0 -87
  8. package/dist/__tests__/cache.spec.js.map +0 -1
  9. package/dist/__tests__/fs-atomic.spec.d.ts +0 -6
  10. package/dist/__tests__/fs-atomic.spec.d.ts.map +0 -1
  11. package/dist/__tests__/fs-atomic.spec.js +0 -153
  12. package/dist/__tests__/fs-atomic.spec.js.map +0 -1
  13. package/dist/__tests__/get-product-config-edge-cases.spec.d.ts +0 -6
  14. package/dist/__tests__/get-product-config-edge-cases.spec.d.ts.map +0 -1
  15. package/dist/__tests__/get-product-config-edge-cases.spec.js +0 -334
  16. package/dist/__tests__/get-product-config-edge-cases.spec.js.map +0 -1
  17. package/dist/__tests__/init-workspace.spec.d.ts +0 -6
  18. package/dist/__tests__/init-workspace.spec.d.ts.map +0 -1
  19. package/dist/__tests__/init-workspace.spec.js +0 -101
  20. package/dist/__tests__/init-workspace.spec.js.map +0 -1
  21. package/dist/__tests__/kb-error.spec.d.ts +0 -6
  22. package/dist/__tests__/kb-error.spec.d.ts.map +0 -1
  23. package/dist/__tests__/kb-error.spec.js +0 -193
  24. package/dist/__tests__/kb-error.spec.js.map +0 -1
  25. package/dist/__tests__/preset-lockfile.spec.d.ts +0 -6
  26. package/dist/__tests__/preset-lockfile.spec.d.ts.map +0 -1
  27. package/dist/__tests__/preset-lockfile.spec.js +0 -142
  28. package/dist/__tests__/preset-lockfile.spec.js.map +0 -1
  29. package/dist/__tests__/product-config-profiles.spec.d.ts +0 -6
  30. package/dist/__tests__/product-config-profiles.spec.d.ts.map +0 -1
  31. package/dist/__tests__/product-config-profiles.spec.js +0 -82
  32. package/dist/__tests__/product-config-profiles.spec.js.map +0 -1
  33. package/dist/__tests__/product-config.spec.d.ts +0 -6
  34. package/dist/__tests__/product-config.spec.d.ts.map +0 -1
  35. package/dist/__tests__/product-config.spec.js +0 -304
  36. package/dist/__tests__/product-config.spec.js.map +0 -1
  37. package/dist/__tests__/profiles-demo.d.ts +0 -11
  38. package/dist/__tests__/profiles-demo.d.ts.map +0 -1
  39. package/dist/__tests__/profiles-demo.js +0 -173
  40. package/dist/__tests__/profiles-demo.js.map +0 -1
  41. package/dist/__tests__/profiles-resolver.spec.d.ts +0 -2
  42. package/dist/__tests__/profiles-resolver.spec.d.ts.map +0 -1
  43. package/dist/__tests__/profiles-resolver.spec.js +0 -114
  44. package/dist/__tests__/profiles-resolver.spec.js.map +0 -1
  45. package/dist/__tests__/profiles-section.spec.d.ts +0 -2
  46. package/dist/__tests__/profiles-section.spec.d.ts.map +0 -1
  47. package/dist/__tests__/profiles-section.spec.js +0 -50
  48. package/dist/__tests__/profiles-section.spec.js.map +0 -1
  49. package/dist/__tests__/runtime.spec.d.ts +0 -2
  50. package/dist/__tests__/runtime.spec.d.ts.map +0 -1
  51. package/dist/__tests__/runtime.spec.js +0 -170
  52. package/dist/__tests__/runtime.spec.js.map +0 -1
  53. package/dist/__tests__/upsert-lockfile.spec.d.ts +0 -1
  54. package/dist/__tests__/upsert-lockfile.spec.d.ts.map +0 -1
  55. package/dist/__tests__/upsert-lockfile.spec.js +0 -2
  56. package/dist/__tests__/upsert-lockfile.spec.js.map +0 -1
  57. package/dist/__tests__/validate-config.spec.d.ts +0 -2
  58. package/dist/__tests__/validate-config.spec.d.ts.map +0 -1
  59. package/dist/__tests__/validate-config.spec.js +0 -14
  60. package/dist/__tests__/validate-config.spec.js.map +0 -1
  61. package/dist/api/init-workspace.d.ts +0 -10
  62. package/dist/api/init-workspace.d.ts.map +0 -1
  63. package/dist/api/init-workspace.js +0 -186
  64. package/dist/api/init-workspace.js.map +0 -1
  65. package/dist/api/product-config.d.ts +0 -20
  66. package/dist/api/product-config.d.ts.map +0 -1
  67. package/dist/api/product-config.js +0 -236
  68. package/dist/api/product-config.js.map +0 -1
  69. package/dist/api/read-config.d.ts +0 -22
  70. package/dist/api/read-config.d.ts.map +0 -1
  71. package/dist/api/read-config.js +0 -112
  72. package/dist/api/read-config.js.map +0 -1
  73. package/dist/api/read-kb-config.d.ts +0 -12
  74. package/dist/api/read-kb-config.d.ts.map +0 -1
  75. package/dist/api/read-kb-config.js +0 -47
  76. package/dist/api/read-kb-config.js.map +0 -1
  77. package/dist/api/upsert-lockfile.d.ts +0 -10
  78. package/dist/api/upsert-lockfile.d.ts.map +0 -1
  79. package/dist/api/upsert-lockfile.js +0 -63
  80. package/dist/api/upsert-lockfile.js.map +0 -1
  81. package/dist/cache/fs-cache.d.ts +0 -38
  82. package/dist/cache/fs-cache.d.ts.map +0 -1
  83. package/dist/cache/fs-cache.js +0 -142
  84. package/dist/cache/fs-cache.js.map +0 -1
  85. package/dist/errors/kb-error.d.ts +0 -35
  86. package/dist/errors/kb-error.d.ts.map +0 -1
  87. package/dist/errors/kb-error.js +0 -57
  88. package/dist/errors/kb-error.js.map +0 -1
  89. package/dist/hash/config-hash.d.ts +0 -17
  90. package/dist/hash/config-hash.d.ts.map +0 -1
  91. package/dist/hash/config-hash.js +0 -55
  92. package/dist/hash/config-hash.js.map +0 -1
  93. package/dist/index.d.ts.map +0 -1
  94. package/dist/lockfile/lockfile.d.ts +0 -53
  95. package/dist/lockfile/lockfile.d.ts.map +0 -1
  96. package/dist/lockfile/lockfile.js +0 -142
  97. package/dist/lockfile/lockfile.js.map +0 -1
  98. package/dist/merge/layered-merge.d.ts +0 -16
  99. package/dist/merge/layered-merge.d.ts.map +0 -1
  100. package/dist/merge/layered-merge.js +0 -87
  101. package/dist/merge/layered-merge.js.map +0 -1
  102. package/dist/preset/resolve-preset.d.ts +0 -28
  103. package/dist/preset/resolve-preset.d.ts.map +0 -1
  104. package/dist/preset/resolve-preset.js +0 -104
  105. package/dist/preset/resolve-preset.js.map +0 -1
  106. package/dist/profiles/loader.d.ts +0 -12
  107. package/dist/profiles/loader.d.ts.map +0 -1
  108. package/dist/profiles/loader.js +0 -34
  109. package/dist/profiles/loader.js.map +0 -1
  110. package/dist/profiles/resolver.d.ts +0 -11
  111. package/dist/profiles/resolver.d.ts.map +0 -1
  112. package/dist/profiles/resolver.js +0 -252
  113. package/dist/profiles/resolver.js.map +0 -1
  114. package/dist/profiles/scope-selector.d.ts +0 -19
  115. package/dist/profiles/scope-selector.d.ts.map +0 -1
  116. package/dist/profiles/scope-selector.js +0 -64
  117. package/dist/profiles/scope-selector.js.map +0 -1
  118. package/dist/profiles/types.d.ts +0 -462
  119. package/dist/profiles/types.d.ts.map +0 -1
  120. package/dist/profiles/types.js +0 -68
  121. package/dist/profiles/types.js.map +0 -1
  122. package/dist/runtime/index.d.ts +0 -2
  123. package/dist/runtime/index.d.ts.map +0 -1
  124. package/dist/runtime/index.js +0 -2
  125. package/dist/runtime/index.js.map +0 -1
  126. package/dist/runtime/runtime.d.ts +0 -46
  127. package/dist/runtime/runtime.d.ts.map +0 -1
  128. package/dist/runtime/runtime.js +0 -126
  129. package/dist/runtime/runtime.js.map +0 -1
  130. package/dist/types/index.d.ts +0 -2
  131. package/dist/types/index.d.ts.map +0 -1
  132. package/dist/types/index.js +0 -2
  133. package/dist/types/index.js.map +0 -1
  134. package/dist/types/init.d.ts +0 -33
  135. package/dist/types/init.d.ts.map +0 -1
  136. package/dist/types/init.js +0 -6
  137. package/dist/types/init.js.map +0 -1
  138. package/dist/types/preset.d.ts +0 -27
  139. package/dist/types/preset.d.ts.map +0 -1
  140. package/dist/types/preset.js +0 -6
  141. package/dist/types/preset.js.map +0 -1
  142. package/dist/types/types.d.ts +0 -70
  143. package/dist/types/types.d.ts.map +0 -1
  144. package/dist/types/types.js +0 -2
  145. package/dist/types/types.js.map +0 -1
  146. package/dist/utils/__tests__/env.spec.d.ts +0 -2
  147. package/dist/utils/__tests__/env.spec.d.ts.map +0 -1
  148. package/dist/utils/__tests__/env.spec.js +0 -33
  149. package/dist/utils/__tests__/env.spec.js.map +0 -1
  150. package/dist/utils/env.d.ts +0 -7
  151. package/dist/utils/env.d.ts.map +0 -1
  152. package/dist/utils/env.js +0 -25
  153. package/dist/utils/env.js.map +0 -1
  154. package/dist/utils/fs-atomic.d.ts +0 -15
  155. package/dist/utils/fs-atomic.d.ts.map +0 -1
  156. package/dist/utils/fs-atomic.js +0 -46
  157. package/dist/utils/fs-atomic.js.map +0 -1
  158. package/dist/utils/index.d.ts +0 -3
  159. package/dist/utils/index.d.ts.map +0 -1
  160. package/dist/utils/index.js +0 -3
  161. package/dist/utils/index.js.map +0 -1
  162. package/dist/utils/paths.d.ts +0 -21
  163. package/dist/utils/paths.d.ts.map +0 -1
  164. package/dist/utils/paths.js +0 -32
  165. package/dist/utils/paths.js.map +0 -1
  166. package/dist/utils/product-normalize.d.ts +0 -25
  167. package/dist/utils/product-normalize.d.ts.map +0 -1
  168. package/dist/utils/product-normalize.js +0 -48
  169. package/dist/utils/product-normalize.js.map +0 -1
  170. package/dist/validation/validate-config.d.ts +0 -10
  171. package/dist/validation/validate-config.d.ts.map +0 -1
  172. package/dist/validation/validate-config.js +0 -21
  173. package/dist/validation/validate-config.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"layered-merge.js","sourceRoot":"","sources":["../../src/merge/layered-merge.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- /**
2
- * @module @kb-labs/core/config/preset/resolve-preset
3
- * Org preset resolution with offline-first npm package loading
4
- */
5
- export interface PresetInfo {
6
- name: string;
7
- version: string;
8
- path: string;
9
- config: any;
10
- }
11
- /**
12
- * Resolve org preset package (offline-first)
13
- */
14
- export declare function resolvePreset(presetRef: string, cwd: string): Promise<PresetInfo>;
15
- /**
16
- * Get preset config for a specific product
17
- */
18
- export declare function getPresetConfigForProduct(preset: PresetInfo, product: string): any;
19
- /**
20
- * Get preset metadata
21
- */
22
- export declare function getPresetMetadata(preset: PresetInfo): {
23
- name: string;
24
- version: string;
25
- path: string;
26
- products: string[];
27
- };
28
- //# sourceMappingURL=resolve-preset.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve-preset.d.ts","sourceRoot":"","sources":["../../src/preset/resolve-preset.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,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,MAAM,GACd,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"}
@@ -1,104 +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 { promises as fsp } from 'node:fs';
6
- import path from 'node:path';
7
- import { KbError, ERROR_HINTS } from '../errors/kb-error';
8
- import { toFsProduct } from '../utils/product-normalize';
9
- /**
10
- * Resolve org preset package (offline-first)
11
- */
12
- export async function resolvePreset(presetRef, cwd) {
13
- // Parse preset reference (e.g., "@kb-labs/org-preset@1.3.2")
14
- const [name, version] = parsePresetRef(presetRef);
15
- // Try local node_modules first (offline-first)
16
- const localPath = path.join(cwd, 'node_modules', name);
17
- try {
18
- const presetInfo = await loadPresetFromPath(localPath, name, version);
19
- if (presetInfo) {
20
- return presetInfo;
21
- }
22
- }
23
- catch {
24
- // Local preset not found, continue to network resolution
25
- }
26
- // Try network resolution (this would be implemented with npm/pnpm APIs)
27
- // For now, we'll throw an error if local resolution fails
28
- throw new KbError('ERR_PRESET_NOT_RESOLVED', `Preset not found: ${presetRef}`, ERROR_HINTS.ERR_PRESET_NOT_RESOLVED, { presetRef, cwd });
29
- }
30
- /**
31
- * Parse preset reference into name and version
32
- */
33
- function parsePresetRef(presetRef) {
34
- const atIndex = presetRef.lastIndexOf('@');
35
- if (atIndex === -1) {
36
- throw new KbError('ERR_PRESET_REF_INVALID', `Invalid preset reference: ${presetRef}`, 'Preset references must include version (e.g., @kb-labs/org-preset@1.3.2)', { presetRef });
37
- }
38
- const name = presetRef.substring(0, atIndex);
39
- const version = presetRef.substring(atIndex + 1);
40
- if (!name || !version) {
41
- throw new KbError('ERR_PRESET_REF_INVALID', `Invalid preset reference: ${presetRef}`, 'Preset references must include both name and version', { presetRef });
42
- }
43
- return [name, version];
44
- }
45
- /**
46
- * Load preset from local path
47
- */
48
- async function loadPresetFromPath(presetPath, name, version) {
49
- try {
50
- // Check if preset directory exists
51
- await fsp.access(presetPath);
52
- // Load package.json to verify version
53
- const packageJsonPath = path.join(presetPath, 'package.json');
54
- const packageJson = JSON.parse(await fsp.readFile(packageJsonPath, 'utf-8'));
55
- // Verify version matches (supports semver ranges)
56
- if (!versionMatches(packageJson.version, version)) {
57
- return null;
58
- }
59
- // Load preset config
60
- const configPath = path.join(presetPath, 'config.defaults.json');
61
- const config = JSON.parse(await fsp.readFile(configPath, 'utf-8'));
62
- return {
63
- name,
64
- version: packageJson.version,
65
- path: presetPath,
66
- config,
67
- };
68
- }
69
- catch {
70
- return null;
71
- }
72
- }
73
- /**
74
- * Check if version matches (simple semver range support)
75
- */
76
- function versionMatches(actualVersion, requiredVersion) {
77
- // Simple exact match for now
78
- // TODO: Implement proper semver range matching
79
- if (requiredVersion.startsWith('^')) {
80
- const major = requiredVersion.substring(1).split('.')[0];
81
- const actualMajor = actualVersion.split('.')[0];
82
- return major === actualMajor;
83
- }
84
- return actualVersion === requiredVersion;
85
- }
86
- /**
87
- * Get preset config for a specific product
88
- */
89
- export function getPresetConfigForProduct(preset, product) {
90
- const fsProduct = toFsProduct(product);
91
- return preset.config.products?.[fsProduct] || {};
92
- }
93
- /**
94
- * Get preset metadata
95
- */
96
- export function getPresetMetadata(preset) {
97
- return {
98
- name: preset.name,
99
- version: preset.version,
100
- path: preset.path,
101
- products: Object.keys(preset.config.products || {}),
102
- };
103
- }
104
- //# sourceMappingURL=resolve-preset.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve-preset.js","sourceRoot":"","sources":["../../src/preset/resolve-preset.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /**
2
- * @module @kb-labs/core-config/profiles/loader
3
- * Load + validate profiles[] section from kb.config.*
4
- */
5
- import { type ProfileV2 } from './types';
6
- export interface ProfilesSectionResult {
7
- profiles: ProfileV2[];
8
- sourcePath?: string;
9
- format?: 'json' | 'yaml';
10
- }
11
- export declare function readProfilesSection(cwd: string): Promise<ProfilesSectionResult>;
12
- //# sourceMappingURL=loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/profiles/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAEL,KAAK,SAAS,EACf,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAkCrF"}
@@ -1,34 +0,0 @@
1
- /**
2
- * @module @kb-labs/core-config/profiles/loader
3
- * Load + validate profiles[] section from kb.config.*
4
- */
5
- import { KbError, ERROR_HINTS } from '../errors/kb-error';
6
- import { readKbConfig } from '../api/read-kb-config';
7
- import { ProfilesV2Schema, } from './types';
8
- export async function readProfilesSection(cwd) {
9
- const kbConfig = await readKbConfig(cwd);
10
- if (!kbConfig?.data) {
11
- return { profiles: [] };
12
- }
13
- const rawProfiles = kbConfig.data?.profiles;
14
- if (rawProfiles === undefined) {
15
- return {
16
- profiles: [],
17
- sourcePath: kbConfig.path,
18
- format: kbConfig.format,
19
- };
20
- }
21
- const parsed = ProfilesV2Schema.safeParse(rawProfiles);
22
- if (!parsed.success) {
23
- throw new KbError('ERR_PROFILE_INVALID_FORMAT', 'Invalid profiles[] section in kb.config.', ERROR_HINTS.ERR_PROFILE_INVALID_FORMAT, {
24
- issues: parsed.error.issues,
25
- sourcePath: kbConfig.path,
26
- });
27
- }
28
- return {
29
- profiles: parsed.data,
30
- sourcePath: kbConfig.path,
31
- format: kbConfig.format,
32
- };
33
- }
34
- //# sourceMappingURL=loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/profiles/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACL,gBAAgB,GAEjB,MAAM,SAAS,CAAC;AAQjB,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAW;IACnD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;QACpB,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM,WAAW,GAAI,QAAQ,CAAC,IAAY,EAAE,QAAQ,CAAC;IAErD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO;YACL,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,QAAQ,CAAC,IAAI;YACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,OAAO,CACf,4BAA4B,EAC5B,0CAA0C,EAC1C,WAAW,CAAC,0BAA0B,EACtC;YACE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;YAC3B,UAAU,EAAE,QAAQ,CAAC,IAAI;SAC1B,CACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,IAAI;QACrB,UAAU,EAAE,QAAQ,CAAC,IAAI;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;KACxB,CAAC;AACJ,CAAC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * @module @kb-labs/core-config/profiles/resolver
3
- * Resolve ProfileV2 definitions with extends/merge semantics.
4
- */
5
- import type { BundleProfile } from './types';
6
- export interface ResolveProfileOptions {
7
- cwd: string;
8
- profileId: string;
9
- }
10
- export declare function resolveProfile(opts: ResolveProfileOptions): Promise<BundleProfile>;
11
- //# sourceMappingURL=resolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/profiles/resolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EACV,aAAa,EAIL,MAAM,SAAS,CAAC;AAuB1B,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,aAAa,CAAC,CA2CxB"}
@@ -1,252 +0,0 @@
1
- /**
2
- * @module @kb-labs/core-config/profiles/resolver
3
- * Resolve ProfileV2 definitions with extends/merge semantics.
4
- */
5
- import path from 'node:path';
6
- import { createRequire } from 'node:module';
7
- import { promises as fsp } from 'node:fs';
8
- import { ProfilesV2Schema } from './types';
9
- import { readProfilesSection } from './loader';
10
- import { readConfigFile } from '../api/read-config';
11
- import { KbError, ERROR_HINTS } from '../errors/kb-error';
12
- const requireFromHere = createRequire(import.meta.url);
13
- function clone(value) {
14
- if (typeof structuredClone === 'function') {
15
- return structuredClone(value);
16
- }
17
- return JSON.parse(JSON.stringify(value));
18
- }
19
- export async function resolveProfile(opts) {
20
- const localProfilesResult = await readProfilesSection(opts.cwd);
21
- const localProfiles = localProfilesResult.profiles;
22
- const localPath = localProfilesResult.sourcePath;
23
- const profileMap = new Map(localProfiles.map((p) => [p.id, p]));
24
- const cache = new Map();
25
- if (localPath) {
26
- for (const profile of localProfiles) {
27
- cache.set(profile.id, {
28
- profile: clone(profile),
29
- source: 'workspace',
30
- sourcePath: localPath,
31
- });
32
- }
33
- }
34
- const chain = await resolveProfileChain(opts.profileId, cache, profileMap, opts.cwd, new Set());
35
- if (chain.length === 0) {
36
- throw new KbError('ERR_PROFILE_NOT_DEFINED', `Profile "${opts.profileId}" not found`, ERROR_HINTS.ERR_PROFILE_NOT_DEFINED, {
37
- profileId: opts.profileId,
38
- available: Array.from(profileMap.keys()),
39
- });
40
- }
41
- const bundleProfile = mergeProfileChain(chain);
42
- const productsByScope = buildScopeProductMap(bundleProfile, chain);
43
- bundleProfile.productsByScope = productsByScope;
44
- return bundleProfile;
45
- }
46
- async function resolveProfileChain(reference, cache, localProfiles, cwd, seen) {
47
- const key = reference;
48
- if (seen.has(key)) {
49
- throw new KbError('ERR_PROFILE_EXTENDS_FAILED', `Circular profile extends detected at "${reference}"`, ERROR_HINTS.ERR_PROFILE_EXTENDS_FAILED, { reference, chain: Array.from(seen) });
50
- }
51
- seen.add(key);
52
- let layer = cache.get(reference);
53
- if (!layer) {
54
- if (localProfiles.has(reference)) {
55
- layer = {
56
- profile: clone(localProfiles.get(reference)),
57
- source: 'workspace',
58
- };
59
- }
60
- else if (isPackageReference(reference)) {
61
- layer = await loadPackageProfile(reference, cwd);
62
- }
63
- else {
64
- throw new KbError('ERR_PROFILE_NOT_DEFINED', `Profile "${reference}" not found`, ERROR_HINTS.ERR_PROFILE_NOT_DEFINED, { reference, available: Array.from(localProfiles.keys()) });
65
- }
66
- cache.set(reference, layer);
67
- }
68
- const result = [];
69
- if (layer.profile.extends) {
70
- const parentChain = await resolveProfileChain(layer.profile.extends, cache, localProfiles, cwd, seen);
71
- result.push(...parentChain);
72
- }
73
- result.push(layer);
74
- seen.delete(key);
75
- return result;
76
- }
77
- function mergeProfileChain(chain) {
78
- const mergedProducts = {};
79
- let mergedMeta;
80
- let mergedLabel;
81
- let mergedDescription;
82
- let mergedVersion;
83
- let scopes = [];
84
- let scopesDefined = false;
85
- for (const layer of chain) {
86
- const profile = layer.profile;
87
- mergedLabel = profile.label ?? mergedLabel;
88
- mergedDescription = profile.description ?? mergedDescription;
89
- mergedVersion = profile.meta?.version ?? mergedVersion;
90
- mergedMeta = mergeMeta(mergedMeta, profile.meta);
91
- if (profile.products) {
92
- for (const [productKey, overrides] of Object.entries(profile.products)) {
93
- if (!matchedProductOverrides(overrides)) {
94
- continue;
95
- }
96
- const target = (mergedProducts[productKey] ??= {});
97
- Object.assign(target, clone(overrides));
98
- }
99
- }
100
- if (profile.scopes && profile.scopes.length > 0) {
101
- scopes = clone(profile.scopes);
102
- scopesDefined = true;
103
- }
104
- else if (!scopesDefined && profile.scopes) {
105
- scopes = clone(profile.scopes);
106
- }
107
- }
108
- const finalLayer = chain[chain.length - 1];
109
- if (!finalLayer) {
110
- throw new KbError('ERR_PROFILE_NOT_DEFINED', 'Profile chain is empty', ERROR_HINTS.ERR_PROFILE_NOT_DEFINED);
111
- }
112
- const finalId = finalLayer.profile.id;
113
- const finalSource = finalLayer.source;
114
- const bundleProfile = {
115
- id: finalId,
116
- key: finalId,
117
- label: mergedLabel,
118
- name: mergedLabel ?? finalId,
119
- version: mergedVersion,
120
- source: finalSource,
121
- scopes: scopes.map((scope) => ({
122
- id: scope.id,
123
- label: scope.label,
124
- description: scope.description,
125
- include: scope.include,
126
- exclude: scope.exclude,
127
- isDefault: !!scope.default,
128
- products: scope.products ? clone(scope.products) : undefined,
129
- })),
130
- products: Object.keys(mergedProducts).length ? mergedProducts : undefined,
131
- trace: buildTrace(chain),
132
- meta: mergedMeta,
133
- productsByScope: {},
134
- };
135
- return bundleProfile;
136
- }
137
- function buildScopeProductMap(bundleProfile, chain) {
138
- const map = {};
139
- for (const scope of bundleProfile.scopes) {
140
- map[scope.id] = {};
141
- for (const layer of chain) {
142
- const matchingScope = layer.profile.scopes?.find((s) => s.id === scope.id);
143
- if (!matchingScope?.products) {
144
- continue;
145
- }
146
- for (const [productKey, overrides] of Object.entries(matchingScope.products)) {
147
- if (!matchedProductOverrides(overrides)) {
148
- continue;
149
- }
150
- const scopeMap = map[scope.id];
151
- if (!scopeMap) {
152
- continue;
153
- }
154
- const target = scopeMap[productKey];
155
- if (!target) {
156
- scopeMap[productKey] = clone(overrides);
157
- }
158
- else {
159
- Object.assign(target, clone(overrides));
160
- }
161
- }
162
- }
163
- }
164
- return map;
165
- }
166
- function matchedProductOverrides(overrides) {
167
- return overrides !== null && typeof overrides === 'object';
168
- }
169
- function buildTrace(chain) {
170
- if (chain.length <= 1) {
171
- return undefined;
172
- }
173
- const extendsList = chain
174
- .slice(0, -1)
175
- .map((layer) => {
176
- // For npm packages, source is already in format "npm:package#profile"
177
- if (typeof layer.source === 'string' && layer.source.startsWith('npm:')) {
178
- return layer.source;
179
- }
180
- // For workspace profiles, use source:profileId format
181
- return `${layer.source}:${layer.profile.id}`;
182
- });
183
- return {
184
- extends: extendsList,
185
- };
186
- }
187
- function mergeMeta(existing, next) {
188
- if (!next) {
189
- return existing ? structuredClone(existing) : undefined;
190
- }
191
- if (!existing) {
192
- return structuredClone(next);
193
- }
194
- return { ...existing, ...clone(next) };
195
- }
196
- function isPackageReference(ref) {
197
- return ref.includes('/') || ref.startsWith('@');
198
- }
199
- function parsePackageReference(ref) {
200
- const [pkg, profileId] = ref.split('#');
201
- return {
202
- packageName: pkg || '',
203
- profileId: profileId || 'default',
204
- };
205
- }
206
- async function loadPackageProfile(ref, cwd) {
207
- const { packageName, profileId } = parsePackageReference(ref);
208
- let pkgJsonPath;
209
- try {
210
- pkgJsonPath = requireFromHere.resolve(`${packageName}/package.json`, {
211
- paths: [cwd],
212
- });
213
- }
214
- catch {
215
- throw new KbError('ERR_PROFILE_EXTENDS_FAILED', `Cannot resolve package "${packageName}" for profile extends`, ERROR_HINTS.ERR_PROFILE_EXTENDS_FAILED, { reference: ref });
216
- }
217
- const pkgDir = path.dirname(pkgJsonPath);
218
- const candidateConfigs = [
219
- 'kb.config.json',
220
- 'kb.config.yaml',
221
- 'kb.config.yml',
222
- path.join('config', 'kb.config.json'),
223
- path.join('config', 'kb.config.yaml'),
224
- path.join('config', 'kb.config.yml'),
225
- ];
226
- for (const candidate of candidateConfigs) {
227
- const fullPath = path.join(pkgDir, candidate);
228
- try {
229
- await fsp.access(fullPath);
230
- }
231
- catch {
232
- continue;
233
- }
234
- const config = await readConfigFile(fullPath);
235
- const profiles = config.data?.profiles;
236
- const parsed = ProfilesV2Schema.safeParse(profiles);
237
- if (!parsed.success) {
238
- continue;
239
- }
240
- const target = parsed.data.find((p) => p.id === profileId);
241
- if (!target) {
242
- continue;
243
- }
244
- return {
245
- profile: clone(target),
246
- source: `npm:${packageName}#${profileId}`,
247
- sourcePath: fullPath,
248
- };
249
- }
250
- throw new KbError('ERR_PROFILE_EXTENDS_FAILED', `Profile "${profileId}" not found in package "${packageName}"`, ERROR_HINTS.ERR_PROFILE_EXTENDS_FAILED, { reference: ref });
251
- }
252
- //# sourceMappingURL=resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/profiles/resolver.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- /**
2
- * @module @kb-labs/core-config/profiles/scope-selector
3
- * Resolve active scope based on include/exclude globs and CLI flags.
4
- */
5
- import type { BundleProfile, ResolvedScope } from './types';
6
- export type ScopeSelectionStrategy = 'explicit' | 'default' | 'auto' | 'none';
7
- export interface ScopeSelectionOptions {
8
- bundleProfile: BundleProfile;
9
- cwd: string;
10
- executionPath: string;
11
- scopeId?: string;
12
- }
13
- export interface ScopeSelectionResult {
14
- scope?: ResolvedScope;
15
- strategy: ScopeSelectionStrategy;
16
- matchedPath?: string;
17
- }
18
- export declare function selectProfileScope(opts: ScopeSelectionOptions): ScopeSelectionResult;
19
- //# sourceMappingURL=scope-selector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scope-selector.d.ts","sourceRoot":"","sources":["../../src/profiles/scope-selector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG5D,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAE9E,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,aAAa,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,sBAAsB,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,qBAAqB,GAC1B,oBAAoB,CAqDtB"}
@@ -1,64 +0,0 @@
1
- /**
2
- * @module @kb-labs/core-config/profiles/scope-selector
3
- * Resolve active scope based on include/exclude globs and CLI flags.
4
- */
5
- import path from 'node:path';
6
- import picomatch from 'picomatch';
7
- import { KbError, ERROR_HINTS } from '../errors/kb-error';
8
- export function selectProfileScope(opts) {
9
- const scopes = opts.bundleProfile.scopes || [];
10
- if (scopes.length === 0) {
11
- return { strategy: 'none' };
12
- }
13
- if (opts.scopeId) {
14
- const scope = scopes.find((s) => s.id === opts.scopeId);
15
- if (!scope) {
16
- throw new KbError('ERR_PROFILE_SCOPE_NOT_FOUND', `Scope "${opts.scopeId}" not found in profile "${opts.bundleProfile.id}"`, ERROR_HINTS.ERR_PROFILE_SCOPE_NOT_FOUND, { scopeId: opts.scopeId, available: scopes.map((s) => s.id) });
17
- }
18
- return { scope, strategy: 'explicit' };
19
- }
20
- const defaults = scopes.filter((s) => s.isDefault);
21
- if (defaults.length > 1) {
22
- throw new KbError('ERR_PROFILE_SCOPE_CONFLICT', `Multiple default scopes found in profile "${opts.bundleProfile.id}"`, ERROR_HINTS.ERR_PROFILE_SCOPE_CONFLICT, { scopes: defaults.map((s) => s.id) });
23
- }
24
- if (defaults.length === 1) {
25
- return { scope: defaults[0], strategy: 'default' };
26
- }
27
- const relativePath = normalizePath(path.relative(opts.cwd, opts.executionPath));
28
- const matches = scopes.filter((scope) => scopeMatchesPath(scope, relativePath));
29
- if (matches.length > 1) {
30
- throw new KbError('ERR_PROFILE_SCOPE_CONFLICT', `Multiple scopes match path "${relativePath}"`, ERROR_HINTS.ERR_PROFILE_SCOPE_CONFLICT, { scopes: matches.map((s) => s.id), path: relativePath });
31
- }
32
- if (matches.length === 1) {
33
- return { scope: matches[0], strategy: 'auto', matchedPath: relativePath };
34
- }
35
- return { strategy: 'none' };
36
- }
37
- function scopeMatchesPath(scope, candidate) {
38
- const includes = scope.include && scope.include.length > 0
39
- ? scope.include
40
- : ['**/*'];
41
- const excludeGlobs = scope.exclude || [];
42
- const tester = (glob) => picomatch(glob, { dot: true, nocase: false })(candidate);
43
- const includeMatched = candidate === '.' ||
44
- includes.some((glob) => tester(adjustGlob(glob)));
45
- if (!includeMatched) {
46
- return false;
47
- }
48
- const excludeMatched = excludeGlobs.some((glob) => tester(adjustGlob(glob)));
49
- return !excludeMatched;
50
- }
51
- function normalizePath(p) {
52
- if (!p || p === '.') {
53
- return '.';
54
- }
55
- const normalized = p.split(path.sep).join('/');
56
- return normalized || '.';
57
- }
58
- function adjustGlob(glob) {
59
- if (!glob) {
60
- return '**/*';
61
- }
62
- return glob;
63
- }
64
- //# sourceMappingURL=scope-selector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scope-selector.js","sourceRoot":"","sources":["../../src/profiles/scope-selector.ts"],"names":[],"mappings":"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"}