artifact-contracts 0.1.1 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +254 -2
- package/cli-contract.yaml +529 -0
- package/dist/agents/index.d.ts +3 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +2 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/orchestrator.d.ts +3 -0
- package/dist/agents/orchestrator.d.ts.map +1 -0
- package/dist/agents/orchestrator.js +109 -0
- package/dist/agents/orchestrator.js.map +1 -0
- package/dist/agents/types.d.ts +21 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +2 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/cli/audit.d.ts +12 -0
- package/dist/cli/audit.d.ts.map +1 -0
- package/dist/cli/audit.js +122 -0
- package/dist/cli/audit.js.map +1 -0
- package/dist/cli/explain.d.ts +5 -0
- package/dist/cli/explain.d.ts.map +1 -0
- package/dist/cli/explain.js +47 -0
- package/dist/cli/explain.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +35 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/list.d.ts +7 -0
- package/dist/cli/list.d.ts.map +1 -0
- package/dist/cli/list.js +49 -0
- package/dist/cli/list.js.map +1 -0
- package/dist/cli/resolve.d.ts +5 -0
- package/dist/cli/resolve.d.ts.map +1 -0
- package/dist/cli/resolve.js +21 -0
- package/dist/cli/resolve.js.map +1 -0
- package/dist/cli/validate.d.ts +5 -0
- package/dist/cli/validate.d.ts.map +1 -0
- package/dist/cli/validate.js +36 -0
- package/dist/cli/validate.js.map +1 -0
- package/dist/core/index.d.ts +10 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +6 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/lookup.d.ts +12 -0
- package/dist/core/lookup.d.ts.map +1 -0
- package/dist/core/lookup.js +24 -0
- package/dist/core/lookup.js.map +1 -0
- package/dist/core/matcher.d.ts +3 -0
- package/dist/core/matcher.d.ts.map +1 -0
- package/dist/core/matcher.js +14 -0
- package/dist/core/matcher.js.map +1 -0
- package/dist/core/resolver.d.ts +18 -0
- package/dist/core/resolver.d.ts.map +1 -0
- package/dist/core/resolver.js +98 -0
- package/dist/core/resolver.js.map +1 -0
- package/dist/core/schema.d.ts +160 -0
- package/dist/core/schema.d.ts.map +1 -0
- package/dist/core/schema.js +69 -0
- package/dist/core/schema.js.map +1 -0
- package/dist/core/validator.d.ts +16 -0
- package/dist/core/validator.d.ts.map +1 -0
- package/dist/core/validator.js +86 -0
- package/dist/core/validator.js.map +1 -0
- package/dist/generated/commands.d.ts +2 -0
- package/dist/generated/commands.d.ts.map +1 -0
- package/dist/generated/commands.js +2 -0
- package/dist/generated/commands.js.map +1 -0
- package/dist/generated/dsl/agents.d.ts +34 -0
- package/dist/generated/dsl/agents.d.ts.map +1 -0
- package/dist/generated/dsl/agents.js +42 -0
- package/dist/generated/dsl/agents.js.map +1 -0
- package/dist/generated/dsl/handoffs.d.ts +339 -0
- package/dist/generated/dsl/handoffs.d.ts.map +1 -0
- package/dist/generated/dsl/handoffs.js +74 -0
- package/dist/generated/dsl/handoffs.js.map +1 -0
- package/dist/generated/dsl/index.d.ts +13 -0
- package/dist/generated/dsl/index.d.ts.map +1 -0
- package/dist/generated/dsl/index.js +10 -0
- package/dist/generated/dsl/index.js.map +1 -0
- package/dist/generated/dsl/tasks.d.ts +23 -0
- package/dist/generated/dsl/tasks.d.ts.map +1 -0
- package/dist/generated/dsl/tasks.js +25 -0
- package/dist/generated/dsl/tasks.js.map +1 -0
- package/dist/generated/dsl/workflows.d.ts +31 -0
- package/dist/generated/dsl/workflows.d.ts.map +1 -0
- package/dist/generated/dsl/workflows.js +32 -0
- package/dist/generated/dsl/workflows.js.map +1 -0
- package/dist/generated/index.d.ts +7 -0
- package/dist/generated/index.d.ts.map +1 -0
- package/dist/generated/index.js +7 -0
- package/dist/generated/index.js.map +1 -0
- package/dist/generated/policy-runtime.d.ts +114 -0
- package/dist/generated/policy-runtime.d.ts.map +1 -0
- package/dist/generated/policy-runtime.js +195 -0
- package/dist/generated/policy-runtime.js.map +1 -0
- package/dist/generated/policy.d.ts +146 -0
- package/dist/generated/policy.d.ts.map +1 -0
- package/dist/generated/policy.js +236 -0
- package/dist/generated/policy.js.map +1 -0
- package/dist/generated/program.d.ts +33 -0
- package/dist/generated/program.d.ts.map +1 -0
- package/dist/generated/program.js +92 -0
- package/dist/generated/program.js.map +1 -0
- package/dist/generated/schemas.d.ts +471 -0
- package/dist/generated/schemas.d.ts.map +1 -0
- package/dist/generated/schemas.js +640 -0
- package/dist/generated/schemas.js.map +1 -0
- package/dist/generated/types.d.ts +187 -0
- package/dist/generated/types.d.ts.map +1 -0
- package/dist/generated/types.js +3 -0
- package/dist/generated/types.js.map +1 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -5
- package/dist/index.js.map +1 -0
- package/package.json +47 -10
- package/schemas/2026A.config.json +47 -0
- package/schemas/2026A.json +116 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface AuditOptions {
|
|
2
|
+
config?: string;
|
|
3
|
+
adapter?: string;
|
|
4
|
+
model?: string;
|
|
5
|
+
showPrompt?: boolean;
|
|
6
|
+
dryRun?: boolean;
|
|
7
|
+
failOn?: string;
|
|
8
|
+
output?: string;
|
|
9
|
+
reportFormat?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function handleAudit(options: AuditOptions): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=audit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/cli/audit.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAqDtE"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { writeFileSync } from "node:fs";
|
|
2
|
+
import { stringify as yamlStringify } from "yaml";
|
|
3
|
+
import { loadDocument, resolveDocument } from "../core/index.js";
|
|
4
|
+
const EXIT_FINDINGS = 10;
|
|
5
|
+
const EXIT_RUNTIME_MISSING = 11;
|
|
6
|
+
const EXIT_ADAPTER_ERROR = 12;
|
|
7
|
+
export async function handleAudit(options) {
|
|
8
|
+
let loadResult;
|
|
9
|
+
try {
|
|
10
|
+
loadResult = loadDocument(options.config);
|
|
11
|
+
}
|
|
12
|
+
catch (err) {
|
|
13
|
+
process.stderr.write(`Error: ${err.message}\n`);
|
|
14
|
+
process.exit(3);
|
|
15
|
+
}
|
|
16
|
+
const resolved = resolveDocument(loadResult);
|
|
17
|
+
const context = buildAuditContext(resolved);
|
|
18
|
+
if (options.showPrompt || options.dryRun) {
|
|
19
|
+
console.log(context);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const { runAgentTask } = await import("../agents/orchestrator.js");
|
|
23
|
+
let result;
|
|
24
|
+
try {
|
|
25
|
+
result = await runAgentTask(context, "audit-artifact-definitions", {
|
|
26
|
+
adapter: options.adapter ?? "mock",
|
|
27
|
+
model: options.model,
|
|
28
|
+
}, {
|
|
29
|
+
dryRun: false,
|
|
30
|
+
failOn: options.failOn ?? "error",
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
const exitCode = err.exitCode;
|
|
35
|
+
if (exitCode === EXIT_RUNTIME_MISSING) {
|
|
36
|
+
process.stderr.write(err.message + "\n");
|
|
37
|
+
process.exit(EXIT_RUNTIME_MISSING);
|
|
38
|
+
}
|
|
39
|
+
if (exitCode === EXIT_ADAPTER_ERROR) {
|
|
40
|
+
process.stderr.write(`Adapter error: ${err.message}\n`);
|
|
41
|
+
process.exit(EXIT_ADAPTER_ERROR);
|
|
42
|
+
}
|
|
43
|
+
throw err;
|
|
44
|
+
}
|
|
45
|
+
const fmt = options.reportFormat ?? "text";
|
|
46
|
+
const content = formatResult(result, fmt);
|
|
47
|
+
if (options.output) {
|
|
48
|
+
writeFileSync(options.output, content, "utf-8");
|
|
49
|
+
process.stderr.write(`Report written to ${options.output}\n`);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
console.log(content);
|
|
53
|
+
}
|
|
54
|
+
const exitCode = computeExitCode(result, options.failOn ?? "error");
|
|
55
|
+
if (exitCode !== 0)
|
|
56
|
+
process.exit(exitCode);
|
|
57
|
+
}
|
|
58
|
+
function buildAuditContext(resolved) {
|
|
59
|
+
const lines = [
|
|
60
|
+
"# Artifact Definitions Audit",
|
|
61
|
+
"",
|
|
62
|
+
`## System: ${resolved.system.id}`,
|
|
63
|
+
resolved.system.name ? `Name: ${resolved.system.name}` : "",
|
|
64
|
+
"",
|
|
65
|
+
`## Artifacts (${Object.keys(resolved.artifacts).length} total)`,
|
|
66
|
+
"",
|
|
67
|
+
];
|
|
68
|
+
for (const [id, artifact] of Object.entries(resolved.artifacts)) {
|
|
69
|
+
lines.push(`### ${id}`);
|
|
70
|
+
lines.push(`- type: ${artifact.type}`);
|
|
71
|
+
lines.push(`- authority: ${artifact.authority}`);
|
|
72
|
+
lines.push(`- manual_edit: ${artifact.manual_edit}`);
|
|
73
|
+
lines.push(`- change_control: ${artifact.change_control}`);
|
|
74
|
+
lines.push(`- path_patterns: ${artifact.path_patterns.join(", ")}`);
|
|
75
|
+
if (artifact.exclude_patterns?.length) {
|
|
76
|
+
lines.push(`- exclude_patterns: ${artifact.exclude_patterns.join(", ")}`);
|
|
77
|
+
}
|
|
78
|
+
if (artifact.description) {
|
|
79
|
+
lines.push(`- description: ${artifact.description}`);
|
|
80
|
+
}
|
|
81
|
+
lines.push("");
|
|
82
|
+
}
|
|
83
|
+
lines.push("## Instructions");
|
|
84
|
+
lines.push("");
|
|
85
|
+
lines.push("Analyze these artifact definitions for:");
|
|
86
|
+
lines.push("1. Naming consistency (kebab-case, descriptive IDs)");
|
|
87
|
+
lines.push("2. Authority appropriateness for each artifact type");
|
|
88
|
+
lines.push("3. Missing common file types that should be tracked");
|
|
89
|
+
lines.push("4. Potential path_patterns overlaps or gaps");
|
|
90
|
+
lines.push("5. Appropriate manual_edit / change_control settings");
|
|
91
|
+
lines.push("");
|
|
92
|
+
return lines.filter((l) => l !== undefined).join("\n");
|
|
93
|
+
}
|
|
94
|
+
function formatResult(result, fmt) {
|
|
95
|
+
if (result.status === "error") {
|
|
96
|
+
const msg = result.errorMessage ?? "Unknown error";
|
|
97
|
+
if (fmt === "json")
|
|
98
|
+
return JSON.stringify({ error: msg }, null, 2);
|
|
99
|
+
if (fmt === "yaml")
|
|
100
|
+
return yamlStringify({ error: msg });
|
|
101
|
+
return `Error: ${msg}`;
|
|
102
|
+
}
|
|
103
|
+
if (fmt === "json")
|
|
104
|
+
return JSON.stringify(result.data ?? result.raw, null, 2);
|
|
105
|
+
if (fmt === "yaml")
|
|
106
|
+
return yamlStringify(result.data ?? result.raw);
|
|
107
|
+
return result.raw || JSON.stringify(result.data, null, 2);
|
|
108
|
+
}
|
|
109
|
+
function computeExitCode(result, failOn) {
|
|
110
|
+
if (result.status !== "success")
|
|
111
|
+
return 1;
|
|
112
|
+
const data = result.data;
|
|
113
|
+
if (!data?.findings)
|
|
114
|
+
return 0;
|
|
115
|
+
const levels = ["info", "warning", "error", "critical"];
|
|
116
|
+
const threshold = levels.indexOf(failOn);
|
|
117
|
+
if (threshold < 0)
|
|
118
|
+
return 0;
|
|
119
|
+
const hasBlockingFindings = data.findings.some((f) => levels.indexOf(f.severity) >= threshold);
|
|
120
|
+
return hasBlockingFindings ? EXIT_FINDINGS : 0;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/cli/audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explain.d.ts","sourceRoot":"","sources":["../../src/cli/explain.ts"],"names":[],"mappings":"AAGA,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5C,OAAO,CAAC,IAAI,CAAC,CAiDf"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { stringify as yamlStringify } from "yaml";
|
|
2
|
+
import { loadDocument, resolveDocument, lookupByPath } from "../core/index.js";
|
|
3
|
+
export async function handleExplain(filePath, options) {
|
|
4
|
+
let loadResult;
|
|
5
|
+
try {
|
|
6
|
+
loadResult = loadDocument(options.config);
|
|
7
|
+
}
|
|
8
|
+
catch (err) {
|
|
9
|
+
process.stderr.write(`Error: ${err.message}\n`);
|
|
10
|
+
process.exit(3);
|
|
11
|
+
}
|
|
12
|
+
const resolved = resolveDocument(loadResult);
|
|
13
|
+
const matches = lookupByPath(filePath, resolved.artifacts);
|
|
14
|
+
if (matches.length === 0) {
|
|
15
|
+
process.stderr.write(`No artifact matches: ${filePath}\n`);
|
|
16
|
+
process.exit(4);
|
|
17
|
+
}
|
|
18
|
+
if (matches.length > 1) {
|
|
19
|
+
process.stderr.write(`Overlap detected: ${filePath}\n`);
|
|
20
|
+
process.stderr.write(` matches: ${matches.map((m) => m.id).join(", ")}\n`);
|
|
21
|
+
process.stderr.write(" Use exclude_patterns to resolve the ambiguity.\n");
|
|
22
|
+
process.exit(2);
|
|
23
|
+
}
|
|
24
|
+
const { id, artifact } = matches[0];
|
|
25
|
+
const format = options.format ?? "text";
|
|
26
|
+
if (format === "json") {
|
|
27
|
+
console.log(JSON.stringify({ id, ...artifact }, null, 2));
|
|
28
|
+
}
|
|
29
|
+
else if (format === "yaml") {
|
|
30
|
+
console.log(yamlStringify({ [id]: artifact }));
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
console.log(filePath);
|
|
34
|
+
console.log(` artifact: ${id}`);
|
|
35
|
+
console.log(` type: ${artifact.type}`);
|
|
36
|
+
console.log(` authority: ${artifact.authority}`);
|
|
37
|
+
console.log(` manual edit: ${artifact.manual_edit}`);
|
|
38
|
+
console.log(` change control: ${artifact.change_control}`);
|
|
39
|
+
if (artifact.visibility !== "internal") {
|
|
40
|
+
console.log(` visibility: ${artifact.visibility}`);
|
|
41
|
+
}
|
|
42
|
+
if (artifact.description) {
|
|
43
|
+
console.log(` description: ${artifact.description}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=explain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explain.js","sourceRoot":"","sources":["../../src/cli/explain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { readFileSync } from "node:fs";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
import { dirname, resolve } from "node:path";
|
|
5
|
+
import { createProgram } from "../generated/program.js";
|
|
6
|
+
import { handleValidate } from "./validate.js";
|
|
7
|
+
import { handleResolve } from "./resolve.js";
|
|
8
|
+
import { handleList } from "./list.js";
|
|
9
|
+
import { handleExplain } from "./explain.js";
|
|
10
|
+
import { handleAudit } from "./audit.js";
|
|
11
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
12
|
+
const pkg = JSON.parse(readFileSync(resolve(__dirname, "../../package.json"), "utf-8"));
|
|
13
|
+
const handlers = {
|
|
14
|
+
validate: async (opts) => {
|
|
15
|
+
await handleValidate(opts);
|
|
16
|
+
},
|
|
17
|
+
resolve: async (opts) => {
|
|
18
|
+
await handleResolve(opts);
|
|
19
|
+
},
|
|
20
|
+
list: async (opts) => {
|
|
21
|
+
await handleList(opts);
|
|
22
|
+
},
|
|
23
|
+
explain: async (path, opts) => {
|
|
24
|
+
if (!path) {
|
|
25
|
+
console.error("Error: <path> argument is required");
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
await handleExplain(path, opts);
|
|
29
|
+
},
|
|
30
|
+
audit: async (opts) => {
|
|
31
|
+
await handleAudit(opts);
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
createProgram(handlers, pkg.version).parse();
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAwB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC,CACzC,CAAC;AAEzB,MAAM,QAAQ,GAAoB;IAChC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACnB,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACpB,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF,CAAC;AAEF,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/cli/list.ts"],"names":[],"mappings":"AAQA,wBAAsB,UAAU,CAAC,OAAO,EAAE;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDhB"}
|
package/dist/cli/list.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { stringify as yamlStringify } from "yaml";
|
|
2
|
+
import { loadDocument, resolveDocument, lookupByPath, } from "../core/index.js";
|
|
3
|
+
export async function handleList(options) {
|
|
4
|
+
let loadResult;
|
|
5
|
+
try {
|
|
6
|
+
loadResult = loadDocument(options.config);
|
|
7
|
+
}
|
|
8
|
+
catch (err) {
|
|
9
|
+
process.stderr.write(`Error: ${err.message}\n`);
|
|
10
|
+
process.exit(3);
|
|
11
|
+
}
|
|
12
|
+
const resolved = resolveDocument(loadResult);
|
|
13
|
+
let entries = Object.entries(resolved.artifacts);
|
|
14
|
+
if (options.authority) {
|
|
15
|
+
entries = entries.filter(([, a]) => a.authority === options.authority);
|
|
16
|
+
}
|
|
17
|
+
if (options.path) {
|
|
18
|
+
const matches = lookupByPath(options.path, resolved.artifacts);
|
|
19
|
+
entries = matches.map((m) => [m.id, m.artifact]);
|
|
20
|
+
}
|
|
21
|
+
const format = options.format ?? "text";
|
|
22
|
+
if (format === "json") {
|
|
23
|
+
const obj = Object.fromEntries(entries);
|
|
24
|
+
console.log(JSON.stringify(obj, null, 2));
|
|
25
|
+
}
|
|
26
|
+
else if (format === "yaml") {
|
|
27
|
+
const obj = Object.fromEntries(entries);
|
|
28
|
+
console.log(yamlStringify(obj));
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
if (entries.length === 0) {
|
|
32
|
+
console.log("No artifacts found.");
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
for (const [id, artifact] of entries) {
|
|
36
|
+
const desc = artifact.description ? ` — ${artifact.description}` : "";
|
|
37
|
+
console.log(`${id} [${artifact.authority}]${desc}`);
|
|
38
|
+
console.log(` type: ${artifact.type}`);
|
|
39
|
+
console.log(` manual_edit: ${artifact.manual_edit}`);
|
|
40
|
+
console.log(` change_control: ${artifact.change_control}`);
|
|
41
|
+
console.log(` path_patterns: ${artifact.path_patterns.join(", ")}`);
|
|
42
|
+
if (artifact.exclude_patterns?.length) {
|
|
43
|
+
console.log(` exclude_patterns: ${artifact.exclude_patterns.join(", ")}`);
|
|
44
|
+
}
|
|
45
|
+
console.log();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/cli/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/cli/resolve.ts"],"names":[],"mappings":"AAGA,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBhB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { stringify as yamlStringify } from "yaml";
|
|
2
|
+
import { loadDocument, resolveDocument } from "../core/index.js";
|
|
3
|
+
export async function handleResolve(options) {
|
|
4
|
+
let loadResult;
|
|
5
|
+
try {
|
|
6
|
+
loadResult = loadDocument(options.config);
|
|
7
|
+
}
|
|
8
|
+
catch (err) {
|
|
9
|
+
process.stderr.write(`Error: ${err.message}\n`);
|
|
10
|
+
process.exit(3);
|
|
11
|
+
}
|
|
12
|
+
const resolved = resolveDocument(loadResult);
|
|
13
|
+
const format = options.format ?? "yaml";
|
|
14
|
+
if (format === "json") {
|
|
15
|
+
console.log(JSON.stringify(resolved, null, 2));
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
console.log(yamlStringify(resolved));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/cli/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAGnC;IACC,IAAI,UAAU,CAAC;IACf,IAAI,CAAC;QACH,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAW,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;IACxC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/cli/validate.ts"],"names":[],"mappings":"AAEA,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoChB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { loadDocument, validateDocument } from "../core/index.js";
|
|
2
|
+
export async function handleValidate(options) {
|
|
3
|
+
let loadResult;
|
|
4
|
+
try {
|
|
5
|
+
loadResult = loadDocument(options.config);
|
|
6
|
+
}
|
|
7
|
+
catch (err) {
|
|
8
|
+
process.stderr.write(`Error: ${err.message}\n`);
|
|
9
|
+
process.exit(3);
|
|
10
|
+
}
|
|
11
|
+
const result = await validateDocument(loadResult, {
|
|
12
|
+
checkFiles: options.checkFiles,
|
|
13
|
+
});
|
|
14
|
+
if (result.valid) {
|
|
15
|
+
process.stderr.write("✓ Validation passed\n");
|
|
16
|
+
if (options.checkFiles) {
|
|
17
|
+
process.stderr.write("✓ No file overlaps detected\n");
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
const hasOverlaps = result.overlaps.length > 0;
|
|
22
|
+
const hasSchemaErrors = result.diagnostics.some((d) => d.severity === "error" && !result.overlaps.some((o) => d.path === o.path));
|
|
23
|
+
process.stderr.write("✗ Validation failed\n\n");
|
|
24
|
+
for (const d of result.diagnostics) {
|
|
25
|
+
const prefix = d.severity === "error" ? "ERROR" : "WARN";
|
|
26
|
+
process.stderr.write(` ${prefix}: ${d.message}\n`);
|
|
27
|
+
if (d.path)
|
|
28
|
+
process.stderr.write(` at ${d.path}\n`);
|
|
29
|
+
}
|
|
30
|
+
if (hasOverlaps && !hasSchemaErrors) {
|
|
31
|
+
process.exit(2);
|
|
32
|
+
}
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/cli/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAElE,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAGpC;IACC,IAAI,UAAU,CAAC;IACf,IAAI,CAAC;QACH,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAW,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,UAAU,EAAE;QAChD,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC9C,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/C,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CACjF,CAAC;QAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAChD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YACzD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,CAAC,IAAI;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,WAAW,IAAI,CAAC,eAAe,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { ArtifactContractsDocumentSchema, ArtifactContractsConfigSchema, ArtifactDefinitionSchema, SystemSchema, AuthoritySchema, ManualEditSchema, ChangeControlSchema, VisibilitySchema, ARTIFACT_ID_PATTERN, applyDefaults, } from "./schema.js";
|
|
2
|
+
export type { Authority, ManualEdit, ChangeControl, Visibility, ArtifactDefinition, ArtifactContractsDocument, ArtifactContractsConfig, ResolvedArtifact, } from "./schema.js";
|
|
3
|
+
export { loadConfig, loadDocument, resolveDocument, } from "./resolver.js";
|
|
4
|
+
export type { LoadResult, ResolvedDocument } from "./resolver.js";
|
|
5
|
+
export { matchesArtifact } from "./matcher.js";
|
|
6
|
+
export { lookupByPath, detectOverlaps, } from "./lookup.js";
|
|
7
|
+
export type { LookupResult, LookupOverlap } from "./lookup.js";
|
|
8
|
+
export { validateDocument } from "./validator.js";
|
|
9
|
+
export type { Diagnostic, ValidationResult } from "./validator.js";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC7B,wBAAwB,EACxB,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,SAAS,EACT,UAAU,EACV,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,yBAAyB,EACzB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,UAAU,EACV,YAAY,EACZ,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EACL,YAAY,EACZ,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { ArtifactContractsDocumentSchema, ArtifactContractsConfigSchema, ArtifactDefinitionSchema, SystemSchema, AuthoritySchema, ManualEditSchema, ChangeControlSchema, VisibilitySchema, ARTIFACT_ID_PATTERN, applyDefaults, } from "./schema.js";
|
|
2
|
+
export { loadConfig, loadDocument, resolveDocument, } from "./resolver.js";
|
|
3
|
+
export { matchesArtifact } from "./matcher.js";
|
|
4
|
+
export { lookupByPath, detectOverlaps, } from "./lookup.js";
|
|
5
|
+
export { validateDocument } from "./validator.js";
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC7B,wBAAwB,EACxB,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,GACd,MAAM,aAAa,CAAC;AAarB,OAAO,EACL,UAAU,EACV,YAAY,EACZ,eAAe,GAChB,MAAM,eAAe,CAAC;AAIvB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EACL,YAAY,EACZ,cAAc,GACf,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ResolvedArtifact } from "./schema.js";
|
|
2
|
+
export interface LookupResult {
|
|
3
|
+
id: string;
|
|
4
|
+
artifact: ResolvedArtifact;
|
|
5
|
+
}
|
|
6
|
+
export interface LookupOverlap {
|
|
7
|
+
path: string;
|
|
8
|
+
matchingArtifacts: string[];
|
|
9
|
+
}
|
|
10
|
+
export declare function lookupByPath(filePath: string, artifacts: Record<string, ResolvedArtifact>): LookupResult[];
|
|
11
|
+
export declare function detectOverlaps(filePaths: string[], artifacts: Record<string, ResolvedArtifact>): LookupOverlap[];
|
|
12
|
+
//# sourceMappingURL=lookup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../src/core/lookup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAC1C,YAAY,EAAE,CAUhB;AAED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAC1C,aAAa,EAAE,CAcjB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { matchesArtifact } from "./matcher.js";
|
|
2
|
+
export function lookupByPath(filePath, artifacts) {
|
|
3
|
+
const matches = [];
|
|
4
|
+
for (const [id, artifact] of Object.entries(artifacts)) {
|
|
5
|
+
if (matchesArtifact(filePath, artifact)) {
|
|
6
|
+
matches.push({ id, artifact });
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
return matches;
|
|
10
|
+
}
|
|
11
|
+
export function detectOverlaps(filePaths, artifacts) {
|
|
12
|
+
const overlaps = [];
|
|
13
|
+
for (const filePath of filePaths) {
|
|
14
|
+
const matches = lookupByPath(filePath, artifacts);
|
|
15
|
+
if (matches.length > 1) {
|
|
16
|
+
overlaps.push({
|
|
17
|
+
path: filePath,
|
|
18
|
+
matchingArtifacts: matches.map((m) => m.id),
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return overlaps;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=lookup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/core/lookup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAY/C,MAAM,UAAU,YAAY,CAC1B,QAAgB,EAChB,SAA2C;IAE3C,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,KAAK,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACvD,IAAI,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,SAAmB,EACnB,SAA2C;IAE3C,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAClD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,QAAQ;gBACd,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../../src/core/matcher.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAExE,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,kBAAkB,GAAG,gBAAgB,GAC9C,OAAO,CAgBT"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { minimatch } from "minimatch";
|
|
2
|
+
export function matchesArtifact(filePath, artifact) {
|
|
3
|
+
const normalizedPath = filePath.replace(/\\/g, "/");
|
|
4
|
+
const included = artifact.path_patterns.some((pattern) => minimatch(normalizedPath, pattern, { dot: true }));
|
|
5
|
+
if (!included)
|
|
6
|
+
return false;
|
|
7
|
+
if (artifact.exclude_patterns) {
|
|
8
|
+
const excluded = artifact.exclude_patterns.some((pattern) => minimatch(normalizedPath, pattern, { dot: true }));
|
|
9
|
+
if (excluded)
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=matcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matcher.js","sourceRoot":"","sources":["../../src/core/matcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,QAA+C;IAE/C,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAEpD,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CACvD,SAAS,CAAC,cAAc,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAClD,CAAC;IACF,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5B,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAC1D,SAAS,CAAC,cAAc,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAClD,CAAC;QACF,IAAI,QAAQ;YAAE,OAAO,KAAK,CAAC;IAC7B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type ArtifactContractsDocument, type ArtifactContractsConfig, type ResolvedArtifact } from "./schema.js";
|
|
2
|
+
export interface LoadResult {
|
|
3
|
+
document: ArtifactContractsDocument;
|
|
4
|
+
config: ArtifactContractsConfig | null;
|
|
5
|
+
configDir: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ResolvedDocument {
|
|
8
|
+
artifactContracts: string;
|
|
9
|
+
system: {
|
|
10
|
+
id: string;
|
|
11
|
+
name?: string;
|
|
12
|
+
};
|
|
13
|
+
artifacts: Record<string, ResolvedArtifact>;
|
|
14
|
+
}
|
|
15
|
+
export declare function loadConfig(configPath?: string): ArtifactContractsConfig | null;
|
|
16
|
+
export declare function loadDocument(configPath?: string): LoadResult;
|
|
17
|
+
export declare function resolveDocument(result: LoadResult): ResolvedDocument;
|
|
18
|
+
//# sourceMappingURL=resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/core/resolver.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAE5B,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,yBAAyB,CAAC;IACpC,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC7C;AAED,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,uBAAuB,GAAG,IAAI,CAkB9E;AAED,wBAAgB,YAAY,CAC1B,UAAU,CAAC,EAAE,MAAM,GAClB,UAAU,CAmBZ;AAuDD,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,gBAAgB,CAapE"}
|