cgraphx 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/dist/.claude-template/hooks/precommit-check/precommit-check.cjs +90 -0
  2. package/dist/.claude-template/skills/cgraphx-guide/how-to-use.html +99 -78
  3. package/dist/.claude-template/skills/precommit-review/SKILL.md +50 -0
  4. package/dist/.claude-template/skills/run-api-test/SKILL.md +187 -0
  5. package/dist/.claude-template/skills/run-api-test/assets/template-test-report.md +103 -0
  6. package/dist/.claude-template/skills/run-api-test/assets/template-test-verify.jsonl +5 -0
  7. package/dist/.claude-template/skills/run-api-test/references/bru-run.md +60 -0
  8. package/dist/.claude-template/skills/run-api-test/references/db-verification.md +81 -0
  9. package/dist/.claude-template/skills/run-api-test/references/report-format.md +104 -0
  10. package/dist/.claude-template/skills/run-api-test/references/service-readiness.md +61 -0
  11. package/dist/.claude-template/skills/run-api-test/references/test-scope.md +64 -0
  12. package/dist/.claude-template/skills/write-api/SKILL.md +150 -0
  13. package/dist/.claude-template/skills/write-api/assets/template-api-spec.md +112 -0
  14. package/dist/.claude-template/skills/write-api/assets/template-request.bru +75 -0
  15. package/dist/.claude-template/skills/write-api/references/ai-prompts.md +133 -0
  16. package/dist/.claude-template/skills/write-api/references/api-spec-format.md +108 -0
  17. package/dist/.claude-template/skills/write-api/references/bru-format.md +144 -0
  18. package/dist/.claude-template/skills/write-api/references/collection-layout.md +81 -0
  19. package/dist/.claude-template/skills/write-api/references/environment-setup.md +105 -0
  20. package/dist/.claude-template/skills/write-api/references/interface-scope.md +74 -0
  21. package/dist/api-test/ai-fields.d.ts +37 -0
  22. package/dist/api-test/ai-fields.d.ts.map +1 -0
  23. package/dist/api-test/ai-fields.js +114 -0
  24. package/dist/api-test/ai-fields.js.map +1 -0
  25. package/dist/api-test/assemble.d.ts +76 -0
  26. package/dist/api-test/assemble.d.ts.map +1 -0
  27. package/dist/api-test/assemble.js +185 -0
  28. package/dist/api-test/assemble.js.map +1 -0
  29. package/dist/api-test/bru-cli-invoker.d.ts +72 -0
  30. package/dist/api-test/bru-cli-invoker.d.ts.map +1 -0
  31. package/dist/api-test/bru-cli-invoker.js +169 -0
  32. package/dist/api-test/bru-cli-invoker.js.map +1 -0
  33. package/dist/api-test/bru-report-parser.d.ts +24 -0
  34. package/dist/api-test/bru-report-parser.d.ts.map +1 -0
  35. package/dist/api-test/bru-report-parser.js +110 -0
  36. package/dist/api-test/bru-report-parser.js.map +1 -0
  37. package/dist/api-test/bru-runner.d.ts +101 -0
  38. package/dist/api-test/bru-runner.d.ts.map +1 -0
  39. package/dist/api-test/bru-runner.js +316 -0
  40. package/dist/api-test/bru-runner.js.map +1 -0
  41. package/dist/api-test/bru-writer.d.ts +52 -0
  42. package/dist/api-test/bru-writer.d.ts.map +1 -0
  43. package/dist/api-test/bru-writer.js +159 -0
  44. package/dist/api-test/bru-writer.js.map +1 -0
  45. package/dist/api-test/call-chain-extractor.d.ts +80 -0
  46. package/dist/api-test/call-chain-extractor.d.ts.map +1 -0
  47. package/dist/api-test/call-chain-extractor.js +179 -0
  48. package/dist/api-test/call-chain-extractor.js.map +1 -0
  49. package/dist/api-test/cli.d.ts +133 -0
  50. package/dist/api-test/cli.d.ts.map +1 -0
  51. package/dist/api-test/cli.js +1009 -0
  52. package/dist/api-test/cli.js.map +1 -0
  53. package/dist/api-test/config.d.ts +75 -0
  54. package/dist/api-test/config.d.ts.map +1 -0
  55. package/dist/api-test/config.js +406 -0
  56. package/dist/api-test/config.js.map +1 -0
  57. package/dist/api-test/db-query-cli.d.ts +51 -0
  58. package/dist/api-test/db-query-cli.d.ts.map +1 -0
  59. package/dist/api-test/db-query-cli.js +119 -0
  60. package/dist/api-test/db-query-cli.js.map +1 -0
  61. package/dist/api-test/enhance-prepare.d.ts +111 -0
  62. package/dist/api-test/enhance-prepare.d.ts.map +1 -0
  63. package/dist/api-test/enhance-prepare.js +425 -0
  64. package/dist/api-test/enhance-prepare.js.map +1 -0
  65. package/dist/api-test/enhance-write.d.ts +28 -0
  66. package/dist/api-test/enhance-write.d.ts.map +1 -0
  67. package/dist/api-test/enhance-write.js +145 -0
  68. package/dist/api-test/enhance-write.js.map +1 -0
  69. package/dist/api-test/errors.d.ts +48 -0
  70. package/dist/api-test/errors.d.ts.map +1 -0
  71. package/dist/api-test/errors.js +76 -0
  72. package/dist/api-test/errors.js.map +1 -0
  73. package/dist/api-test/field-extractor.d.ts +98 -0
  74. package/dist/api-test/field-extractor.d.ts.map +1 -0
  75. package/dist/api-test/field-extractor.js +327 -0
  76. package/dist/api-test/field-extractor.js.map +1 -0
  77. package/dist/api-test/impl-finder.d.ts +37 -0
  78. package/dist/api-test/impl-finder.d.ts.map +1 -0
  79. package/dist/api-test/impl-finder.js +54 -0
  80. package/dist/api-test/impl-finder.js.map +1 -0
  81. package/dist/api-test/index.d.ts +41 -0
  82. package/dist/api-test/index.d.ts.map +1 -0
  83. package/dist/api-test/index.js +124 -0
  84. package/dist/api-test/index.js.map +1 -0
  85. package/dist/api-test/java-parser.d.ts +89 -0
  86. package/dist/api-test/java-parser.d.ts.map +1 -0
  87. package/dist/api-test/java-parser.js +508 -0
  88. package/dist/api-test/java-parser.js.map +1 -0
  89. package/dist/api-test/md-writer.d.ts +49 -0
  90. package/dist/api-test/md-writer.d.ts.map +1 -0
  91. package/dist/api-test/md-writer.js +202 -0
  92. package/dist/api-test/md-writer.js.map +1 -0
  93. package/dist/api-test/parser-httpservice.d.ts +91 -0
  94. package/dist/api-test/parser-httpservice.d.ts.map +1 -0
  95. package/dist/api-test/parser-httpservice.js +271 -0
  96. package/dist/api-test/parser-httpservice.js.map +1 -0
  97. package/dist/api-test/report.d.ts +188 -0
  98. package/dist/api-test/report.d.ts.map +1 -0
  99. package/dist/api-test/report.js +522 -0
  100. package/dist/api-test/report.js.map +1 -0
  101. package/dist/api-test/snapshot.d.ts +26 -0
  102. package/dist/api-test/snapshot.d.ts.map +1 -0
  103. package/dist/api-test/snapshot.js +150 -0
  104. package/dist/api-test/snapshot.js.map +1 -0
  105. package/dist/api-test/test-history.d.ts +48 -0
  106. package/dist/api-test/test-history.d.ts.map +1 -0
  107. package/dist/api-test/test-history.js +122 -0
  108. package/dist/api-test/test-history.js.map +1 -0
  109. package/dist/api-test/types.d.ts +174 -0
  110. package/dist/api-test/types.d.ts.map +1 -0
  111. package/dist/api-test/types.js +13 -0
  112. package/dist/api-test/types.js.map +1 -0
  113. package/dist/api-test/verify-prepare.d.ts +30 -0
  114. package/dist/api-test/verify-prepare.d.ts.map +1 -0
  115. package/dist/api-test/verify-prepare.js +150 -0
  116. package/dist/api-test/verify-prepare.js.map +1 -0
  117. package/dist/api-test/verify-write.d.ts +31 -0
  118. package/dist/api-test/verify-write.d.ts.map +1 -0
  119. package/dist/api-test/verify-write.js +159 -0
  120. package/dist/api-test/verify-write.js.map +1 -0
  121. package/dist/dbquery/dump-schema.d.ts +46 -0
  122. package/dist/dbquery/dump-schema.d.ts.map +1 -0
  123. package/dist/dbquery/dump-schema.js +379 -0
  124. package/dist/dbquery/dump-schema.js.map +1 -0
  125. package/dist/installer/targets/claude.d.ts +15 -0
  126. package/dist/installer/targets/claude.d.ts.map +1 -1
  127. package/dist/installer/targets/claude.js +53 -0
  128. package/dist/installer/targets/claude.js.map +1 -1
  129. package/package.json +1 -1
  130. package/scripts/agent-eval/block-cgraphx-and-gitnexus-cli-hook.sh +0 -43
  131. package/scripts/agent-eval/block-cgraphx-cli-hook.sh +0 -32
  132. package/scripts/agent-eval/block-cgraphx-cli-settings.json +0 -16
  133. package/scripts/agent-eval/cli-vs-mcp-3arm.sh +0 -121
  134. package/scripts/agent-eval/multi-tool-eval.sh +0 -171
  135. package/scripts/agent-eval/parse-cli-vs-mcp.mjs +0 -232
  136. package/scripts/agent-eval/parse-multi-tool.mjs +0 -242
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/api-test/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Config loader for the api-test subsystem.
3
+ *
4
+ * Spec §5.6 — three files live under `.cgraphx/api-test/`:
5
+ * - `config.json` — static scan/assemble knobs (ApiTestConfig). Missing
6
+ * file → fall back to `DEFAULT_CONFIG`.
7
+ * - `profile.json` — per-env runtime profile (ApiTestProfile). REQUIRED —
8
+ * missing in both project and user tier → `ConfigError`.
9
+ * - `fixtures.json` — manual per-endpoint overrides (Fixtures). Missing → `{}`.
10
+ *
11
+ * Three-tier merge order (least → most specific):
12
+ * 1. `DEFAULT_CONFIG` (config only; profile/fixtures have no built-in default)
13
+ * 2. `<projectRoot>/.cgraphx/api-test/<file>`
14
+ * 3. `~/.cgraphx/api-test/<file>`
15
+ *
16
+ * Merge semantics:
17
+ * - `config.json` — shallow field-level merge: each existing file must be
18
+ * schema-valid (all required fields present, correct
19
+ * types) or `ConfigError` is thrown; valid fields
20
+ * override the accumulator top-level (nested objects
21
+ * like `serviceNameMap` / `defaultHeaders` are replaced
22
+ * wholesale, not deep-merged).
23
+ * - `profile.json` — shallow field-level merge, same rules. If neither the
24
+ * project nor the user file exists → `ConfigError`.
25
+ * - `fixtures.json`— key-level merge: user entries override project entries
26
+ * by endpoint key; project-only keys are preserved.
27
+ *
28
+ * Unknown fields in any file are silently ignored (forward-compat).
29
+ *
30
+ * Self-contained: only depends on `node:fs` / `node:path` / `node:os` and the
31
+ * subsystem's own `types.ts` / `errors.ts`. No imports from `src/extraction/`,
32
+ * `src/resolution/`, or `src/db/`.
33
+ */
34
+ import type { ApiTestConfig, ApiTestProfile, Fixtures } from './types';
35
+ /**
36
+ * hx default config (spec §5.6). Used as the base tier when no project or
37
+ * user `config.json` overrides a field.
38
+ */
39
+ export declare const DEFAULT_CONFIG: ApiTestConfig;
40
+ /**
41
+ * Load and merge `config.json` per the three-tier order.
42
+ *
43
+ * - Missing file at every tier → return `DEFAULT_CONFIG` (no error).
44
+ * - Existing file with schema errors → `ConfigError` (exit code 2 at the CLI).
45
+ * - Unknown fields ignored.
46
+ */
47
+ export declare function loadConfig(projectRoot: string): ApiTestConfig;
48
+ /**
49
+ * Load and merge `profile.json`. REQUIRED — throws `ConfigError` if no
50
+ * profile file exists at either tier.
51
+ *
52
+ * On success, merges the placeholder defaults for `bizCodeField` /
53
+ * `bizCodeSuccessValues` underneath (so an existing profile that omits them
54
+ * still gets the hx convention). A profile that explicitly sets
55
+ * `bizCodeField: null` overrides the default to "don't check biz code".
56
+ */
57
+ export declare function loadProfile(projectRoot: string): ApiTestProfile;
58
+ /**
59
+ * Load and merge `fixtures.json`. Missing at every tier → `{}` (no error).
60
+ * Each existing file must be a `Record<string, FixtureEntry>` — a fixture
61
+ * entry missing `params` is a `ConfigError`.
62
+ */
63
+ export declare function loadFixtures(projectRoot: string): Fixtures;
64
+ /** Internal helper exposed for tests / future CLI commands. */
65
+ export declare function resolveApiTestDirPath(projectRoot: string): string;
66
+ /** Re-exported for tests that need to know the on-disk layout. */
67
+ export declare const __INTERNAL: {
68
+ DATA_DIR: string;
69
+ API_TEST_DIR: string;
70
+ CONFIG_FILENAME: string;
71
+ PROFILE_FILENAME: string;
72
+ FIXTURES_FILENAME: string;
73
+ DEFAULT_PROFILE_PARTIAL: Pick<ApiTestProfile, "bizCodeField" | "bizCodeSuccessValues">;
74
+ };
75
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/api-test/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAMH,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EAEd,QAAQ,EACT,MAAM,SAAS,CAAC;AAYjB;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,aA0B5B,CAAC;AA2NF;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAiB7D;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CA8B/D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAc1D;AAED,+DAA+D;AAC/D,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,kEAAkE;AAClE,eAAO,MAAM,UAAU;;;;;;;CAOtB,CAAC"}
@@ -0,0 +1,406 @@
1
+ "use strict";
2
+ /**
3
+ * Config loader for the api-test subsystem.
4
+ *
5
+ * Spec §5.6 — three files live under `.cgraphx/api-test/`:
6
+ * - `config.json` — static scan/assemble knobs (ApiTestConfig). Missing
7
+ * file → fall back to `DEFAULT_CONFIG`.
8
+ * - `profile.json` — per-env runtime profile (ApiTestProfile). REQUIRED —
9
+ * missing in both project and user tier → `ConfigError`.
10
+ * - `fixtures.json` — manual per-endpoint overrides (Fixtures). Missing → `{}`.
11
+ *
12
+ * Three-tier merge order (least → most specific):
13
+ * 1. `DEFAULT_CONFIG` (config only; profile/fixtures have no built-in default)
14
+ * 2. `<projectRoot>/.cgraphx/api-test/<file>`
15
+ * 3. `~/.cgraphx/api-test/<file>`
16
+ *
17
+ * Merge semantics:
18
+ * - `config.json` — shallow field-level merge: each existing file must be
19
+ * schema-valid (all required fields present, correct
20
+ * types) or `ConfigError` is thrown; valid fields
21
+ * override the accumulator top-level (nested objects
22
+ * like `serviceNameMap` / `defaultHeaders` are replaced
23
+ * wholesale, not deep-merged).
24
+ * - `profile.json` — shallow field-level merge, same rules. If neither the
25
+ * project nor the user file exists → `ConfigError`.
26
+ * - `fixtures.json`— key-level merge: user entries override project entries
27
+ * by endpoint key; project-only keys are preserved.
28
+ *
29
+ * Unknown fields in any file are silently ignored (forward-compat).
30
+ *
31
+ * Self-contained: only depends on `node:fs` / `node:path` / `node:os` and the
32
+ * subsystem's own `types.ts` / `errors.ts`. No imports from `src/extraction/`,
33
+ * `src/resolution/`, or `src/db/`.
34
+ */
35
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
36
+ if (k2 === undefined) k2 = k;
37
+ var desc = Object.getOwnPropertyDescriptor(m, k);
38
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
39
+ desc = { enumerable: true, get: function() { return m[k]; } };
40
+ }
41
+ Object.defineProperty(o, k2, desc);
42
+ }) : (function(o, m, k, k2) {
43
+ if (k2 === undefined) k2 = k;
44
+ o[k2] = m[k];
45
+ }));
46
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
47
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
48
+ }) : function(o, v) {
49
+ o["default"] = v;
50
+ });
51
+ var __importStar = (this && this.__importStar) || (function () {
52
+ var ownKeys = function(o) {
53
+ ownKeys = Object.getOwnPropertyNames || function (o) {
54
+ var ar = [];
55
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
56
+ return ar;
57
+ };
58
+ return ownKeys(o);
59
+ };
60
+ return function (mod) {
61
+ if (mod && mod.__esModule) return mod;
62
+ var result = {};
63
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
64
+ __setModuleDefault(result, mod);
65
+ return result;
66
+ };
67
+ })();
68
+ Object.defineProperty(exports, "__esModule", { value: true });
69
+ exports.__INTERNAL = exports.DEFAULT_CONFIG = void 0;
70
+ exports.loadConfig = loadConfig;
71
+ exports.loadProfile = loadProfile;
72
+ exports.loadFixtures = loadFixtures;
73
+ exports.resolveApiTestDirPath = resolveApiTestDirPath;
74
+ const fs = __importStar(require("node:fs"));
75
+ const path = __importStar(require("node:path"));
76
+ const os = __importStar(require("node:os"));
77
+ const errors_1 = require("./errors");
78
+ /** Directory name under the project root / home dir. */
79
+ const API_TEST_DIR = 'api-test';
80
+ /** Project data root directory (fork renamed `.codegraph` → `.cgraphx`). */
81
+ const DATA_DIR = '.cgraphx';
82
+ const CONFIG_FILENAME = 'config.json';
83
+ const PROFILE_FILENAME = 'profile.json';
84
+ const FIXTURES_FILENAME = 'fixtures.json';
85
+ /**
86
+ * hx default config (spec §5.6). Used as the base tier when no project or
87
+ * user `config.json` overrides a field.
88
+ */
89
+ exports.DEFAULT_CONFIG = {
90
+ providerAnnotationFqn: 'org.springframework.httpservice.annotation.Center',
91
+ serviceGroupingRegex: 'com\\.telecomjs\\.crm\\.([a-z]+)\\.',
92
+ serviceNameMap: {
93
+ order: 'order-service',
94
+ so: 'so-service',
95
+ soassist: 'so-assist-service',
96
+ assist: 'so-assist-service',
97
+ pub: 'so-pub-service',
98
+ sopub: 'so-pub-service',
99
+ inst: 'inst-service',
100
+ cust: 'cust-service',
101
+ orderhis: 'order-his-service',
102
+ },
103
+ urlTemplate: '{{baseUrl}}/{service}/{pathSegment}/{svc_id}_{methodName}',
104
+ serviceUrlPaths: {
105
+ 'inst-service': 'service',
106
+ 'so-pub-service': 'openapi',
107
+ },
108
+ defaultHttpMethod: 'POST',
109
+ defaultHeaders: {
110
+ 'Content-Type': 'application/json',
111
+ regionid: '{{regionid}}',
112
+ staffcode: '{{staffcode}}',
113
+ },
114
+ bodyTemplate: '[{}]',
115
+ };
116
+ /**
117
+ * Placeholder default profile values (T-00 finding: hx test env unreachable
118
+ * from this machine, so the real baseUrl/auth stays in a user-local
119
+ * `profile.json` that is NOT checked in). These defaults are only used as a
120
+ * last-resort fallback when a profile file exists but is missing individual
121
+ * fields — in practice a missing profile.json throws `ConfigError` instead.
122
+ *
123
+ * `bizCodeField` / `bizCodeSuccessValues` mirror the hx convention (response
124
+ * body carries `{ "code": "0" }` on success).
125
+ */
126
+ const DEFAULT_PROFILE_PARTIAL = {
127
+ bizCodeField: 'code',
128
+ bizCodeSuccessValues: ['0', '200'],
129
+ };
130
+ function projectFilePath(projectRoot, filename) {
131
+ return path.join(projectRoot, DATA_DIR, API_TEST_DIR, filename);
132
+ }
133
+ function userFilePath(filename) {
134
+ return path.join(os.homedir(), DATA_DIR, API_TEST_DIR, filename);
135
+ }
136
+ function readJsonFile(filePath) {
137
+ let raw;
138
+ try {
139
+ raw = fs.readFileSync(filePath, 'utf8');
140
+ }
141
+ catch (err) {
142
+ if (err.code === 'ENOENT') {
143
+ return { existed: false, data: null };
144
+ }
145
+ throw err;
146
+ }
147
+ try {
148
+ return { existed: true, data: JSON.parse(raw) };
149
+ }
150
+ catch (err) {
151
+ const msg = err instanceof Error ? err.message : String(err);
152
+ return { existed: true, data: null, error: `JSON parse failed: ${msg}` };
153
+ }
154
+ }
155
+ function isPlainObject(v) {
156
+ return typeof v === 'object' && v !== null && !Array.isArray(v);
157
+ }
158
+ function isStringRecord(v) {
159
+ if (!isPlainObject(v))
160
+ return false;
161
+ for (const val of Object.values(v)) {
162
+ if (typeof val !== 'string')
163
+ return false;
164
+ }
165
+ return true;
166
+ }
167
+ function isStringArray(v) {
168
+ return Array.isArray(v) && v.every((x) => typeof x === 'string');
169
+ }
170
+ /**
171
+ * Validate a raw object against ApiTestConfig's required shape.
172
+ * Returns a list of field-level error messages (empty = valid).
173
+ * Unknown fields are ignored.
174
+ */
175
+ function validateConfigShape(raw, sourceLabel) {
176
+ const errors = [];
177
+ if (!isPlainObject(raw)) {
178
+ return [`${sourceLabel}: config must be a JSON object`];
179
+ }
180
+ if (typeof raw.providerAnnotationFqn !== 'string' || !raw.providerAnnotationFqn) {
181
+ errors.push(`${sourceLabel}: missing or non-string field "providerAnnotationFqn"`);
182
+ }
183
+ if (typeof raw.serviceGroupingRegex !== 'string' || !raw.serviceGroupingRegex) {
184
+ errors.push(`${sourceLabel}: missing or non-string field "serviceGroupingRegex"`);
185
+ }
186
+ if (!isStringRecord(raw.serviceNameMap)) {
187
+ errors.push(`${sourceLabel}: field "serviceNameMap" must be a Record<string, string>`);
188
+ }
189
+ if (typeof raw.urlTemplate !== 'string' || !raw.urlTemplate) {
190
+ errors.push(`${sourceLabel}: missing or non-string field "urlTemplate"`);
191
+ }
192
+ if (typeof raw.defaultHttpMethod !== 'string' || !raw.defaultHttpMethod) {
193
+ errors.push(`${sourceLabel}: missing or non-string field "defaultHttpMethod"`);
194
+ }
195
+ if (!isStringRecord(raw.defaultHeaders)) {
196
+ errors.push(`${sourceLabel}: field "defaultHeaders" must be a Record<string, string>`);
197
+ }
198
+ if (typeof raw.bodyTemplate !== 'string') {
199
+ errors.push(`${sourceLabel}: missing or non-string field "bodyTemplate"`);
200
+ }
201
+ return errors;
202
+ }
203
+ /**
204
+ * Validate a raw object against ApiTestProfile's required shape.
205
+ * `bizCodeField` may be a string or null.
206
+ */
207
+ function validateProfileShape(raw, sourceLabel) {
208
+ const errors = [];
209
+ if (!isPlainObject(raw)) {
210
+ return [`${sourceLabel}: profile must be a JSON object`];
211
+ }
212
+ if (typeof raw.env !== 'string' || !raw.env) {
213
+ errors.push(`${sourceLabel}: missing or non-string field "env"`);
214
+ }
215
+ if (typeof raw.baseUrl !== 'string' || !raw.baseUrl) {
216
+ errors.push(`${sourceLabel}: missing or non-string field "baseUrl"`);
217
+ }
218
+ if (!isStringRecord(raw.variables)) {
219
+ errors.push(`${sourceLabel}: field "variables" must be a Record<string, string>`);
220
+ }
221
+ if (raw.bizCodeField !== null && typeof raw.bizCodeField !== 'string') {
222
+ errors.push(`${sourceLabel}: field "bizCodeField" must be a string or null`);
223
+ }
224
+ if (!isStringArray(raw.bizCodeSuccessValues)) {
225
+ errors.push(`${sourceLabel}: field "bizCodeSuccessValues" must be a string[]`);
226
+ }
227
+ return errors;
228
+ }
229
+ /**
230
+ * Validate a fixtures file. Each value must be an object with a `params`
231
+ * array. Unknown fields on a `FixtureEntry` are ignored. Returns the typed
232
+ * Fixtures map on success, or throws `ConfigError` on failure.
233
+ */
234
+ function normalizeFixtures(raw, sourceLabel) {
235
+ if (!isPlainObject(raw)) {
236
+ throw new errors_1.ConfigError(`${sourceLabel}: fixtures must be a JSON object keyed by endpoint id`);
237
+ }
238
+ const out = {};
239
+ for (const [k, v] of Object.entries(raw)) {
240
+ if (!isPlainObject(v)) {
241
+ throw new errors_1.ConfigError(`${sourceLabel}: fixture entry "${k}" must be an object`);
242
+ }
243
+ if (!Array.isArray(v.params)) {
244
+ throw new errors_1.ConfigError(`${sourceLabel}: fixture entry "${k}" missing required "params" array`);
245
+ }
246
+ const entry = { params: v.params };
247
+ if (v.headers !== undefined) {
248
+ if (!isStringRecord(v.headers)) {
249
+ throw new errors_1.ConfigError(`${sourceLabel}: fixture entry "${k}" field "headers" must be Record<string, string>`);
250
+ }
251
+ entry.headers = v.headers;
252
+ }
253
+ if (v.notes !== undefined) {
254
+ if (typeof v.notes !== 'string') {
255
+ throw new errors_1.ConfigError(`${sourceLabel}: fixture entry "${k}" field "notes" must be a string`);
256
+ }
257
+ entry.notes = v.notes;
258
+ }
259
+ out[k] = entry;
260
+ }
261
+ return out;
262
+ }
263
+ /**
264
+ * Pull a validated ApiTestConfig out of a raw object. Throws `ConfigError`
265
+ * with all field-level errors at once if the shape is wrong.
266
+ */
267
+ function coerceConfig(raw, sourceLabel) {
268
+ const errors = validateConfigShape(raw, sourceLabel);
269
+ if (errors.length > 0) {
270
+ throw new errors_1.ConfigError(`config.json schema error: ${errors.join('; ')}`, { errors });
271
+ }
272
+ const r = raw;
273
+ return {
274
+ providerAnnotationFqn: r.providerAnnotationFqn,
275
+ serviceGroupingRegex: r.serviceGroupingRegex,
276
+ serviceNameMap: r.serviceNameMap,
277
+ urlTemplate: r.urlTemplate,
278
+ // Conditional spread — when the source file omits serviceUrlPaths, don't
279
+ // set the property at all (so mergeConfig's `{...dst, ...src}` preserves
280
+ // dst's value instead of overwriting with undefined).
281
+ ...(r.serviceUrlPaths !== undefined
282
+ ? { serviceUrlPaths: r.serviceUrlPaths }
283
+ : {}),
284
+ defaultHttpMethod: r.defaultHttpMethod,
285
+ defaultHeaders: r.defaultHeaders,
286
+ bodyTemplate: r.bodyTemplate,
287
+ };
288
+ }
289
+ function coerceProfile(raw, sourceLabel) {
290
+ const errors = validateProfileShape(raw, sourceLabel);
291
+ if (errors.length > 0) {
292
+ throw new errors_1.ConfigError(`profile.json schema error: ${errors.join('; ')}`, { errors });
293
+ }
294
+ const r = raw;
295
+ return {
296
+ env: r.env,
297
+ baseUrl: r.baseUrl,
298
+ variables: r.variables,
299
+ bizCodeField: r.bizCodeField ?? null,
300
+ bizCodeSuccessValues: r.bizCodeSuccessValues,
301
+ };
302
+ }
303
+ /**
304
+ * Shallow-merge `src` (validated) fields over `dst`. Top-level field replace;
305
+ * nested objects replaced wholesale.
306
+ */
307
+ function mergeConfig(dst, src) {
308
+ return { ...dst, ...src };
309
+ }
310
+ function mergeProfile(dst, src) {
311
+ return { ...dst, ...src };
312
+ }
313
+ function mergeFixtures(dst, src) {
314
+ return { ...dst, ...src };
315
+ }
316
+ /**
317
+ * Load and merge `config.json` per the three-tier order.
318
+ *
319
+ * - Missing file at every tier → return `DEFAULT_CONFIG` (no error).
320
+ * - Existing file with schema errors → `ConfigError` (exit code 2 at the CLI).
321
+ * - Unknown fields ignored.
322
+ */
323
+ function loadConfig(projectRoot) {
324
+ let acc = { ...exports.DEFAULT_CONFIG };
325
+ for (const filePath of [projectFilePath(projectRoot, CONFIG_FILENAME), userFilePath(CONFIG_FILENAME)]) {
326
+ const file = readJsonFile(filePath);
327
+ if (!file.existed)
328
+ continue;
329
+ if (file.error) {
330
+ throw new errors_1.ConfigError(`${filePath}: ${file.error}`);
331
+ }
332
+ // Schema-strict: an existing file must have ALL required fields. Partial
333
+ // override of DEFAULT_CONFIG via a partial file is intentionally not
334
+ // allowed — keeps the merge predictable.
335
+ const coerced = coerceConfig(file.data, filePath);
336
+ acc = mergeConfig(acc, coerced);
337
+ }
338
+ return acc;
339
+ }
340
+ /**
341
+ * Load and merge `profile.json`. REQUIRED — throws `ConfigError` if no
342
+ * profile file exists at either tier.
343
+ *
344
+ * On success, merges the placeholder defaults for `bizCodeField` /
345
+ * `bizCodeSuccessValues` underneath (so an existing profile that omits them
346
+ * still gets the hx convention). A profile that explicitly sets
347
+ * `bizCodeField: null` overrides the default to "don't check biz code".
348
+ */
349
+ function loadProfile(projectRoot) {
350
+ let acc = null;
351
+ for (const filePath of [projectFilePath(projectRoot, PROFILE_FILENAME), userFilePath(PROFILE_FILENAME)]) {
352
+ const file = readJsonFile(filePath);
353
+ if (!file.existed)
354
+ continue;
355
+ if (file.error) {
356
+ throw new errors_1.ConfigError(`${filePath}: ${file.error}`);
357
+ }
358
+ const coerced = coerceProfile(file.data, filePath);
359
+ acc = acc === null ? coerced : mergeProfile(acc, coerced);
360
+ }
361
+ if (acc === null) {
362
+ throw new errors_1.ConfigError(`profile.json not found. Create .cgraphx/api-test/profile.json in the project root, or ~/.cgraphx/api-test/profile.json globally.`, { searchedPaths: [projectFilePath(projectRoot, PROFILE_FILENAME), userFilePath(PROFILE_FILENAME)] });
363
+ }
364
+ // Defensive: a profile that declared an empty bizCodeSuccessValues array
365
+ // falls back to the hx convention so test runs don't flag everything as
366
+ // failed. An explicit `bizCodeField: null` (meaning "don't check biz code")
367
+ // is honored verbatim and this branch is skipped because the array is the
368
+ // success-values list, not the field selector.
369
+ if (acc.bizCodeSuccessValues.length === 0) {
370
+ acc = { ...acc, bizCodeSuccessValues: DEFAULT_PROFILE_PARTIAL.bizCodeSuccessValues };
371
+ }
372
+ return acc;
373
+ }
374
+ /**
375
+ * Load and merge `fixtures.json`. Missing at every tier → `{}` (no error).
376
+ * Each existing file must be a `Record<string, FixtureEntry>` — a fixture
377
+ * entry missing `params` is a `ConfigError`.
378
+ */
379
+ function loadFixtures(projectRoot) {
380
+ let acc = {};
381
+ for (const filePath of [projectFilePath(projectRoot, FIXTURES_FILENAME), userFilePath(FIXTURES_FILENAME)]) {
382
+ const file = readJsonFile(filePath);
383
+ if (!file.existed)
384
+ continue;
385
+ if (file.error) {
386
+ throw new errors_1.ConfigError(`${filePath}: ${file.error}`);
387
+ }
388
+ const coerced = normalizeFixtures(file.data, filePath);
389
+ acc = mergeFixtures(acc, coerced);
390
+ }
391
+ return acc;
392
+ }
393
+ /** Internal helper exposed for tests / future CLI commands. */
394
+ function resolveApiTestDirPath(projectRoot) {
395
+ return projectFilePath(projectRoot, '');
396
+ }
397
+ /** Re-exported for tests that need to know the on-disk layout. */
398
+ exports.__INTERNAL = {
399
+ DATA_DIR,
400
+ API_TEST_DIR,
401
+ CONFIG_FILENAME,
402
+ PROFILE_FILENAME,
403
+ FIXTURES_FILENAME,
404
+ DEFAULT_PROFILE_PARTIAL,
405
+ };
406
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/api-test/config.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuRH,gCAiBC;AAWD,kCA8BC;AAOD,oCAcC;AAGD,sDAEC;AAzWD,4CAA8B;AAC9B,gDAAkC;AAClC,4CAA8B;AAQ9B,qCAAuC;AAEvC,wDAAwD;AACxD,MAAM,YAAY,GAAG,UAAU,CAAC;AAChC,4EAA4E;AAC5E,MAAM,QAAQ,GAAG,UAAU,CAAC;AAE5B,MAAM,eAAe,GAAG,aAAa,CAAC;AACtC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AACxC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAE1C;;;GAGG;AACU,QAAA,cAAc,GAAkB;IAC3C,qBAAqB,EAAE,mDAAmD;IAC1E,oBAAoB,EAAE,qCAAqC;IAC3D,cAAc,EAAE;QACd,KAAK,EAAE,eAAe;QACtB,EAAE,EAAE,YAAY;QAChB,QAAQ,EAAE,mBAAmB;QAC7B,MAAM,EAAE,mBAAmB;QAC3B,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,mBAAmB;KAC9B;IACD,WAAW,EAAE,2DAA2D;IACxE,eAAe,EAAE;QACf,cAAc,EAAE,SAAS;QACzB,gBAAgB,EAAE,SAAS;KAC5B;IACD,iBAAiB,EAAE,MAAM;IACzB,cAAc,EAAE;QACd,cAAc,EAAE,kBAAkB;QAClC,QAAQ,EAAE,cAAc;QACxB,SAAS,EAAE,eAAe;KAC3B;IACD,YAAY,EAAE,MAAM;CACrB,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,uBAAuB,GAAkE;IAC7F,YAAY,EAAE,MAAM;IACpB,oBAAoB,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;CACnC,CAAC;AAEF,SAAS,eAAe,CAAC,WAAmB,EAAE,QAAgB;IAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB;IACpC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;AACnE,CAAC;AAQD,SAAS,YAAY,CAAC,QAAgB;IACpC,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACxC,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,EAAE,CAAC;IAC7D,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,sBAAsB,GAAG,EAAE,EAAE,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,cAAc,CAAC,CAAU;IAChC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;IAC5C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,GAAY,EAAE,WAAmB;IAC5D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,WAAW,gCAAgC,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,qBAAqB,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;QAChF,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,uDAAuD,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,oBAAoB,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;QAC9E,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,sDAAsD,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,2DAA2D,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,6CAA6C,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,iBAAiB,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACxE,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,mDAAmD,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,2DAA2D,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,8CAA8C,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,GAAY,EAAE,WAAmB;IAC7D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,WAAW,iCAAiC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,qCAAqC,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,yCAAyC,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,sDAAsD,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,GAAG,CAAC,YAAY,KAAK,IAAI,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QACtE,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,iDAAiD,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,mDAAmD,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,GAAY,EAAE,WAAmB;IAC1D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,oBAAW,CAAC,GAAG,WAAW,uDAAuD,CAAC,CAAC;IAC/F,CAAC;IACD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,oBAAW,CAAC,GAAG,WAAW,oBAAoB,CAAC,qBAAqB,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,oBAAW,CAAC,GAAG,WAAW,oBAAoB,CAAC,mCAAmC,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,KAAK,GAAiB,EAAE,MAAM,EAAE,CAAC,CAAC,MAAmB,EAAE,CAAC;QAC9D,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,oBAAW,CAAC,GAAG,WAAW,oBAAoB,CAAC,kDAAkD,CAAC,CAAC;YAC/G,CAAC;YACD,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,IAAI,oBAAW,CAAC,GAAG,WAAW,oBAAoB,CAAC,kCAAkC,CAAC,CAAC;YAC/F,CAAC;YACD,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QACxB,CAAC;QACD,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,GAAY,EAAE,WAAmB;IACrD,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACrD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,oBAAW,CAAC,6BAA6B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,OAAO;QACL,qBAAqB,EAAE,CAAC,CAAC,qBAA+B;QACxD,oBAAoB,EAAE,CAAC,CAAC,oBAA8B;QACtD,cAAc,EAAE,CAAC,CAAC,cAAwC;QAC1D,WAAW,EAAE,CAAC,CAAC,WAAqB;QACpC,yEAAyE;QACzE,yEAAyE;QACzE,sDAAsD;QACtD,GAAG,CAAC,CAAC,CAAC,eAAe,KAAK,SAAS;YACjC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,eAAyC,EAAE;YAClE,CAAC,CAAC,EAAE,CAAC;QACP,iBAAiB,EAAE,CAAC,CAAC,iBAA2B;QAChD,cAAc,EAAE,CAAC,CAAC,cAAwC;QAC1D,YAAY,EAAE,CAAC,CAAC,YAAsB;KACvC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,GAAY,EAAE,WAAmB;IACtD,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,oBAAW,CAAC,8BAA8B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,OAAO;QACL,GAAG,EAAE,CAAC,CAAC,GAAa;QACpB,OAAO,EAAE,CAAC,CAAC,OAAiB;QAC5B,SAAS,EAAE,CAAC,CAAC,SAAmC;QAChD,YAAY,EAAG,CAAC,CAAC,YAA8B,IAAI,IAAI;QACvD,oBAAoB,EAAE,CAAC,CAAC,oBAAgC;KACzD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,GAAkB,EAAE,GAAkB;IACzD,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,YAAY,CAAC,GAAmB,EAAE,GAAmB;IAC5D,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,aAAa,CAAC,GAAa,EAAE,GAAa;IACjD,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,UAAU,CAAC,WAAmB;IAC5C,IAAI,GAAG,GAAkB,EAAE,GAAG,sBAAc,EAAE,CAAC;IAE/C,KAAK,MAAM,QAAQ,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,eAAe,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;QACtG,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,SAAS;QAC5B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,oBAAW,CAAC,GAAG,QAAQ,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,yEAAyE;QACzE,qEAAqE;QACrE,yCAAyC;QACzC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAClD,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,WAAW,CAAC,WAAmB;IAC7C,IAAI,GAAG,GAA0B,IAAI,CAAC;IAEtC,KAAK,MAAM,QAAQ,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;QACxG,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,SAAS;QAC5B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,oBAAW,CAAC,GAAG,QAAQ,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACnD,GAAG,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,oBAAW,CACnB,kIAAkI,EAClI,EAAE,aAAa,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC,EAAE,CACpG,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,wEAAwE;IACxE,4EAA4E;IAC5E,0EAA0E;IAC1E,+CAA+C;IAC/C,IAAI,GAAG,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1C,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,oBAAoB,EAAE,uBAAuB,CAAC,oBAAoB,EAAE,CAAC;IACvF,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAAC,WAAmB;IAC9C,IAAI,GAAG,GAAa,EAAE,CAAC;IAEvB,KAAK,MAAM,QAAQ,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC;QAC1G,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,SAAS;QAC5B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,oBAAW,CAAC,GAAG,QAAQ,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvD,GAAG,GAAG,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+DAA+D;AAC/D,SAAgB,qBAAqB,CAAC,WAAmB;IACvD,OAAO,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED,kEAAkE;AACrD,QAAA,UAAU,GAAG;IACxB,QAAQ;IACR,YAAY;IACZ,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,uBAAuB;CACxB,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * db-query CLI subprocess wrapper — isolated in its own module so tests can
3
+ * `vi.spyOn` the `runDbQueryCli` export and intercept calls from
4
+ * `assemble.ts`.
5
+ *
6
+ * Why a separate module: when `runDbQueryCli` lived in `assemble.ts`,
7
+ * `assembleEndpoint` called it as a bare local function reference, which
8
+ * vitest's `vi.spyOn(module, 'runDbQueryCli')` could not intercept (the spy
9
+ * replaces the export binding, not the local binding). Cross-module imports
10
+ * route through the namespace, which the spy CAN replace.
11
+ *
12
+ * Independent subsystem — does NOT import from `src/dbquery/`. The db-query
13
+ * CLI is invoked as a subprocess (spec §12 isolation).
14
+ */
15
+ /** Result of one db-query CLI invocation. */
16
+ export type DbQueryResult = {
17
+ ok: true;
18
+ rows: Record<string, unknown>[];
19
+ } | {
20
+ ok: false;
21
+ reason: 'db_query_failed';
22
+ };
23
+ /**
24
+ * Invoke `cgraphx db query --sql <sql> --format json` via the dist binary.
25
+ * Returns the parsed rows on success, or `{ ok: false, reason: 'db_query_failed' }`
26
+ * on any non-zero exit (covers config error exit 2, safety exit 3, connection
27
+ * /timeout/disabled exit 4, arg error exit 5 — all collapse to the same skip
28
+ * reason per spec).
29
+ *
30
+ * Exported so tests can `vi.spyOn(dbQueryCliModule, 'runDbQueryCli')` instead
31
+ * of spawning a real subprocess / real DB connection.
32
+ */
33
+ export declare function runDbQueryCli(sql: string, projectRoot: string): Promise<DbQueryResult>;
34
+ /**
35
+ * Resolve the `dist/bin/codegraph.js` binary path. Returns `null` when the
36
+ * binary can't be located (e.g., running from source without a build, or
37
+ * tests that don't care because they mock `runDbQueryCli`).
38
+ *
39
+ * Resolution order:
40
+ * 1. `dist/bin/codegraph.js` relative to this module (production —
41
+ * `dist/api-test/db-query-cli.js` → `dist/bin/codegraph.js`).
42
+ * 2. `dist/bin/codegraph.js` relative to the package root when running
43
+ * from `src/` via tsx (vitest) — only if the file exists.
44
+ */
45
+ declare function resolveCodegraphBinary(): string | null;
46
+ /** Internal helper re-exported for tests. */
47
+ export declare const __INTERNAL_DB_QUERY_CLI: {
48
+ resolveCodegraphBinary: typeof resolveCodegraphBinary;
49
+ };
50
+ export {};
51
+ //# sourceMappingURL=db-query-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-query-cli.d.ts","sourceRoot":"","sources":["../../src/api-test/db-query-cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,6CAA6C;AAC7C,MAAM,MAAM,aAAa,GACrB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CAAE,GAC7C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAE7C;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC,CAiCxB;AAED;;;;;;;;;;GAUG;AACH,iBAAS,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAU/C;AAED,6CAA6C;AAC7C,eAAO,MAAM,uBAAuB;;CAEnC,CAAC"}