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.
- package/dist/.claude-template/hooks/precommit-check/precommit-check.cjs +90 -0
- package/dist/.claude-template/skills/cgraphx-guide/how-to-use.html +99 -78
- package/dist/.claude-template/skills/precommit-review/SKILL.md +50 -0
- package/dist/.claude-template/skills/run-api-test/SKILL.md +187 -0
- package/dist/.claude-template/skills/run-api-test/assets/template-test-report.md +103 -0
- package/dist/.claude-template/skills/run-api-test/assets/template-test-verify.jsonl +5 -0
- package/dist/.claude-template/skills/run-api-test/references/bru-run.md +60 -0
- package/dist/.claude-template/skills/run-api-test/references/db-verification.md +81 -0
- package/dist/.claude-template/skills/run-api-test/references/report-format.md +104 -0
- package/dist/.claude-template/skills/run-api-test/references/service-readiness.md +61 -0
- package/dist/.claude-template/skills/run-api-test/references/test-scope.md +64 -0
- package/dist/.claude-template/skills/write-api/SKILL.md +150 -0
- package/dist/.claude-template/skills/write-api/assets/template-api-spec.md +112 -0
- package/dist/.claude-template/skills/write-api/assets/template-request.bru +75 -0
- package/dist/.claude-template/skills/write-api/references/ai-prompts.md +133 -0
- package/dist/.claude-template/skills/write-api/references/api-spec-format.md +108 -0
- package/dist/.claude-template/skills/write-api/references/bru-format.md +144 -0
- package/dist/.claude-template/skills/write-api/references/collection-layout.md +81 -0
- package/dist/.claude-template/skills/write-api/references/environment-setup.md +105 -0
- package/dist/.claude-template/skills/write-api/references/interface-scope.md +74 -0
- package/dist/api-test/ai-fields.d.ts +37 -0
- package/dist/api-test/ai-fields.d.ts.map +1 -0
- package/dist/api-test/ai-fields.js +114 -0
- package/dist/api-test/ai-fields.js.map +1 -0
- package/dist/api-test/assemble.d.ts +76 -0
- package/dist/api-test/assemble.d.ts.map +1 -0
- package/dist/api-test/assemble.js +185 -0
- package/dist/api-test/assemble.js.map +1 -0
- package/dist/api-test/bru-cli-invoker.d.ts +72 -0
- package/dist/api-test/bru-cli-invoker.d.ts.map +1 -0
- package/dist/api-test/bru-cli-invoker.js +169 -0
- package/dist/api-test/bru-cli-invoker.js.map +1 -0
- package/dist/api-test/bru-report-parser.d.ts +24 -0
- package/dist/api-test/bru-report-parser.d.ts.map +1 -0
- package/dist/api-test/bru-report-parser.js +110 -0
- package/dist/api-test/bru-report-parser.js.map +1 -0
- package/dist/api-test/bru-runner.d.ts +101 -0
- package/dist/api-test/bru-runner.d.ts.map +1 -0
- package/dist/api-test/bru-runner.js +316 -0
- package/dist/api-test/bru-runner.js.map +1 -0
- package/dist/api-test/bru-writer.d.ts +52 -0
- package/dist/api-test/bru-writer.d.ts.map +1 -0
- package/dist/api-test/bru-writer.js +159 -0
- package/dist/api-test/bru-writer.js.map +1 -0
- package/dist/api-test/call-chain-extractor.d.ts +80 -0
- package/dist/api-test/call-chain-extractor.d.ts.map +1 -0
- package/dist/api-test/call-chain-extractor.js +179 -0
- package/dist/api-test/call-chain-extractor.js.map +1 -0
- package/dist/api-test/cli.d.ts +133 -0
- package/dist/api-test/cli.d.ts.map +1 -0
- package/dist/api-test/cli.js +1009 -0
- package/dist/api-test/cli.js.map +1 -0
- package/dist/api-test/config.d.ts +75 -0
- package/dist/api-test/config.d.ts.map +1 -0
- package/dist/api-test/config.js +406 -0
- package/dist/api-test/config.js.map +1 -0
- package/dist/api-test/db-query-cli.d.ts +51 -0
- package/dist/api-test/db-query-cli.d.ts.map +1 -0
- package/dist/api-test/db-query-cli.js +119 -0
- package/dist/api-test/db-query-cli.js.map +1 -0
- package/dist/api-test/enhance-prepare.d.ts +111 -0
- package/dist/api-test/enhance-prepare.d.ts.map +1 -0
- package/dist/api-test/enhance-prepare.js +425 -0
- package/dist/api-test/enhance-prepare.js.map +1 -0
- package/dist/api-test/enhance-write.d.ts +28 -0
- package/dist/api-test/enhance-write.d.ts.map +1 -0
- package/dist/api-test/enhance-write.js +145 -0
- package/dist/api-test/enhance-write.js.map +1 -0
- package/dist/api-test/errors.d.ts +48 -0
- package/dist/api-test/errors.d.ts.map +1 -0
- package/dist/api-test/errors.js +76 -0
- package/dist/api-test/errors.js.map +1 -0
- package/dist/api-test/field-extractor.d.ts +98 -0
- package/dist/api-test/field-extractor.d.ts.map +1 -0
- package/dist/api-test/field-extractor.js +327 -0
- package/dist/api-test/field-extractor.js.map +1 -0
- package/dist/api-test/impl-finder.d.ts +37 -0
- package/dist/api-test/impl-finder.d.ts.map +1 -0
- package/dist/api-test/impl-finder.js +54 -0
- package/dist/api-test/impl-finder.js.map +1 -0
- package/dist/api-test/index.d.ts +41 -0
- package/dist/api-test/index.d.ts.map +1 -0
- package/dist/api-test/index.js +124 -0
- package/dist/api-test/index.js.map +1 -0
- package/dist/api-test/java-parser.d.ts +89 -0
- package/dist/api-test/java-parser.d.ts.map +1 -0
- package/dist/api-test/java-parser.js +508 -0
- package/dist/api-test/java-parser.js.map +1 -0
- package/dist/api-test/md-writer.d.ts +49 -0
- package/dist/api-test/md-writer.d.ts.map +1 -0
- package/dist/api-test/md-writer.js +202 -0
- package/dist/api-test/md-writer.js.map +1 -0
- package/dist/api-test/parser-httpservice.d.ts +91 -0
- package/dist/api-test/parser-httpservice.d.ts.map +1 -0
- package/dist/api-test/parser-httpservice.js +271 -0
- package/dist/api-test/parser-httpservice.js.map +1 -0
- package/dist/api-test/report.d.ts +188 -0
- package/dist/api-test/report.d.ts.map +1 -0
- package/dist/api-test/report.js +522 -0
- package/dist/api-test/report.js.map +1 -0
- package/dist/api-test/snapshot.d.ts +26 -0
- package/dist/api-test/snapshot.d.ts.map +1 -0
- package/dist/api-test/snapshot.js +150 -0
- package/dist/api-test/snapshot.js.map +1 -0
- package/dist/api-test/test-history.d.ts +48 -0
- package/dist/api-test/test-history.d.ts.map +1 -0
- package/dist/api-test/test-history.js +122 -0
- package/dist/api-test/test-history.js.map +1 -0
- package/dist/api-test/types.d.ts +174 -0
- package/dist/api-test/types.d.ts.map +1 -0
- package/dist/api-test/types.js +13 -0
- package/dist/api-test/types.js.map +1 -0
- package/dist/api-test/verify-prepare.d.ts +30 -0
- package/dist/api-test/verify-prepare.d.ts.map +1 -0
- package/dist/api-test/verify-prepare.js +150 -0
- package/dist/api-test/verify-prepare.js.map +1 -0
- package/dist/api-test/verify-write.d.ts +31 -0
- package/dist/api-test/verify-write.d.ts.map +1 -0
- package/dist/api-test/verify-write.js +159 -0
- package/dist/api-test/verify-write.js.map +1 -0
- package/dist/dbquery/dump-schema.d.ts +46 -0
- package/dist/dbquery/dump-schema.d.ts.map +1 -0
- package/dist/dbquery/dump-schema.js +379 -0
- package/dist/dbquery/dump-schema.js.map +1 -0
- package/dist/installer/targets/claude.d.ts +15 -0
- package/dist/installer/targets/claude.d.ts.map +1 -1
- package/dist/installer/targets/claude.js +53 -0
- package/dist/installer/targets/claude.js.map +1 -1
- package/package.json +1 -1
- package/scripts/agent-eval/block-cgraphx-and-gitnexus-cli-hook.sh +0 -43
- package/scripts/agent-eval/block-cgraphx-cli-hook.sh +0 -32
- package/scripts/agent-eval/block-cgraphx-cli-settings.json +0 -16
- package/scripts/agent-eval/cli-vs-mcp-3arm.sh +0 -121
- package/scripts/agent-eval/multi-tool-eval.sh +0 -171
- package/scripts/agent-eval/parse-cli-vs-mcp.mjs +0 -232
- 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":"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"}
|
|
@@ -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"}
|