apcore-toolkit 0.4.1 → 0.5.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 (108) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/LICENSE +185 -0
  3. package/README.md +91 -39
  4. package/dist/ai-enhancer.d.ts +18 -1
  5. package/dist/ai-enhancer.d.ts.map +1 -1
  6. package/dist/ai-enhancer.js +100 -23
  7. package/dist/ai-enhancer.js.map +1 -1
  8. package/dist/binding-loader.d.ts +55 -0
  9. package/dist/binding-loader.d.ts.map +1 -0
  10. package/dist/binding-loader.js +175 -0
  11. package/dist/binding-loader.js.map +1 -0
  12. package/dist/binding-parser.d.ts +80 -0
  13. package/dist/binding-parser.d.ts.map +1 -0
  14. package/dist/binding-parser.js +257 -0
  15. package/dist/binding-parser.js.map +1 -0
  16. package/dist/browser/index.d.ts +17 -0
  17. package/dist/browser/index.d.ts.map +1 -0
  18. package/dist/browser/index.js +46 -0
  19. package/dist/browser/index.js.map +1 -0
  20. package/dist/{display-resolver.d.ts → display/resolver.d.ts} +14 -2
  21. package/dist/display/resolver.d.ts.map +1 -0
  22. package/dist/{display-resolver.js → display/resolver.js} +79 -25
  23. package/dist/display/resolver.js.map +1 -0
  24. package/dist/formatting/markdown.d.ts.map +1 -1
  25. package/dist/formatting/markdown.js +25 -22
  26. package/dist/formatting/markdown.js.map +1 -1
  27. package/dist/http-verb-map.d.ts +79 -0
  28. package/dist/http-verb-map.d.ts.map +1 -0
  29. package/dist/http-verb-map.js +179 -0
  30. package/dist/http-verb-map.js.map +1 -0
  31. package/dist/index.d.ts +8 -5
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +12 -4
  34. package/dist/index.js.map +1 -1
  35. package/dist/openapi.d.ts.map +1 -1
  36. package/dist/openapi.js +37 -10
  37. package/dist/openapi.js.map +1 -1
  38. package/dist/output/base-writer.d.ts +17 -0
  39. package/dist/output/base-writer.d.ts.map +1 -0
  40. package/dist/output/base-writer.js +34 -0
  41. package/dist/output/base-writer.js.map +1 -0
  42. package/dist/output/errors.d.ts +7 -2
  43. package/dist/output/errors.d.ts.map +1 -1
  44. package/dist/output/errors.js +8 -3
  45. package/dist/output/errors.js.map +1 -1
  46. package/dist/output/factory.d.ts +13 -1
  47. package/dist/output/factory.d.ts.map +1 -1
  48. package/dist/output/factory.js +21 -2
  49. package/dist/output/factory.js.map +1 -1
  50. package/dist/output/http-proxy-writer.d.ts +82 -0
  51. package/dist/output/http-proxy-writer.d.ts.map +1 -0
  52. package/dist/output/http-proxy-writer.js +222 -0
  53. package/dist/output/http-proxy-writer.js.map +1 -0
  54. package/dist/output/index.d.ts +1 -1
  55. package/dist/output/index.d.ts.map +1 -1
  56. package/dist/output/index.js +1 -1
  57. package/dist/output/index.js.map +1 -1
  58. package/dist/output/registry-writer.d.ts +23 -5
  59. package/dist/output/registry-writer.d.ts.map +1 -1
  60. package/dist/output/registry-writer.js +52 -14
  61. package/dist/output/registry-writer.js.map +1 -1
  62. package/dist/output/types.d.ts +1 -0
  63. package/dist/output/types.d.ts.map +1 -1
  64. package/dist/output/types.js.map +1 -1
  65. package/dist/output/typescript-writer.d.ts +14 -6
  66. package/dist/output/typescript-writer.d.ts.map +1 -1
  67. package/dist/output/typescript-writer.js +100 -32
  68. package/dist/output/typescript-writer.js.map +1 -1
  69. package/dist/output/verifiers.d.ts +1 -9
  70. package/dist/output/verifiers.d.ts.map +1 -1
  71. package/dist/output/verifiers.js +92 -42
  72. package/dist/output/verifiers.js.map +1 -1
  73. package/dist/output/verify-core.d.ts +20 -0
  74. package/dist/output/verify-core.d.ts.map +1 -0
  75. package/dist/output/verify-core.js +59 -0
  76. package/dist/output/verify-core.js.map +1 -0
  77. package/dist/output/yaml-writer.d.ts +18 -6
  78. package/dist/output/yaml-writer.d.ts.map +1 -1
  79. package/dist/output/yaml-writer.js +99 -42
  80. package/dist/output/yaml-writer.js.map +1 -1
  81. package/dist/resolve-target.d.ts.map +1 -1
  82. package/dist/resolve-target.js +34 -5
  83. package/dist/resolve-target.js.map +1 -1
  84. package/dist/safe-keys.d.ts +2 -0
  85. package/dist/safe-keys.d.ts.map +1 -0
  86. package/dist/safe-keys.js +19 -0
  87. package/dist/safe-keys.js.map +1 -0
  88. package/dist/scanner.d.ts +22 -0
  89. package/dist/scanner.d.ts.map +1 -1
  90. package/dist/scanner.js +40 -16
  91. package/dist/scanner.js.map +1 -1
  92. package/dist/schema-utils.d.ts.map +1 -1
  93. package/dist/schema-utils.js +13 -2
  94. package/dist/schema-utils.js.map +1 -1
  95. package/dist/serializers.d.ts.map +1 -1
  96. package/dist/serializers.js +2 -0
  97. package/dist/serializers.js.map +1 -1
  98. package/dist/types.d.ts +16 -0
  99. package/dist/types.d.ts.map +1 -1
  100. package/dist/types.js +3 -0
  101. package/dist/types.js.map +1 -1
  102. package/package.json +10 -2
  103. package/dist/display-resolver.d.ts.map +0 -1
  104. package/dist/display-resolver.js.map +0 -1
  105. package/dist/flatten-params.d.ts +0 -16
  106. package/dist/flatten-params.d.ts.map +0 -1
  107. package/dist/flatten-params.js +0 -18
  108. package/dist/flatten-params.js.map +0 -1
@@ -20,14 +20,24 @@ function _formatScalar(value) {
20
20
  function _escapePipe(text) {
21
21
  return text.replace(/\|/g, '\\|');
22
22
  }
23
- function _compactRepr(value, maxLen = 80) {
23
+ function _escapeCell(text) {
24
+ return _escapePipe(text).replace(/\r?\n/g, ' ');
25
+ }
26
+ function _compactRepr(value, maxLen = 80, _visited) {
27
+ const visited = _visited ?? new WeakSet();
24
28
  let text;
25
29
  if (Array.isArray(value)) {
26
- const parts = value.map(v => _compactRepr(v, 30));
30
+ if (visited.has(value))
31
+ return '[Circular]';
32
+ visited.add(value);
33
+ const parts = value.map(v => _compactRepr(v, 30, visited));
27
34
  text = `[${parts.join(', ')}]`;
28
35
  }
29
36
  else if (value !== null && typeof value === 'object') {
30
- const parts = Object.entries(value).map(([k, v]) => `${k}: ${_compactRepr(v, 30)}`);
37
+ if (visited.has(value))
38
+ return '[Circular]';
39
+ visited.add(value);
40
+ const parts = Object.entries(value).map(([k, v]) => `${k}: ${_compactRepr(v, 30, visited)}`);
31
41
  text = `{${parts.join(', ')}}`;
32
42
  }
33
43
  else if (_isScalar(value)) {
@@ -53,9 +63,9 @@ function _uniformKeys(items) {
53
63
  function _filterKeys(data, fields, exclude) {
54
64
  let result = data;
55
65
  if (fields !== undefined) {
56
- const filtered = {};
66
+ const filtered = Object.create(null);
57
67
  for (const k of fields) {
58
- if (k in data) {
68
+ if (Object.prototype.hasOwnProperty.call(data, k)) {
59
69
  filtered[k] = data[k];
60
70
  }
61
71
  }
@@ -63,7 +73,7 @@ function _filterKeys(data, fields, exclude) {
63
73
  }
64
74
  if (exclude && exclude.length > 0) {
65
75
  const ex = new Set(exclude);
66
- const filtered = {};
76
+ const filtered = Object.create(null);
67
77
  for (const [k, v] of Object.entries(result)) {
68
78
  if (!ex.has(k))
69
79
  filtered[k] = v;
@@ -76,7 +86,7 @@ function _renderTable(data, lines) {
76
86
  lines.push('| Field | Value |');
77
87
  lines.push('|-------|-------|');
78
88
  for (const [key, value] of Object.entries(data)) {
79
- lines.push(`| ${_escapePipe(String(key))} | ${_escapePipe(_formatScalar(value))} |`);
89
+ lines.push(`| ${_escapeCell(String(key))} | ${_escapeCell(_formatScalar(value))} |`);
80
90
  }
81
91
  lines.push('');
82
92
  }
@@ -91,7 +101,7 @@ function _renderListTable(items, lines, exclude) {
91
101
  lines.push('| ' + keys.map(k => _escapePipe(k)).join(' | ') + ' |');
92
102
  lines.push('| ' + keys.map(() => '---').join(' | ') + ' |');
93
103
  for (const item of items) {
94
- const row = keys.map(k => _escapePipe(_formatScalar(item[k]))).join(' | ');
104
+ const row = keys.map(k => _escapeCell(_formatScalar(item[k]))).join(' | ');
95
105
  lines.push(`| ${row} |`);
96
106
  }
97
107
  lines.push('');
@@ -144,24 +154,17 @@ function _renderList(items, lines, depth, absDepth, maxDepth, exclude) {
144
154
  }
145
155
  }
146
156
  function _renderDict(data, lines, depth, absDepth, maxDepth, tableThreshold, exclude) {
147
- if (Object.keys(data).length === 0)
157
+ const ex = exclude && exclude.length > 0 ? new Set(exclude) : null;
158
+ const entries = Object.entries(data).filter(([k]) => !ex || !ex.has(k));
159
+ if (entries.length === 0)
148
160
  return;
149
- if (exclude && exclude.length > 0) {
150
- const ex = new Set(exclude);
151
- const filtered = {};
152
- for (const [k, v] of Object.entries(data)) {
153
- if (!ex.has(k))
154
- filtered[k] = v;
155
- }
156
- data = filtered;
157
- }
158
- const allScalar = Object.values(data).every(v => _isScalar(v));
159
- if (allScalar && Object.keys(data).length >= tableThreshold) {
160
- _renderTable(data, lines);
161
+ const allScalar = entries.every(([, v]) => _isScalar(v));
162
+ if (allScalar && entries.length >= tableThreshold) {
163
+ _renderTable(Object.fromEntries(entries), lines);
161
164
  return;
162
165
  }
163
166
  const indent = ' '.repeat(depth);
164
- for (const [key, value] of Object.entries(data)) {
167
+ for (const [key, value] of entries) {
165
168
  if (_isScalar(value)) {
166
169
  lines.push(`${indent}- **${key}**: ${_formatScalar(value)}`);
167
170
  }
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/formatting/markdown.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/formatting/markdown.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * HTTP verb semantic mapping utilities.
3
+ *
4
+ * Provides the canonical mapping from HTTP methods to semantic verbs used
5
+ * by scanner implementations when generating user-facing command aliases.
6
+ * All functions are pure and do not throw.
7
+ */
8
+ /**
9
+ * Canonical HTTP method to semantic verb mapping.
10
+ *
11
+ * Keys are uppercase HTTP methods. `GET_ID` is a synthetic key used when
12
+ * GET routes have path parameters (single-resource access). Values are
13
+ * lowercase semantic verbs used by CLI and MCP surfaces. The mapping is
14
+ * considered immutable by convention; downstream code MUST NOT mutate it.
15
+ */
16
+ export declare const SCANNER_VERB_MAP: Readonly<Record<string, string>>;
17
+ /**
18
+ * Check if a URL path contains path parameter placeholders.
19
+ *
20
+ * Detects both brace-style (`{param}`) and colon-style (`:param`) parameters,
21
+ * covering all major web frameworks.
22
+ *
23
+ * @param path - URL path string (e.g., `/tasks/{id}` or `/users/:userId`).
24
+ * @returns True if the path contains at least one path parameter, false otherwise.
25
+ */
26
+ export declare function hasPathParams(path: string): boolean;
27
+ export declare function resolveHttpVerb(method: string, pathHasParams: boolean): string;
28
+ /**
29
+ * Generate a dot-separated suggested alias from HTTP route info.
30
+ *
31
+ * The alias is built from non-parameter path segments joined with the
32
+ * resolved semantic verb. The output uses snake_case preserved from the
33
+ * path; surface adapters apply their own naming conventions (e.g., CLI
34
+ * converts underscores to hyphens).
35
+ *
36
+ * The GET-vs-list disambiguation checks whether the LAST path segment
37
+ * is a path parameter (single-resource access) rather than whether the
38
+ * path contains any parameters anywhere. This correctly treats nested
39
+ * collection endpoints like `/orgs/{org_id}/members` as `"list"`.
40
+ *
41
+ * @example
42
+ * generateSuggestedAlias('/tasks/user_data', 'POST'); // "tasks.user_data.create"
43
+ * generateSuggestedAlias('/tasks/user_data', 'GET'); // "tasks.user_data.list"
44
+ * generateSuggestedAlias('/tasks/user_data/{id}', 'GET'); // "tasks.user_data.get"
45
+ * generateSuggestedAlias('/tasks/user_data/{id}', 'PUT'); // "tasks.user_data.update"
46
+ * generateSuggestedAlias('/tasks/user_data/{id}', 'DELETE'); // "tasks.user_data.delete"
47
+ * generateSuggestedAlias('/orgs/{org_id}/members', 'GET'); // "orgs.members.list"
48
+ *
49
+ * @param path - URL path (e.g., `/tasks/user_data/{id}`).
50
+ * @param method - HTTP method (e.g., `POST`).
51
+ * @returns Dot-separated alias string. If the path has no non-parameter
52
+ * segments, returns just the semantic verb (e.g., `"list"`).
53
+ */
54
+ /**
55
+ * Return the set of parameter *names* declared in a URL path.
56
+ *
57
+ * Recognises both brace-style (`/users/{id}`) and colon-style
58
+ * (`/users/:id`) placeholders, so the output is consistent across
59
+ * frameworks that use different conventions.
60
+ *
61
+ * @param path - URL path string.
62
+ * @returns Set of parameter names with the surrounding punctuation stripped
63
+ * (e.g., `new Set(["id", "org_id"])`).
64
+ */
65
+ export declare function extractPathParamNames(path: string): Set<string>;
66
+ /**
67
+ * Substitute `{name}` and `:name` placeholders with `values[name]`.
68
+ *
69
+ * Keys in `values` that do not appear as placeholders are ignored. A
70
+ * placeholder whose name is absent from `values` is left unchanged
71
+ * (callers can detect the leftover via {@link extractPathParamNames}).
72
+ *
73
+ * @param path - URL path with placeholders.
74
+ * @param values - Mapping from parameter name to substitution value.
75
+ * @returns Path with all matching placeholders replaced.
76
+ */
77
+ export declare function substitutePathParams(path: string, values: Record<string, unknown>): string;
78
+ export declare function generateSuggestedAlias(path: string, method: string): string;
79
+ //# sourceMappingURL=http-verb-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-verb-map.d.ts","sourceRoot":"","sources":["../src/http-verb-map.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAS5D,CAAC;AAsBH;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGnD;AAgBD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,MAAM,CAS9E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAS/D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAmB1F;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAa3E"}
@@ -0,0 +1,179 @@
1
+ /**
2
+ * HTTP verb semantic mapping utilities.
3
+ *
4
+ * Provides the canonical mapping from HTTP methods to semantic verbs used
5
+ * by scanner implementations when generating user-facing command aliases.
6
+ * All functions are pure and do not throw.
7
+ */
8
+ /**
9
+ * Canonical HTTP method to semantic verb mapping.
10
+ *
11
+ * Keys are uppercase HTTP methods. `GET_ID` is a synthetic key used when
12
+ * GET routes have path parameters (single-resource access). Values are
13
+ * lowercase semantic verbs used by CLI and MCP surfaces. The mapping is
14
+ * considered immutable by convention; downstream code MUST NOT mutate it.
15
+ */
16
+ export const SCANNER_VERB_MAP = Object.freeze({
17
+ GET: 'list',
18
+ GET_ID: 'get',
19
+ POST: 'create',
20
+ PUT: 'update',
21
+ PATCH: 'patch',
22
+ DELETE: 'delete',
23
+ HEAD: 'head',
24
+ OPTIONS: 'options',
25
+ });
26
+ /**
27
+ * Regex covering path parameter syntax across major frameworks:
28
+ * FastAPI / Django / OpenAPI: {param}
29
+ * Express / NestJS / Gin / Axum: :param
30
+ */
31
+ const _PATH_PARAM_CORE = '\\{[^}]+\\}|:[a-zA-Z_]\\w*';
32
+ const PATH_PARAM_RE = new RegExp(_PATH_PARAM_CORE);
33
+ /**
34
+ * Full-match variant of PATH_PARAM_RE for segment-level testing.
35
+ * Anchored at both ends so the whole segment must be a parameter.
36
+ */
37
+ const PATH_PARAM_FULL_RE = new RegExp(`^(?:${_PATH_PARAM_CORE})$`);
38
+ /**
39
+ * Named-capture variant used by parameter extraction and substitution.
40
+ * Mirrors Python's `_PATH_PARAM_NAMED_RE`.
41
+ */
42
+ const PATH_PARAM_NAMED_RE = new RegExp('\\{(?<brace>[^}]+)\\}|:(?<colon>[a-zA-Z_]\\w*)', 'g');
43
+ /**
44
+ * Check if a URL path contains path parameter placeholders.
45
+ *
46
+ * Detects both brace-style (`{param}`) and colon-style (`:param`) parameters,
47
+ * covering all major web frameworks.
48
+ *
49
+ * @param path - URL path string (e.g., `/tasks/{id}` or `/users/:userId`).
50
+ * @returns True if the path contains at least one path parameter, false otherwise.
51
+ */
52
+ export function hasPathParams(path) {
53
+ if (typeof path !== 'string')
54
+ return false;
55
+ return PATH_PARAM_RE.test(path);
56
+ }
57
+ /**
58
+ * Map an HTTP method to its semantic verb.
59
+ *
60
+ * GET is contextual: collection routes (no path params) map to `"list"`,
61
+ * single-resource routes (with path params) map to `"get"`. All other
62
+ * methods have a static mapping. Unknown methods fall through to
63
+ * the lowercase form of the input.
64
+ *
65
+ * @param method - HTTP method string (case-insensitive).
66
+ * @param pathHasParams - True if the corresponding route has path parameters.
67
+ * @returns Semantic verb string (e.g., `"create"`, `"list"`, `"get"`).
68
+ */
69
+ import { PROTO_DENY as _PROTO_DENY } from './safe-keys.js';
70
+ export function resolveHttpVerb(method, pathHasParams) {
71
+ if (typeof method !== 'string')
72
+ return 'unknown';
73
+ const methodUpper = method.toUpperCase();
74
+ if (methodUpper === 'GET') {
75
+ const key = pathHasParams ? 'GET_ID' : 'GET';
76
+ return Object.hasOwn(SCANNER_VERB_MAP, key) ? SCANNER_VERB_MAP[key] : method.toLowerCase();
77
+ }
78
+ if (_PROTO_DENY.has(methodUpper))
79
+ return method.toLowerCase();
80
+ return Object.hasOwn(SCANNER_VERB_MAP, methodUpper) ? SCANNER_VERB_MAP[methodUpper] : method.toLowerCase();
81
+ }
82
+ /**
83
+ * Generate a dot-separated suggested alias from HTTP route info.
84
+ *
85
+ * The alias is built from non-parameter path segments joined with the
86
+ * resolved semantic verb. The output uses snake_case preserved from the
87
+ * path; surface adapters apply their own naming conventions (e.g., CLI
88
+ * converts underscores to hyphens).
89
+ *
90
+ * The GET-vs-list disambiguation checks whether the LAST path segment
91
+ * is a path parameter (single-resource access) rather than whether the
92
+ * path contains any parameters anywhere. This correctly treats nested
93
+ * collection endpoints like `/orgs/{org_id}/members` as `"list"`.
94
+ *
95
+ * @example
96
+ * generateSuggestedAlias('/tasks/user_data', 'POST'); // "tasks.user_data.create"
97
+ * generateSuggestedAlias('/tasks/user_data', 'GET'); // "tasks.user_data.list"
98
+ * generateSuggestedAlias('/tasks/user_data/{id}', 'GET'); // "tasks.user_data.get"
99
+ * generateSuggestedAlias('/tasks/user_data/{id}', 'PUT'); // "tasks.user_data.update"
100
+ * generateSuggestedAlias('/tasks/user_data/{id}', 'DELETE'); // "tasks.user_data.delete"
101
+ * generateSuggestedAlias('/orgs/{org_id}/members', 'GET'); // "orgs.members.list"
102
+ *
103
+ * @param path - URL path (e.g., `/tasks/user_data/{id}`).
104
+ * @param method - HTTP method (e.g., `POST`).
105
+ * @returns Dot-separated alias string. If the path has no non-parameter
106
+ * segments, returns just the semantic verb (e.g., `"list"`).
107
+ */
108
+ /**
109
+ * Return the set of parameter *names* declared in a URL path.
110
+ *
111
+ * Recognises both brace-style (`/users/{id}`) and colon-style
112
+ * (`/users/:id`) placeholders, so the output is consistent across
113
+ * frameworks that use different conventions.
114
+ *
115
+ * @param path - URL path string.
116
+ * @returns Set of parameter names with the surrounding punctuation stripped
117
+ * (e.g., `new Set(["id", "org_id"])`).
118
+ */
119
+ export function extractPathParamNames(path) {
120
+ const names = new Set();
121
+ if (typeof path !== 'string')
122
+ return names;
123
+ PATH_PARAM_NAMED_RE.lastIndex = 0;
124
+ for (const match of path.matchAll(PATH_PARAM_NAMED_RE)) {
125
+ const name = match.groups?.brace ?? match.groups?.colon;
126
+ if (name)
127
+ names.add(name);
128
+ }
129
+ return names;
130
+ }
131
+ /**
132
+ * Substitute `{name}` and `:name` placeholders with `values[name]`.
133
+ *
134
+ * Keys in `values` that do not appear as placeholders are ignored. A
135
+ * placeholder whose name is absent from `values` is left unchanged
136
+ * (callers can detect the leftover via {@link extractPathParamNames}).
137
+ *
138
+ * @param path - URL path with placeholders.
139
+ * @param values - Mapping from parameter name to substitution value.
140
+ * @returns Path with all matching placeholders replaced.
141
+ */
142
+ export function substitutePathParams(path, values) {
143
+ if (typeof path !== 'string')
144
+ return path;
145
+ PATH_PARAM_NAMED_RE.lastIndex = 0;
146
+ const parts = [];
147
+ let lastIndex = 0;
148
+ for (const match of path.matchAll(PATH_PARAM_NAMED_RE)) {
149
+ const matchIndex = match.index ?? 0;
150
+ const whole = match[0];
151
+ const name = match.groups?.brace ?? match.groups?.colon;
152
+ parts.push(path.slice(lastIndex, matchIndex));
153
+ if (name && Object.prototype.hasOwnProperty.call(values, name)) {
154
+ parts.push(String(values[name]));
155
+ }
156
+ else {
157
+ parts.push(whole);
158
+ }
159
+ lastIndex = matchIndex + whole.length;
160
+ }
161
+ parts.push(path.slice(lastIndex));
162
+ return parts.join('');
163
+ }
164
+ export function generateSuggestedAlias(path, method) {
165
+ if (typeof path !== 'string')
166
+ return 'unknown';
167
+ if (typeof method !== 'string')
168
+ return 'unknown';
169
+ const rawSegments = path
170
+ .replace(/^\/+/, '')
171
+ .replace(/\/+$/, '')
172
+ .split('/')
173
+ .filter((seg) => seg.length > 0);
174
+ const segments = rawSegments.filter((seg) => !PATH_PARAM_FULL_RE.test(seg));
175
+ const isSingleResource = rawSegments.length > 0 && PATH_PARAM_FULL_RE.test(rawSegments[rawSegments.length - 1]);
176
+ const verb = resolveHttpVerb(method, isSingleResource);
177
+ return [...segments, verb].join('.');
178
+ }
179
+ //# sourceMappingURL=http-verb-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-verb-map.js","sourceRoot":"","sources":["../src/http-verb-map.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,23 +1,26 @@
1
1
  export type { ScannedModule } from './types.js';
2
2
  export { createScannedModule, cloneModule } from './types.js';
3
3
  export { BaseScanner } from './scanner.js';
4
+ export { SCANNER_VERB_MAP, hasPathParams, resolveHttpVerb, generateSuggestedAlias, extractPathParamNames, substitutePathParams, } from './http-verb-map.js';
4
5
  export { enrichSchemaDescriptions } from './schema-utils.js';
5
6
  export { resolveRef, resolveSchema, deepResolveRefs, extractInputSchema, extractOutputSchema, } from './openapi.js';
6
7
  export { annotationsToDict, moduleToDict, modulesToDicts, } from './serializers.js';
7
8
  export { resolveTarget } from './resolve-target.js';
8
9
  export { toMarkdown } from './formatting/index.js';
9
- export { flattenParams } from './flatten-params.js';
10
10
  export { AIEnhancer } from './ai-enhancer.js';
11
11
  export type { AIEnhancerOptions, Enhancer } from './ai-enhancer.js';
12
- export { DisplayResolver } from './display-resolver.js';
13
- export type { DisplayResolveOptions, DisplayMetadata, SurfaceDisplay, } from './display-resolver.js';
12
+ export { DisplayResolver } from './display/resolver.js';
13
+ export type { DisplayResolveOptions, DisplayMetadata, SurfaceDisplay, } from './display/resolver.js';
14
+ export { BindingLoader, BindingLoadError } from './binding-loader.js';
15
+ export type { BindingLoadOptions } from './binding-loader.js';
14
16
  export { YAMLWriter } from './output/yaml-writer.js';
15
17
  export { TypeScriptWriter } from './output/typescript-writer.js';
16
18
  export { RegistryWriter } from './output/registry-writer.js';
19
+ export { HTTPProxyRegistryWriter, HTTPProxyWriterError, } from './output/http-proxy-writer.js';
20
+ export type { HTTPProxyRegistryWriterOptions, ProxyRegistry, } from './output/http-proxy-writer.js';
17
21
  export { getWriter } from './output/factory.js';
18
22
  export type { WriteResult, VerifyResult, Verifier } from './output/types.js';
19
- export { createWriteResult } from './output/types.js';
20
- export { WriteError } from './output/errors.js';
23
+ export { WriteError, InvalidFormatError } from './output/errors.js';
21
24
  export { YAMLVerifier, SyntaxVerifier, RegistryVerifier, MagicBytesVerifier, JSONVerifier, runVerifierChain, } from './output/verifiers.js';
22
25
  export declare const VERSION: string;
23
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EACL,UAAU,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EACV,qBAAqB,EACrB,eAAe,EACf,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAK/B,eAAO,MAAM,OAAO,EAAE,MAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAU9D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EACL,UAAU,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EACV,qBAAqB,EACrB,eAAe,EACf,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACtE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EACV,8BAA8B,EAC9B,aAAa,GACd,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAK/B,eAAO,MAAM,OAAO,EAAE,MAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -1,19 +1,27 @@
1
1
  export { createScannedModule, cloneModule } from './types.js';
2
+ // Tri-language parity note
3
+ // ------------------------
4
+ // The Python SDK exports `ConventionScanner`, a pydantic-specific scanner that
5
+ // walks `BaseModel` subclasses for endpoint metadata. It is intentionally
6
+ // Python-only: the pydantic conventions it relies on do not have TypeScript
7
+ // equivalents. Rust mirrors this decision (see
8
+ // apcore-toolkit-rust/src/scanner.rs for the same note).
2
9
  export { BaseScanner } from './scanner.js';
10
+ export { SCANNER_VERB_MAP, hasPathParams, resolveHttpVerb, generateSuggestedAlias, extractPathParamNames, substitutePathParams, } from './http-verb-map.js';
3
11
  export { enrichSchemaDescriptions } from './schema-utils.js';
4
12
  export { resolveRef, resolveSchema, deepResolveRefs, extractInputSchema, extractOutputSchema, } from './openapi.js';
5
13
  export { annotationsToDict, moduleToDict, modulesToDicts, } from './serializers.js';
6
14
  export { resolveTarget } from './resolve-target.js';
7
15
  export { toMarkdown } from './formatting/index.js';
8
- export { flattenParams } from './flatten-params.js';
9
16
  export { AIEnhancer } from './ai-enhancer.js';
10
- export { DisplayResolver } from './display-resolver.js';
17
+ export { DisplayResolver } from './display/resolver.js';
18
+ export { BindingLoader, BindingLoadError } from './binding-loader.js';
11
19
  export { YAMLWriter } from './output/yaml-writer.js';
12
20
  export { TypeScriptWriter } from './output/typescript-writer.js';
13
21
  export { RegistryWriter } from './output/registry-writer.js';
22
+ export { HTTPProxyRegistryWriter, HTTPProxyWriterError, } from './output/http-proxy-writer.js';
14
23
  export { getWriter } from './output/factory.js';
15
- export { createWriteResult } from './output/types.js';
16
- export { WriteError } from './output/errors.js';
24
+ export { WriteError, InvalidFormatError } from './output/errors.js';
17
25
  export { YAMLVerifier, SyntaxVerifier, RegistryVerifier, MagicBytesVerifier, JSONVerifier, runVerifierChain, } from './output/verifiers.js';
18
26
  import { createRequire } from 'node:module';
19
27
  const _require = createRequire(import.meta.url);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EACL,UAAU,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMxD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,iBAAiB,CAAwB,CAAC;AAChE,MAAM,CAAC,MAAM,OAAO,GAAW,IAAI,CAAC,OAAO,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D,2BAA2B;AAC3B,2BAA2B;AAC3B,+EAA+E;AAC/E,0EAA0E;AAC1E,4EAA4E;AAC5E,+CAA+C;AAC/C,yDAAyD;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EACL,UAAU,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMxD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AAKvC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,iBAAiB,CAAwB,CAAC;AAChE,MAAM,CAAC,MAAM,OAAO,GAAW,IAAI,CAAC,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../src/openapi.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAezB;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GACzC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKzB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,KAAK,SAAI,GACR,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiDzB;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAW,GAChD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA4CzB;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAW,GAChD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsBzB"}
1
+ {"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../src/openapi.ts"],"names":[],"mappings":"AAIA,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgBzB;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GACzC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOzB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,KAAK,SAAI,GACR,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuDzB;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAW,GAChD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0DzB;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAW,GAChD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0BzB"}
package/dist/openapi.js CHANGED
@@ -1,11 +1,14 @@
1
1
  // OpenAPI schema extraction utilities
2
+ import { PROTO_DENY as PROTO_DENY_LIST } from './safe-keys.js';
2
3
  export function resolveRef(refString, openapiDoc) {
3
4
  if (!refString.startsWith("#/")) {
4
5
  return {};
5
6
  }
6
- const parts = refString.slice(2).split("/");
7
+ const parts = refString.slice(2).split("/").map((p) => p.replace(/~1/g, "/").replace(/~0/g, "~"));
7
8
  let current = openapiDoc;
8
9
  for (const part of parts) {
10
+ if (PROTO_DENY_LIST.has(part))
11
+ return {};
9
12
  if (typeof current !== "object" || current === null || Array.isArray(current)) {
10
13
  return {};
11
14
  }
@@ -17,7 +20,10 @@ export function resolveRef(refString, openapiDoc) {
17
20
  }
18
21
  export function resolveSchema(schema, openapiDoc) {
19
22
  if (openapiDoc && "$ref" in schema) {
20
- return resolveRef(schema["$ref"], openapiDoc);
23
+ const ref = schema["$ref"];
24
+ if (typeof ref !== 'string')
25
+ return schema;
26
+ return resolveRef(ref, openapiDoc);
21
27
  }
22
28
  return schema;
23
29
  }
@@ -29,17 +35,23 @@ export function resolveSchema(schema, openapiDoc) {
29
35
  */
30
36
  export function deepResolveRefs(schema, openapiDoc, depth = 0) {
31
37
  if (depth > 16) {
38
+ console.warn('deepResolveRefs: max depth reached; returning schema as-is');
32
39
  return schema;
33
40
  }
34
41
  if ("$ref" in schema) {
35
- const resolved = resolveRef(schema["$ref"], openapiDoc);
42
+ const ref = schema["$ref"];
43
+ if (typeof ref !== 'string')
44
+ return schema;
45
+ const resolved = resolveRef(ref, openapiDoc);
36
46
  return deepResolveRefs(resolved, openapiDoc, depth + 1);
37
47
  }
38
48
  const result = { ...schema };
39
49
  // Resolve inside allOf/anyOf/oneOf
40
50
  for (const key of ["allOf", "anyOf", "oneOf"]) {
41
51
  if (key in result && Array.isArray(result[key])) {
42
- result[key] = result[key].map((item) => deepResolveRefs(item, openapiDoc, depth + 1));
52
+ result[key] = result[key]
53
+ .filter((item) => item !== null && typeof item === 'object' && !Array.isArray(item))
54
+ .map((item) => deepResolveRefs(item, openapiDoc, depth + 1));
43
55
  }
44
56
  }
45
57
  // Resolve array items
@@ -53,8 +65,10 @@ export function deepResolveRefs(schema, openapiDoc, depth = 0) {
53
65
  typeof result["properties"] === "object" &&
54
66
  result["properties"] !== null) {
55
67
  const props = result["properties"];
56
- const resolvedProps = {};
68
+ const resolvedProps = Object.create(null);
57
69
  for (const [k, v] of Object.entries(props)) {
70
+ if (PROTO_DENY_LIST.has(k))
71
+ continue;
58
72
  resolvedProps[k] = deepResolveRefs(v, openapiDoc, depth + 1);
59
73
  }
60
74
  result["properties"] = resolvedProps;
@@ -63,10 +77,18 @@ export function deepResolveRefs(schema, openapiDoc, depth = 0) {
63
77
  }
64
78
  export function extractInputSchema(operation, openapiDoc = null) {
65
79
  const schema = { type: "object", properties: {}, required: [] };
66
- const parameters = (operation["parameters"] ?? []);
80
+ const rawParameters = operation["parameters"] ?? [];
81
+ if (!Array.isArray(rawParameters)) {
82
+ console.warn('extractInputSchema: operation.parameters is not an array — ignoring');
83
+ }
84
+ const parameters = Array.isArray(rawParameters)
85
+ ? rawParameters.filter((p) => typeof p === 'object' && p !== null && !Array.isArray(p))
86
+ : [];
67
87
  for (const param of parameters) {
68
88
  if (param["in"] === "query" || param["in"] === "path") {
69
89
  const name = param["name"];
90
+ if (typeof name !== 'string' || PROTO_DENY_LIST.has(name))
91
+ continue;
70
92
  let paramSchema = (param["schema"] ?? { type: "string" });
71
93
  paramSchema = resolveSchema(paramSchema, openapiDoc);
72
94
  schema.properties[name] = paramSchema;
@@ -83,8 +105,12 @@ export function extractInputSchema(operation, openapiDoc = null) {
83
105
  const resolved = resolveSchema(bodySchema, openapiDoc);
84
106
  const bodyProps = (resolved["properties"] ?? {});
85
107
  const bodyRequired = (resolved["required"] ?? []);
86
- Object.assign(schema.properties, bodyProps);
87
- schema.required.push(...bodyRequired);
108
+ for (const [k, v] of Object.entries(bodyProps)) {
109
+ if (!PROTO_DENY_LIST.has(k)) {
110
+ schema.properties[k] = v;
111
+ }
112
+ }
113
+ schema.required.push(...bodyRequired.filter(r => typeof r === 'string' && !PROTO_DENY_LIST.has(r)));
88
114
  }
89
115
  // Recursively resolve $ref inside individual properties
90
116
  if (openapiDoc) {
@@ -96,8 +122,9 @@ export function extractInputSchema(operation, openapiDoc = null) {
96
122
  }
97
123
  export function extractOutputSchema(operation, openapiDoc = null) {
98
124
  const responses = (operation["responses"] ?? {});
99
- for (const statusCode of ["200", "201"]) {
100
- const response = (responses[statusCode] ?? {});
125
+ const successCodes = Object.keys(responses).filter(k => /^2\d\d$/.test(k)).sort();
126
+ for (const statusCode of successCodes) {
127
+ const response = responses[statusCode];
101
128
  const content = (response["content"] ?? {});
102
129
  const jsonContent = (content["application/json"] ?? {});
103
130
  if ("schema" in jsonContent) {