assert-json-body 1.3.1 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +3 -0
  2. package/dist/extractor/src/lib/child-expansion.d.ts +3 -2
  3. package/dist/extractor/src/lib/child-expansion.d.ts.map +1 -1
  4. package/dist/extractor/src/lib/child-expansion.js +31 -21
  5. package/dist/extractor/src/lib/child-expansion.js.map +1 -1
  6. package/dist/extractor/src/lib/git.d.ts.map +1 -1
  7. package/dist/extractor/src/lib/git.js +8 -4
  8. package/dist/extractor/src/lib/git.js.map +1 -1
  9. package/dist/extractor/src/lib/ref-resolver.d.ts +4 -0
  10. package/dist/extractor/src/lib/ref-resolver.d.ts.map +1 -0
  11. package/dist/extractor/src/lib/ref-resolver.js +22 -0
  12. package/dist/extractor/src/lib/ref-resolver.js.map +1 -0
  13. package/dist/extractor/src/lib/schema-flatten.d.ts +10 -5
  14. package/dist/extractor/src/lib/schema-flatten.d.ts.map +1 -1
  15. package/dist/extractor/src/lib/schema-flatten.js +52 -48
  16. package/dist/extractor/src/lib/schema-flatten.js.map +1 -1
  17. package/dist/lib/config.js +2 -2
  18. package/dist/lib/config.js.map +1 -1
  19. package/dist/lib/extractor.d.ts.map +1 -1
  20. package/dist/lib/extractor.js +9 -7
  21. package/dist/lib/extractor.js.map +1 -1
  22. package/dist-cjs/extractor/src/lib/child-expansion.d.ts +3 -2
  23. package/dist-cjs/extractor/src/lib/child-expansion.d.ts.map +1 -1
  24. package/dist-cjs/extractor/src/lib/child-expansion.js +31 -21
  25. package/dist-cjs/extractor/src/lib/child-expansion.js.map +1 -1
  26. package/dist-cjs/extractor/src/lib/git.d.ts.map +1 -1
  27. package/dist-cjs/extractor/src/lib/git.js +7 -3
  28. package/dist-cjs/extractor/src/lib/git.js.map +1 -1
  29. package/dist-cjs/extractor/src/lib/ref-resolver.d.ts +4 -0
  30. package/dist-cjs/extractor/src/lib/ref-resolver.d.ts.map +1 -0
  31. package/dist-cjs/extractor/src/lib/ref-resolver.js +25 -0
  32. package/dist-cjs/extractor/src/lib/ref-resolver.js.map +1 -0
  33. package/dist-cjs/extractor/src/lib/schema-flatten.d.ts +10 -5
  34. package/dist-cjs/extractor/src/lib/schema-flatten.d.ts.map +1 -1
  35. package/dist-cjs/extractor/src/lib/schema-flatten.js +52 -48
  36. package/dist-cjs/extractor/src/lib/schema-flatten.js.map +1 -1
  37. package/dist-cjs/lib/config.js +2 -2
  38. package/dist-cjs/lib/config.js.map +1 -1
  39. package/dist-cjs/lib/extractor.d.ts.map +1 -1
  40. package/dist-cjs/lib/extractor.js +9 -7
  41. package/dist-cjs/lib/extractor.js.map +1 -1
  42. package/package.json +19 -6
package/README.md CHANGED
@@ -266,6 +266,9 @@ Re-run `npx assert-json-body extract`. The `index.ts` file is regenerated determ
266
266
  **Do I still need to import from the package root?**
267
267
  Use the package root for generic validation utilities (`validateResponseShape`), and the generated `./json-body-assertions/index` for strongly typed validation.
268
268
 
269
+ **Does it support multi-file OpenAPI specs?**
270
+ Yes. The extractor automatically bundles referenced files (via `$ref`) as long as they are within the same directory structure as the entry file.
271
+
269
272
  ## Releasing & Versioning
270
273
 
271
274
  This project uses [semantic-release](https://semantic-release.gitbook.io/) with Conventional Commits to automate:
@@ -1,7 +1,8 @@
1
1
  import { SchemaGroup as OutputSchema } from '../../../types/index.js';
2
2
  import { SchemaOrRef } from './schema-flatten.js';
3
- export declare function buildSchemaTree(schema: SchemaOrRef, components: Record<string, SchemaOrRef>, seen?: Set<string>): OutputSchema;
4
- export declare function resolveFieldSchema(fieldName: string, parentSchema: SchemaOrRef, components: Record<string, SchemaOrRef>): {
3
+ import { OpenAPIV3 } from 'openapi-types';
4
+ export declare function buildSchemaTree(schema: SchemaOrRef, components: Record<string, SchemaOrRef>, seen?: Set<string>, doc?: OpenAPIV3.Document): OutputSchema;
5
+ export declare function resolveFieldSchema(fieldName: string, parentSchema: SchemaOrRef, components: Record<string, SchemaOrRef>, doc?: OpenAPIV3.Document): {
5
6
  kind: string;
6
7
  target?: SchemaOrRef;
7
8
  } | null;
@@ -1 +1 @@
1
- {"version":3,"file":"child-expansion.d.ts","sourceRoot":"","sources":["../../../../src/extractor/src/lib/child-expansion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EAAW,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAG3D,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,IAAI,cAAoB,GAAG,YAAY,CAgBpI;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAAG,IAAI,CAuCvK"}
1
+ {"version":3,"file":"child-expansion.d.ts","sourceRoot":"","sources":["../../../../src/extractor/src/lib/child-expansion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EAAW,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,IAAI,cAAoB,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,QAAQ,GAAG,YAAY,CAgB9J;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAAG,IAAI,CAsDjM"}
@@ -1,37 +1,53 @@
1
1
  import { refNameOf } from './type-utils.js';
2
2
  import { flatten } from './schema-flatten.js';
3
- export function buildSchemaTree(schema, components, seen = new Set()) {
4
- const flat = flatten(schema, components, seen);
3
+ import { resolveRef } from './ref-resolver.js';
4
+ export function buildSchemaTree(schema, components, seen = new Set(), doc) {
5
+ const flat = flatten(schema, components, seen, doc);
5
6
  for (const group of [flat.required, flat.optional]) {
6
7
  for (const field of group) {
7
- const resolved = resolveFieldSchema(field.name, schema, components);
8
+ const resolved = resolveFieldSchema(field.name, schema, components, doc);
8
9
  if (resolved) {
9
10
  const { kind, target } = resolved;
10
11
  if ((kind === 'object' || kind === 'array-object') && target) {
11
- field.children = buildSchemaTree(target, components, new Set(seen));
12
+ field.children = buildSchemaTree(target, components, new Set(seen), doc);
12
13
  }
13
14
  else if (kind === 'ref-object' && target) {
14
- field.children = buildSchemaTree(target, components, new Set(seen.add(refNameOf(field.type))));
15
+ field.children = buildSchemaTree(target, components, new Set(seen.add(refNameOf(field.type))), doc);
15
16
  }
16
17
  }
17
18
  }
18
19
  }
19
20
  return flat;
20
21
  }
21
- export function resolveFieldSchema(fieldName, parentSchema, components) {
22
+ export function resolveFieldSchema(fieldName, parentSchema, components, doc) {
22
23
  const isRef = (s) => '$ref' in s;
23
24
  const isSchemaObject = (s) => !('$ref' in s);
25
+ const resolveTarget = (s) => {
26
+ let curr = s;
27
+ const seen = new Set();
28
+ while (isRef(curr)) {
29
+ const refKey = curr.$ref;
30
+ if (seen.has(refKey))
31
+ return null;
32
+ seen.add(refKey);
33
+ const next = resolveRef(refKey, components, doc);
34
+ if (!next)
35
+ return null;
36
+ curr = next;
37
+ }
38
+ return curr;
39
+ };
24
40
  const visited = new Set();
25
41
  const propertyDefs = {};
26
42
  const collect = (sch) => {
27
43
  if (!sch)
28
44
  return;
29
45
  if (isRef(sch)) {
30
- const refName = sch.$ref.split('/').pop();
31
- if (visited.has(refName))
46
+ const refKey = sch.$ref;
47
+ if (visited.has(refKey))
32
48
  return;
33
- visited.add(refName);
34
- const target = components[refName];
49
+ visited.add(refKey);
50
+ const target = resolveRef(refKey, components, doc);
35
51
  if (target)
36
52
  collect(target);
37
53
  return;
@@ -47,9 +63,8 @@ export function resolveFieldSchema(fieldName, parentSchema, components) {
47
63
  if (!propSchema)
48
64
  return null;
49
65
  if (isRef(propSchema)) {
50
- const refName = propSchema.$ref.split('/').pop();
51
- const target = components[refName];
52
- if (target && isSchemaObject(target) && (target.type === 'object' || target.properties || target.allOf))
66
+ const target = resolveTarget(propSchema);
67
+ if (target && (target.type === 'object' || target.properties || target.allOf))
53
68
  return { kind: 'ref-object', target };
54
69
  return { kind: 'ref' };
55
70
  }
@@ -57,14 +72,9 @@ export function resolveFieldSchema(fieldName, parentSchema, components) {
57
72
  return { kind: 'object', target: propSchema };
58
73
  if (propSchema.type === 'array' && propSchema.items) {
59
74
  const it = propSchema.items;
60
- if (isRef(it)) {
61
- const refName = it.$ref.split('/').pop();
62
- const target = components[refName];
63
- if (target && isSchemaObject(target) && (target.type === 'object' || target.properties || target.allOf))
64
- return { kind: 'array-object', target };
65
- }
66
- else if (it.type === 'object' || it.properties || it.allOf) {
67
- return { kind: 'array-object', target: it };
75
+ const target = resolveTarget(it);
76
+ if (target && (target.type === 'object' || target.properties || target.allOf)) {
77
+ return { kind: 'array-object', target };
68
78
  }
69
79
  }
70
80
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"child-expansion.js","sourceRoot":"","sources":["../../../../src/extractor/src/lib/child-expansion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"child-expansion.js","sourceRoot":"","sources":["../../../../src/extractor/src/lib/child-expansion.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../../src/extractor/src/lib/git.ts"],"names":[],"mappings":"AAKA,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,UAIhF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAUrI"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../../src/extractor/src/lib/git.ts"],"names":[],"mappings":"AAKA,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,UAMhF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAYrI"}
@@ -1,20 +1,24 @@
1
1
  import { spawnSync } from 'node:child_process';
2
2
  import { readFileSync, writeFileSync } from 'node:fs';
3
3
  import { tmpdir } from 'node:os';
4
- import { join } from 'node:path';
4
+ import { join, dirname } from 'node:path';
5
5
  export function run(cmd, args, opts = {}) {
6
+ console.info(`> ${cmd} ${args.join(' ')}`);
6
7
  const res = spawnSync(cmd, args, { stdio: opts.inherit ? 'inherit' : 'pipe', encoding: 'utf8' });
7
8
  if (res.status !== 0)
8
9
  throw new Error(`${cmd} ${args.join(' ')} failed: ${res.stderr || res.status}`);
10
+ console.info(res.stdout);
9
11
  return res.stdout;
10
12
  }
11
13
  export function sparseCheckout(repo, specPath, ref = 'main') {
12
14
  const workdir = join(tmpdir(), `spec-checkout-${Date.now()}`);
13
15
  run('git', ['init', workdir]);
14
- run('git', ['-C', workdir, 'remote', 'add', '-f', 'origin', repo]);
16
+ run('git', ['-C', workdir, 'remote', 'add', 'origin', repo]);
15
17
  run('git', ['-C', workdir, 'config', 'core.sparseCheckout', 'true']);
16
- writeFileSync(join(workdir, '.git', 'info', 'sparse-checkout'), specPath + '\n');
17
- run('git', ['-C', workdir, 'pull', 'origin', ref]);
18
+ const specDir = dirname(specPath);
19
+ const pattern = specDir === '.' ? '*' : `${specDir}/`;
20
+ writeFileSync(join(workdir, '.git', 'info', 'sparse-checkout'), pattern + '\n');
21
+ run('git', ['-C', workdir, 'pull', 'origin', ref, '--depth', '1'], { inherit: true });
18
22
  const commit = run('git', ['-C', workdir, 'rev-parse', 'HEAD']).trim();
19
23
  const specContent = readFileSync(join(workdir, specPath), 'utf8');
20
24
  return { workdir, commit, specContent };
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../../src/extractor/src/lib/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,OAA8B,EAAE;IAC/E,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACjG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACtG,OAAO,GAAG,CAAC,MAAM,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,QAAgB,EAAE,GAAG,GAAG,MAAM;IACzE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC9D,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9B,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IACnE,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC;IACrE,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,CAAC;IACjF,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACvE,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IAClE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../../src/extractor/src/lib/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,OAA8B,EAAE;IAC/E,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACjG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACtG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACxB,OAAO,GAAG,CAAC,MAAM,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,QAAgB,EAAE,GAAG,GAAG,MAAM;IACzE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC9D,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9B,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7D,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC;IACtD,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;IAChF,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACvE,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IAClE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { OpenAPIV3 } from 'openapi-types';
2
+ import { SchemaOrRef } from './schema-flatten.js';
3
+ export declare function resolveRef(ref: string, components: Record<string, SchemaOrRef>, doc?: OpenAPIV3.Document): SchemaOrRef | undefined;
4
+ //# sourceMappingURL=ref-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref-resolver.d.ts","sourceRoot":"","sources":["../../../../src/extractor/src/lib/ref-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,QAAQ,GAAG,WAAW,GAAG,SAAS,CAmBlI"}
@@ -0,0 +1,22 @@
1
+ export function resolveRef(ref, components, doc) {
2
+ if (doc && ref.startsWith('#/')) {
3
+ const path = ref.substring(2).split('/');
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
+ let current = doc;
6
+ for (let i = 0; i < path.length; i++) {
7
+ const seg = path[i];
8
+ if (current === undefined || current === null) {
9
+ break;
10
+ }
11
+ const decoded = decodeURIComponent(seg.replace(/~1/g, '/').replace(/~0/g, '~'));
12
+ const next = current[decoded];
13
+ current = next;
14
+ }
15
+ if (current)
16
+ return current;
17
+ }
18
+ // Fallback to naive lookup (legacy/test support)
19
+ const name = ref.split('/').pop();
20
+ return components[name];
21
+ }
22
+ //# sourceMappingURL=ref-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref-resolver.js","sourceRoot":"","sources":["../../../../src/extractor/src/lib/ref-resolver.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,UAAuC,EAAE,GAAwB;IACvG,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,8DAA8D;QAC9D,IAAI,OAAO,GAAQ,GAAG,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC5C,MAAM;YACV,CAAC;YACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YAChF,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,IAAI,OAAO;YAAE,OAAO,OAAsB,CAAC;IAC9C,CAAC;IACD,iDAAiD;IACjD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC;IACnC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -1,10 +1,15 @@
1
1
  import { FieldSpec, FlattenResult, SchemaGroup as OutputSchema } from '../../../types/index.js';
2
2
  import { OpenAPIV3 } from 'openapi-types';
3
3
  export type SchemaOrRef = OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject;
4
- export declare function flatten(schema: SchemaOrRef, components: Record<string, SchemaOrRef>, seen?: Set<string>): OutputSchema;
5
- export declare function flattenInternal(schema: SchemaOrRef, components: Record<string, SchemaOrRef>, seen?: Set<string>): FlattenResult;
6
- export declare function describeType(schema: SchemaOrRef | undefined, components: Record<string, SchemaOrRef>, stack?: string[]): string;
7
- export declare function deriveFieldMetadata(schema: SchemaOrRef, components: Record<string, SchemaOrRef>): Partial<FieldSpec>;
4
+ interface Context {
5
+ components: Record<string, SchemaOrRef>;
6
+ doc?: OpenAPIV3.Document;
7
+ }
8
+ export declare function flatten(schema: SchemaOrRef, components: Record<string, SchemaOrRef>, seen?: Set<string>, doc?: OpenAPIV3.Document): OutputSchema;
9
+ export declare function flattenInternal(schema: SchemaOrRef, ctx: Context, seen?: Set<string>): FlattenResult;
10
+ export declare function describeType(schema: SchemaOrRef | undefined, ctx: Context, stack?: string[]): string;
11
+ export declare function deriveFieldMetadata(schema: SchemaOrRef, ctx: Context): Partial<FieldSpec>;
8
12
  export declare function isObjectLike(s: SchemaOrRef | undefined | null): boolean;
9
- export declare function primitiveFromSchema(schema: SchemaOrRef | undefined, components: Record<string, SchemaOrRef>, stack: string[]): string | null;
13
+ export declare function primitiveFromSchema(schema: SchemaOrRef | undefined, ctx: Context, stack: string[]): string | null;
14
+ export {};
10
15
  //# sourceMappingURL=schema-flatten.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-flatten.d.ts","sourceRoot":"","sources":["../../../../src/extractor/src/lib/schema-flatten.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEhG,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,eAAe,CAAC;AAM7E,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,IAAI,cAAoB,GAAG,YAAY,CAG5H;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,IAAI,cAAoB,GAAG,aAAa,CAkDrI;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,GAAE,MAAM,EAAO,GAAG,MAAM,CA2CnI;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CA2CpH;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAIvE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CA2B5I"}
1
+ {"version":3,"file":"schema-flatten.d.ts","sourceRoot":"","sources":["../../../../src/extractor/src/lib/schema-flatten.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEhG,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,eAAe,CAAC;AAO7E,UAAU,OAAO;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACxC,GAAG,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC;CAC1B;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,IAAI,cAAoB,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,QAAQ,GAAG,YAAY,CAGtJ;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,cAAoB,GAAG,aAAa,CAwD1G;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,GAAE,MAAM,EAAO,GAAG,MAAM,CA4CxG;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CA2CzF;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAIvE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CA2BjH"}
@@ -1,21 +1,21 @@
1
1
  import { normalizeType, dedupeFields } from './type-utils.js';
2
2
  function isRef(s) { return !!s && '$ref' in s; }
3
3
  function isSchemaObject(s) { return !!s && !('$ref' in s); }
4
- // Functions here are extracted from original single-file implementation for clarity and testability.
5
- export function flatten(schema, components, seen = new Set()) {
6
- const { required, optional } = flattenInternal(schema, components, seen);
4
+ import { resolveRef } from './ref-resolver.js';
5
+ export function flatten(schema, components, seen = new Set(), doc) {
6
+ const { required, optional } = flattenInternal(schema, { components, doc }, seen);
7
7
  return { required, optional };
8
8
  }
9
- export function flattenInternal(schema, components, seen = new Set()) {
9
+ export function flattenInternal(schema, ctx, seen = new Set()) {
10
10
  if (isRef(schema)) {
11
- const ref = schema.$ref.split('/').pop();
12
- if (seen.has(ref))
11
+ const refKey = schema.$ref;
12
+ if (seen.has(refKey))
13
13
  return { required: [], optional: [] };
14
- seen.add(ref);
15
- const target = components[ref];
14
+ seen.add(refKey);
15
+ const target = resolveRef(refKey, ctx.components, ctx.doc);
16
16
  if (!target)
17
17
  return { required: [], optional: [] };
18
- return flattenInternal(target, components, seen);
18
+ return flattenInternal(target, ctx, seen);
19
19
  }
20
20
  let reqFields = [];
21
21
  let optFields = [];
@@ -23,18 +23,21 @@ export function flattenInternal(schema, components, seen = new Set()) {
23
23
  if (!sch)
24
24
  return;
25
25
  if (isRef(sch)) {
26
- const name = sch.$ref.split('/').pop();
27
- if (refSeen.has(name))
26
+ const refKey = sch.$ref;
27
+ if (refSeen.has(refKey))
28
28
  return;
29
- refSeen.add(name);
30
- const target = components[name];
31
- if (target)
29
+ refSeen.add(refKey);
30
+ const target = resolveRef(refKey, ctx.components, ctx.doc);
31
+ if (target) {
32
32
  expand(target, acc, refSeen);
33
+ }
33
34
  return;
34
35
  }
35
- if (sch.allOf)
36
- for (const part of sch.allOf)
36
+ if (sch.allOf) {
37
+ for (const part of sch.allOf) {
37
38
  expand(part, acc, refSeen);
39
+ }
40
+ }
38
41
  if (isSchemaObject(sch))
39
42
  acc.push(sch);
40
43
  };
@@ -49,8 +52,8 @@ export function flattenInternal(schema, components, seen = new Set()) {
49
52
  Object.assign(collectedProps, s.properties);
50
53
  }
51
54
  for (const [prop, propSchema] of Object.entries(collectedProps)) {
52
- const metadata = deriveFieldMetadata(propSchema, components);
53
- const rawType = describeType(propSchema, components);
55
+ const metadata = deriveFieldMetadata(propSchema, ctx);
56
+ const rawType = describeType(propSchema, ctx);
54
57
  const spec = {
55
58
  name: prop,
56
59
  type: normalizeType(rawType),
@@ -65,34 +68,35 @@ export function flattenInternal(schema, components, seen = new Set()) {
65
68
  optFields = dedupeFields(optFields.filter(f => !reqFields.some(r => r.name === f.name)));
66
69
  return { required: reqFields, optional: optFields };
67
70
  }
68
- export function describeType(schema, components, stack = []) {
71
+ export function describeType(schema, ctx, stack = []) {
69
72
  if (!schema)
70
73
  return 'unknown';
71
74
  if (isRef(schema)) {
72
- const ref = schema.$ref.split('/').pop();
73
- const target = components[ref];
75
+ const refKey = schema.$ref;
76
+ const target = resolveRef(refKey, ctx.components, ctx.doc);
77
+ const simpleName = refKey.split('/').pop();
74
78
  if (!target)
75
- return ref;
76
- if (stack.includes(ref))
77
- return ref;
78
- const nextStack = [...stack, ref];
79
- const prim = primitiveFromSchema(target, components, nextStack);
79
+ return simpleName;
80
+ if (stack.includes(refKey))
81
+ return simpleName;
82
+ const nextStack = [...stack, refKey];
83
+ const prim = primitiveFromSchema(target, ctx, nextStack);
80
84
  if (prim)
81
85
  return prim;
82
86
  if (isSchemaObject(target)) {
83
- const derived = describeType(target, components, nextStack);
87
+ const derived = describeType(target, ctx, nextStack);
84
88
  if (derived !== 'object')
85
89
  return derived;
86
90
  }
87
- return ref;
91
+ return simpleName;
88
92
  }
89
93
  if (schema.type === 'array') {
90
94
  const items = schema.items;
91
- return `array<${normalizeType(describeType(items, components, stack))}>`;
95
+ return `array<${normalizeType(describeType(items, ctx, stack))}>`;
92
96
  }
93
97
  if (schema.allOf) {
94
98
  const primCandidates = schema.allOf
95
- .map((s) => primitiveFromSchema(s, components, stack))
99
+ .map((s) => primitiveFromSchema(s, ctx, stack))
96
100
  .filter((t) => !!t && t !== 'object');
97
101
  const unique = [...new Set(primCandidates)];
98
102
  if (unique.length === 1)
@@ -109,16 +113,16 @@ export function describeType(schema, components, stack = []) {
109
113
  return schema.format ? `${schema.type}(${schema.format})` : schema.type;
110
114
  }
111
115
  if (schema.oneOf) {
112
- const branches = schema.oneOf.map((s) => normalizeType(describeType(s, components, stack)));
116
+ const branches = schema.oneOf.map((s) => normalizeType(describeType(s, ctx, stack)));
113
117
  return branches.join('|');
114
118
  }
115
119
  if (schema.anyOf) {
116
- const branches = schema.anyOf.map((s) => normalizeType(describeType(s, components, stack)));
120
+ const branches = schema.anyOf.map((s) => normalizeType(describeType(s, ctx, stack)));
117
121
  return branches.join('|');
118
122
  }
119
123
  return 'unknown';
120
124
  }
121
- export function deriveFieldMetadata(schema, components) {
125
+ export function deriveFieldMetadata(schema, ctx) {
122
126
  const meta = {};
123
127
  const collectEnum = (sch) => {
124
128
  if (!sch)
@@ -134,11 +138,11 @@ export function deriveFieldMetadata(schema, components) {
134
138
  }
135
139
  return undefined;
136
140
  };
137
- const detectWrapper = (refName, target) => {
141
+ const detectWrapper = (refKey, target) => {
138
142
  if (!target)
139
143
  return {};
140
144
  const enumValues = collectEnum(target);
141
- const underlyingPrim = primitiveFromSchema(target, components, [refName]);
145
+ const underlyingPrim = primitiveFromSchema(target, ctx, [refKey]);
142
146
  const isPrimitiveLike = !!underlyingPrim && !(isSchemaObject(target) && (target.properties || target.type === 'object'));
143
147
  return {
144
148
  underlying: underlyingPrim ? normalizeType(underlyingPrim) : undefined,
@@ -147,14 +151,14 @@ export function deriveFieldMetadata(schema, components) {
147
151
  };
148
152
  };
149
153
  if (isRef(schema)) {
150
- const ref = schema.$ref.split('/').pop();
151
- const target = components[ref];
152
- const { underlying, wrapper, enumValues } = detectWrapper(ref, target);
154
+ const refKey = schema.$ref;
155
+ const target = resolveRef(refKey, ctx.components, ctx.doc);
156
+ const { underlying, wrapper, enumValues } = detectWrapper(refKey, target);
153
157
  if (enumValues?.length)
154
158
  meta.enumValues = enumValues;
155
159
  if (wrapper && underlying)
156
160
  meta.underlyingPrimitive = underlying;
157
- meta.rawRefName = ref;
161
+ meta.rawRefName = refKey.split('/').pop();
158
162
  if (wrapper)
159
163
  meta.wrapper = true;
160
164
  return meta;
@@ -176,21 +180,21 @@ export function isObjectLike(s) {
176
180
  return false; // handled elsewhere
177
181
  return !!(s.type === 'object' || s.properties || s.allOf);
178
182
  }
179
- export function primitiveFromSchema(schema, components, stack) {
183
+ export function primitiveFromSchema(schema, ctx, stack) {
180
184
  if (!schema)
181
185
  return null;
182
186
  if (isRef(schema)) {
183
- const ref = schema.$ref.split('/').pop();
184
- if (stack.includes(ref))
185
- return ref; // cycle guard returns ref name
186
- const target = components[ref];
187
+ const refKey = schema.$ref;
188
+ if (stack.includes(refKey))
189
+ return refKey.split('/').pop();
190
+ const target = resolveRef(refKey, ctx.components, ctx.doc);
187
191
  if (!target)
188
- return ref;
189
- const rec = primitiveFromSchema(target, components, [...stack, ref]);
190
- return rec ?? ref;
192
+ return refKey.split('/').pop();
193
+ const rec = primitiveFromSchema(target, ctx, [...stack, refKey]);
194
+ return rec ?? refKey.split('/').pop();
191
195
  }
192
196
  if (schema.allOf) {
193
- const parts = schema.allOf.map((p) => primitiveFromSchema(p, components, stack)).filter(Boolean);
197
+ const parts = schema.allOf.map((p) => primitiveFromSchema(p, ctx, stack)).filter(Boolean);
194
198
  const uniq = [...new Set(parts)];
195
199
  if (uniq.length === 1)
196
200
  return uniq[0];
@@ -1 +1 @@
1
- {"version":3,"file":"schema-flatten.js","sourceRoot":"","sources":["../../../../src/extractor/src/lib/schema-flatten.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-flatten.js","sourceRoot":"","sources":["../../../../src/extractor/src/lib/schema-flatten.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@ import { readFileSync, existsSync } from 'node:fs';
3
3
  import { resolve } from 'node:path';
4
4
  const CONFIG_FILENAME = 'assert-json-body.config.json';
5
5
  const DEFAULT_EXTRACT = {
6
- repo: 'https://github.com/camunda/camunda-orchestration-cluster-api',
7
- specPath: 'specification/rest-api.yaml',
6
+ repo: 'https://github.com/camunda/camunda',
7
+ specPath: 'zeebe/gateway-protocol/src/main/proto/v2/rest-api.yaml',
8
8
  ref: 'main',
9
9
  outputDir: 'json-body-assertions',
10
10
  preserveCheckout: false,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,eAAe,GAAG,8BAA8B,CAAC;AAEvD,MAAM,eAAe,GAA0B;IAC7C,IAAI,EAAE,8DAA8D;IACpE,QAAQ,EAAE,6BAA6B;IACvC,GAAG,EAAE,MAAM;IACX,SAAS,EAAE,sBAAsB;IACjC,gBAAgB,EAAE,KAAK;IACvB,MAAM,EAAE,KAAK;IACb,QAAQ,EAAE,MAAM;IAChB,YAAY,EAAE,KAAK;IACnB,aAAa,EAAE,SAAS;CACzB,CAAC;AAEF,MAAM,gBAAgB,GAA2B;IAC/C,eAAe,EAAE,KAAK;IACtB,qBAAqB,EAAE,IAAI;CAC5B,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE,EAAE,YAAqB;IAC/E,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACvF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAe,CAAC;QAC7C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,KAAK,EAAE,GAAY,EAAE,CAAC;IACjC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,MAAM,IAAI,GAAkC,EAAE,CAAC;IAC/C,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,OAA2B,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAAC,OAAO,GAAG,KAAK,CAAC;YAAC,SAAS;QAAC,CAAC;QACtE,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK,SAAS;gBAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;;gBAAM,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvC,KAAK,MAAM,CAAC,IAAI,KAAK;gBAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,IAAI,CAAC,GAAkC,EAAE,IAAc;IAC9D,MAAM,GAAG,GAAkB,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,IAAI,CAAC,IAAI,GAAG;YAAG,GAAW,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAkC;IAChE,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,EAAC,UAAU,EAAC,KAAK,EAAC,WAAW,EAAC,kBAAkB,EAAC,QAAQ,EAAC,eAAe,EAAC,UAAU,EAAC,cAAc,CAAC,CAAC,CAAC;AAChI,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAyB,OAAO,CAAC,GAAG;IAClE,MAAM,GAAG,GAA0B,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,CAAC,CAAS,EAAuB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxG,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC;IACtC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAC5C,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,SAAS,CAAC;IACpD,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACxD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC;IACnD,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;IACzC,MAAM,SAAS,GAAG,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,UAAU,CAAC;IACvD,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAC3D,MAAM,gBAAgB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC1D,MAAM,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACnE,MAAM,qBAAqB,GAAG,gBAAgB,IAAI,wBAAwB,CAAC;IAC3E,IAAI,qBAAqB,KAAK,SAAS;QAAE,OAAO,CAAC,gBAAgB,GAAG,qBAAqB,CAAC;IAC1F,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACtC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IAClD,MAAM,aAAa,GAAG,GAAG,CAAC,kBAAkB,IAAI,GAAG,CAAC,yBAAyB,CAAC;IAC9E,IAAI,aAAa,KAAK,SAAS;QAAE,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;IACvE,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAsD,CAAC;IAC5E,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACxD,MAAM,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnD,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC;IAEpE,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACrC,MAAM,cAAc,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,MAAM,IAAI,cAAc,CAAC;IAC7C,IAAI,WAAW,KAAK,SAAS;QAAE,QAAQ,CAAC,eAAe,GAAG,WAAW,CAAC;IACtE,MAAM,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACjD,IAAI,WAAW,KAAK,SAAS;QAAE,QAAQ,CAAC,qBAAqB,GAAG,WAAW,CAAC;IAC5E,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,aAAa,CAAC,MAAqB,EAAE,QAAkB;IAC9D,IAAI,OAAO,MAAM,CAAC,gBAAgB,KAAK,QAAQ;QAAE,MAAM,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC3H,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;QAAE,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7F,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ;QAAE,MAAM,CAAC,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC/G,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3F,QAAQ,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,QAAQ,2BAA2B,CAAC,CAAC;QAC/E,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC;IAC3B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAA+H;IAC3J,MAAM,aAAa,GAAkB,EAAE,GAAG,eAAe,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,IAAE,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAC9H,MAAM,cAAc,GAAmB,EAAE,GAAG,gBAAgB,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,IAAE,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IACrH,aAAa,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,OAAO,GAA0B;QACrC,IAAI,EAAE,aAAa,CAAC,IAAI,IAAI,eAAe,CAAC,IAAI;QAChD,QAAQ,EAAE,aAAa,CAAC,QAAQ,IAAI,eAAe,CAAC,QAAQ;QAC5D,GAAG,EAAE,aAAa,CAAC,GAAG,IAAI,eAAe,CAAC,GAAG;QAC7C,SAAS,EAAE,aAAa,CAAC,SAAS,IAAI,eAAe,CAAC,SAAS;QAC/D,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,IAAI,eAAe,CAAC,gBAAgB;QACpF,MAAM,EAAE,aAAa,CAAC,MAAM,IAAI,eAAe,CAAC,MAAM;QACtD,QAAQ,EAAG,aAAa,CAAC,QAAgB,IAAI,eAAe,CAAC,QAAQ;QACrE,YAAY,EAAE,aAAa,CAAC,YAAY,IAAI,eAAe,CAAC,YAAY;QACxE,aAAa,EAAE,aAAa,CAAC,aAAa;KAC3C,CAAC;IACF,MAAM,QAAQ,GAA2B;QACvC,eAAe,EAAE,cAAc,CAAC,eAAe,IAAI,gBAAgB,CAAC,eAAe;QACnF,qBAAqB,EAAE,cAAc,CAAC,qBAAqB,IAAI,gBAAgB,CAAC,qBAAqB;KACtG,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,kBAA2B;IACrD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC,CAAC;IACpF,IAAI,KAAK;QAAE,QAAQ,CAAC,IAAI,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACzE,MAAM,EAAE,IAAI,EAAE,GAAG,YAAY,EAAE,CAAC;IAChC,mCAAmC;IACnC,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,aAAa,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/lib/extractor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAiB,aAAa,EAAE,WAAW,EAAE,aAAa,EAAyB,MAAM,mBAAmB,CAAC;AAyBpH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,GAAG,aAAa,EAAE,CAoBzE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,QAc9C;AAED,wBAAsB,QAAQ,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,iBA+EpF"}
1
+ {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/lib/extractor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAiB,aAAa,EAAE,WAAW,EAAE,aAAa,EAAyB,MAAM,mBAAmB,CAAC;AAyBpH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,GAAG,aAAa,EAAE,CAyBzE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,QAc9C;AAED,wBAAsB,QAAQ,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,iBAkFpF"}
@@ -1,7 +1,7 @@
1
1
  import { writeFileSync, mkdirSync, rmSync, existsSync } from 'node:fs';
2
2
  import { join, resolve } from 'node:path';
3
3
  import crypto from 'node:crypto';
4
- import yaml from 'js-yaml';
4
+ import SwaggerParser from '@apidevtools/swagger-parser';
5
5
  import { fileURLToPath } from 'node:url';
6
6
  import { sparseCheckout } from './git.js';
7
7
  import { buildSchemaTree } from './child-expansion.js';
@@ -37,7 +37,7 @@ export function extractResponses(doc) {
37
37
  const schema = appJson?.schema;
38
38
  if (!schema)
39
39
  continue;
40
- const flattened = buildSchemaTree(schema, (doc.components?.schemas || {}));
40
+ const flattened = buildSchemaTree(schema, (doc.components?.schemas || {}), undefined, doc);
41
41
  entries.push({ path, method: method.toUpperCase(), status, schema: { required: flattened.required, optional: flattened.optional } });
42
42
  }
43
43
  }
@@ -76,15 +76,17 @@ export async function generate(cfg, options) {
76
76
  };
77
77
  const REPO = effective.repo;
78
78
  const SPEC_PATH = effective.specPath;
79
- const { workdir, commit, specContent } = sparseCheckout(REPO, SPEC_PATH, effective.ref);
79
+ if (effective.logLevel == 'info') {
80
+ console.info(effective);
81
+ }
82
+ const { workdir, commit } = sparseCheckout(REPO, SPEC_PATH, effective.ref);
80
83
  try {
81
- const raw = yaml.load(specContent);
82
- // We accept partial docs; cast to OpenAPIV3.Document for extraction purposes.
83
- const doc = raw;
84
+ const fullPath = join(workdir, SPEC_PATH);
85
+ const doc = await SwaggerParser.bundle(fullPath);
84
86
  const responses = extractResponses(doc);
85
87
  for (const entry of responses)
86
88
  pruneSchema(entry.schema);
87
- const sha256 = crypto.createHash('sha256').update(specContent).digest('hex');
89
+ const sha256 = crypto.createHash('sha256').update(JSON.stringify(doc)).digest('hex');
88
90
  const out = { metadata: { sourceRepo: REPO, commit, generatedAt: new Date().toISOString(), specPath: SPEC_PATH, specSha256: sha256 }, responses };
89
91
  const outDir = effective.outputDir;
90
92
  const targetFile = effective.responsesFile ? resolve(effective.responsesFile) : join(outDir, 'responses.json');