qfai 0.2.5 → 0.2.6

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 (127) hide show
  1. package/README.md +1 -1
  2. package/assets/init/.qfai/README.md +42 -0
  3. package/assets/init/.qfai/contracts/README.md +59 -0
  4. package/assets/init/{qfai → .qfai}/contracts/api/api-0001-sample.yaml +3 -0
  5. package/assets/init/{qfai → .qfai}/contracts/db/db-0001-sample.sql +3 -2
  6. package/assets/init/.qfai/contracts/ui/ui-0001-sample.yaml +6 -0
  7. package/assets/init/.qfai/out/README.md +17 -0
  8. package/assets/init/.qfai/prompts/README.md +32 -0
  9. package/assets/init/{qfai → .qfai}/prompts/makeBusinessFlow.md +1 -1
  10. package/assets/init/{qfai → .qfai}/prompts/makeOverview.md +1 -1
  11. package/assets/init/.qfai/spec/README.md +77 -0
  12. package/assets/init/.qfai/spec/decisions/ADR-0001.md +9 -0
  13. package/assets/init/.qfai/spec/decisions/README.md +36 -0
  14. package/assets/init/.qfai/spec/scenarios/scenarios.feature +6 -0
  15. package/assets/init/.qfai/spec/spec-0001-sample.md +36 -0
  16. package/assets/init/root/qfai.config.yaml +8 -8
  17. package/dist/cli/index.cjs +16 -16
  18. package/dist/cli/index.cjs.map +1 -1
  19. package/dist/cli/index.d.ts +0 -2
  20. package/dist/cli/index.mjs +16 -16
  21. package/dist/cli/index.mjs.map +1 -1
  22. package/dist/index.cjs +14 -14
  23. package/dist/index.cjs.map +1 -1
  24. package/dist/index.d.ts +132 -2
  25. package/dist/index.mjs +14 -14
  26. package/dist/index.mjs.map +1 -1
  27. package/package.json +1 -1
  28. package/assets/init/qfai/README.md +0 -6
  29. package/assets/init/qfai/contracts/ui/ui-0001-sample.yaml +0 -4
  30. package/assets/init/qfai/spec/decisions/ADR-0001.md +0 -7
  31. package/assets/init/qfai/spec/scenarios.feature +0 -6
  32. package/assets/init/qfai/spec/spec-0001-sample.md +0 -29
  33. package/dist/cli/commands/init.d.ts +0 -8
  34. package/dist/cli/commands/init.d.ts.map +0 -1
  35. package/dist/cli/commands/init.js +0 -30
  36. package/dist/cli/commands/init.js.map +0 -1
  37. package/dist/cli/commands/report.d.ts +0 -8
  38. package/dist/cli/commands/report.d.ts.map +0 -1
  39. package/dist/cli/commands/report.js +0 -83
  40. package/dist/cli/commands/report.js.map +0 -1
  41. package/dist/cli/commands/validate.d.ts +0 -10
  42. package/dist/cli/commands/validate.d.ts.map +0 -1
  43. package/dist/cli/commands/validate.js +0 -66
  44. package/dist/cli/commands/validate.js.map +0 -1
  45. package/dist/cli/index.d.ts.map +0 -1
  46. package/dist/cli/index.js +0 -7
  47. package/dist/cli/index.js.map +0 -1
  48. package/dist/cli/lib/args.d.ts +0 -19
  49. package/dist/cli/lib/args.d.ts.map +0 -1
  50. package/dist/cli/lib/args.js +0 -107
  51. package/dist/cli/lib/args.js.map +0 -1
  52. package/dist/cli/lib/assets.d.ts +0 -2
  53. package/dist/cli/lib/assets.d.ts.map +0 -1
  54. package/dist/cli/lib/assets.js +0 -8
  55. package/dist/cli/lib/assets.js.map +0 -1
  56. package/dist/cli/lib/failOn.d.ts +0 -5
  57. package/dist/cli/lib/failOn.d.ts.map +0 -1
  58. package/dist/cli/lib/failOn.js +0 -10
  59. package/dist/cli/lib/failOn.js.map +0 -1
  60. package/dist/cli/lib/fs.d.ts +0 -11
  61. package/dist/cli/lib/fs.d.ts.map +0 -1
  62. package/dist/cli/lib/fs.js +0 -91
  63. package/dist/cli/lib/fs.js.map +0 -1
  64. package/dist/cli/lib/logger.d.ts +0 -4
  65. package/dist/cli/lib/logger.d.ts.map +0 -1
  66. package/dist/cli/lib/logger.js +0 -10
  67. package/dist/cli/lib/logger.js.map +0 -1
  68. package/dist/cli/main.d.ts +0 -2
  69. package/dist/cli/main.d.ts.map +0 -1
  70. package/dist/cli/main.js +0 -73
  71. package/dist/cli/main.js.map +0 -1
  72. package/dist/core/config.d.ts +0 -46
  73. package/dist/core/config.d.ts.map +0 -1
  74. package/dist/core/config.js +0 -224
  75. package/dist/core/config.js.map +0 -1
  76. package/dist/core/discovery.d.ts +0 -11
  77. package/dist/core/discovery.d.ts.map +0 -1
  78. package/dist/core/discovery.js +0 -31
  79. package/dist/core/discovery.js.map +0 -1
  80. package/dist/core/fs.d.ts +0 -6
  81. package/dist/core/fs.d.ts.map +0 -1
  82. package/dist/core/fs.js +0 -55
  83. package/dist/core/fs.js.map +0 -1
  84. package/dist/core/ids.d.ts +0 -5
  85. package/dist/core/ids.d.ts.map +0 -1
  86. package/dist/core/ids.js +0 -49
  87. package/dist/core/ids.js.map +0 -1
  88. package/dist/core/index.d.ts +0 -11
  89. package/dist/core/index.d.ts.map +0 -1
  90. package/dist/core/index.js +0 -11
  91. package/dist/core/index.js.map +0 -1
  92. package/dist/core/report.d.ts +0 -41
  93. package/dist/core/report.d.ts.map +0 -1
  94. package/dist/core/report.js +0 -238
  95. package/dist/core/report.js.map +0 -1
  96. package/dist/core/types.d.ts +0 -27
  97. package/dist/core/types.d.ts.map +0 -1
  98. package/dist/core/types.js +0 -2
  99. package/dist/core/types.js.map +0 -1
  100. package/dist/core/validate.d.ts +0 -4
  101. package/dist/core/validate.d.ts.map +0 -1
  102. package/dist/core/validate.js +0 -32
  103. package/dist/core/validate.js.map +0 -1
  104. package/dist/core/validators/contracts.d.ts +0 -5
  105. package/dist/core/validators/contracts.d.ts.map +0 -1
  106. package/dist/core/validators/contracts.js +0 -157
  107. package/dist/core/validators/contracts.js.map +0 -1
  108. package/dist/core/validators/scenario.d.ts +0 -5
  109. package/dist/core/validators/scenario.d.ts.map +0 -1
  110. package/dist/core/validators/scenario.js +0 -82
  111. package/dist/core/validators/scenario.js.map +0 -1
  112. package/dist/core/validators/spec.d.ts +0 -5
  113. package/dist/core/validators/spec.d.ts.map +0 -1
  114. package/dist/core/validators/spec.js +0 -69
  115. package/dist/core/validators/spec.js.map +0 -1
  116. package/dist/core/validators/traceability.d.ts +0 -4
  117. package/dist/core/validators/traceability.d.ts.map +0 -1
  118. package/dist/core/validators/traceability.js +0 -148
  119. package/dist/core/validators/traceability.js.map +0 -1
  120. package/dist/core/version.d.ts +0 -2
  121. package/dist/core/version.d.ts.map +0 -1
  122. package/dist/core/version.js +0 -25
  123. package/dist/core/version.js.map +0 -1
  124. package/dist/index.d.ts.map +0 -1
  125. package/dist/index.js +0 -2
  126. package/dist/index.js.map +0 -1
  127. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../../../src/cli/commands/report.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import type { FailOn, OutputFormat } from "../../core/config.js";
2
- export type ValidateOptions = {
3
- root: string;
4
- strict: boolean;
5
- failOn?: FailOn;
6
- format?: OutputFormat;
7
- jsonPath?: string;
8
- };
9
- export declare function runValidate(options: ValidateOptions): Promise<number>;
10
- //# sourceMappingURL=validate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/validate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAMjE,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAsB,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CA0B3E"}
@@ -1,66 +0,0 @@
1
- import { mkdir, writeFile } from "node:fs/promises";
2
- import path from "node:path";
3
- import { loadConfig } from "../../core/config.js";
4
- import { validateProject } from "../../core/validate.js";
5
- import { shouldFail } from "../lib/failOn.js";
6
- export async function runValidate(options) {
7
- const root = path.resolve(options.root);
8
- const configResult = await loadConfig(root);
9
- const result = await validateProject(root, configResult);
10
- const format = options.format ?? configResult.config.output.format;
11
- const explicitJsonPath = options.jsonPath;
12
- if (format === "text") {
13
- emitText(result);
14
- }
15
- if (format === "github") {
16
- result.issues.forEach(emitGitHub);
17
- }
18
- const shouldWriteJson = format === "json" || explicitJsonPath !== undefined;
19
- if (shouldWriteJson) {
20
- const jsonPath = format === "json"
21
- ? (options.jsonPath ?? configResult.config.output.jsonPath)
22
- : explicitJsonPath;
23
- if (jsonPath) {
24
- await emitJson(result, root, jsonPath);
25
- }
26
- }
27
- const failOn = resolveFailOn(options, configResult.config.validation.failOn);
28
- return shouldFail(result, failOn) ? 1 : 0;
29
- }
30
- function resolveFailOn(options, fallback) {
31
- if (options.failOn) {
32
- return options.failOn;
33
- }
34
- if (options.strict) {
35
- return "warning";
36
- }
37
- return fallback;
38
- }
39
- function emitText(result) {
40
- for (const item of result.issues) {
41
- const location = item.file ? ` (${item.file})` : "";
42
- const refs = item.refs && item.refs.length > 0 ? ` refs=${item.refs.join(",")}` : "";
43
- process.stdout.write(`[${item.severity}] ${item.code} ${item.message}${location}${refs}\n`);
44
- }
45
- process.stdout.write(`counts: info=${result.counts.info} warning=${result.counts.warning} error=${result.counts.error}\n`);
46
- }
47
- function emitGitHub(issue) {
48
- const level = issue.severity === "error"
49
- ? "error"
50
- : issue.severity === "warning"
51
- ? "warning"
52
- : "notice";
53
- const file = issue.file ? `file=${issue.file}` : "";
54
- const line = issue.loc?.line ? `,line=${issue.loc.line}` : "";
55
- const column = issue.loc?.column ? `,col=${issue.loc.column}` : "";
56
- const location = file ? ` ${file}${line}${column}` : "";
57
- process.stdout.write(`::${level}${location}::${issue.code}: ${issue.message}\n`);
58
- }
59
- async function emitJson(result, root, jsonPath) {
60
- const abs = path.isAbsolute(jsonPath)
61
- ? jsonPath
62
- : path.resolve(root, jsonPath);
63
- await mkdir(path.dirname(abs), { recursive: true });
64
- await writeFile(abs, `${JSON.stringify(result, null, 2)}\n`, "utf-8");
65
- }
66
- //# sourceMappingURL=validate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/cli/commands/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAU9C,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAwB;IACxD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IACnE,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC1C,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,eAAe,GAAG,MAAM,KAAK,MAAM,IAAI,gBAAgB,KAAK,SAAS,CAAC;IAC5E,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,QAAQ,GACZ,MAAM,KAAK,MAAM;YACf,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC3D,CAAC,CAAC,gBAAgB,CAAC;QACvB,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC7E,OAAO,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,aAAa,CAAC,OAAwB,EAAE,QAAgB;IAC/D,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,QAAQ,CAAC,MAAwB;IACxC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,GACR,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,GAAG,QAAQ,GAAG,IAAI,IAAI,CACtE,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gBAAgB,MAAM,CAAC,MAAM,CAAC,IAAI,YAAY,MAAM,CAAC,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,CACrG,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAY;IAC9B,MAAM,KAAK,GACT,KAAK,CAAC,QAAQ,KAAK,OAAO;QACxB,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS;YAC5B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,QAAQ,CAAC;IACjB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,KAAK,GAAG,QAAQ,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,IAAI,CAC3D,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,QAAQ,CACrB,MAAwB,EACxB,IAAY,EACZ,QAAgB;IAEhB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QACnC,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
package/dist/cli/index.js DELETED
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env node
2
- import { run } from "./main.js";
3
- run(process.argv.slice(2), process.cwd()).catch((err) => {
4
- process.stderr.write(`${err instanceof Error ? err.message : String(err)}\n`);
5
- process.exitCode = 1;
6
- });
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
@@ -1,19 +0,0 @@
1
- export type ParsedArgs = {
2
- command: string | null;
3
- options: {
4
- root: string;
5
- dir: string;
6
- force: boolean;
7
- yes: boolean;
8
- dryRun: boolean;
9
- reportFormat: "md" | "json";
10
- reportOut?: string;
11
- validateFormat: "text" | "json" | "github";
12
- strict: boolean;
13
- failOn?: "never" | "warning" | "error";
14
- jsonPath?: string;
15
- help: boolean;
16
- };
17
- };
18
- export declare function parseArgs(argv: string[], cwd: string): ParsedArgs;
19
- //# sourceMappingURL=args.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/args.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,OAAO,CAAC;QACf,GAAG,EAAE,OAAO,CAAC;QACb,MAAM,EAAE,OAAO,CAAC;QAChB,YAAY,EAAE,IAAI,GAAG,MAAM,CAAC;QAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;QAC3C,MAAM,EAAE,OAAO,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;QACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;CACH,CAAC;AAEF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAsFjE"}
@@ -1,107 +0,0 @@
1
- export function parseArgs(argv, cwd) {
2
- const options = {
3
- root: cwd,
4
- dir: cwd,
5
- force: false,
6
- yes: false,
7
- dryRun: false,
8
- reportFormat: "md",
9
- validateFormat: "text",
10
- strict: false,
11
- help: false,
12
- };
13
- const args = [...argv];
14
- let command = args.shift() ?? null;
15
- if (command === "--help" || command === "-h") {
16
- options.help = true;
17
- command = null;
18
- }
19
- for (let i = 0; i < args.length; i += 1) {
20
- const arg = args[i];
21
- switch (arg) {
22
- case "--root":
23
- options.root = args[i + 1] ?? options.root;
24
- i += 1;
25
- break;
26
- case "--dir":
27
- options.dir = args[i + 1] ?? options.dir;
28
- i += 1;
29
- break;
30
- case "--force":
31
- options.force = true;
32
- break;
33
- case "--yes":
34
- options.yes = true;
35
- break;
36
- case "--dry-run":
37
- options.dryRun = true;
38
- break;
39
- case "--format": {
40
- const next = args[i + 1];
41
- applyFormatOption(command, next, options);
42
- i += 1;
43
- break;
44
- }
45
- case "--strict":
46
- options.strict = true;
47
- break;
48
- case "--fail-on": {
49
- const next = args[i + 1];
50
- if (next === "never" || next === "warning" || next === "error") {
51
- options.failOn = next;
52
- }
53
- i += 1;
54
- break;
55
- }
56
- case "--json-path":
57
- {
58
- const next = args[i + 1];
59
- if (next) {
60
- options.jsonPath = next;
61
- }
62
- }
63
- i += 1;
64
- break;
65
- case "--out":
66
- {
67
- const next = args[i + 1];
68
- if (next) {
69
- options.reportOut = next;
70
- }
71
- }
72
- i += 1;
73
- break;
74
- case "--help":
75
- case "-h":
76
- options.help = true;
77
- break;
78
- default:
79
- break;
80
- }
81
- }
82
- return { command, options };
83
- }
84
- function applyFormatOption(command, value, options) {
85
- if (!value) {
86
- return;
87
- }
88
- if (command === "report") {
89
- if (value === "md" || value === "json") {
90
- options.reportFormat = value;
91
- }
92
- return;
93
- }
94
- if (command === "validate") {
95
- if (value === "text" || value === "json" || value === "github") {
96
- options.validateFormat = value;
97
- }
98
- return;
99
- }
100
- if (value === "md" || value === "json") {
101
- options.reportFormat = value;
102
- }
103
- if (value === "text" || value === "json" || value === "github") {
104
- options.validateFormat = value;
105
- }
106
- }
107
- //# sourceMappingURL=args.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../../src/cli/lib/args.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,SAAS,CAAC,IAAc,EAAE,GAAW;IACnD,MAAM,OAAO,GAA0B;QACrC,IAAI,EAAE,GAAG;QACT,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,KAAK;QACZ,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,KAAK;QACb,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,MAAM;QACtB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,KAAK;KACZ,CAAC;IAEF,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC;IAEnC,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC7C,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACpB,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,QAAQ;gBACX,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;gBAC3C,CAAC,IAAI,CAAC,CAAC;gBACP,MAAM;YACR,KAAK,OAAO;gBACV,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC;gBACzC,CAAC,IAAI,CAAC,CAAC;gBACP,MAAM;YACR,KAAK,SAAS;gBACZ,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;gBACrB,MAAM;YACR,KAAK,OAAO;gBACV,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;gBACnB,MAAM;YACR,KAAK,WAAW;gBACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;gBACtB,MAAM;YACR,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzB,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC1C,CAAC,IAAI,CAAC,CAAC;gBACP,MAAM;YACR,CAAC;YACD,KAAK,UAAU;gBACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;gBACtB,MAAM;YACR,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzB,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC/D,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;gBACxB,CAAC;gBACD,CAAC,IAAI,CAAC,CAAC;gBACP,MAAM;YACR,CAAC;YACD,KAAK,aAAa;gBAChB,CAAC;oBACC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACzB,IAAI,IAAI,EAAE,CAAC;wBACT,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAC1B,CAAC;gBACH,CAAC;gBACD,CAAC,IAAI,CAAC,CAAC;gBACP,MAAM;YACR,KAAK,OAAO;gBACV,CAAC;oBACC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACzB,IAAI,IAAI,EAAE,CAAC;wBACT,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;oBAC3B,CAAC;gBACH,CAAC;gBACD,CAAC,IAAI,CAAC,CAAC;gBACP,MAAM;YACR,KAAK,QAAQ,CAAC;YACd,KAAK,IAAI;gBACP,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;gBACpB,MAAM;YACR;gBACE,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAsB,EACtB,KAAyB,EACzB,OAA8B;IAE9B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACvC,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC;QAC/B,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/D,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC;QACjC,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACvC,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC;IAC/B,CAAC;IACD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/D,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC;IACjC,CAAC;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function getInitAssetsDir(): string;
2
- //# sourceMappingURL=assets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/assets.ts"],"names":[],"mappings":"AAGA,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC"}
@@ -1,8 +0,0 @@
1
- import path from "node:path";
2
- import { fileURLToPath } from "node:url";
3
- export function getInitAssetsDir() {
4
- const base = import.meta.url;
5
- const basePath = base.startsWith("file:") ? fileURLToPath(base) : base;
6
- return path.resolve(path.dirname(basePath), "../../assets/init");
7
- }
8
- //# sourceMappingURL=assets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../src/cli/lib/assets.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,gBAAgB;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC,CAAC;AACnE,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { FailOn } from "../../core/config.js";
2
- import type { ValidationResult } from "../../core/types.js";
3
- export type { FailOn };
4
- export declare function shouldFail(result: ValidationResult, failOn: FailOn): boolean;
5
- //# sourceMappingURL=failOn.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"failOn.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/failOn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,YAAY,EAAE,MAAM,EAAE,CAAC;AAEvB,wBAAgB,UAAU,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAQ5E"}
@@ -1,10 +0,0 @@
1
- export function shouldFail(result, failOn) {
2
- if (failOn === "never") {
3
- return false;
4
- }
5
- if (failOn === "error") {
6
- return result.counts.error > 0;
7
- }
8
- return result.counts.error + result.counts.warning > 0;
9
- }
10
- //# sourceMappingURL=failOn.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"failOn.js","sourceRoot":"","sources":["../../../src/cli/lib/failOn.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,UAAU,CAAC,MAAwB,EAAE,MAAc;IACjE,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;AACzD,CAAC"}
@@ -1,11 +0,0 @@
1
- export type CopyOptions = {
2
- force: boolean;
3
- dryRun: boolean;
4
- };
5
- export type CopyResult = {
6
- copied: string[];
7
- skipped: string[];
8
- };
9
- export declare function copyTemplateTree(sourceRoot: string, destRoot: string, options: CopyOptions): Promise<CopyResult>;
10
- export declare function copyTemplatePaths(sourceRoot: string, destRoot: string, relativePaths: string[], options: CopyOptions): Promise<CopyResult>;
11
- //# sourceMappingURL=fs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/fs.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EAAE,EACvB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CASrB"}
@@ -1,91 +0,0 @@
1
- import { access, copyFile, mkdir, readdir } from "node:fs/promises";
2
- import path from "node:path";
3
- export async function copyTemplateTree(sourceRoot, destRoot, options) {
4
- const files = await collectTemplateFiles(sourceRoot);
5
- return copyFiles(files, sourceRoot, destRoot, options);
6
- }
7
- export async function copyTemplatePaths(sourceRoot, destRoot, relativePaths, options) {
8
- const allFiles = [];
9
- for (const relPath of relativePaths) {
10
- const fullPath = path.join(sourceRoot, relPath);
11
- const files = await collectTemplateFiles(fullPath);
12
- allFiles.push(...files);
13
- }
14
- return copyFiles(allFiles, sourceRoot, destRoot, options);
15
- }
16
- async function copyFiles(files, sourceRoot, destRoot, options) {
17
- const copied = [];
18
- const skipped = [];
19
- const conflicts = [];
20
- if (!options.force) {
21
- for (const file of files) {
22
- const relative = path.relative(sourceRoot, file);
23
- const dest = path.join(destRoot, relative);
24
- if (!(await shouldWrite(dest, options.force))) {
25
- conflicts.push(dest);
26
- }
27
- }
28
- if (conflicts.length > 0) {
29
- throw new Error(formatConflictMessage(conflicts));
30
- }
31
- }
32
- for (const file of files) {
33
- const relative = path.relative(sourceRoot, file);
34
- const dest = path.join(destRoot, relative);
35
- if (!(await shouldWrite(dest, options.force))) {
36
- skipped.push(dest);
37
- continue;
38
- }
39
- if (!options.dryRun) {
40
- await mkdir(path.dirname(dest), { recursive: true });
41
- await copyFile(file, dest);
42
- }
43
- copied.push(dest);
44
- }
45
- return { copied, skipped };
46
- }
47
- function formatConflictMessage(conflicts) {
48
- return [
49
- "既存ファイルと衝突しました。安全のため停止します。",
50
- "",
51
- "衝突ファイル:",
52
- ...conflicts.map((conflict) => `- ${conflict}`),
53
- "",
54
- "上書きして続行する場合は --force を付けて再実行してください。",
55
- ].join("\n");
56
- }
57
- async function collectTemplateFiles(root) {
58
- const entries = [];
59
- if (!(await exists(root))) {
60
- return entries;
61
- }
62
- const items = await readdir(root, { withFileTypes: true });
63
- for (const item of items) {
64
- const fullPath = path.join(root, item.name);
65
- if (item.isDirectory()) {
66
- const nested = await collectTemplateFiles(fullPath);
67
- entries.push(...nested);
68
- continue;
69
- }
70
- if (item.isFile()) {
71
- entries.push(fullPath);
72
- }
73
- }
74
- return entries;
75
- }
76
- async function shouldWrite(target, force) {
77
- if (force) {
78
- return true;
79
- }
80
- return !(await exists(target));
81
- }
82
- async function exists(target) {
83
- try {
84
- await access(target);
85
- return true;
86
- }
87
- catch {
88
- return false;
89
- }
90
- }
91
- //# sourceMappingURL=fs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../src/cli/lib/fs.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export declare function info(message: string): void;
2
- export declare function warn(message: string): void;
3
- export declare function error(message: string): void;
4
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/logger.ts"],"names":[],"mappings":"AAAA,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C"}
@@ -1,10 +0,0 @@
1
- export function info(message) {
2
- process.stdout.write(`${message}\n`);
3
- }
4
- export function warn(message) {
5
- process.stdout.write(`${message}\n`);
6
- }
7
- export function error(message) {
8
- process.stderr.write(`${message}\n`);
9
- }
10
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/cli/lib/logger.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,IAAI,CAAC,OAAe;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,OAAe;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,OAAe;IACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;AACvC,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function run(argv: string[], cwd: string): Promise<void>;
2
- //# sourceMappingURL=main.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AAMA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6CpE"}
package/dist/cli/main.js DELETED
@@ -1,73 +0,0 @@
1
- import { runInit } from "./commands/init.js";
2
- import { runReport } from "./commands/report.js";
3
- import { runValidate } from "./commands/validate.js";
4
- import { parseArgs } from "./lib/args.js";
5
- import { error, info } from "./lib/logger.js";
6
- export async function run(argv, cwd) {
7
- const { command, options } = parseArgs(argv, cwd);
8
- if (!command || options.help) {
9
- info(usage());
10
- return;
11
- }
12
- switch (command) {
13
- case "init":
14
- await runInit({
15
- dir: options.dir,
16
- force: options.force,
17
- dryRun: options.dryRun,
18
- yes: options.yes,
19
- });
20
- return;
21
- case "validate":
22
- process.exitCode = await runValidate({
23
- root: options.root,
24
- strict: options.strict,
25
- format: options.validateFormat,
26
- ...(options.failOn !== undefined ? { failOn: options.failOn } : {}),
27
- ...(options.jsonPath !== undefined
28
- ? { jsonPath: options.jsonPath }
29
- : {}),
30
- });
31
- return;
32
- case "report":
33
- await runReport({
34
- root: options.root,
35
- format: options.reportFormat,
36
- ...(options.jsonPath !== undefined
37
- ? { jsonPath: options.jsonPath }
38
- : {}),
39
- ...(options.reportOut !== undefined
40
- ? { outPath: options.reportOut }
41
- : {}),
42
- });
43
- return;
44
- default:
45
- error(`Unknown command: ${command}`);
46
- info(usage());
47
- return;
48
- }
49
- }
50
- function usage() {
51
- return `qfai <command> [options]
52
-
53
- Commands:
54
- init テンプレを生成
55
- validate 仕様/契約/参照の検査
56
- report 検証結果と集計を出力
57
-
58
- Options:
59
- --root <path> 対象ディレクトリ
60
- --dir <path> init の出力先
61
- --force 既存ファイルを上書き
62
- --yes init: 非対話でデフォルトを採用(現在は非対話が既定、将来の対話導入時も自動Yes)
63
- --dry-run 変更を行わず表示のみ
64
- --format <text|json|github> validate の出力形式
65
- --format <md|json> report の出力形式
66
- --strict validate: warning 以上で exit 1
67
- --fail-on <error|warning|never> validate: 失敗条件
68
- --json-path <path> validate: JSON 出力先 / report: validate JSON 入力
69
- --out <path> report: 出力先
70
- -h, --help ヘルプ表示
71
- `;
72
- }
73
- //# sourceMappingURL=main.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAc,EAAE,GAAW;IACnD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAElD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACd,OAAO;IACT,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM;YACT,MAAM,OAAO,CAAC;gBACZ,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,GAAG,EAAE,OAAO,CAAC,GAAG;aACjB,CAAC,CAAC;YACH,OAAO;QACT,KAAK,UAAU;YACb,OAAO,CAAC,QAAQ,GAAG,MAAM,WAAW,CAAC;gBACnC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,cAAc;gBAC9B,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;oBAChC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE;oBAChC,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;YACH,OAAO;QACT,KAAK,QAAQ;YACX,MAAM,SAAS,CAAC;gBACd,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,YAAY;gBAC5B,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;oBAChC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE;oBAChC,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS;oBACjC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE;oBAChC,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;YACH,OAAO;QACT;YACE,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACd,OAAO;IACX,CAAC;AACH,CAAC;AAED,SAAS,KAAK;IACZ,OAAO;;;;;;;;;;;;;;;;;;;;CAoBR,CAAC;AACF,CAAC"}
@@ -1,46 +0,0 @@
1
- import type { Issue } from "./types.js";
2
- export type FailOn = "never" | "warning" | "error";
3
- export type OutputFormat = "text" | "json" | "github";
4
- export type QfaiPaths = {
5
- specDir: string;
6
- decisionsDir: string;
7
- scenariosDir: string;
8
- rulesDir: string;
9
- contractsDir: string;
10
- uiContractsDir: string;
11
- apiContractsDir: string;
12
- dataContractsDir: string;
13
- srcDir: string;
14
- testsDir: string;
15
- };
16
- export type QfaiValidationConfig = {
17
- failOn: FailOn;
18
- require: {
19
- specSections: string[];
20
- };
21
- traceability: {
22
- brMustHaveSc: boolean;
23
- scMustTouchContracts: boolean;
24
- allowOrphanContracts: boolean;
25
- };
26
- };
27
- export type QfaiOutputConfig = {
28
- format: OutputFormat;
29
- jsonPath: string;
30
- };
31
- export type QfaiConfig = {
32
- paths: QfaiPaths;
33
- validation: QfaiValidationConfig;
34
- output: QfaiOutputConfig;
35
- };
36
- export type ConfigPathKey = keyof QfaiPaths;
37
- export type ConfigLoadResult = {
38
- config: QfaiConfig;
39
- issues: Issue[];
40
- configPath: string;
41
- };
42
- export declare const defaultConfig: QfaiConfig;
43
- export declare function getConfigPath(root: string): string;
44
- export declare function loadConfig(root: string): Promise<ConfigLoadResult>;
45
- export declare function resolvePath(root: string, config: QfaiConfig, key: ConfigPathKey): string;
46
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AACnD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEtD,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QACP,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IACF,YAAY,EAAE;QACZ,YAAY,EAAE,OAAO,CAAC;QACtB,oBAAoB,EAAE,OAAO,CAAC;QAC9B,oBAAoB,EAAE,OAAO,CAAC;KAC/B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,oBAAoB,CAAC;IACjC,MAAM,EAAE,gBAAgB,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC;AAE5C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,UAoC3B,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkBxE;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,aAAa,GACjB,MAAM,CAER"}