apcore-toolkit 0.1.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 (59) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +134 -0
  3. package/dist/formatting/index.d.ts +2 -0
  4. package/dist/formatting/index.d.ts.map +1 -0
  5. package/dist/formatting/index.js +2 -0
  6. package/dist/formatting/index.js.map +1 -0
  7. package/dist/formatting/markdown.d.ts +8 -0
  8. package/dist/formatting/markdown.d.ts.map +1 -0
  9. package/dist/formatting/markdown.js +221 -0
  10. package/dist/formatting/markdown.js.map +1 -0
  11. package/dist/index.d.ts +14 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +16 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/openapi.d.ts +5 -0
  16. package/dist/openapi.d.ts.map +1 -0
  17. package/dist/openapi.js +73 -0
  18. package/dist/openapi.js.map +1 -0
  19. package/dist/output/factory.d.ts +5 -0
  20. package/dist/output/factory.d.ts.map +1 -0
  21. package/dist/output/factory.js +13 -0
  22. package/dist/output/factory.js.map +1 -0
  23. package/dist/output/index.d.ts +5 -0
  24. package/dist/output/index.d.ts.map +1 -0
  25. package/dist/output/index.js +5 -0
  26. package/dist/output/index.js.map +1 -0
  27. package/dist/output/registry-writer.d.ts +10 -0
  28. package/dist/output/registry-writer.d.ts.map +1 -0
  29. package/dist/output/registry-writer.js +42 -0
  30. package/dist/output/registry-writer.js.map +1 -0
  31. package/dist/output/typescript-writer.d.ts +10 -0
  32. package/dist/output/typescript-writer.d.ts.map +1 -0
  33. package/dist/output/typescript-writer.js +78 -0
  34. package/dist/output/typescript-writer.js.map +1 -0
  35. package/dist/output/yaml-writer.d.ts +8 -0
  36. package/dist/output/yaml-writer.d.ts.map +1 -0
  37. package/dist/output/yaml-writer.js +67 -0
  38. package/dist/output/yaml-writer.js.map +1 -0
  39. package/dist/resolve-target.d.ts +9 -0
  40. package/dist/resolve-target.d.ts.map +1 -0
  41. package/dist/resolve-target.js +28 -0
  42. package/dist/resolve-target.js.map +1 -0
  43. package/dist/scanner.d.ts +13 -0
  44. package/dist/scanner.d.ts.map +1 -0
  45. package/dist/scanner.js +53 -0
  46. package/dist/scanner.js.map +1 -0
  47. package/dist/schema-utils.d.ts +10 -0
  48. package/dist/schema-utils.d.ts.map +1 -0
  49. package/dist/schema-utils.js +28 -0
  50. package/dist/schema-utils.js.map +1 -0
  51. package/dist/serializers.d.ts +16 -0
  52. package/dist/serializers.d.ts.map +1 -0
  53. package/dist/serializers.js +44 -0
  54. package/dist/serializers.js.map +1 -0
  55. package/dist/types.d.ts +31 -0
  56. package/dist/types.d.ts.map +1 -0
  57. package/dist/types.js +29 -0
  58. package/dist/types.js.map +1 -0
  59. package/package.json +71 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,17 @@
1
+ # Changelog
2
+
3
+ ## [0.1.0] - 2026-03-07
4
+
5
+ ### Added
6
+
7
+ - `ScannedModule` interface — canonical representation of a scanned endpoint
8
+ - `BaseScanner` abstract class with filtering, deduplication, and annotation inference
9
+ - `enrichSchemaDescriptions()` — merge parameter descriptions into JSON Schema
10
+ - OpenAPI utilities: `resolveRef`, `resolveSchema`, `extractInputSchema`, `extractOutputSchema`
11
+ - Serializers: `annotationsToDict`, `moduleToDict`, `modulesToDicts`
12
+ - `toMarkdown()` — generic dict-to-Markdown conversion with depth control and table heuristics
13
+ - `YAMLWriter` — generate `.binding.yaml` files for `BindingLoader`
14
+ - `TypeScriptWriter` — generate TypeScript wrapper files with `module()` decorator
15
+ - `RegistryWriter` — direct registration into `apcore-js` Registry
16
+ - `getWriter()` factory function
17
+ - `resolveTarget()` — dynamic import resolution for `module:export` target strings
package/README.md ADDED
@@ -0,0 +1,134 @@
1
+ <div align="center">
2
+ <img src="https://raw.githubusercontent.com/aipartnerup/apcore-toolkit/main/apcore-toolkit-logo.svg" alt="apcore-toolkit logo" width="200"/>
3
+ </div>
4
+
5
+ # apcore-toolkit
6
+
7
+ Shared scanner, schema extraction, and output toolkit for apcore framework adapters (TypeScript).
8
+
9
+ ## Install
10
+
11
+ ```bash
12
+ npm install apcore-toolkit
13
+ ```
14
+
15
+ ## Usage
16
+
17
+ ### ScannedModule
18
+
19
+ The canonical representation of a scanned endpoint:
20
+
21
+ ```typescript
22
+ import { createScannedModule, cloneModule } from 'apcore-toolkit';
23
+
24
+ const mod = createScannedModule({
25
+ moduleId: 'users.get_user',
26
+ description: 'Get a user by ID',
27
+ inputSchema: { type: 'object', properties: { id: { type: 'string' } } },
28
+ outputSchema: { type: 'object', properties: { name: { type: 'string' } } },
29
+ tags: ['users'],
30
+ target: 'myapp/users:getUser',
31
+ });
32
+ ```
33
+
34
+ ### BaseScanner
35
+
36
+ Abstract base class for framework-specific scanners:
37
+
38
+ ```typescript
39
+ import { BaseScanner } from 'apcore-toolkit';
40
+ import type { ScannedModule } from 'apcore-toolkit';
41
+
42
+ class MyScanner extends BaseScanner {
43
+ scan(): ScannedModule[] {
44
+ // scan your framework endpoints
45
+ return [];
46
+ }
47
+ getSourceName(): string {
48
+ return 'my-framework';
49
+ }
50
+ }
51
+ ```
52
+
53
+ ### Output Writers
54
+
55
+ Three output strategies for scanned modules:
56
+
57
+ ```typescript
58
+ import { YAMLWriter, TypeScriptWriter, RegistryWriter, getWriter } from 'apcore-toolkit';
59
+
60
+ // YAML binding files
61
+ const yamlWriter = new YAMLWriter();
62
+ yamlWriter.write(modules, './output');
63
+
64
+ // TypeScript module wrappers
65
+ const tsWriter = new TypeScriptWriter();
66
+ tsWriter.write(modules, './output');
67
+
68
+ // Direct registry registration
69
+ const regWriter = new RegistryWriter();
70
+ await regWriter.write(modules, registry);
71
+
72
+ // Or use the factory
73
+ const writer = getWriter('yaml'); // 'yaml' | 'typescript' | 'registry'
74
+ ```
75
+
76
+ ### OpenAPI Schema Extraction
77
+
78
+ ```typescript
79
+ import { extractInputSchema, extractOutputSchema } from 'apcore-toolkit';
80
+
81
+ const inputSchema = extractInputSchema(operation, openapiDoc);
82
+ const outputSchema = extractOutputSchema(operation, openapiDoc);
83
+ ```
84
+
85
+ ### Markdown Formatting
86
+
87
+ ```typescript
88
+ import { toMarkdown } from 'apcore-toolkit';
89
+
90
+ const md = toMarkdown(data, {
91
+ title: 'Report',
92
+ fields: ['name', 'status'],
93
+ exclude: ['internal'],
94
+ maxDepth: 3,
95
+ tableThreshold: 5,
96
+ });
97
+ ```
98
+
99
+ ### Serializers
100
+
101
+ ```typescript
102
+ import { moduleToDict, modulesToDicts, annotationsToDict } from 'apcore-toolkit';
103
+
104
+ const dict = moduleToDict(mod); // snake_case keys
105
+ const dicts = modulesToDicts(modules); // batch conversion
106
+ ```
107
+
108
+ ## API
109
+
110
+ | Export | Description |
111
+ |--------|-------------|
112
+ | `ScannedModule` | Interface for scanned endpoint data |
113
+ | `createScannedModule()` | Factory with defaults for optional fields |
114
+ | `cloneModule()` | Defensive copy with optional overrides |
115
+ | `BaseScanner` | Abstract base class for scanners |
116
+ | `YAMLWriter` | Writes YAML binding files |
117
+ | `TypeScriptWriter` | Generates TypeScript module wrappers |
118
+ | `RegistryWriter` | Registers modules into an apcore Registry |
119
+ | `getWriter()` | Factory for writer instances |
120
+ | `extractInputSchema()` | Extract input schema from OpenAPI operation |
121
+ | `extractOutputSchema()` | Extract output schema from OpenAPI operation |
122
+ | `resolveRef()` | Resolve `$ref` in OpenAPI documents |
123
+ | `resolveSchema()` | Resolve schema with `$ref` support |
124
+ | `enrichSchemaDescriptions()` | Merge parameter descriptions into schema |
125
+ | `toMarkdown()` | Convert dict to formatted Markdown |
126
+ | `moduleToDict()` | Serialize module to snake_case dict |
127
+ | `modulesToDicts()` | Batch serialize modules |
128
+ | `annotationsToDict()` | Convert annotations to plain dict |
129
+ | `resolveTarget()` | Dynamic import + named export resolution |
130
+ | `VERSION` | Package version string |
131
+
132
+ ## License
133
+
134
+ Apache-2.0
@@ -0,0 +1,2 @@
1
+ export { toMarkdown } from './markdown.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/formatting/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { toMarkdown } from './markdown.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/formatting/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare function toMarkdown(data: Record<string, unknown>, options?: {
2
+ fields?: string[];
3
+ exclude?: string[];
4
+ maxDepth?: number;
5
+ tableThreshold?: number;
6
+ title?: string;
7
+ }): string;
8
+ //# sourceMappingURL=markdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/formatting/markdown.ts"],"names":[],"mappings":"AAoOA,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACA,MAAM,CA+BR"}
@@ -0,0 +1,221 @@
1
+ // Generic dict-to-Markdown conversion (F07)
2
+ function _isScalar(value) {
3
+ if (value === null || value === undefined)
4
+ return true;
5
+ const t = typeof value;
6
+ return t === 'string' || t === 'number' || t === 'boolean';
7
+ }
8
+ function _formatScalar(value) {
9
+ if (value === null || value === undefined)
10
+ return '*N/A*';
11
+ if (typeof value === 'boolean')
12
+ return value ? 'Yes' : 'No';
13
+ if (typeof value === 'number') {
14
+ if (Number.isInteger(value))
15
+ return String(value);
16
+ return Number(value.toPrecision(4)).toString();
17
+ }
18
+ return String(value);
19
+ }
20
+ function _escapePipe(text) {
21
+ return text.replace(/\|/g, '\\|');
22
+ }
23
+ function _compactRepr(value, maxLen = 80) {
24
+ let text;
25
+ if (Array.isArray(value)) {
26
+ const parts = value.map(v => _compactRepr(v, 30));
27
+ text = `[${parts.join(', ')}]`;
28
+ }
29
+ else if (value !== null && typeof value === 'object') {
30
+ const parts = Object.entries(value).map(([k, v]) => `${k}: ${_compactRepr(v, 30)}`);
31
+ text = `{${parts.join(', ')}}`;
32
+ }
33
+ else if (_isScalar(value)) {
34
+ text = _formatScalar(value);
35
+ }
36
+ else {
37
+ text = String(value);
38
+ }
39
+ if (text.length > maxLen) {
40
+ text = text.slice(0, maxLen - 3) + '...';
41
+ }
42
+ return text;
43
+ }
44
+ function _uniformKeys(items) {
45
+ if (items.length === 0)
46
+ return true;
47
+ const ref = new Set(Object.keys(items[0]));
48
+ return items.every(item => {
49
+ const keys = Object.keys(item);
50
+ return keys.length === ref.size && keys.every(k => ref.has(k));
51
+ });
52
+ }
53
+ function _filterKeys(data, fields, exclude) {
54
+ let result = data;
55
+ if (fields !== undefined) {
56
+ const filtered = {};
57
+ for (const k of fields) {
58
+ if (k in data) {
59
+ filtered[k] = data[k];
60
+ }
61
+ }
62
+ result = filtered;
63
+ }
64
+ if (exclude && exclude.length > 0) {
65
+ const ex = new Set(exclude);
66
+ const filtered = {};
67
+ for (const [k, v] of Object.entries(result)) {
68
+ if (!ex.has(k))
69
+ filtered[k] = v;
70
+ }
71
+ result = filtered;
72
+ }
73
+ return result;
74
+ }
75
+ function _renderTable(data, lines) {
76
+ lines.push('| Field | Value |');
77
+ lines.push('|-------|-------|');
78
+ for (const [key, value] of Object.entries(data)) {
79
+ lines.push(`| ${_escapePipe(String(key))} | ${_escapePipe(_formatScalar(value))} |`);
80
+ }
81
+ lines.push('');
82
+ }
83
+ function _renderListTable(items, lines, exclude) {
84
+ if (items.length === 0)
85
+ return;
86
+ let keys = Object.keys(items[0]);
87
+ if (exclude && exclude.length > 0) {
88
+ const ex = new Set(exclude);
89
+ keys = keys.filter(k => !ex.has(k));
90
+ }
91
+ lines.push('| ' + keys.map(k => _escapePipe(k)).join(' | ') + ' |');
92
+ lines.push('| ' + keys.map(() => '---').join(' | ') + ' |');
93
+ for (const item of items) {
94
+ const row = keys.map(k => _escapePipe(_formatScalar(item[k]))).join(' | ');
95
+ lines.push(`| ${row} |`);
96
+ }
97
+ lines.push('');
98
+ }
99
+ function _renderList(items, lines, depth, absDepth, maxDepth, exclude) {
100
+ const indent = ' '.repeat(depth);
101
+ if (items.length === 0) {
102
+ lines.push(`${indent}- *(empty)*`);
103
+ return;
104
+ }
105
+ // Check if items form a uniform table
106
+ if (items.length >= 2 &&
107
+ items.every(item => item !== null && typeof item === 'object' && !Array.isArray(item)) &&
108
+ _uniformKeys(items) &&
109
+ items.every(item => Object.values(item).every(v => _isScalar(v)))) {
110
+ _renderListTable(items, lines, exclude);
111
+ return;
112
+ }
113
+ const ex = exclude && exclude.length > 0 ? new Set(exclude) : null;
114
+ for (const item of items) {
115
+ if (_isScalar(item)) {
116
+ lines.push(`${indent}- ${_formatScalar(item)}`);
117
+ }
118
+ else if (Array.isArray(item)) {
119
+ lines.push(`${indent}- ${_compactRepr(item)}`);
120
+ }
121
+ else if (item !== null && typeof item === 'object') {
122
+ if (absDepth >= maxDepth) {
123
+ lines.push(`${indent}- ${_compactRepr(item)}`);
124
+ }
125
+ else {
126
+ let first = true;
127
+ for (const [k, v] of Object.entries(item)) {
128
+ if (ex && ex.has(k))
129
+ continue;
130
+ const prefix = first ? `${indent}- ` : `${' '.repeat(depth + 1)}`;
131
+ first = false;
132
+ if (_isScalar(v)) {
133
+ lines.push(`${prefix}**${k}**: ${_formatScalar(v)}`);
134
+ }
135
+ else {
136
+ lines.push(`${prefix}**${k}**: ${_compactRepr(v)}`);
137
+ }
138
+ }
139
+ }
140
+ }
141
+ else {
142
+ lines.push(`${indent}- ${_formatScalar(item)}`);
143
+ }
144
+ }
145
+ }
146
+ function _renderDict(data, lines, depth, absDepth, maxDepth, tableThreshold, exclude) {
147
+ if (Object.keys(data).length === 0)
148
+ 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
+ return;
162
+ }
163
+ const indent = ' '.repeat(depth);
164
+ for (const [key, value] of Object.entries(data)) {
165
+ if (_isScalar(value)) {
166
+ lines.push(`${indent}- **${key}**: ${_formatScalar(value)}`);
167
+ }
168
+ else if (Array.isArray(value)) {
169
+ if (absDepth + 1 >= maxDepth) {
170
+ lines.push(`${indent}- **${key}**: ${_compactRepr(value)}`);
171
+ }
172
+ else {
173
+ lines.push(`${indent}- **${key}**:`);
174
+ _renderList(value, lines, depth + 1, absDepth + 1, maxDepth, exclude);
175
+ }
176
+ }
177
+ else if (value !== null && typeof value === 'object') {
178
+ if (absDepth + 1 >= maxDepth) {
179
+ lines.push(`${indent}- **${key}**: ${_compactRepr(value)}`);
180
+ }
181
+ else {
182
+ if (depth === 0) {
183
+ const headingLevel = Math.min(absDepth + 2, 6);
184
+ lines.push('');
185
+ lines.push(`${'#'.repeat(headingLevel)} ${key}`);
186
+ lines.push('');
187
+ _renderDict(value, lines, 0, absDepth + 1, maxDepth, tableThreshold, exclude);
188
+ }
189
+ else {
190
+ lines.push(`${indent}- **${key}**:`);
191
+ _renderDict(value, lines, depth + 1, absDepth + 1, maxDepth, tableThreshold, exclude);
192
+ }
193
+ }
194
+ }
195
+ else {
196
+ lines.push(`${indent}- **${key}**: ${_formatScalar(value)}`);
197
+ }
198
+ }
199
+ }
200
+ export function toMarkdown(data, options) {
201
+ if (data === null || data === undefined) {
202
+ const typeName = data === null ? 'null' : 'undefined';
203
+ throw new TypeError(`toMarkdown() expects a dict, got ${typeName}`);
204
+ }
205
+ if (Array.isArray(data)) {
206
+ throw new TypeError('toMarkdown() expects a dict, got array');
207
+ }
208
+ if (typeof data !== 'object') {
209
+ throw new TypeError(`toMarkdown() expects a dict, got ${typeof data}`);
210
+ }
211
+ const { fields, exclude, maxDepth = 3, tableThreshold = 5, title, } = options ?? {};
212
+ const filtered = _filterKeys(data, fields, exclude);
213
+ const lines = [];
214
+ if (title) {
215
+ lines.push(`# ${title}`);
216
+ lines.push('');
217
+ }
218
+ _renderDict(filtered, lines, 0, 0, maxDepth, tableThreshold, exclude);
219
+ return lines.join('\n').replace(/\n+$/, '') + '\n';
220
+ }
221
+ //# sourceMappingURL=markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/formatting/markdown.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export type { ScannedModule } from './types.js';
2
+ export { createScannedModule, cloneModule } from './types.js';
3
+ export { BaseScanner } from './scanner.js';
4
+ export { enrichSchemaDescriptions } from './schema-utils.js';
5
+ export { resolveRef, resolveSchema, extractInputSchema, extractOutputSchema, } from './openapi.js';
6
+ export { annotationsToDict, moduleToDict, modulesToDicts, } from './serializers.js';
7
+ export { resolveTarget } from './resolve-target.js';
8
+ export { toMarkdown } from './formatting/index.js';
9
+ export { YAMLWriter } from './output/yaml-writer.js';
10
+ export { TypeScriptWriter } from './output/typescript-writer.js';
11
+ export { RegistryWriter } from './output/registry-writer.js';
12
+ export { getWriter } from './output/factory.js';
13
+ export declare const VERSION: string;
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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,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,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;AAKhD,eAAO,MAAM,OAAO,EAAE,MAAqB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,16 @@
1
+ export { createScannedModule, cloneModule } from './types.js';
2
+ export { BaseScanner } from './scanner.js';
3
+ export { enrichSchemaDescriptions } from './schema-utils.js';
4
+ export { resolveRef, resolveSchema, extractInputSchema, extractOutputSchema, } from './openapi.js';
5
+ export { annotationsToDict, moduleToDict, modulesToDicts, } from './serializers.js';
6
+ export { resolveTarget } from './resolve-target.js';
7
+ export { toMarkdown } from './formatting/index.js';
8
+ export { YAMLWriter } from './output/yaml-writer.js';
9
+ export { TypeScriptWriter } from './output/typescript-writer.js';
10
+ export { RegistryWriter } from './output/registry-writer.js';
11
+ export { getWriter } from './output/factory.js';
12
+ import { createRequire } from 'node:module';
13
+ const _require = createRequire(import.meta.url);
14
+ const _pkg = _require('../package.json');
15
+ export const VERSION = _pkg.version;
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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,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,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,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"}
@@ -0,0 +1,5 @@
1
+ export declare function resolveRef(refString: string, openapiDoc: Record<string, unknown>): Record<string, unknown>;
2
+ export declare function resolveSchema(schema: Record<string, unknown>, openapiDoc: Record<string, unknown> | null): Record<string, unknown>;
3
+ export declare function extractInputSchema(operation: Record<string, unknown>, openapiDoc?: Record<string, unknown> | null): Record<string, unknown>;
4
+ export declare function extractOutputSchema(operation: Record<string, unknown>, openapiDoc?: Record<string, unknown> | null): Record<string, unknown>;
5
+ //# sourceMappingURL=openapi.d.ts.map
@@ -0,0 +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,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,CAkCzB;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,CA6BzB"}
@@ -0,0 +1,73 @@
1
+ // OpenAPI schema extraction utilities
2
+ export function resolveRef(refString, openapiDoc) {
3
+ if (!refString.startsWith("#/")) {
4
+ return {};
5
+ }
6
+ const parts = refString.slice(2).split("/");
7
+ let current = openapiDoc;
8
+ for (const part of parts) {
9
+ if (typeof current !== "object" || current === null || Array.isArray(current)) {
10
+ return {};
11
+ }
12
+ current = current[part] ?? {};
13
+ }
14
+ return typeof current === "object" && current !== null && !Array.isArray(current)
15
+ ? current
16
+ : {};
17
+ }
18
+ export function resolveSchema(schema, openapiDoc) {
19
+ if (openapiDoc && "$ref" in schema) {
20
+ return resolveRef(schema["$ref"], openapiDoc);
21
+ }
22
+ return schema;
23
+ }
24
+ export function extractInputSchema(operation, openapiDoc = null) {
25
+ const schema = { type: "object", properties: {}, required: [] };
26
+ const parameters = (operation["parameters"] ?? []);
27
+ for (const param of parameters) {
28
+ if (param["in"] === "query" || param["in"] === "path") {
29
+ const name = param["name"];
30
+ let paramSchema = (param["schema"] ?? { type: "string" });
31
+ paramSchema = resolveSchema(paramSchema, openapiDoc);
32
+ schema.properties[name] = paramSchema;
33
+ if (param["required"]) {
34
+ schema.required.push(name);
35
+ }
36
+ }
37
+ }
38
+ const requestBody = (operation["requestBody"] ?? {});
39
+ const content = (requestBody["content"] ?? {});
40
+ const jsonContent = (content["application/json"] ?? {});
41
+ const bodySchema = (jsonContent["schema"] ?? {});
42
+ if (Object.keys(bodySchema).length > 0) {
43
+ const resolved = resolveSchema(bodySchema, openapiDoc);
44
+ const bodyProps = (resolved["properties"] ?? {});
45
+ const bodyRequired = (resolved["required"] ?? []);
46
+ Object.assign(schema.properties, bodyProps);
47
+ schema.required.push(...bodyRequired);
48
+ }
49
+ return schema;
50
+ }
51
+ export function extractOutputSchema(operation, openapiDoc = null) {
52
+ const responses = (operation["responses"] ?? {});
53
+ for (const statusCode of ["200", "201"]) {
54
+ const response = (responses[statusCode] ?? {});
55
+ const content = (response["content"] ?? {});
56
+ const jsonContent = (content["application/json"] ?? {});
57
+ if ("schema" in jsonContent) {
58
+ let schema = resolveSchema(jsonContent["schema"], openapiDoc);
59
+ if (schema["type"] === "array" &&
60
+ typeof schema["items"] === "object" &&
61
+ schema["items"] !== null &&
62
+ "$ref" in schema["items"]) {
63
+ schema = {
64
+ ...schema,
65
+ items: resolveSchema(schema["items"], openapiDoc),
66
+ };
67
+ }
68
+ return schema;
69
+ }
70
+ }
71
+ return { type: "object", properties: {} };
72
+ }
73
+ //# sourceMappingURL=openapi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../src/openapi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { YAMLWriter } from './yaml-writer.js';
2
+ import { TypeScriptWriter } from './typescript-writer.js';
3
+ import { RegistryWriter } from './registry-writer.js';
4
+ export declare function getWriter(format: string): YAMLWriter | TypeScriptWriter | RegistryWriter;
5
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/output/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,GACb,UAAU,GAAG,gBAAgB,GAAG,cAAc,CAKhD"}
@@ -0,0 +1,13 @@
1
+ import { YAMLWriter } from './yaml-writer.js';
2
+ import { TypeScriptWriter } from './typescript-writer.js';
3
+ import { RegistryWriter } from './registry-writer.js';
4
+ export function getWriter(format) {
5
+ if (format === 'yaml')
6
+ return new YAMLWriter();
7
+ if (format === 'typescript')
8
+ return new TypeScriptWriter();
9
+ if (format === 'registry')
10
+ return new RegistryWriter();
11
+ throw new Error(`Unknown output format: "${format}"`);
12
+ }
13
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/output/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,UAAU,SAAS,CACvB,MAAc;IAEd,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,IAAI,UAAU,EAAE,CAAC;IAC/C,IAAI,MAAM,KAAK,YAAY;QAAE,OAAO,IAAI,gBAAgB,EAAE,CAAC;IAC3D,IAAI,MAAM,KAAK,UAAU;QAAE,OAAO,IAAI,cAAc,EAAE,CAAC;IACvD,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,GAAG,CAAC,CAAC;AACxD,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { YAMLWriter } from './yaml-writer.js';
2
+ export { TypeScriptWriter } from './typescript-writer.js';
3
+ export { RegistryWriter } from './registry-writer.js';
4
+ export { getWriter } from './factory.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/output/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { YAMLWriter } from './yaml-writer.js';
2
+ export { TypeScriptWriter } from './typescript-writer.js';
3
+ export { RegistryWriter } from './registry-writer.js';
4
+ export { getWriter } from './factory.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/output/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ScannedModule } from '../types.js';
2
+ export declare class RegistryWriter {
3
+ write(modules: ScannedModule[], registry: {
4
+ register(moduleId: string, module: unknown): void;
5
+ }, options?: {
6
+ dryRun?: boolean;
7
+ }): Promise<string[]>;
8
+ private _toFunctionModule;
9
+ }
10
+ //# sourceMappingURL=registry-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-writer.d.ts","sourceRoot":"","sources":["../../src/output/registry-writer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,qBAAa,cAAc;IACnB,KAAK,CACT,OAAO,EAAE,aAAa,EAAE,EACxB,QAAQ,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;KAAE,EAC/D,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7B,OAAO,CAAC,MAAM,EAAE,CAAC;YAcN,iBAAiB;CAwBhC"}