@sdd-method/sdd-cli 0.10.0 → 0.12.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 (193) hide show
  1. package/dist/index.d.ts.map +1 -1
  2. package/dist/index.js +3 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/lib/catalogue/aggregate.d.ts +39 -0
  5. package/dist/lib/catalogue/aggregate.d.ts.map +1 -0
  6. package/dist/lib/catalogue/aggregate.js +344 -0
  7. package/dist/lib/catalogue/aggregate.js.map +1 -0
  8. package/dist/lib/catalogue/aggregation-manifest-loader.d.ts +25 -0
  9. package/dist/lib/catalogue/aggregation-manifest-loader.d.ts.map +1 -0
  10. package/dist/lib/catalogue/aggregation-manifest-loader.js +111 -0
  11. package/dist/lib/catalogue/aggregation-manifest-loader.js.map +1 -0
  12. package/dist/lib/catalogue/build.d.ts +42 -0
  13. package/dist/lib/catalogue/build.d.ts.map +1 -0
  14. package/dist/lib/catalogue/build.js +373 -0
  15. package/dist/lib/catalogue/build.js.map +1 -0
  16. package/dist/lib/catalogue/builders/adr-supersedes.d.ts +14 -0
  17. package/dist/lib/catalogue/builders/adr-supersedes.d.ts.map +1 -0
  18. package/dist/lib/catalogue/builders/adr-supersedes.js +62 -0
  19. package/dist/lib/catalogue/builders/adr-supersedes.js.map +1 -0
  20. package/dist/lib/catalogue/builders/adrs.d.ts +27 -0
  21. package/dist/lib/catalogue/builders/adrs.d.ts.map +1 -0
  22. package/dist/lib/catalogue/builders/adrs.js +191 -0
  23. package/dist/lib/catalogue/builders/adrs.js.map +1 -0
  24. package/dist/lib/catalogue/builders/c4-containers.d.ts +16 -0
  25. package/dist/lib/catalogue/builders/c4-containers.d.ts.map +1 -0
  26. package/dist/lib/catalogue/builders/c4-containers.js +169 -0
  27. package/dist/lib/catalogue/builders/c4-containers.js.map +1 -0
  28. package/dist/lib/catalogue/builders/c4-systems.d.ts +10 -0
  29. package/dist/lib/catalogue/builders/c4-systems.d.ts.map +1 -0
  30. package/dist/lib/catalogue/builders/c4-systems.js +99 -0
  31. package/dist/lib/catalogue/builders/c4-systems.js.map +1 -0
  32. package/dist/lib/catalogue/builders/capabilities.d.ts +11 -0
  33. package/dist/lib/catalogue/builders/capabilities.d.ts.map +1 -0
  34. package/dist/lib/catalogue/builders/capabilities.js +173 -0
  35. package/dist/lib/catalogue/builders/capabilities.js.map +1 -0
  36. package/dist/lib/catalogue/builders/capability-edges.d.ts +27 -0
  37. package/dist/lib/catalogue/builders/capability-edges.d.ts.map +1 -0
  38. package/dist/lib/catalogue/builders/capability-edges.js +166 -0
  39. package/dist/lib/catalogue/builders/capability-edges.js.map +1 -0
  40. package/dist/lib/catalogue/builders/contracts.d.ts +15 -0
  41. package/dist/lib/catalogue/builders/contracts.d.ts.map +1 -0
  42. package/dist/lib/catalogue/builders/contracts.js +153 -0
  43. package/dist/lib/catalogue/builders/contracts.js.map +1 -0
  44. package/dist/lib/catalogue/builders/domains.d.ts +10 -0
  45. package/dist/lib/catalogue/builders/domains.d.ts.map +1 -0
  46. package/dist/lib/catalogue/builders/domains.js +93 -0
  47. package/dist/lib/catalogue/builders/domains.js.map +1 -0
  48. package/dist/lib/catalogue/builders/event-edges.d.ts +20 -0
  49. package/dist/lib/catalogue/builders/event-edges.d.ts.map +1 -0
  50. package/dist/lib/catalogue/builders/event-edges.js +112 -0
  51. package/dist/lib/catalogue/builders/event-edges.js.map +1 -0
  52. package/dist/lib/catalogue/builders/events.d.ts +26 -0
  53. package/dist/lib/catalogue/builders/events.d.ts.map +1 -0
  54. package/dist/lib/catalogue/builders/events.js +99 -0
  55. package/dist/lib/catalogue/builders/events.js.map +1 -0
  56. package/dist/lib/catalogue/builders/feature-groups.d.ts +10 -0
  57. package/dist/lib/catalogue/builders/feature-groups.d.ts.map +1 -0
  58. package/dist/lib/catalogue/builders/feature-groups.js +118 -0
  59. package/dist/lib/catalogue/builders/feature-groups.js.map +1 -0
  60. package/dist/lib/catalogue/builders/features.d.ts +35 -0
  61. package/dist/lib/catalogue/builders/features.d.ts.map +1 -0
  62. package/dist/lib/catalogue/builders/features.js +206 -0
  63. package/dist/lib/catalogue/builders/features.js.map +1 -0
  64. package/dist/lib/catalogue/builders/glossary-xref.d.ts +11 -0
  65. package/dist/lib/catalogue/builders/glossary-xref.d.ts.map +1 -0
  66. package/dist/lib/catalogue/builders/glossary-xref.js +107 -0
  67. package/dist/lib/catalogue/builders/glossary-xref.js.map +1 -0
  68. package/dist/lib/catalogue/builders/glossary.d.ts +14 -0
  69. package/dist/lib/catalogue/builders/glossary.d.ts.map +1 -0
  70. package/dist/lib/catalogue/builders/glossary.js +150 -0
  71. package/dist/lib/catalogue/builders/glossary.js.map +1 -0
  72. package/dist/lib/catalogue/builders/index.d.ts +57 -0
  73. package/dist/lib/catalogue/builders/index.d.ts.map +1 -0
  74. package/dist/lib/catalogue/builders/index.js +33 -0
  75. package/dist/lib/catalogue/builders/index.js.map +1 -0
  76. package/dist/lib/catalogue/builders/integrations.d.ts +12 -0
  77. package/dist/lib/catalogue/builders/integrations.d.ts.map +1 -0
  78. package/dist/lib/catalogue/builders/integrations.js +85 -0
  79. package/dist/lib/catalogue/builders/integrations.js.map +1 -0
  80. package/dist/lib/catalogue/builders/persona-journey-edges.d.ts +26 -0
  81. package/dist/lib/catalogue/builders/persona-journey-edges.d.ts.map +1 -0
  82. package/dist/lib/catalogue/builders/persona-journey-edges.js +133 -0
  83. package/dist/lib/catalogue/builders/persona-journey-edges.js.map +1 -0
  84. package/dist/lib/catalogue/builders/personas.d.ts +22 -0
  85. package/dist/lib/catalogue/builders/personas.d.ts.map +1 -0
  86. package/dist/lib/catalogue/builders/personas.js +150 -0
  87. package/dist/lib/catalogue/builders/personas.js.map +1 -0
  88. package/dist/lib/catalogue/builders/product-edges.d.ts +15 -0
  89. package/dist/lib/catalogue/builders/product-edges.d.ts.map +1 -0
  90. package/dist/lib/catalogue/builders/product-edges.js +97 -0
  91. package/dist/lib/catalogue/builders/product-edges.js.map +1 -0
  92. package/dist/lib/catalogue/builders/products.d.ts +26 -0
  93. package/dist/lib/catalogue/builders/products.d.ts.map +1 -0
  94. package/dist/lib/catalogue/builders/products.js +57 -0
  95. package/dist/lib/catalogue/builders/products.js.map +1 -0
  96. package/dist/lib/catalogue/builders/repo-edges.d.ts +18 -0
  97. package/dist/lib/catalogue/builders/repo-edges.d.ts.map +1 -0
  98. package/dist/lib/catalogue/builders/repo-edges.js +113 -0
  99. package/dist/lib/catalogue/builders/repo-edges.js.map +1 -0
  100. package/dist/lib/catalogue/builders/repositories.d.ts +78 -0
  101. package/dist/lib/catalogue/builders/repositories.d.ts.map +1 -0
  102. package/dist/lib/catalogue/builders/repositories.js +204 -0
  103. package/dist/lib/catalogue/builders/repositories.js.map +1 -0
  104. package/dist/lib/catalogue/builders/service-contract.d.ts +11 -0
  105. package/dist/lib/catalogue/builders/service-contract.d.ts.map +1 -0
  106. package/dist/lib/catalogue/builders/service-contract.js +53 -0
  107. package/dist/lib/catalogue/builders/service-contract.js.map +1 -0
  108. package/dist/lib/catalogue/builders/services.d.ts +15 -0
  109. package/dist/lib/catalogue/builders/services.d.ts.map +1 -0
  110. package/dist/lib/catalogue/builders/services.js +40 -0
  111. package/dist/lib/catalogue/builders/services.js.map +1 -0
  112. package/dist/lib/catalogue/builders/user-journeys.d.ts +24 -0
  113. package/dist/lib/catalogue/builders/user-journeys.d.ts.map +1 -0
  114. package/dist/lib/catalogue/builders/user-journeys.js +253 -0
  115. package/dist/lib/catalogue/builders/user-journeys.js.map +1 -0
  116. package/dist/lib/catalogue/canonical-schema.yaml +624 -0
  117. package/dist/lib/catalogue/cli-version.d.ts +10 -0
  118. package/dist/lib/catalogue/cli-version.d.ts.map +1 -0
  119. package/dist/lib/catalogue/cli-version.js +10 -0
  120. package/dist/lib/catalogue/cli-version.js.map +1 -0
  121. package/dist/lib/catalogue/csv-reader.d.ts +7 -0
  122. package/dist/lib/catalogue/csv-reader.d.ts.map +1 -0
  123. package/dist/lib/catalogue/csv-reader.js +97 -0
  124. package/dist/lib/catalogue/csv-reader.js.map +1 -0
  125. package/dist/lib/catalogue/csv-writer.d.ts +29 -0
  126. package/dist/lib/catalogue/csv-writer.d.ts.map +1 -0
  127. package/dist/lib/catalogue/csv-writer.js +55 -0
  128. package/dist/lib/catalogue/csv-writer.js.map +1 -0
  129. package/dist/lib/catalogue/findings.d.ts +27 -0
  130. package/dist/lib/catalogue/findings.d.ts.map +1 -0
  131. package/dist/lib/catalogue/findings.js +34 -0
  132. package/dist/lib/catalogue/findings.js.map +1 -0
  133. package/dist/lib/catalogue/fk-validator.d.ts +44 -0
  134. package/dist/lib/catalogue/fk-validator.d.ts.map +1 -0
  135. package/dist/lib/catalogue/fk-validator.js +90 -0
  136. package/dist/lib/catalogue/fk-validator.js.map +1 -0
  137. package/dist/lib/catalogue/index.d.ts +27 -0
  138. package/dist/lib/catalogue/index.d.ts.map +1 -0
  139. package/dist/lib/catalogue/index.js +18 -0
  140. package/dist/lib/catalogue/index.js.map +1 -0
  141. package/dist/lib/catalogue/manifest-loader.d.ts +47 -0
  142. package/dist/lib/catalogue/manifest-loader.d.ts.map +1 -0
  143. package/dist/lib/catalogue/manifest-loader.js +161 -0
  144. package/dist/lib/catalogue/manifest-loader.js.map +1 -0
  145. package/dist/lib/catalogue/schema-compat.d.ts +47 -0
  146. package/dist/lib/catalogue/schema-compat.d.ts.map +1 -0
  147. package/dist/lib/catalogue/schema-compat.js +52 -0
  148. package/dist/lib/catalogue/schema-compat.js.map +1 -0
  149. package/dist/lib/catalogue/schema-loader.d.ts +58 -0
  150. package/dist/lib/catalogue/schema-loader.d.ts.map +1 -0
  151. package/dist/lib/catalogue/schema-loader.js +86 -0
  152. package/dist/lib/catalogue/schema-loader.js.map +1 -0
  153. package/dist/lib/catalogue/traceability-loader.d.ts +56 -0
  154. package/dist/lib/catalogue/traceability-loader.d.ts.map +1 -0
  155. package/dist/lib/catalogue/traceability-loader.js +217 -0
  156. package/dist/lib/catalogue/traceability-loader.js.map +1 -0
  157. package/dist/lib/catalogue/validate.d.ts +16 -0
  158. package/dist/lib/catalogue/validate.d.ts.map +1 -0
  159. package/dist/lib/catalogue/validate.js +137 -0
  160. package/dist/lib/catalogue/validate.js.map +1 -0
  161. package/dist/lib/catalogue/version.d.ts +3 -0
  162. package/dist/lib/catalogue/version.d.ts.map +1 -0
  163. package/dist/lib/catalogue/version.js +18 -0
  164. package/dist/lib/catalogue/version.js.map +1 -0
  165. package/dist/lib/init/index.d.ts.map +1 -1
  166. package/dist/lib/init/index.js +6 -1
  167. package/dist/lib/init/index.js.map +1 -1
  168. package/dist/lib/init/integration.d.ts +1 -1
  169. package/dist/lib/init/integration.d.ts.map +1 -1
  170. package/dist/lib/init/integration.js +5 -0
  171. package/dist/lib/init/integration.js.map +1 -1
  172. package/dist/lib/list/discover.js +8 -1
  173. package/dist/lib/list/discover.js.map +1 -1
  174. package/dist/lib/lock-file.d.ts +38 -3
  175. package/dist/lib/lock-file.d.ts.map +1 -1
  176. package/dist/lib/lock-file.js +213 -29
  177. package/dist/lib/lock-file.js.map +1 -1
  178. package/dist/lib/mcp/build-info.d.ts +1 -1
  179. package/dist/lib/mcp/build-info.js +1 -1
  180. package/dist/lib/repo-kind.d.ts +17 -2
  181. package/dist/lib/repo-kind.d.ts.map +1 -1
  182. package/dist/lib/repo-kind.js +46 -2
  183. package/dist/lib/repo-kind.js.map +1 -1
  184. package/dist/lib/sync/index.d.ts.map +1 -1
  185. package/dist/lib/sync/index.js +65 -20
  186. package/dist/lib/sync/index.js.map +1 -1
  187. package/dist/verbs/catalogue.d.ts +3 -0
  188. package/dist/verbs/catalogue.d.ts.map +1 -0
  189. package/dist/verbs/catalogue.js +60 -0
  190. package/dist/verbs/catalogue.js.map +1 -0
  191. package/package.json +3 -3
  192. package/scripts/copy-yaml-assets.mjs +38 -0
  193. package/scripts/sync-canonical-schema.sh +39 -0
@@ -1,14 +1,49 @@
1
+ import { type BundleName, type RepoKind } from "./repo-kind.js";
1
2
  export declare const LOCK_FILE = "method-baseline.lock";
2
- export interface LockFile {
3
- methodRepo: string;
3
+ export declare const LOCK_VERSION: 2;
4
+ /**
5
+ * One synced bundle (forward base or additive extension). Each lock
6
+ * file carries a list of these — re-syncing one bundle replaces its
7
+ * entry; other bundles' entries are preserved.
8
+ */
9
+ export interface BundleEntry {
10
+ name: BundleName;
4
11
  bundleVersion: string;
5
12
  sourceCommit: string;
6
13
  bundleSha256: string;
7
14
  syncedAtUtc: string;
15
+ isForwardBase: boolean;
8
16
  managedPaths: string[];
9
17
  }
18
+ export interface LockFile {
19
+ methodRepo: string;
20
+ lockVersion: typeof LOCK_VERSION;
21
+ bundles: BundleEntry[];
22
+ }
10
23
  export declare function readLockFile(repoRoot: string): Promise<LockFile | null>;
11
24
  export declare function writeLockFile(repoRoot: string, lock: LockFile): Promise<void>;
12
- export declare function parseLockFile(raw: string): LockFile;
25
+ export interface ParseLockFileOptions {
26
+ /**
27
+ * If the input is a legacy v1 lock (no `lock_version:` line), this
28
+ * supplies the bundle name to migrate it under. Required for v1
29
+ * input; ignored for v2.
30
+ */
31
+ legacyBundleName?: BundleName;
32
+ }
33
+ export declare function parseLockFile(raw: string, opts?: ParseLockFileOptions): LockFile;
13
34
  export declare function serialiseLockFile(lock: LockFile): string;
35
+ export declare function findBundle(lock: LockFile | null, name: BundleName): BundleEntry | null;
36
+ /**
37
+ * Replace the bundle entry with `entry.name`, or append it. Returns a
38
+ * new LockFile preserving order (existing bundles keep their position;
39
+ * a new bundle goes at the end).
40
+ */
41
+ export declare function upsertBundle(lock: LockFile | null, entry: BundleEntry): LockFile;
42
+ /**
43
+ * True if any bundle in the lock other than `excluding` is a forward
44
+ * base. Used to enforce requires_forward_base for additive layers.
45
+ */
46
+ export declare function hasForwardBase(lock: LockFile | null, excluding?: BundleName): boolean;
47
+ export declare function pathToBundleMap(lock: LockFile | null, excluding?: BundleName): Map<string, BundleName>;
48
+ export type { RepoKind };
14
49
  //# sourceMappingURL=lock-file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lock-file.d.ts","sourceRoot":"","sources":["../../src/lib/lock-file.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,yBAAyB,CAAC;AAEhD,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAS7E;AAED,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CA6CnD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAWxD"}
1
+ {"version":3,"file":"lock-file.d.ts","sourceRoot":"","sources":["../../src/lib/lock-file.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,UAAU,EACf,KAAK,QAAQ,EACd,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,SAAS,yBAAyB,CAAC;AAChD,eAAO,MAAM,YAAY,EAAG,CAAU,CAAC;AAEvC;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,YAAY,CAAC;IACjC,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAoB7E;AAED,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,UAAU,CAAC;CAC/B;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,oBAAyB,GAC9B,QAAQ,CASV;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAqBxD;AAwLD,wBAAgB,UAAU,CACxB,IAAI,EAAE,QAAQ,GAAG,IAAI,EACrB,IAAI,EAAE,UAAU,GACf,WAAW,GAAG,IAAI,CAGpB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,EAAE,WAAW,GAAG,QAAQ,CAYhF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,QAAQ,GAAG,IAAI,EACrB,SAAS,CAAC,EAAE,UAAU,GACrB,OAAO,CAKT;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,GAAG,IAAI,EACrB,SAAS,CAAC,EAAE,UAAU,GACrB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAQzB;AAGD,YAAY,EAAE,QAAQ,EAAE,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { readFile, writeFile } from "node:fs/promises";
2
2
  import { join } from "node:path";
3
+ import { bundleNameFromRepoKind, isBundleName, isForwardBase, readRepoKind, } from "./repo-kind.js";
3
4
  export const LOCK_FILE = "method-baseline.lock";
5
+ export const LOCK_VERSION = 2;
4
6
  export async function readLockFile(repoRoot) {
5
7
  let raw;
6
8
  try {
@@ -11,16 +13,165 @@ export async function readLockFile(repoRoot) {
11
13
  return null;
12
14
  throw err;
13
15
  }
14
- return parseLockFile(raw);
16
+ if (isV2(raw))
17
+ return parseLockFile(raw);
18
+ // Legacy v1 lock — auto-migrate by inferring the bundle name from
19
+ // .sdd-repo-kind. Mirrors the bash sync script's migration path.
20
+ const repoKind = await readRepoKind(repoRoot);
21
+ if (!repoKind) {
22
+ throw new Error(`Legacy lock detected but cannot infer bundle name: ${LOCK_FILE} is v1 ` +
23
+ `and .sdd-repo-kind is missing. Set .sdd-repo-kind manually or ` +
24
+ `delete the lock file before re-syncing.`);
25
+ }
26
+ return parseLockFile(raw, { legacyBundleName: bundleNameFromRepoKind(repoKind) });
15
27
  }
16
28
  export async function writeLockFile(repoRoot, lock) {
17
29
  await writeFile(join(repoRoot, LOCK_FILE), serialiseLockFile(lock), "utf8");
18
30
  }
19
- export function parseLockFile(raw) {
31
+ export function parseLockFile(raw, opts = {}) {
32
+ if (isV2(raw))
33
+ return parseV2(raw);
34
+ if (!opts.legacyBundleName) {
35
+ throw new Error(`Cannot parse legacy v1 lock without legacyBundleName option ` +
36
+ `(needed to migrate to v2 shape).`);
37
+ }
38
+ return migrateV1(raw, opts.legacyBundleName);
39
+ }
40
+ export function serialiseLockFile(lock) {
41
+ const lines = [
42
+ `method_repo: ${lock.methodRepo}`,
43
+ `lock_version: ${lock.lockVersion}`,
44
+ "bundles:",
45
+ ];
46
+ for (const b of lock.bundles) {
47
+ lines.push(` - name: ${b.name}`, ` bundle_version: "${b.bundleVersion}"`, ` source_commit: "${b.sourceCommit}"`, ` bundle_sha256: "${b.bundleSha256}"`, ` synced_at_utc: "${b.syncedAtUtc}"`, ` is_forward_base: ${b.isForwardBase}`, ` managed_paths:`);
48
+ for (const p of b.managedPaths) {
49
+ lines.push(` - ${p}`);
50
+ }
51
+ }
52
+ return lines.join("\n") + "\n";
53
+ }
54
+ // ---------------------------------------------------------------------------
55
+ // Internal helpers
56
+ // ---------------------------------------------------------------------------
57
+ function isV2(raw) {
58
+ return /^lock_version:/m.test(raw);
59
+ }
60
+ function stripQuotes(value) {
61
+ if (value.length >= 2 && value.startsWith('"') && value.endsWith('"')) {
62
+ return value.slice(1, -1);
63
+ }
64
+ return value;
65
+ }
66
+ function parseV2(raw) {
67
+ let methodRepo;
68
+ let lockVersion;
69
+ const bundles = [];
70
+ let inBundles = false;
71
+ let inPaths = false;
72
+ let cur = {
73
+ managedPaths: [],
74
+ };
75
+ const flushBundle = () => {
76
+ if (cur.name === undefined)
77
+ return;
78
+ const required = [
79
+ "name",
80
+ "bundleVersion",
81
+ "sourceCommit",
82
+ "bundleSha256",
83
+ "syncedAtUtc",
84
+ "isForwardBase",
85
+ ];
86
+ for (const k of required) {
87
+ if (cur[k] === undefined) {
88
+ throw new Error(`${LOCK_FILE} bundle entry "${cur.name}" missing required key: ${k}`);
89
+ }
90
+ }
91
+ bundles.push(cur);
92
+ cur = { managedPaths: [] };
93
+ inPaths = false;
94
+ };
95
+ for (const rawLine of raw.split("\n")) {
96
+ const line = rawLine.replace(/\r$/, "");
97
+ if (!inBundles) {
98
+ if (line === "bundles:") {
99
+ inBundles = true;
100
+ continue;
101
+ }
102
+ const top = /^([a-z_][a-z0-9_]*): (.*)$/.exec(line);
103
+ if (top) {
104
+ const [, key, value] = top;
105
+ if (key === "method_repo")
106
+ methodRepo = stripQuotes(value);
107
+ else if (key === "lock_version")
108
+ lockVersion = Number(stripQuotes(value));
109
+ }
110
+ continue;
111
+ }
112
+ // Inside the bundles block.
113
+ if (line.startsWith(" - name:")) {
114
+ flushBundle();
115
+ const name = stripQuotes(line.slice(" - name:".length).trim());
116
+ if (!isBundleName(name)) {
117
+ throw new Error(`${LOCK_FILE}: unknown bundle name "${name}"`);
118
+ }
119
+ cur.name = name;
120
+ continue;
121
+ }
122
+ if (line === " managed_paths:") {
123
+ inPaths = true;
124
+ continue;
125
+ }
126
+ if (inPaths && line.startsWith(" - ")) {
127
+ cur.managedPaths.push(line.slice(" - ".length));
128
+ continue;
129
+ }
130
+ const meta = /^ ([a-z_][a-z0-9_]*): (.*)$/.exec(line);
131
+ if (meta) {
132
+ inPaths = false;
133
+ const [, key, rawValue] = meta;
134
+ const value = stripQuotes(rawValue);
135
+ switch (key) {
136
+ case "bundle_version":
137
+ cur.bundleVersion = value;
138
+ break;
139
+ case "source_commit":
140
+ cur.sourceCommit = value;
141
+ break;
142
+ case "bundle_sha256":
143
+ cur.bundleSha256 = value;
144
+ break;
145
+ case "synced_at_utc":
146
+ cur.syncedAtUtc = value;
147
+ break;
148
+ case "is_forward_base":
149
+ cur.isForwardBase = value === "true";
150
+ break;
151
+ }
152
+ continue;
153
+ }
154
+ // Top-level scalar after the bundles block ends — e.g. trailing
155
+ // file-level metadata (none today, but tolerated).
156
+ if (line.length > 0 && !line.startsWith(" ") && !line.startsWith("\t")) {
157
+ inBundles = false;
158
+ }
159
+ }
160
+ flushBundle();
161
+ if (methodRepo === undefined) {
162
+ throw new Error(`${LOCK_FILE} is missing required key: method_repo`);
163
+ }
164
+ if (lockVersion !== LOCK_VERSION) {
165
+ throw new Error(`${LOCK_FILE} lock_version is ${lockVersion}; expected ${LOCK_VERSION}`);
166
+ }
167
+ return { methodRepo, lockVersion: LOCK_VERSION, bundles };
168
+ }
169
+ function migrateV1(raw, legacyBundleName) {
20
170
  const scalars = new Map();
21
171
  const managedPaths = [];
22
172
  let inManagedList = false;
23
- for (const line of raw.split("\n")) {
173
+ for (const rawLine of raw.split("\n")) {
174
+ const line = rawLine.replace(/\r$/, "");
24
175
  if (inManagedList) {
25
176
  if (line.startsWith(" - ")) {
26
177
  managedPaths.push(line.slice(4));
@@ -32,11 +183,9 @@ export function parseLockFile(raw) {
32
183
  inManagedList = true;
33
184
  continue;
34
185
  }
35
- const match = /^([a-z_][a-z0-9_]*): (.*)$/.exec(line);
36
- if (match) {
37
- const [, key, rawValue] = match;
38
- scalars.set(key, stripQuotes(rawValue));
39
- }
186
+ const m = /^([a-z_][a-z0-9_]*): (.*)$/.exec(line);
187
+ if (m)
188
+ scalars.set(m[1], stripQuotes(m[2]));
40
189
  }
41
190
  const required = [
42
191
  "method_repo",
@@ -47,34 +196,69 @@ export function parseLockFile(raw) {
47
196
  ];
48
197
  for (const key of required) {
49
198
  if (!scalars.has(key)) {
50
- throw new Error(`method-baseline.lock is missing required key: ${key}`);
199
+ throw new Error(`${LOCK_FILE} (legacy) is missing required key: ${key}`);
51
200
  }
52
201
  }
53
202
  return {
54
203
  methodRepo: scalars.get("method_repo"),
55
- bundleVersion: scalars.get("bundle_version"),
56
- sourceCommit: scalars.get("source_commit"),
57
- bundleSha256: scalars.get("bundle_sha256"),
58
- syncedAtUtc: scalars.get("synced_at_utc"),
59
- managedPaths,
204
+ lockVersion: LOCK_VERSION,
205
+ bundles: [
206
+ {
207
+ name: legacyBundleName,
208
+ bundleVersion: scalars.get("bundle_version"),
209
+ sourceCommit: scalars.get("source_commit"),
210
+ bundleSha256: scalars.get("bundle_sha256"),
211
+ syncedAtUtc: scalars.get("synced_at_utc"),
212
+ isForwardBase: isForwardBase(legacyBundleName),
213
+ managedPaths,
214
+ },
215
+ ],
60
216
  };
61
217
  }
62
- export function serialiseLockFile(lock) {
63
- const lines = [
64
- `method_repo: ${lock.methodRepo}`,
65
- `bundle_version: "${lock.bundleVersion}"`,
66
- `source_commit: "${lock.sourceCommit}"`,
67
- `bundle_sha256: "${lock.bundleSha256}"`,
68
- `synced_at_utc: "${lock.syncedAtUtc}"`,
69
- "managed_paths:",
70
- ...lock.managedPaths.map((p) => ` - ${p}`),
71
- ];
72
- return lines.join("\n") + "\n";
218
+ // ---------------------------------------------------------------------------
219
+ // Convenience helpers for sync code.
220
+ // ---------------------------------------------------------------------------
221
+ export function findBundle(lock, name) {
222
+ if (!lock)
223
+ return null;
224
+ return lock.bundles.find((b) => b.name === name) ?? null;
73
225
  }
74
- function stripQuotes(value) {
75
- if (value.length >= 2 && value.startsWith('"') && value.endsWith('"')) {
76
- return value.slice(1, -1);
226
+ /**
227
+ * Replace the bundle entry with `entry.name`, or append it. Returns a
228
+ * new LockFile preserving order (existing bundles keep their position;
229
+ * a new bundle goes at the end).
230
+ */
231
+ export function upsertBundle(lock, entry) {
232
+ const base = lock ?? {
233
+ methodRepo: "sdd-method",
234
+ lockVersion: LOCK_VERSION,
235
+ bundles: [],
236
+ };
237
+ const idx = base.bundles.findIndex((b) => b.name === entry.name);
238
+ const bundles = idx >= 0
239
+ ? base.bundles.map((b, i) => (i === idx ? entry : b))
240
+ : [...base.bundles, entry];
241
+ return { ...base, bundles };
242
+ }
243
+ /**
244
+ * True if any bundle in the lock other than `excluding` is a forward
245
+ * base. Used to enforce requires_forward_base for additive layers.
246
+ */
247
+ export function hasForwardBase(lock, excluding) {
248
+ if (!lock)
249
+ return false;
250
+ return lock.bundles.some((b) => b.name !== excluding && b.isForwardBase);
251
+ }
252
+ export function pathToBundleMap(lock, excluding) {
253
+ const m = new Map();
254
+ if (!lock)
255
+ return m;
256
+ for (const b of lock.bundles) {
257
+ if (excluding !== undefined && b.name === excluding)
258
+ continue;
259
+ for (const p of b.managedPaths)
260
+ m.set(p, b.name);
77
261
  }
78
- return value;
262
+ return m;
79
263
  }
80
264
  //# sourceMappingURL=lock-file.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lock-file.js","sourceRoot":"","sources":["../../src/lib/lock-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lock-file.js","sourceRoot":"","sources":["../../src/lib/lock-file.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * released; Phase 6 of the MCP plan may swap this for a generated file
4
4
  * populated by `npm version`.
5
5
  */
6
- export declare const SERVER_VERSION = "0.10.0";
6
+ export declare const SERVER_VERSION = "0.11.0";
7
7
  export declare const DISTRIBUTION = "sdd-method";
8
8
  export declare const MCP_PROTOCOL_SPEC_VERSION = "2025-06-18";
9
9
  //# sourceMappingURL=build-info.d.ts.map
@@ -4,7 +4,7 @@
4
4
  * populated by `npm version`.
5
5
  */
6
6
  // Mirror of package.json version — bump in lockstep on release.
7
- export const SERVER_VERSION = "0.10.0";
7
+ export const SERVER_VERSION = "0.11.0";
8
8
  export const DISTRIBUTION = "sdd-method";
9
9
  export const MCP_PROTOCOL_SPEC_VERSION = "2025-06-18";
10
10
  //# sourceMappingURL=build-info.js.map
@@ -1,6 +1,6 @@
1
1
  export type Profile = "platform" | "application" | "integration" | "reverse";
2
2
  export type RepoKind = "platform-product" | "application-product" | "integration-product" | "reverse-corpus";
3
- export type BundleName = "platform-baseline" | "app-baseline" | "integration-baseline" | "reverse-baseline";
3
+ export type BundleName = "platform-baseline" | "app-baseline" | "integration-baseline" | "reverse-baseline" | "reverse-extension-baseline";
4
4
  export declare const REPO_KIND_FILE = ".sdd-repo-kind";
5
5
  /**
6
6
  * Legacy marker filename from the pre-rebrand era. Read-only fallback during
@@ -11,8 +11,23 @@ export declare const REPO_KIND_FILE = ".sdd-repo-kind";
11
11
  export declare const LEGACY_REPO_KIND_FILE = ".iteraitive-repo-kind";
12
12
  export declare function profileFromRepoKind(kind: RepoKind): Profile;
13
13
  export declare function repoKindFromProfile(profile: Profile): RepoKind;
14
- export declare function profileFromBundleName(name: BundleName): Profile;
14
+ /**
15
+ * Returns the profile a bundle authoritatively claims, or null for
16
+ * additive bundles that don't claim a profile of their own.
17
+ */
18
+ export declare function profileFromBundleName(name: BundleName): Profile | null;
15
19
  export declare function bundleNameFromProfile(profile: Profile): BundleName;
20
+ /**
21
+ * Forward-base bundles set `.sdd-repo-kind` and qualify as the base
22
+ * layer that additive extensions compose on top of. Additive bundles
23
+ * (e.g. `reverse-extension-baseline`) return false.
24
+ */
25
+ export declare function isForwardBase(name: BundleName): boolean;
26
+ /**
27
+ * Maps repo-kind → forward-base bundle name. Used when migrating a
28
+ * legacy v1 lock file (which doesn't record bundle name) to v2.
29
+ */
30
+ export declare function bundleNameFromRepoKind(kind: RepoKind): BundleName;
16
31
  export declare function isRepoKind(value: string): value is RepoKind;
17
32
  export declare function isBundleName(value: string): value is BundleName;
18
33
  export declare function readRepoKind(repoRoot: string): Promise<RepoKind | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"repo-kind.d.ts","sourceRoot":"","sources":["../../src/lib/repo-kind.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,aAAa,GAAG,aAAa,GAAG,SAAS,CAAC;AAE7E,MAAM,MAAM,QAAQ,GAChB,kBAAkB,GAClB,qBAAqB,GACrB,qBAAqB,GACrB,gBAAgB,CAAC;AAErB,MAAM,MAAM,UAAU,GAClB,mBAAmB,GACnB,cAAc,GACd,sBAAsB,GACtB,kBAAkB,CAAC;AAEvB,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AA8B7D,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAE3D;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,CAE9D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAE/D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAElE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,QAAQ,CAE3D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,UAAU,CAE/D;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAoB7E;AAED,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,IAAI,CAAC,CAEf"}
1
+ {"version":3,"file":"repo-kind.d.ts","sourceRoot":"","sources":["../../src/lib/repo-kind.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,aAAa,GAAG,aAAa,GAAG,SAAS,CAAC;AAE7E,MAAM,MAAM,QAAQ,GAChB,kBAAkB,GAClB,qBAAqB,GACrB,qBAAqB,GACrB,gBAAgB,CAAC;AAErB,MAAM,MAAM,UAAU,GAClB,mBAAmB,GACnB,cAAc,GACd,sBAAsB,GACtB,kBAAkB,GAClB,4BAA4B,CAAC;AAgBjC,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAmC7D,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAE3D;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,CAE9D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,IAAI,CAEtE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAElE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAEvD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,CAEjE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,QAAQ,CAE3D;AAUD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,UAAU,CAE/D;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAoB7E;AAED,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -1,5 +1,18 @@
1
1
  import { readFile, writeFile } from "node:fs/promises";
2
2
  import { join } from "node:path";
3
+ /**
4
+ * Forward-base bundles set `.sdd-repo-kind` and qualify as the base
5
+ * layer that additive extensions can compose on top of (per ADR 0135).
6
+ * The legacy self-contained `reverse-baseline` is retained as a
7
+ * forward base for compat with adopters who haven't migrated to the
8
+ * `reverse-extension-baseline` additive shape yet.
9
+ */
10
+ const FORWARD_BASE_BUNDLES = new Set([
11
+ "platform-baseline",
12
+ "app-baseline",
13
+ "integration-baseline",
14
+ "reverse-baseline",
15
+ ]);
3
16
  export const REPO_KIND_FILE = ".sdd-repo-kind";
4
17
  /**
5
18
  * Legacy marker filename from the pre-rebrand era. Read-only fallback during
@@ -20,6 +33,11 @@ const REPO_KIND_BY_PROFILE = {
20
33
  integration: "integration-product",
21
34
  reverse: "reverse-corpus",
22
35
  };
36
+ /**
37
+ * Forward-base bundles map 1:1 to a profile. Additive bundles
38
+ * (`reverse-extension-baseline`) have no profile of their own — they
39
+ * compose on top of whatever forward base is already locked.
40
+ */
23
41
  const PROFILE_BY_BUNDLE_NAME = {
24
42
  "platform-baseline": "platform",
25
43
  "app-baseline": "application",
@@ -38,17 +56,43 @@ export function profileFromRepoKind(kind) {
38
56
  export function repoKindFromProfile(profile) {
39
57
  return REPO_KIND_BY_PROFILE[profile];
40
58
  }
59
+ /**
60
+ * Returns the profile a bundle authoritatively claims, or null for
61
+ * additive bundles that don't claim a profile of their own.
62
+ */
41
63
  export function profileFromBundleName(name) {
42
- return PROFILE_BY_BUNDLE_NAME[name];
64
+ return PROFILE_BY_BUNDLE_NAME[name] ?? null;
43
65
  }
44
66
  export function bundleNameFromProfile(profile) {
45
67
  return BUNDLE_NAME_BY_PROFILE[profile];
46
68
  }
69
+ /**
70
+ * Forward-base bundles set `.sdd-repo-kind` and qualify as the base
71
+ * layer that additive extensions compose on top of. Additive bundles
72
+ * (e.g. `reverse-extension-baseline`) return false.
73
+ */
74
+ export function isForwardBase(name) {
75
+ return FORWARD_BASE_BUNDLES.has(name);
76
+ }
77
+ /**
78
+ * Maps repo-kind → forward-base bundle name. Used when migrating a
79
+ * legacy v1 lock file (which doesn't record bundle name) to v2.
80
+ */
81
+ export function bundleNameFromRepoKind(kind) {
82
+ return BUNDLE_NAME_BY_PROFILE[PROFILE_BY_REPO_KIND[kind]];
83
+ }
47
84
  export function isRepoKind(value) {
48
85
  return value in PROFILE_BY_REPO_KIND;
49
86
  }
87
+ const ALL_BUNDLE_NAMES = new Set([
88
+ "platform-baseline",
89
+ "app-baseline",
90
+ "integration-baseline",
91
+ "reverse-baseline",
92
+ "reverse-extension-baseline",
93
+ ]);
50
94
  export function isBundleName(value) {
51
- return value in PROFILE_BY_BUNDLE_NAME;
95
+ return ALL_BUNDLE_NAMES.has(value);
52
96
  }
53
97
  export async function readRepoKind(repoRoot) {
54
98
  // Canonical first; fall back to legacy marker during the rebrand transition.
@@ -1 +1 @@
1
- {"version":3,"file":"repo-kind.js","sourceRoot":"","sources":["../../src/lib/repo-kind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAgBjC,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAC/C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAE7D,MAAM,oBAAoB,GAAwC;IAChE,kBAAkB,EAAE,UAAU;IAC9B,qBAAqB,EAAE,aAAa;IACpC,qBAAqB,EAAE,aAAa;IACpC,gBAAgB,EAAE,SAAS;CAC5B,CAAC;AAEF,MAAM,oBAAoB,GAAwC;IAChE,QAAQ,EAAE,kBAAkB;IAC5B,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,qBAAqB;IAClC,OAAO,EAAE,gBAAgB;CAC1B,CAAC;AAEF,MAAM,sBAAsB,GAA0C;IACpE,mBAAmB,EAAE,UAAU;IAC/B,cAAc,EAAE,aAAa;IAC7B,sBAAsB,EAAE,aAAa;IACrC,kBAAkB,EAAE,SAAS;CAC9B,CAAC;AAEF,MAAM,sBAAsB,GAA0C;IACpE,QAAQ,EAAE,mBAAmB;IAC7B,WAAW,EAAE,cAAc;IAC3B,WAAW,EAAE,sBAAsB;IACnC,OAAO,EAAE,kBAAkB;CAC5B,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,IAAc;IAChD,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAgB;IACpD,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,KAAK,IAAI,oBAAoB,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,KAAK,IAAI,sBAAsB,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,6EAA6E;IAC7E,KAAK,MAAM,QAAQ,IAAI,CAAC,cAAc,EAAE,qBAAqB,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACtC,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAS;YAC/D,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,gBAAgB,QAAQ,WAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CACtE,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,IAAc;IAEd,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,CAAC,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"repo-kind.js","sourceRoot":"","sources":["../../src/lib/repo-kind.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/sync/index.ts"],"names":[],"mappings":"AAgCA,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,wBAAsB,OAAO,CAC3B,IAAI,EAAE,WAAW,EACjB,MAAM,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAA2C,GACpE,OAAO,CAAC,UAAU,CAAC,CAiMrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/sync/index.ts"],"names":[],"mappings":"AAyCA,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,wBAAsB,OAAO,CAC3B,IAAI,EAAE,WAAW,EACjB,MAAM,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAA2C,GACpE,OAAO,CAAC,UAAU,CAAC,CAmQrB"}