@brandlab-digital/conformance 1.0.0-rc.1 → 1.0.0-rc.10

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 (44) hide show
  1. package/dist/cli.d.ts +2 -0
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +65 -5
  4. package/dist/cli.js.map +1 -1
  5. package/dist/legacy-architecture-contracts.d.ts +31 -0
  6. package/dist/legacy-architecture-contracts.d.ts.map +1 -0
  7. package/dist/legacy-architecture-contracts.js +49 -0
  8. package/dist/legacy-architecture-contracts.js.map +1 -0
  9. package/dist/project-config-v2-contract.d.ts +32 -0
  10. package/dist/project-config-v2-contract.d.ts.map +1 -0
  11. package/dist/project-config-v2-contract.js +926 -0
  12. package/dist/project-config-v2-contract.js.map +1 -0
  13. package/dist/project-config-v3.d.ts +43 -0
  14. package/dist/project-config-v3.d.ts.map +1 -0
  15. package/dist/project-config-v3.js +2876 -0
  16. package/dist/project-config-v3.js.map +1 -0
  17. package/dist/project-config.d.ts +2 -30
  18. package/dist/project-config.d.ts.map +1 -1
  19. package/dist/project-config.js +2 -916
  20. package/dist/project-config.js.map +1 -1
  21. package/dist/project.d.ts +1 -1
  22. package/dist/project.d.ts.map +1 -1
  23. package/dist/project.js +296 -74
  24. package/dist/project.js.map +1 -1
  25. package/dist/release-catalog.d.ts.map +1 -1
  26. package/dist/release-catalog.js +604 -0
  27. package/dist/release-catalog.js.map +1 -1
  28. package/dist/release-contract-compatibility.d.ts +111 -0
  29. package/dist/release-contract-compatibility.d.ts.map +1 -0
  30. package/dist/release-contract-compatibility.js +126 -0
  31. package/dist/release-contract-compatibility.js.map +1 -0
  32. package/dist/release-manifest.d.ts +7 -0
  33. package/dist/release-manifest.d.ts.map +1 -1
  34. package/dist/release-manifest.js +36 -8
  35. package/dist/release-manifest.js.map +1 -1
  36. package/dist/schema-hygiene.d.ts +4 -3
  37. package/dist/schema-hygiene.d.ts.map +1 -1
  38. package/dist/schema-hygiene.js +9 -0
  39. package/dist/schema-hygiene.js.map +1 -1
  40. package/dist/source-safety-contracts.d.ts +20 -0
  41. package/dist/source-safety-contracts.d.ts.map +1 -0
  42. package/dist/source-safety-contracts.js +60 -0
  43. package/dist/source-safety-contracts.js.map +1 -0
  44. package/package.json +7 -2
package/dist/cli.d.ts CHANGED
@@ -5,6 +5,7 @@ interface CliOptions {
5
5
  installedRelease?: string | null;
6
6
  targetRelease?: string | null;
7
7
  supportPolicyPath: string | null;
8
+ releaseManifestPaths: string[];
8
9
  mode: BrandlabConformanceMode;
9
10
  json: boolean;
10
11
  help: boolean;
@@ -15,5 +16,6 @@ interface CliIo {
15
16
  }
16
17
  export declare function parseBrandlabConformanceArgs(argv: readonly string[]): CliOptions;
17
18
  export declare function runBrandlabConformanceCli(argv: readonly string[], io?: CliIo): number;
19
+ export declare function isBrandlabConformanceCliEntrypoint(moduleUrl: string, argvPath: string | undefined): boolean;
18
20
  export {};
19
21
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAIA,OAAO,EAGL,KAAK,uBAAuB,EAE7B,MAAM,cAAc,CAAC;AAGtB,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACf;AAED,UAAU,KAAK;IACb,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAcD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CA2ChF;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,EAAE,GAAE,KAGH,GACA,MAAM,CAqBR"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAIA,OAAO,EAGL,KAAK,uBAAuB,EAE7B,MAAM,cAAc,CAAC;AAOtB,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,IAAI,EAAE,uBAAuB,CAAC;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACf;AAED,UAAU,KAAK;IACb,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAeD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAgDhF;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,EAAE,GAAE,KAGH,GACA,MAAM,CAqCR;AA0FD,wBAAgB,kCAAkC,CAChD,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAOT"}
package/dist/cli.js CHANGED
@@ -1,13 +1,15 @@
1
1
  #!/usr/bin/env node
2
- import { readFileSync } from "node:fs";
3
- import { resolve } from "node:path";
4
- import { pathToFileURL } from "node:url";
2
+ import { existsSync, readFileSync, realpathSync } from "node:fs";
3
+ import { dirname, isAbsolute, resolve } from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
5
  import { evaluateBrandlabProject, shouldFailBrandlabConformance, } from "./project.js";
6
+ import { compareBrandlabSemver, } from "./release-manifest.js";
6
7
  const HELP = `Brandlab version-aware conformance
7
8
 
8
9
  Usage:
9
10
  brandlab-conformance --support-policy <path> [--root <path>]
10
11
  [--installed-release <version|unadopted>]
12
+ [--release-manifest <path>]...
11
13
  [--target-release <version|none>] [--mode <local|ci|preflight>] [--json]
12
14
 
13
15
  Exit status:
@@ -18,6 +20,7 @@ export function parseBrandlabConformanceArgs(argv) {
18
20
  const parsed = {
19
21
  root: process.cwd(),
20
22
  supportPolicyPath: null,
23
+ releaseManifestPaths: [],
21
24
  mode: "local",
22
25
  json: false,
23
26
  help: false,
@@ -36,6 +39,9 @@ export function parseBrandlabConformanceArgs(argv) {
36
39
  else if (argument === "--support-policy") {
37
40
  parsed.supportPolicyPath = resolve(requireValue(argv, ++index, "--support-policy"));
38
41
  }
42
+ else if (argument === "--release-manifest") {
43
+ parsed.releaseManifestPaths.push(resolve(requireValue(argv, ++index, "--release-manifest")));
44
+ }
39
45
  else if (argument === "--installed-release") {
40
46
  const value = requireValue(argv, ++index, "--installed-release");
41
47
  parsed.installedRelease = value === "unadopted" ? null : value;
@@ -70,12 +76,23 @@ export function runBrandlabConformanceCli(argv, io = {
70
76
  io.stdout(HELP);
71
77
  return 0;
72
78
  }
79
+ const supportPolicy = loadSupportPolicy(options.supportPolicyPath);
80
+ const policyManifestPaths = resolveSupportPolicyReleaseManifestPaths(options.supportPolicyPath, supportPolicy);
81
+ const releaseManifests = [
82
+ ...new Set([
83
+ ...policyManifestPaths,
84
+ ...options.releaseManifestPaths,
85
+ ]),
86
+ ]
87
+ .map(loadReleaseManifest)
88
+ .sort((left, right) => compareBrandlabSemver(left.releaseVersion, right.releaseVersion));
73
89
  const result = evaluateBrandlabProject({
74
90
  root: options.root,
75
91
  installedRelease: options.installedRelease,
76
92
  targetRelease: options.targetRelease,
77
93
  mode: options.mode,
78
- supportPolicy: loadSupportPolicy(options.supportPolicyPath),
94
+ releaseManifests,
95
+ supportPolicy,
79
96
  });
80
97
  io.stdout(options.json ? `${JSON.stringify(result, null, 2)}\n` : formatResult(result));
81
98
  return shouldFailBrandlabConformance(result) ? 1 : 0;
@@ -96,6 +113,39 @@ function loadSupportPolicy(path) {
96
113
  throw new Error(`Unable to load support policy from ${path}: ${detail}`);
97
114
  }
98
115
  }
116
+ function loadReleaseManifest(path) {
117
+ try {
118
+ return JSON.parse(readFileSync(path, "utf8"));
119
+ }
120
+ catch (error) {
121
+ const detail = error instanceof Error ? error.message : String(error);
122
+ throw new Error(`Unable to load release manifest from ${path}: ${detail}`);
123
+ }
124
+ }
125
+ function resolveSupportPolicyReleaseManifestPaths(supportPolicyPath, supportPolicy) {
126
+ if (supportPolicyPath === null)
127
+ throw new Error("--support-policy is required.");
128
+ const references = Object.values(supportPolicy.releases ?? {}).map((release) => release?.manifest);
129
+ if (references.length === 0 ||
130
+ references.some((reference) => typeof reference !== "string" ||
131
+ reference.length === 0 ||
132
+ isAbsolute(reference) ||
133
+ reference.includes("\\") ||
134
+ reference.split("/").some((segment) => segment === ".."))) {
135
+ throw new Error("Support policy must use safe relative immutable release-manifest paths.");
136
+ }
137
+ let candidateRoot = dirname(supportPolicyPath);
138
+ while (true) {
139
+ const candidates = references.map((reference) => resolve(candidateRoot, reference));
140
+ if (candidates.every((candidate) => existsSync(candidate)))
141
+ return candidates;
142
+ const parent = dirname(candidateRoot);
143
+ if (parent === candidateRoot)
144
+ break;
145
+ candidateRoot = parent;
146
+ }
147
+ throw new Error(`Cannot resolve every support-policy release manifest from ${supportPolicyPath}.`);
148
+ }
99
149
  function formatResult(result) {
100
150
  const lines = [
101
151
  "Brandlab conformance",
@@ -122,7 +172,17 @@ function requireValue(argv, index, argument) {
122
172
  throw new Error(`${argument} requires a value.`);
123
173
  return value;
124
174
  }
125
- if (process.argv[1] && import.meta.url === pathToFileURL(resolve(process.argv[1])).href) {
175
+ export function isBrandlabConformanceCliEntrypoint(moduleUrl, argvPath) {
176
+ if (!argvPath)
177
+ return false;
178
+ try {
179
+ return realpathSync(fileURLToPath(moduleUrl)) === realpathSync(resolve(argvPath));
180
+ }
181
+ catch {
182
+ return false;
183
+ }
184
+ }
185
+ if (isBrandlabConformanceCliEntrypoint(import.meta.url, process.argv[1])) {
126
186
  process.exitCode = runBrandlabConformanceCli(process.argv.slice(2));
127
187
  }
128
188
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,uBAAuB,EACvB,6BAA6B,GAG9B,MAAM,cAAc,CAAC;AAkBtB,MAAM,IAAI,GAAG;;;;;;;;;;CAUZ,CAAC;AAEF,MAAM,UAAU,4BAA4B,CAAC,IAAuB;IAClE,MAAM,MAAM,GAAe;QACzB,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;QACnB,iBAAiB,EAAE,IAAI;QACvB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,KAAK;KACZ,CAAC;IAEF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/D,CAAC;aAAM,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;YAC3C,MAAM,CAAC,iBAAiB,GAAG,OAAO,CAChC,YAAY,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAChD,CAAC;QACJ,CAAC;aAAM,IAAI,QAAQ,KAAK,qBAAqB,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC;YACjE,MAAM,CAAC,gBAAgB,GAAG,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACjE,CAAC;aAAM,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;YAC9D,MAAM,CAAC,aAAa,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACzD,CAAC;aAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACpD,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;gBACjE,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,GAAG,CAAC,CAAC;YAC9C,CAAC;YACD,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,oBAAoB,QAAQ,GAAG,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,IAAuB,EACvB,KAAY;IACV,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;IAC9C,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;CAC/C;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAChB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,MAAM,GAAG,uBAAuB,CAAC;YACrC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,aAAa,EAAE,iBAAiB,CAAC,OAAO,CAAC,iBAAiB,CAAC;SAC5D,CAAC,CAAC;QACH,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QACxF,OAAO,6BAA6B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAClF,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAmB;IAC5C,IAAI,IAAI,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACpE,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAA0B,CAAC;IACzE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,MAAiC;IACrD,MAAM,KAAK,GAAG;QACZ,sBAAsB;QACtB,cAAc,MAAM,CAAC,gBAAgB,IAAI,WAAW,EAAE;QACtD,WAAW,MAAM,CAAC,aAAa,IAAI,MAAM,EAAE;QAC3C,gBAAgB,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;QACnD,cAAc,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;QAC/C,aAAa,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;KAC9C,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI;YAC3B,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG;YAC/D,CAAC,CAAC,EAAE,CAAC;QACP,KAAK,CAAC,IAAI,CACR,IAAI,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,MAAM,GAAG,QAAQ,KAAK,OAAO,CAAC,MAAM,EAAE,CAClG,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,aAAa,CAAC,OAAiD;IACtE,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,QAAQ,gBAAgB,OAAO,CAAC,QAAQ,gBAAgB,OAAO,CAAC,IAAI,OAAO,CAAC;AACnH,CAAC;AAED,SAAS,YAAY,CAAC,IAAuB,EAAE,KAAa,EAAE,QAAgB;IAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,oBAAoB,CAAC,CAAC;IACvF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxF,OAAO,CAAC,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { type BrandlabArchitectureConfigLike, type BrandlabArchitectureIssue, type BrandlabArchitectureReport } from "./vitest.js";
2
+ export type BrandlabLegacyArchitectureContract = "architecture-v1" | "architecture-v2";
3
+ export interface BrandlabLegacyArchitectureInspection {
4
+ contract: BrandlabLegacyArchitectureContract;
5
+ rulesetId: string;
6
+ report: BrandlabArchitectureReport;
7
+ issues: readonly BrandlabArchitectureIssue[];
8
+ }
9
+ /**
10
+ * Architecture v1 made only contract presence operationally blocking. The
11
+ * deeper architecture diagnosis existed, but did not become maintenance debt
12
+ * until architecture v2.
13
+ */
14
+ export declare const BRANDLAB_LEGACY_ARCHITECTURE_V1_RULESET_ID = "legacy-architecture-v1-config-presence@6e9dfbd25280f1092b6d88c71c4164e5e9a53d4e";
15
+ /**
16
+ * The v2 evaluator source is identical in Alpha.18, Alpha.19, Alpha.23 and
17
+ * RC.1. The evaluator depends on constants and helpers throughout vitest.ts,
18
+ * so that entire source module is the deliberate freeze boundary. Its digest
19
+ * is pinned by project.test.ts; later edits must introduce a new contract or
20
+ * immutable snapshot instead of silently becoming historical maintenance.
21
+ */
22
+ export declare const BRANDLAB_LEGACY_ARCHITECTURE_V2_RULESET_ID = "legacy-architecture-v2@sha256:5f4979b80552b98b9bb558a3bbce12001bf354b05ea9b979c638c2d1a6c4cdac";
23
+ export declare const BRANDLAB_LEGACY_ARCHITECTURE_V2_SOURCE_SHA256 = "5f4979b80552b98b9bb558a3bbce12001bf354b05ea9b979c638c2d1a6c4cdac";
24
+ export declare function inspectLegacyArchitectureContract(options: {
25
+ root: string;
26
+ architecture: BrandlabArchitectureConfigLike | null | undefined;
27
+ contract: BrandlabLegacyArchitectureContract;
28
+ }): BrandlabLegacyArchitectureInspection;
29
+ export declare function legacyArchitectureRulesetId(contract: string | null | undefined): string | null;
30
+ export declare function targetOnlyLegacyArchitectureIssues(installed: BrandlabLegacyArchitectureInspection | null, target: BrandlabLegacyArchitectureInspection): readonly BrandlabArchitectureIssue[];
31
+ //# sourceMappingURL=legacy-architecture-contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-architecture-contracts.d.ts","sourceRoot":"","sources":["../src/legacy-architecture-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,8BAA8B,EACnC,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAChC,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,kCAAkC,GAC1C,iBAAiB,GACjB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,oCAAoC;IACnD,QAAQ,EAAE,kCAAkC,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,0BAA0B,CAAC;IACnC,MAAM,EAAE,SAAS,yBAAyB,EAAE,CAAC;CAC9C;AAED;;;;GAIG;AACH,eAAO,MAAM,0CAA0C,oFAC4B,CAAC;AAEpF;;;;;;GAMG;AACH,eAAO,MAAM,0CAA0C,mGAC2C,CAAC;AAEnG,eAAO,MAAM,6CAA6C,qEACU,CAAC;AAMrE,wBAAgB,iCAAiC,CAAC,OAAO,EAAE;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,8BAA8B,GAAG,IAAI,GAAG,SAAS,CAAC;IAChE,QAAQ,EAAE,kCAAkC,CAAC;CAC9C,GAAG,oCAAoC,CAevC;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC,MAAM,GAAG,IAAI,CAQf;AAED,wBAAgB,kCAAkC,CAChD,SAAS,EAAE,oCAAoC,GAAG,IAAI,EACtD,MAAM,EAAE,oCAAoC,GAC3C,SAAS,yBAAyB,EAAE,CAKtC"}
@@ -0,0 +1,49 @@
1
+ import { evaluateBrandlabArchitecture, } from "./vitest.js";
2
+ /**
3
+ * Architecture v1 made only contract presence operationally blocking. The
4
+ * deeper architecture diagnosis existed, but did not become maintenance debt
5
+ * until architecture v2.
6
+ */
7
+ export const BRANDLAB_LEGACY_ARCHITECTURE_V1_RULESET_ID = "legacy-architecture-v1-config-presence@6e9dfbd25280f1092b6d88c71c4164e5e9a53d4e";
8
+ /**
9
+ * The v2 evaluator source is identical in Alpha.18, Alpha.19, Alpha.23 and
10
+ * RC.1. The evaluator depends on constants and helpers throughout vitest.ts,
11
+ * so that entire source module is the deliberate freeze boundary. Its digest
12
+ * is pinned by project.test.ts; later edits must introduce a new contract or
13
+ * immutable snapshot instead of silently becoming historical maintenance.
14
+ */
15
+ export const BRANDLAB_LEGACY_ARCHITECTURE_V2_RULESET_ID = "legacy-architecture-v2@sha256:5f4979b80552b98b9bb558a3bbce12001bf354b05ea9b979c638c2d1a6c4cdac";
16
+ export const BRANDLAB_LEGACY_ARCHITECTURE_V2_SOURCE_SHA256 = "5f4979b80552b98b9bb558a3bbce12001bf354b05ea9b979c638c2d1a6c4cdac";
17
+ const V1_MAINTENANCE_RULE_IDS = new Set([
18
+ "brandlab-architecture-config-missing",
19
+ ]);
20
+ export function inspectLegacyArchitectureContract(options) {
21
+ const report = evaluateBrandlabArchitecture({
22
+ root: options.root,
23
+ architecture: options.architecture,
24
+ });
25
+ return {
26
+ contract: options.contract,
27
+ rulesetId: options.contract === "architecture-v1"
28
+ ? BRANDLAB_LEGACY_ARCHITECTURE_V1_RULESET_ID
29
+ : BRANDLAB_LEGACY_ARCHITECTURE_V2_RULESET_ID,
30
+ report,
31
+ issues: options.contract === "architecture-v1"
32
+ ? report.issues.filter((issue) => V1_MAINTENANCE_RULE_IDS.has(issue.code))
33
+ : report.issues,
34
+ };
35
+ }
36
+ export function legacyArchitectureRulesetId(contract) {
37
+ if (contract === "architecture-v1") {
38
+ return BRANDLAB_LEGACY_ARCHITECTURE_V1_RULESET_ID;
39
+ }
40
+ if (contract === "architecture-v2") {
41
+ return BRANDLAB_LEGACY_ARCHITECTURE_V2_RULESET_ID;
42
+ }
43
+ return null;
44
+ }
45
+ export function targetOnlyLegacyArchitectureIssues(installed, target) {
46
+ const installedRuleIds = new Set((installed?.issues ?? []).map((issue) => issue.code));
47
+ return target.issues.filter((issue) => !installedRuleIds.has(issue.code));
48
+ }
49
+ //# sourceMappingURL=legacy-architecture-contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-architecture-contracts.js","sourceRoot":"","sources":["../src/legacy-architecture-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,GAI7B,MAAM,aAAa,CAAC;AAarB;;;;GAIG;AACH,MAAM,CAAC,MAAM,0CAA0C,GACrD,iFAAiF,CAAC;AAEpF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,0CAA0C,GACrD,gGAAgG,CAAC;AAEnG,MAAM,CAAC,MAAM,6CAA6C,GACxD,kEAAkE,CAAC;AAErE,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,sCAAsC;CACvC,CAAC,CAAC;AAEH,MAAM,UAAU,iCAAiC,CAAC,OAIjD;IACC,MAAM,MAAM,GAAG,4BAA4B,CAAC;QAC1C,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAC,CAAC;IACH,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,QAAQ,KAAK,iBAAiB;YAC/C,CAAC,CAAC,0CAA0C;YAC5C,CAAC,CAAC,0CAA0C;QAC9C,MAAM;QACN,MAAM,EAAE,OAAO,CAAC,QAAQ,KAAK,iBAAiB;YAC5C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1E,CAAC,CAAC,MAAM,CAAC,MAAM;KAClB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,QAAmC;IAEnC,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;QACnC,OAAO,0CAA0C,CAAC;IACpD,CAAC;IACD,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;QACnC,OAAO,0CAA0C,CAAC;IACpD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,SAAsD,EACtD,MAA4C;IAE5C,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAC9B,CAAC,SAAS,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CACrD,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5E,CAAC"}
@@ -0,0 +1,32 @@
1
+ export declare const BRANDLAB_CONFIG_V2_RULESET_ID = "project-config-v2@1.0.0-rc.1:5d6c4a9a27abd65e5a8e55d5f66145ff499ead7d";
2
+ export declare const BRANDLAB_CONFIG_V2_PROFILES: readonly ["next-local-service", "next-root-level", "next-static-legacy", "legacy-php"];
3
+ export interface InspectedBrandlabProjectConfig {
4
+ projectId: string;
5
+ profile: (typeof BRANDLAB_CONFIG_V2_PROFILES)[number];
6
+ routes: {
7
+ families: readonly string[];
8
+ };
9
+ capabilities: {
10
+ blogAdapter: string | null;
11
+ contactEnabled: boolean;
12
+ };
13
+ }
14
+ export interface BrandlabConfigV2Issue {
15
+ ruleId: string;
16
+ surface: string;
17
+ severity: "blocker" | "warning" | "info";
18
+ evidenceKind: "static" | "behavioural" | "runtime";
19
+ path?: string;
20
+ line?: number;
21
+ expected: string;
22
+ actual: string;
23
+ remediation: string;
24
+ }
25
+ export interface BrandlabConfigV2Inspection {
26
+ config: InspectedBrandlabProjectConfig | null;
27
+ imports: ReadonlySet<string>;
28
+ executableImports: ReadonlySet<string>;
29
+ issues: BrandlabConfigV2Issue[];
30
+ }
31
+ export declare function inspectBrandlabConfigV2(root: string): BrandlabConfigV2Inspection;
32
+ //# sourceMappingURL=project-config-v2-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-config-v2-contract.d.ts","sourceRoot":"","sources":["../src/project-config-v2-contract.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,6BAA6B,0EAC+B,CAAC;AAE1E,eAAO,MAAM,2BAA2B,wFAK9B,CAAC;AA0CX,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,EAAE;QACN,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;KAC7B,CAAC;IACF,YAAY,EAAE;QACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IACzC,YAAY,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAC;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,8BAA8B,GAAG,IAAI,CAAC;IAC9C,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,EAAE,qBAAqB,EAAE,CAAC;CACjC;AAqDD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,0BAA0B,CA2FhF"}