apcore-toolkit 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +68 -0
- package/README.md +29 -1
- package/dist/ai-enhancer.d.ts +43 -0
- package/dist/ai-enhancer.d.ts.map +1 -0
- package/dist/ai-enhancer.js +313 -0
- package/dist/ai-enhancer.js.map +1 -0
- package/dist/flatten-params.d.ts +16 -0
- package/dist/flatten-params.d.ts.map +1 -0
- package/dist/flatten-params.js +18 -0
- package/dist/flatten-params.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/openapi.d.ts +7 -0
- package/dist/openapi.d.ts.map +1 -1
- package/dist/openapi.js +49 -8
- package/dist/openapi.js.map +1 -1
- package/dist/output/errors.d.ts +6 -0
- package/dist/output/errors.d.ts.map +1 -0
- package/dist/output/errors.js +11 -0
- package/dist/output/errors.js.map +1 -0
- package/dist/output/index.d.ts +4 -0
- package/dist/output/index.d.ts.map +1 -1
- package/dist/output/index.js +3 -0
- package/dist/output/index.js.map +1 -1
- package/dist/output/registry-writer.d.ts +5 -1
- package/dist/output/registry-writer.d.ts.map +1 -1
- package/dist/output/registry-writer.js +21 -4
- package/dist/output/registry-writer.js.map +1 -1
- package/dist/output/types.d.ts +15 -0
- package/dist/output/types.d.ts.map +1 -0
- package/dist/output/types.js +4 -0
- package/dist/output/types.js.map +1 -0
- package/dist/output/typescript-writer.d.ts +4 -1
- package/dist/output/typescript-writer.d.ts.map +1 -1
- package/dist/output/typescript-writer.js +36 -10
- package/dist/output/typescript-writer.js.map +1 -1
- package/dist/output/verifiers.d.ts +26 -0
- package/dist/output/verifiers.d.ts.map +1 -0
- package/dist/output/verifiers.js +103 -0
- package/dist/output/verifiers.js.map +1 -0
- package/dist/output/yaml-writer.d.ts +4 -1
- package/dist/output/yaml-writer.d.ts.map +1 -1
- package/dist/output/yaml-writer.js +48 -23
- package/dist/output/yaml-writer.js.map +1 -1
- package/dist/resolve-target.d.ts +7 -1
- package/dist/resolve-target.d.ts.map +1 -1
- package/dist/resolve-target.js +17 -1
- package/dist/resolve-target.js.map +1 -1
- package/dist/scanner.d.ts +5 -0
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.js +50 -5
- package/dist/scanner.js.map +1 -1
- package/package.json +5 -5
package/dist/openapi.js
CHANGED
|
@@ -21,6 +21,46 @@ export function resolveSchema(schema, openapiDoc) {
|
|
|
21
21
|
}
|
|
22
22
|
return schema;
|
|
23
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Recursively resolve all `$ref` pointers in a schema.
|
|
26
|
+
*
|
|
27
|
+
* Handles nested `$ref`, `allOf`, `anyOf`, `oneOf`, and `items`.
|
|
28
|
+
* Depth-limited to 16 levels to prevent infinite recursion.
|
|
29
|
+
*/
|
|
30
|
+
export function deepResolveRefs(schema, openapiDoc, depth = 0) {
|
|
31
|
+
if (depth > 16) {
|
|
32
|
+
return schema;
|
|
33
|
+
}
|
|
34
|
+
if ("$ref" in schema) {
|
|
35
|
+
const resolved = resolveRef(schema["$ref"], openapiDoc);
|
|
36
|
+
return deepResolveRefs(resolved, openapiDoc, depth + 1);
|
|
37
|
+
}
|
|
38
|
+
const result = { ...schema };
|
|
39
|
+
// Resolve inside allOf/anyOf/oneOf
|
|
40
|
+
for (const key of ["allOf", "anyOf", "oneOf"]) {
|
|
41
|
+
if (key in result && Array.isArray(result[key])) {
|
|
42
|
+
result[key] = result[key].map((item) => deepResolveRefs(item, openapiDoc, depth + 1));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// Resolve array items
|
|
46
|
+
if ("items" in result &&
|
|
47
|
+
typeof result["items"] === "object" &&
|
|
48
|
+
result["items"] !== null) {
|
|
49
|
+
result["items"] = deepResolveRefs(result["items"], openapiDoc, depth + 1);
|
|
50
|
+
}
|
|
51
|
+
// Resolve nested properties
|
|
52
|
+
if ("properties" in result &&
|
|
53
|
+
typeof result["properties"] === "object" &&
|
|
54
|
+
result["properties"] !== null) {
|
|
55
|
+
const props = result["properties"];
|
|
56
|
+
const resolvedProps = {};
|
|
57
|
+
for (const [k, v] of Object.entries(props)) {
|
|
58
|
+
resolvedProps[k] = deepResolveRefs(v, openapiDoc, depth + 1);
|
|
59
|
+
}
|
|
60
|
+
result["properties"] = resolvedProps;
|
|
61
|
+
}
|
|
62
|
+
return result;
|
|
63
|
+
}
|
|
24
64
|
export function extractInputSchema(operation, openapiDoc = null) {
|
|
25
65
|
const schema = { type: "object", properties: {}, required: [] };
|
|
26
66
|
const parameters = (operation["parameters"] ?? []);
|
|
@@ -46,6 +86,12 @@ export function extractInputSchema(operation, openapiDoc = null) {
|
|
|
46
86
|
Object.assign(schema.properties, bodyProps);
|
|
47
87
|
schema.required.push(...bodyRequired);
|
|
48
88
|
}
|
|
89
|
+
// Recursively resolve $ref inside individual properties
|
|
90
|
+
if (openapiDoc) {
|
|
91
|
+
for (const [propName, propSchema] of Object.entries(schema.properties)) {
|
|
92
|
+
schema.properties[propName] = deepResolveRefs(propSchema, openapiDoc);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
49
95
|
return schema;
|
|
50
96
|
}
|
|
51
97
|
export function extractOutputSchema(operation, openapiDoc = null) {
|
|
@@ -56,14 +102,9 @@ export function extractOutputSchema(operation, openapiDoc = null) {
|
|
|
56
102
|
const jsonContent = (content["application/json"] ?? {});
|
|
57
103
|
if ("schema" in jsonContent) {
|
|
58
104
|
let schema = resolveSchema(jsonContent["schema"], openapiDoc);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
schema
|
|
62
|
-
"$ref" in schema["items"]) {
|
|
63
|
-
schema = {
|
|
64
|
-
...schema,
|
|
65
|
-
items: resolveSchema(schema["items"], openapiDoc),
|
|
66
|
-
};
|
|
105
|
+
// Recursively resolve all nested $ref pointers
|
|
106
|
+
if (openapiDoc) {
|
|
107
|
+
schema = deepResolveRefs(schema, openapiDoc);
|
|
67
108
|
}
|
|
68
109
|
return schema;
|
|
69
110
|
}
|
package/dist/openapi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapi.js","sourceRoot":"","sources":["../src/openapi.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"openapi.js","sourceRoot":"","sources":["../src/openapi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/output/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,SAAkB,KAAK,EAAE,KAAK,CAAC;gBAEnB,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;CAMvC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export class WriteError extends Error {
|
|
2
|
+
path;
|
|
3
|
+
cause;
|
|
4
|
+
constructor(path, cause) {
|
|
5
|
+
super(`Write failed for ${path}: ${cause.message}`, { cause });
|
|
6
|
+
this.name = 'WriteError';
|
|
7
|
+
this.path = path;
|
|
8
|
+
this.cause = cause;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/output/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAW,SAAQ,KAAK;IAC1B,IAAI,CAAS;IACJ,KAAK,CAAQ;IAE/B,YAAY,IAAY,EAAE,KAAY;QACpC,KAAK,CAAC,oBAAoB,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF"}
|
package/dist/output/index.d.ts
CHANGED
|
@@ -2,4 +2,8 @@ export { YAMLWriter } from './yaml-writer.js';
|
|
|
2
2
|
export { TypeScriptWriter } from './typescript-writer.js';
|
|
3
3
|
export { RegistryWriter } from './registry-writer.js';
|
|
4
4
|
export { getWriter } from './factory.js';
|
|
5
|
+
export type { WriteResult, VerifyResult, Verifier } from './types.js';
|
|
6
|
+
export { createWriteResult } from './types.js';
|
|
7
|
+
export { WriteError } from './errors.js';
|
|
8
|
+
export { YAMLVerifier, SyntaxVerifier, RegistryVerifier, MagicBytesVerifier, JSONVerifier, runVerifierChain, } from './verifiers.js';
|
|
5
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +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"}
|
|
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;AACzC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,GACjB,MAAM,gBAAgB,CAAC"}
|
package/dist/output/index.js
CHANGED
|
@@ -2,4 +2,7 @@ export { YAMLWriter } from './yaml-writer.js';
|
|
|
2
2
|
export { TypeScriptWriter } from './typescript-writer.js';
|
|
3
3
|
export { RegistryWriter } from './registry-writer.js';
|
|
4
4
|
export { getWriter } from './factory.js';
|
|
5
|
+
export { createWriteResult } from './types.js';
|
|
6
|
+
export { WriteError } from './errors.js';
|
|
7
|
+
export { YAMLVerifier, SyntaxVerifier, RegistryVerifier, MagicBytesVerifier, JSONVerifier, runVerifierChain, } from './verifiers.js';
|
|
5
8
|
//# sourceMappingURL=index.js.map
|
package/dist/output/index.js.map
CHANGED
|
@@ -1 +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"}
|
|
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;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,GACjB,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import type { ScannedModule } from '../types.js';
|
|
2
|
+
import type { WriteResult, Verifier } from './types.js';
|
|
2
3
|
export declare class RegistryWriter {
|
|
3
4
|
write(modules: ScannedModule[], registry: {
|
|
4
5
|
register(moduleId: string, module: unknown): void;
|
|
6
|
+
getModule?(id: string): unknown;
|
|
5
7
|
}, options?: {
|
|
6
8
|
dryRun?: boolean;
|
|
7
|
-
|
|
9
|
+
verify?: boolean;
|
|
10
|
+
verifiers?: Verifier[];
|
|
11
|
+
}): Promise<WriteResult[]>;
|
|
8
12
|
private _toFunctionModule;
|
|
9
13
|
}
|
|
10
14
|
//# sourceMappingURL=registry-writer.d.ts.map
|
|
@@ -1 +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;
|
|
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;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAIxD,qBAAa,cAAc;IACnB,KAAK,CACT,OAAO,EAAE,aAAa,EAAE,EACxB,QAAQ,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;QAAC,SAAS,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,EAChG,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;KAAE,GACvE,OAAO,CAAC,WAAW,EAAE,CAAC;YA+BX,iBAAiB;CAwBhC"}
|
|
@@ -1,19 +1,36 @@
|
|
|
1
1
|
import { FunctionModule, jsonSchemaToTypeBox } from 'apcore-js';
|
|
2
2
|
import { annotationsToDict } from '../serializers.js';
|
|
3
3
|
import { resolveTarget } from '../resolve-target.js';
|
|
4
|
+
import { createWriteResult } from './types.js';
|
|
5
|
+
import { RegistryVerifier, runVerifierChain } from './verifiers.js';
|
|
4
6
|
export class RegistryWriter {
|
|
5
7
|
async write(modules, registry, options) {
|
|
6
|
-
const
|
|
8
|
+
const shouldVerify = options?.verify ?? false;
|
|
9
|
+
const verifiers = options?.verifiers ?? [];
|
|
10
|
+
const results = [];
|
|
7
11
|
for (const mod of modules) {
|
|
8
12
|
if (options?.dryRun) {
|
|
9
|
-
|
|
13
|
+
results.push(createWriteResult(mod.moduleId, null));
|
|
10
14
|
continue;
|
|
11
15
|
}
|
|
12
16
|
const fm = await this._toFunctionModule(mod);
|
|
13
17
|
registry.register(mod.moduleId, fm);
|
|
14
|
-
|
|
18
|
+
let result = createWriteResult(mod.moduleId, null);
|
|
19
|
+
if (shouldVerify) {
|
|
20
|
+
const builtinResult = new RegistryVerifier(registry).verify('', mod.moduleId);
|
|
21
|
+
if (!builtinResult.ok) {
|
|
22
|
+
result = createWriteResult(mod.moduleId, null, false, builtinResult.error ?? null);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (result.verified && verifiers.length > 0) {
|
|
26
|
+
const vResult = runVerifierChain(verifiers, '', mod.moduleId);
|
|
27
|
+
if (!vResult.ok) {
|
|
28
|
+
result = createWriteResult(mod.moduleId, null, false, vResult.error ?? null);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
results.push(result);
|
|
15
32
|
}
|
|
16
|
-
return
|
|
33
|
+
return results;
|
|
17
34
|
}
|
|
18
35
|
async _toFunctionModule(mod) {
|
|
19
36
|
const targetFn = (await resolveTarget(mod.target));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry-writer.js","sourceRoot":"","sources":["../../src/output/registry-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,MAAM,OAAO,cAAc;IACzB,KAAK,CAAC,KAAK,CACT,OAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"registry-writer.js","sourceRoot":"","sources":["../../src/output/registry-writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface WriteResult {
|
|
2
|
+
readonly moduleId: string;
|
|
3
|
+
readonly path: string | null;
|
|
4
|
+
readonly verified: boolean;
|
|
5
|
+
readonly verificationError: string | null;
|
|
6
|
+
}
|
|
7
|
+
export interface VerifyResult {
|
|
8
|
+
readonly ok: boolean;
|
|
9
|
+
readonly error?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface Verifier {
|
|
12
|
+
verify(path: string, moduleId: string): VerifyResult;
|
|
13
|
+
}
|
|
14
|
+
export declare function createWriteResult(moduleId: string, path?: string | null, verified?: boolean, verificationError?: string | null): WriteResult;
|
|
15
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/output/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAAC;CACtD;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,MAAM,GAAG,IAAW,EAC1B,QAAQ,UAAO,EACf,iBAAiB,GAAE,MAAM,GAAG,IAAW,GACtC,WAAW,CAEb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/output/types.ts"],"names":[],"mappings":"AAgBA,MAAM,UAAU,iBAAiB,CAC/B,QAAgB,EAChB,OAAsB,IAAI,EAC1B,QAAQ,GAAG,IAAI,EACf,oBAAmC,IAAI;IAEvC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;AACzD,CAAC"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { ScannedModule } from '../types.js';
|
|
2
|
+
import type { WriteResult, Verifier } from './types.js';
|
|
2
3
|
export declare class TypeScriptWriter {
|
|
3
4
|
write(modules: ScannedModule[], outputDir: string, options?: {
|
|
4
5
|
dryRun?: boolean;
|
|
5
|
-
|
|
6
|
+
verify?: boolean;
|
|
7
|
+
verifiers?: Verifier[];
|
|
8
|
+
}): WriteResult[];
|
|
6
9
|
private _generateCode;
|
|
7
10
|
private _parseTarget;
|
|
8
11
|
private _sanitizeIdentifier;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-writer.d.ts","sourceRoot":"","sources":["../../src/output/typescript-writer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"typescript-writer.d.ts","sourceRoot":"","sources":["../../src/output/typescript-writer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAKxD,qBAAa,gBAAgB;IAC3B,KAAK,CACH,OAAO,EAAE,aAAa,EAAE,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;KAAE,GACvE,WAAW,EAAE;IAyDhB,OAAO,CAAC,aAAa;IAgCrB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,mBAAmB;CAO5B"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { writeFileSync, mkdirSync } from 'node:fs';
|
|
2
2
|
import { resolve, join } from 'node:path';
|
|
3
|
+
import { createWriteResult } from './types.js';
|
|
4
|
+
import { WriteError } from './errors.js';
|
|
5
|
+
import { SyntaxVerifier, runVerifierChain } from './verifiers.js';
|
|
3
6
|
export class TypeScriptWriter {
|
|
4
7
|
write(modules, outputDir, options) {
|
|
5
8
|
const dryRun = options?.dryRun ?? false;
|
|
9
|
+
const shouldVerify = options?.verify ?? false;
|
|
10
|
+
const verifiers = options?.verifiers ?? [];
|
|
6
11
|
const results = [];
|
|
7
12
|
const timestamp = new Date().toISOString();
|
|
8
13
|
const resolvedOut = dryRun ? '' : resolve(outputDir);
|
|
@@ -11,18 +16,39 @@ export class TypeScriptWriter {
|
|
|
11
16
|
}
|
|
12
17
|
for (const mod of modules) {
|
|
13
18
|
const code = this._generateCode(mod, timestamp);
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
if (dryRun) {
|
|
20
|
+
results.push(createWriteResult(mod.moduleId, null));
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
// Path traversal protection: check raw moduleId before sanitization
|
|
24
|
+
const rawResolved = resolve(join(resolvedOut, mod.moduleId));
|
|
25
|
+
if (!rawResolved.startsWith(resolvedOut + '/') && rawResolved !== resolvedOut) {
|
|
26
|
+
console.warn('Skipping module with path traversal in id: %s', mod.moduleId);
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
const sanitized = this._sanitizeIdentifier(mod.moduleId);
|
|
30
|
+
const filename = `${sanitized}.ts`;
|
|
31
|
+
const filePath = resolve(join(resolvedOut, filename));
|
|
32
|
+
try {
|
|
33
|
+
writeFileSync(filePath, code, 'utf-8');
|
|
34
|
+
}
|
|
35
|
+
catch (err) {
|
|
36
|
+
throw new WriteError(filePath, err);
|
|
37
|
+
}
|
|
38
|
+
let result = createWriteResult(mod.moduleId, filePath);
|
|
39
|
+
if (shouldVerify) {
|
|
40
|
+
const builtinResult = new SyntaxVerifier().verify(filePath, mod.moduleId);
|
|
41
|
+
if (!builtinResult.ok) {
|
|
42
|
+
result = createWriteResult(mod.moduleId, filePath, false, builtinResult.error ?? null);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (result.verified && verifiers.length > 0) {
|
|
46
|
+
const vResult = runVerifierChain(verifiers, filePath, mod.moduleId);
|
|
47
|
+
if (!vResult.ok) {
|
|
48
|
+
result = createWriteResult(mod.moduleId, filePath, false, vResult.error ?? null);
|
|
21
49
|
}
|
|
22
|
-
const sanitized = this._sanitizeIdentifier(mod.moduleId);
|
|
23
|
-
const filename = `${sanitized}.ts`;
|
|
24
|
-
writeFileSync(resolve(join(resolvedOut, filename)), code, 'utf-8');
|
|
25
50
|
}
|
|
51
|
+
results.push(result);
|
|
26
52
|
}
|
|
27
53
|
return results;
|
|
28
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-writer.js","sourceRoot":"","sources":["../../src/output/typescript-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAG1C,MAAM,OAAO,gBAAgB;IAC3B,KAAK,CACH,OAAwB,EACxB,SAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"typescript-writer.js","sourceRoot":"","sources":["../../src/output/typescript-writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Verifier, VerifyResult } from './types.js';
|
|
2
|
+
export declare class YAMLVerifier implements Verifier {
|
|
3
|
+
verify(path: string, _moduleId: string): VerifyResult;
|
|
4
|
+
}
|
|
5
|
+
export declare class SyntaxVerifier implements Verifier {
|
|
6
|
+
verify(path: string, _moduleId: string): VerifyResult;
|
|
7
|
+
}
|
|
8
|
+
export declare class RegistryVerifier implements Verifier {
|
|
9
|
+
private readonly registry;
|
|
10
|
+
constructor(registry: {
|
|
11
|
+
getModule?(id: string): unknown;
|
|
12
|
+
});
|
|
13
|
+
verify(_path: string, moduleId: string): VerifyResult;
|
|
14
|
+
}
|
|
15
|
+
export declare class MagicBytesVerifier implements Verifier {
|
|
16
|
+
private readonly expected;
|
|
17
|
+
constructor(expected: Buffer);
|
|
18
|
+
verify(path: string, _moduleId: string): VerifyResult;
|
|
19
|
+
}
|
|
20
|
+
export declare class JSONVerifier implements Verifier {
|
|
21
|
+
private readonly schema;
|
|
22
|
+
constructor(schema?: Record<string, unknown>);
|
|
23
|
+
verify(path: string, _moduleId: string): VerifyResult;
|
|
24
|
+
}
|
|
25
|
+
export declare function runVerifierChain(verifiers: Verifier[], path: string, moduleId: string): VerifyResult;
|
|
26
|
+
//# sourceMappingURL=verifiers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifiers.d.ts","sourceRoot":"","sources":["../../src/output/verifiers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEzD,qBAAa,YAAa,YAAW,QAAQ;IAC3C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY;CAetD;AAED,qBAAa,cAAe,YAAW,QAAQ;IAC7C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY;CAYtD;AAED,qBAAa,gBAAiB,YAAW,QAAQ;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsC;gBAEnD,QAAQ,EAAE;QAAE,SAAS,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE;IAIzD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY;CActD;AAED,qBAAa,kBAAmB,YAAW,QAAQ;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,QAAQ,EAAE,MAAM;IAI5B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY;CAYtD;AAED,qBAAa,YAAa,YAAW,QAAQ;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;gBAE5C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI5C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY;CAWtD;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,QAAQ,EAAE,EACrB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,YAAY,CAQd"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import yaml from 'js-yaml';
|
|
3
|
+
export class YAMLVerifier {
|
|
4
|
+
verify(path, _moduleId) {
|
|
5
|
+
try {
|
|
6
|
+
const content = readFileSync(path, 'utf-8');
|
|
7
|
+
const doc = yaml.load(content);
|
|
8
|
+
if (doc == null || typeof doc !== 'object') {
|
|
9
|
+
return { ok: false, error: 'YAML parsed to non-object value' };
|
|
10
|
+
}
|
|
11
|
+
if (!('bindings' in doc)) {
|
|
12
|
+
return { ok: false, error: 'Missing required "bindings" key' };
|
|
13
|
+
}
|
|
14
|
+
return { ok: true };
|
|
15
|
+
}
|
|
16
|
+
catch (err) {
|
|
17
|
+
return { ok: false, error: `YAML parse error: ${err.message}` };
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export class SyntaxVerifier {
|
|
22
|
+
verify(path, _moduleId) {
|
|
23
|
+
try {
|
|
24
|
+
const content = readFileSync(path, 'utf-8');
|
|
25
|
+
// Basic syntax check: ensure file is non-empty and parseable
|
|
26
|
+
if (content.trim().length === 0) {
|
|
27
|
+
return { ok: false, error: 'File is empty' };
|
|
28
|
+
}
|
|
29
|
+
return { ok: true };
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
return { ok: false, error: `Read error: ${err.message}` };
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export class RegistryVerifier {
|
|
37
|
+
registry;
|
|
38
|
+
constructor(registry) {
|
|
39
|
+
this.registry = registry;
|
|
40
|
+
}
|
|
41
|
+
verify(_path, moduleId) {
|
|
42
|
+
try {
|
|
43
|
+
if (typeof this.registry.getModule !== 'function') {
|
|
44
|
+
return { ok: false, error: 'Registry does not have a getModule method' };
|
|
45
|
+
}
|
|
46
|
+
const mod = this.registry.getModule(moduleId);
|
|
47
|
+
if (mod == null) {
|
|
48
|
+
return { ok: false, error: `Module "${moduleId}" not found in registry` };
|
|
49
|
+
}
|
|
50
|
+
return { ok: true };
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
return { ok: false, error: `Registry lookup error: ${err.message}` };
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export class MagicBytesVerifier {
|
|
58
|
+
expected;
|
|
59
|
+
constructor(expected) {
|
|
60
|
+
this.expected = expected;
|
|
61
|
+
}
|
|
62
|
+
verify(path, _moduleId) {
|
|
63
|
+
try {
|
|
64
|
+
const content = readFileSync(path);
|
|
65
|
+
const header = content.subarray(0, this.expected.length);
|
|
66
|
+
if (!header.equals(this.expected)) {
|
|
67
|
+
return { ok: false, error: 'File header does not match expected magic bytes' };
|
|
68
|
+
}
|
|
69
|
+
return { ok: true };
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
return { ok: false, error: `Read error: ${err.message}` };
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
export class JSONVerifier {
|
|
77
|
+
schema;
|
|
78
|
+
constructor(schema) {
|
|
79
|
+
this.schema = schema ?? null;
|
|
80
|
+
}
|
|
81
|
+
verify(path, _moduleId) {
|
|
82
|
+
try {
|
|
83
|
+
const content = readFileSync(path, 'utf-8');
|
|
84
|
+
JSON.parse(content);
|
|
85
|
+
// Schema validation is accepted for API parity with Python but requires
|
|
86
|
+
// a JSON Schema validator (e.g., ajv) for actual validation.
|
|
87
|
+
return { ok: true };
|
|
88
|
+
}
|
|
89
|
+
catch (err) {
|
|
90
|
+
return { ok: false, error: `JSON parse error: ${err.message}` };
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
export function runVerifierChain(verifiers, path, moduleId) {
|
|
95
|
+
for (const verifier of verifiers) {
|
|
96
|
+
const result = verifier.verify(path, moduleId);
|
|
97
|
+
if (!result.ok) {
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return { ok: true };
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=verifiers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifiers.js","sourceRoot":"","sources":["../../src/output/verifiers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { ScannedModule } from '../types.js';
|
|
2
|
+
import type { WriteResult, Verifier } from './types.js';
|
|
2
3
|
export declare class YAMLWriter {
|
|
3
4
|
write(modules: ScannedModule[], outputDir: string, options?: {
|
|
4
5
|
dryRun?: boolean;
|
|
5
|
-
|
|
6
|
+
verify?: boolean;
|
|
7
|
+
verifiers?: Verifier[];
|
|
8
|
+
}): WriteResult[];
|
|
6
9
|
private _buildBinding;
|
|
7
10
|
}
|
|
8
11
|
//# sourceMappingURL=yaml-writer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yaml-writer.d.ts","sourceRoot":"","sources":["../../src/output/yaml-writer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"yaml-writer.d.ts","sourceRoot":"","sources":["../../src/output/yaml-writer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAKxD,qBAAa,UAAU;IACrB,KAAK,CACH,OAAO,EAAE,aAAa,EAAE,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;KAAE,GACvE,WAAW,EAAE;IA4EhB,OAAO,CAAC,aAAa;CAqBtB"}
|