@typokit/transform-native 0.1.4

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.
@@ -0,0 +1,148 @@
1
+ import type { SchemaTypeMap } from "@typokit/types";
2
+ interface JsPropertyMetadata {
3
+ type: string;
4
+ optional: boolean;
5
+ }
6
+ interface JsSchemaChange {
7
+ type: string;
8
+ entity: string;
9
+ field?: string;
10
+ details?: Record<string, string>;
11
+ }
12
+ interface JsMigrationDraft {
13
+ name: string;
14
+ sql: string;
15
+ destructive: boolean;
16
+ changes: JsSchemaChange[];
17
+ }
18
+ interface JsTypeValidatorInput {
19
+ name: string;
20
+ properties: Record<string, JsPropertyMetadata>;
21
+ }
22
+ /** Options for the output pipeline */
23
+ export interface PipelineOptions {
24
+ /** Paths to TypeScript files containing type definitions */
25
+ typeFiles: string[];
26
+ /** Paths to TypeScript files containing route contracts */
27
+ routeFiles: string[];
28
+ /** Output directory (defaults to ".typokit") */
29
+ outputDir?: string;
30
+ /** Optional validator callback — receives type inputs, returns [name, code] pairs */
31
+ validatorCallback?: (inputs: JsTypeValidatorInput[]) => Promise<[string, string][]> | [string, string][];
32
+ /** Path to cache hash file (defaults to ".typokit/.cache-hash") */
33
+ cacheFile?: string;
34
+ }
35
+ /** Result of a full pipeline run */
36
+ export interface PipelineOutput {
37
+ /** Whether outputs were regenerated (false = cache hit) */
38
+ regenerated: boolean;
39
+ /** Content hash of source files */
40
+ contentHash: string;
41
+ /** Extracted type metadata */
42
+ types: SchemaTypeMap;
43
+ /** Files written to outputDir */
44
+ filesWritten: string[];
45
+ }
46
+ /**
47
+ * Parse TypeScript source files and extract type metadata.
48
+ *
49
+ * Uses the Rust-native SWC parser for high-performance AST parsing and
50
+ * type extraction. Extracts interface definitions including JSDoc tags
51
+ * (@table, @id, @generated, @format, @unique, @minLength, @maxLength,
52
+ * @default, @onUpdate).
53
+ *
54
+ * @param filePaths - Array of file paths to parse
55
+ * @returns SchemaTypeMap mapping type names to their metadata
56
+ */
57
+ export declare function parseAndExtractTypes(filePaths: string[]): Promise<SchemaTypeMap>;
58
+ /**
59
+ * Compile route contracts from TypeScript files into a radix tree.
60
+ *
61
+ * Parses interfaces with route contract keys (e.g., "GET /users") and
62
+ * builds a compiled radix tree serialized as TypeScript source code.
63
+ *
64
+ * @param filePaths - Array of file paths containing route contract interfaces
65
+ * @returns TypeScript source code for the compiled route table
66
+ */
67
+ export declare function compileRoutes(filePaths: string[]): Promise<string>;
68
+ /**
69
+ * Generate an OpenAPI 3.1.0 specification from route contracts and type definitions.
70
+ *
71
+ * @param routeFilePaths - Array of file paths containing route contract interfaces
72
+ * @param typeFilePaths - Array of file paths containing type definitions
73
+ * @returns OpenAPI 3.1.0 specification as a JSON string
74
+ */
75
+ export declare function generateOpenApi(routeFilePaths: string[], typeFilePaths: string[]): Promise<string>;
76
+ /**
77
+ * Diff two schema versions and produce a migration draft.
78
+ *
79
+ * Compares old types against new types to detect added, removed, and
80
+ * modified entities and fields. Generates SQL DDL stubs for the changes.
81
+ *
82
+ * @param oldTypes - Previous schema version
83
+ * @param newTypes - New schema version
84
+ * @param migrationName - Name for the migration draft
85
+ * @returns MigrationDraft with SQL, changes, and destructive flag
86
+ */
87
+ export declare function diffSchemas(oldTypes: SchemaTypeMap, newTypes: SchemaTypeMap, migrationName: string): Promise<JsMigrationDraft>;
88
+ /**
89
+ * Generate contract test scaffolding from route contract files.
90
+ *
91
+ * Parses route contracts and generates TypeScript test stubs with
92
+ * describe/it blocks for each route.
93
+ *
94
+ * @param filePaths - Array of file paths containing route contract interfaces
95
+ * @returns TypeScript test code string
96
+ */
97
+ export declare function generateTestStubs(filePaths: string[]): Promise<string>;
98
+ /**
99
+ * Prepare type metadata for Typia validator generation.
100
+ *
101
+ * Converts parsed type metadata into a format suitable for passing
102
+ * to the @typokit/transform-typia bridge callback.
103
+ *
104
+ * @param typeFilePaths - Array of file paths containing type definitions
105
+ * @returns Array of type validator inputs
106
+ */
107
+ export declare function prepareValidatorInputs(typeFilePaths: string[]): Promise<JsTypeValidatorInput[]>;
108
+ /**
109
+ * Collect validator code results into a file path map.
110
+ *
111
+ * Maps type names and their generated code to output file paths
112
+ * under .typokit/validators/.
113
+ *
114
+ * @param results - Array of [typeName, code] pairs
115
+ * @returns Map of file paths to validator code
116
+ */
117
+ export declare function collectValidatorOutputs(results: [string, string][]): Promise<Record<string, string>>;
118
+ /**
119
+ * Compute a SHA-256 content hash of source files.
120
+ *
121
+ * Used for cache invalidation: if the hash matches a previous build,
122
+ * outputs can be reused without regeneration.
123
+ *
124
+ * @param filePaths - Array of file paths to hash
125
+ * @returns Hex-encoded SHA-256 hash string
126
+ */
127
+ export declare function computeContentHash(filePaths: string[]): Promise<string>;
128
+ /**
129
+ * Run the full output pipeline with content-hash caching.
130
+ *
131
+ * Orchestrates all transform steps: parse types, compile routes, generate
132
+ * OpenAPI spec, generate test stubs, and prepare validator inputs. Writes
133
+ * all outputs to the `.typokit/` directory structure:
134
+ *
135
+ * - `.typokit/routes/compiled-router.ts` — Compiled radix tree
136
+ * - `.typokit/schemas/openapi.json` — OpenAPI 3.1.0 spec
137
+ * - `.typokit/tests/contract.test.ts` — Contract test stubs
138
+ * - `.typokit/validators/*.ts` — Typia validators (if callback provided)
139
+ *
140
+ * Content-hash caching: If the hash of all source files matches the cached
141
+ * hash, no outputs are regenerated. Force a rebuild by deleting `.typokit/.cache-hash`.
142
+ *
143
+ * @param options - Pipeline configuration
144
+ * @returns Pipeline output with metadata about what was generated
145
+ */
146
+ export declare function buildPipeline(options: PipelineOptions): Promise<PipelineOutput>;
147
+ export {};
148
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,290 @@
1
+ // Load the platform-specific native addon
2
+ async function loadNativeAddon() {
3
+ const g = globalThis;
4
+ const proc = g["process"];
5
+ const platform = proc?.platform ?? "unknown";
6
+ const arch = proc?.arch ?? "unknown";
7
+ const triples = {
8
+ win32: { x64: "win32-x64-msvc" },
9
+ darwin: { x64: "darwin-x64", arm64: "darwin-arm64" },
10
+ linux: { x64: "linux-x64-gnu", arm64: "linux-arm64-gnu" },
11
+ };
12
+ const triple = triples[platform]?.[arch];
13
+ if (!triple) {
14
+ throw new Error(`@typokit/transform-native: unsupported platform ${platform}-${arch}`);
15
+ }
16
+ // In ESM, require() is not global. Use createRequire from 'module' built-in.
17
+ const { createRequire } = (await import(/* @vite-ignore */ "module"));
18
+ const req = createRequire(import.meta.url);
19
+ // Try loading the platform-specific native addon
20
+ try {
21
+ return req(`../index.${triple}.node`);
22
+ }
23
+ catch {
24
+ try {
25
+ return req(`@typokit/transform-native-${triple}`);
26
+ }
27
+ catch {
28
+ throw new Error(`@typokit/transform-native: failed to load native addon for ${triple}. ` +
29
+ `Make sure the native addon is built.`);
30
+ }
31
+ }
32
+ }
33
+ let _native;
34
+ let _loading;
35
+ async function getNative() {
36
+ if (_native)
37
+ return _native;
38
+ if (!_loading) {
39
+ _loading = loadNativeAddon().then((n) => {
40
+ _native = n;
41
+ return n;
42
+ });
43
+ }
44
+ return _loading;
45
+ }
46
+ /**
47
+ * Parse TypeScript source files and extract type metadata.
48
+ *
49
+ * Uses the Rust-native SWC parser for high-performance AST parsing and
50
+ * type extraction. Extracts interface definitions including JSDoc tags
51
+ * (@table, @id, @generated, @format, @unique, @minLength, @maxLength,
52
+ * @default, @onUpdate).
53
+ *
54
+ * @param filePaths - Array of file paths to parse
55
+ * @returns SchemaTypeMap mapping type names to their metadata
56
+ */
57
+ export async function parseAndExtractTypes(filePaths) {
58
+ const native = await getNative();
59
+ const raw = native.parseAndExtractTypes(filePaths);
60
+ // Convert JsTypeMetadata to TypeMetadata (compatible shape)
61
+ const result = {};
62
+ for (const [name, meta] of Object.entries(raw)) {
63
+ result[name] = {
64
+ name: meta.name,
65
+ properties: {},
66
+ };
67
+ for (const [propName, prop] of Object.entries(meta.properties)) {
68
+ result[name].properties[propName] = {
69
+ type: prop.type,
70
+ optional: prop.optional,
71
+ };
72
+ }
73
+ }
74
+ return result;
75
+ }
76
+ /**
77
+ * Compile route contracts from TypeScript files into a radix tree.
78
+ *
79
+ * Parses interfaces with route contract keys (e.g., "GET /users") and
80
+ * builds a compiled radix tree serialized as TypeScript source code.
81
+ *
82
+ * @param filePaths - Array of file paths containing route contract interfaces
83
+ * @returns TypeScript source code for the compiled route table
84
+ */
85
+ export async function compileRoutes(filePaths) {
86
+ const native = await getNative();
87
+ return native.compileRoutes(filePaths);
88
+ }
89
+ /**
90
+ * Generate an OpenAPI 3.1.0 specification from route contracts and type definitions.
91
+ *
92
+ * @param routeFilePaths - Array of file paths containing route contract interfaces
93
+ * @param typeFilePaths - Array of file paths containing type definitions
94
+ * @returns OpenAPI 3.1.0 specification as a JSON string
95
+ */
96
+ export async function generateOpenApi(routeFilePaths, typeFilePaths) {
97
+ const native = await getNative();
98
+ return native.generateOpenApi(routeFilePaths, typeFilePaths);
99
+ }
100
+ /**
101
+ * Diff two schema versions and produce a migration draft.
102
+ *
103
+ * Compares old types against new types to detect added, removed, and
104
+ * modified entities and fields. Generates SQL DDL stubs for the changes.
105
+ *
106
+ * @param oldTypes - Previous schema version
107
+ * @param newTypes - New schema version
108
+ * @param migrationName - Name for the migration draft
109
+ * @returns MigrationDraft with SQL, changes, and destructive flag
110
+ */
111
+ export async function diffSchemas(oldTypes, newTypes, migrationName) {
112
+ const native = await getNative();
113
+ const oldJs = schemaTypeMapToJs(oldTypes);
114
+ const newJs = schemaTypeMapToJs(newTypes);
115
+ return native.diffSchemas(oldJs, newJs, migrationName);
116
+ }
117
+ /**
118
+ * Generate contract test scaffolding from route contract files.
119
+ *
120
+ * Parses route contracts and generates TypeScript test stubs with
121
+ * describe/it blocks for each route.
122
+ *
123
+ * @param filePaths - Array of file paths containing route contract interfaces
124
+ * @returns TypeScript test code string
125
+ */
126
+ export async function generateTestStubs(filePaths) {
127
+ const native = await getNative();
128
+ return native.generateTestStubs(filePaths);
129
+ }
130
+ /**
131
+ * Prepare type metadata for Typia validator generation.
132
+ *
133
+ * Converts parsed type metadata into a format suitable for passing
134
+ * to the @typokit/transform-typia bridge callback.
135
+ *
136
+ * @param typeFilePaths - Array of file paths containing type definitions
137
+ * @returns Array of type validator inputs
138
+ */
139
+ export async function prepareValidatorInputs(typeFilePaths) {
140
+ const native = await getNative();
141
+ return native.prepareValidatorInputs(typeFilePaths);
142
+ }
143
+ /**
144
+ * Collect validator code results into a file path map.
145
+ *
146
+ * Maps type names and their generated code to output file paths
147
+ * under .typokit/validators/.
148
+ *
149
+ * @param results - Array of [typeName, code] pairs
150
+ * @returns Map of file paths to validator code
151
+ */
152
+ export async function collectValidatorOutputs(results) {
153
+ const native = await getNative();
154
+ return native.collectValidatorOutputs(results);
155
+ }
156
+ /**
157
+ * Compute a SHA-256 content hash of source files.
158
+ *
159
+ * Used for cache invalidation: if the hash matches a previous build,
160
+ * outputs can be reused without regeneration.
161
+ *
162
+ * @param filePaths - Array of file paths to hash
163
+ * @returns Hex-encoded SHA-256 hash string
164
+ */
165
+ export async function computeContentHash(filePaths) {
166
+ const native = await getNative();
167
+ return native.computeContentHash(filePaths);
168
+ }
169
+ /**
170
+ * Run the full output pipeline with content-hash caching.
171
+ *
172
+ * Orchestrates all transform steps: parse types, compile routes, generate
173
+ * OpenAPI spec, generate test stubs, and prepare validator inputs. Writes
174
+ * all outputs to the `.typokit/` directory structure:
175
+ *
176
+ * - `.typokit/routes/compiled-router.ts` — Compiled radix tree
177
+ * - `.typokit/schemas/openapi.json` — OpenAPI 3.1.0 spec
178
+ * - `.typokit/tests/contract.test.ts` — Contract test stubs
179
+ * - `.typokit/validators/*.ts` — Typia validators (if callback provided)
180
+ *
181
+ * Content-hash caching: If the hash of all source files matches the cached
182
+ * hash, no outputs are regenerated. Force a rebuild by deleting `.typokit/.cache-hash`.
183
+ *
184
+ * @param options - Pipeline configuration
185
+ * @returns Pipeline output with metadata about what was generated
186
+ */
187
+ export async function buildPipeline(options) {
188
+ const { join, dirname } = (await import(/* @vite-ignore */ "path"));
189
+ const nodeFs = (await import(/* @vite-ignore */ "fs"));
190
+ const native = await getNative();
191
+ const outputDir = options.outputDir ?? ".typokit";
192
+ const cacheFile = options.cacheFile ?? join(outputDir, ".cache-hash");
193
+ // 1. Compute content hash of all input files
194
+ const allPaths = [...options.typeFiles, ...options.routeFiles];
195
+ const contentHash = native.computeContentHash(allPaths);
196
+ // 2. Check cache
197
+ if (nodeFs.existsSync(cacheFile)) {
198
+ const cachedHash = nodeFs.readFileSync(cacheFile, "utf-8").trim();
199
+ if (cachedHash === contentHash) {
200
+ return {
201
+ regenerated: false,
202
+ contentHash,
203
+ types: {},
204
+ filesWritten: [],
205
+ };
206
+ }
207
+ }
208
+ // 3. Run native pipeline
209
+ const result = native.runPipeline(options.typeFiles, options.routeFiles);
210
+ // 4. Ensure output directories exist
211
+ const dirs = [
212
+ join(outputDir, "routes"),
213
+ join(outputDir, "schemas"),
214
+ join(outputDir, "tests"),
215
+ join(outputDir, "validators"),
216
+ join(outputDir, "client"),
217
+ ];
218
+ for (const dir of dirs) {
219
+ nodeFs.mkdirSync(dir, { recursive: true });
220
+ }
221
+ const filesWritten = [];
222
+ // 5. Write compiled routes
223
+ const routesPath = join(outputDir, "routes", "compiled-router.ts");
224
+ nodeFs.writeFileSync(routesPath, result.compiledRoutes, "utf-8");
225
+ filesWritten.push(routesPath);
226
+ // 6. Write OpenAPI spec
227
+ const openapiPath = join(outputDir, "schemas", "openapi.json");
228
+ nodeFs.writeFileSync(openapiPath, result.openapiSpec, "utf-8");
229
+ filesWritten.push(openapiPath);
230
+ // 7. Write test stubs
231
+ const testsPath = join(outputDir, "tests", "contract.test.ts");
232
+ nodeFs.writeFileSync(testsPath, result.testStubs, "utf-8");
233
+ filesWritten.push(testsPath);
234
+ // 8. Generate and write validators (if callback provided)
235
+ if (options.validatorCallback && result.validatorInputs.length > 0) {
236
+ const validatorResults = await options.validatorCallback(result.validatorInputs);
237
+ const validatorOutputs = native.collectValidatorOutputs(validatorResults);
238
+ for (const [filePath, code] of Object.entries(validatorOutputs)) {
239
+ const fullPath = filePath.startsWith(outputDir)
240
+ ? filePath
241
+ : join(outputDir, filePath.replace(/^\.typokit\//, ""));
242
+ const dir = dirname(fullPath);
243
+ nodeFs.mkdirSync(dir, { recursive: true });
244
+ nodeFs.writeFileSync(fullPath, code, "utf-8");
245
+ filesWritten.push(fullPath);
246
+ }
247
+ }
248
+ // 9. Write cache hash
249
+ nodeFs.mkdirSync(dirname(cacheFile), { recursive: true });
250
+ nodeFs.writeFileSync(cacheFile, contentHash, "utf-8");
251
+ filesWritten.push(cacheFile);
252
+ // 10. Convert types to SchemaTypeMap
253
+ const types = {};
254
+ for (const [name, meta] of Object.entries(result.types)) {
255
+ types[name] = {
256
+ name: meta.name,
257
+ properties: {},
258
+ };
259
+ for (const [propName, prop] of Object.entries(meta.properties)) {
260
+ types[name].properties[propName] = {
261
+ type: prop.type,
262
+ optional: prop.optional,
263
+ };
264
+ }
265
+ }
266
+ return {
267
+ regenerated: true,
268
+ contentHash,
269
+ types,
270
+ filesWritten,
271
+ };
272
+ }
273
+ /** Convert SchemaTypeMap to JsTypeMetadata format for native binding */
274
+ function schemaTypeMapToJs(types) {
275
+ const result = {};
276
+ for (const [name, meta] of Object.entries(types)) {
277
+ result[name] = {
278
+ name: meta.name,
279
+ properties: {},
280
+ };
281
+ for (const [propName, prop] of Object.entries(meta.properties)) {
282
+ result[name].properties[propName] = {
283
+ type: prop.type,
284
+ optional: prop.optional,
285
+ };
286
+ }
287
+ }
288
+ return result;
289
+ }
290
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@typokit/transform-native",
3
+ "exports": {
4
+ ".": {
5
+ "import": "./dist/index.js",
6
+ "types": "./dist/index.d.ts"
7
+ }
8
+ },
9
+ "version": "0.1.4",
10
+ "type": "module",
11
+ "files": [
12
+ "dist",
13
+ "src",
14
+ "*.node"
15
+ ],
16
+ "main": "./dist/index.js",
17
+ "types": "./dist/index.d.ts",
18
+ "dependencies": {
19
+ "@typokit/types": "0.1.4"
20
+ },
21
+ "napi": {
22
+ "binaryName": "index",
23
+ "targets": [
24
+ "x86_64-pc-windows-msvc",
25
+ "x86_64-apple-darwin",
26
+ "aarch64-apple-darwin",
27
+ "x86_64-unknown-linux-gnu",
28
+ "aarch64-unknown-linux-gnu",
29
+ "x86_64-unknown-linux-musl"
30
+ ]
31
+ },
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "https://github.com/KyleBastien/typokit",
35
+ "directory": "packages/transform-native"
36
+ },
37
+ "scripts": {
38
+ "test": "rstest run --passWithNoTests",
39
+ "build:native": "napi build --platform --dts src/index.d.ts --js false",
40
+ "build:native:release": "napi build --platform --release --dts src/index.d.ts --js false"
41
+ }
42
+ }
package/src/env.d.ts ADDED
@@ -0,0 +1,40 @@
1
+ // Minimal type declarations for Node.js APIs used by transform-native
2
+ // Avoids adding @types/node as a dependency
3
+
4
+ declare module "module" {
5
+ export function createRequire(url: string | URL): (id: string) => unknown;
6
+ }
7
+
8
+ declare module "path" {
9
+ export function join(...paths: string[]): string;
10
+ export function dirname(p: string): string;
11
+ }
12
+
13
+ declare module "fs" {
14
+ export function existsSync(path: string): boolean;
15
+ export function mkdirSync(
16
+ path: string,
17
+ options?: { recursive?: boolean },
18
+ ): void;
19
+ export function readFileSync(path: string, encoding: string): string;
20
+ export function writeFileSync(
21
+ path: string,
22
+ data: string,
23
+ encoding?: string,
24
+ ): void;
25
+ export function unlinkSync(path: string): void;
26
+ export function rmSync(
27
+ path: string,
28
+ options?: { recursive?: boolean; force?: boolean },
29
+ ): void;
30
+ export function readdirSync(path: string): string[];
31
+ export function statSync(path: string): { isDirectory(): boolean };
32
+ }
33
+
34
+ declare module "os" {
35
+ export function tmpdir(): string;
36
+ }
37
+
38
+ interface ImportMeta {
39
+ url: string;
40
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1,135 @@
1
+ /* auto-generated by NAPI-RS */
2
+ /**
3
+ * Collect validator code results into a file path map.
4
+ *
5
+ * Maps type names to their output file paths under .typokit/validators/.
6
+ */
7
+ export declare function collectValidatorOutputs(
8
+ results: Array<Array<string>>,
9
+ ): Record<string, string>;
10
+
11
+ /**
12
+ * Compile route contracts from TypeScript files into a radix tree.
13
+ * Returns TypeScript source code for the compiled route table.
14
+ */
15
+ export declare function compileRoutes(filePaths: Array<string>): string;
16
+
17
+ /**
18
+ * Compute a SHA-256 content hash of the given file paths and their contents.
19
+ *
20
+ * Used for cache invalidation: if the hash matches a previous build, outputs
21
+ * can be reused without regeneration.
22
+ */
23
+ export declare function computeContentHash(filePaths: Array<string>): string;
24
+
25
+ /**
26
+ * Diff two schema versions and produce a migration draft.
27
+ *
28
+ * Compares old_types against new_types to detect added/removed/modified
29
+ * entities and fields. Generates SQL DDL stubs for the changes.
30
+ */
31
+ export declare function diffSchemas(
32
+ oldTypes: Record<string, JsTypeMetadata>,
33
+ newTypes: Record<string, JsTypeMetadata>,
34
+ migrationName: string,
35
+ ): JsMigrationDraft;
36
+
37
+ /**
38
+ * Generate an OpenAPI 3.1.0 specification from route contracts and type definitions.
39
+ * Returns the OpenAPI spec as a JSON string.
40
+ */
41
+ export declare function generateOpenApi(
42
+ routeFilePaths: Array<string>,
43
+ typeFilePaths: Array<string>,
44
+ ): string;
45
+
46
+ /**
47
+ * Generate contract test scaffolding from route contract files.
48
+ *
49
+ * Parses route contracts from the given files and generates TypeScript
50
+ * test stubs with describe/it blocks for each route.
51
+ */
52
+ export declare function generateTestStubs(filePaths: Array<string>): string;
53
+
54
+ /** A migration draft (matches @typokit/types MigrationDraft) */
55
+ export interface JsMigrationDraft {
56
+ name: string;
57
+ sql: string;
58
+ destructive: boolean;
59
+ changes: Array<JsSchemaChange>;
60
+ }
61
+
62
+ /** Result of running the full output pipeline */
63
+ export interface JsPipelineResult {
64
+ /** SHA-256 content hash of all input source files */
65
+ contentHash: string;
66
+ /** Extracted type metadata (SchemaTypeMap-compatible) */
67
+ types: Record<string, JsTypeMetadata>;
68
+ /** Compiled route table as TypeScript source */
69
+ compiledRoutes: string;
70
+ /** OpenAPI 3.1.0 spec as JSON string */
71
+ openapiSpec: string;
72
+ /** Generated contract test stubs as TypeScript source */
73
+ testStubs: string;
74
+ /** Validator inputs ready for Typia bridge callback */
75
+ validatorInputs: Array<JsTypeValidatorInput>;
76
+ }
77
+
78
+ /** Property metadata matching @typokit/types PropertyMetadata shape */
79
+ export interface JsPropertyMetadata {
80
+ type: string;
81
+ optional: boolean;
82
+ }
83
+
84
+ /** A single schema change (matches @typokit/types SchemaChange) */
85
+ export interface JsSchemaChange {
86
+ type: string;
87
+ entity: string;
88
+ field?: string;
89
+ details?: Record<string, string>;
90
+ }
91
+
92
+ /** Type metadata matching @typokit/types TypeMetadata shape */
93
+ export interface JsTypeMetadata {
94
+ name: string;
95
+ properties: Record<string, JsPropertyMetadata>;
96
+ }
97
+
98
+ /** Validator input for a single type (passed to Typia bridge callback) */
99
+ export interface JsTypeValidatorInput {
100
+ name: string;
101
+ properties: Record<string, JsPropertyMetadata>;
102
+ }
103
+
104
+ /**
105
+ * Parse TypeScript source files and extract type metadata.
106
+ *
107
+ * Returns a SchemaTypeMap (Record<string, TypeMetadata>) mapping type names
108
+ * to their extracted metadata including property types, optionality, and JSDoc tags.
109
+ */
110
+ export declare function parseAndExtractTypes(
111
+ filePaths: Array<string>,
112
+ ): Record<string, JsTypeMetadata>;
113
+
114
+ /**
115
+ * Prepare type metadata for Typia validator generation.
116
+ *
117
+ * Converts parsed type metadata into a format suitable for passing
118
+ * to the @typokit/transform-typia bridge callback.
119
+ */
120
+ export declare function prepareValidatorInputs(
121
+ typeFilePaths: Array<string>,
122
+ ): Array<JsTypeValidatorInput>;
123
+
124
+ /**
125
+ * Run the full output pipeline: parse types, compile routes, generate OpenAPI,
126
+ * generate test stubs, and prepare validator inputs.
127
+ *
128
+ * Returns all generated outputs plus a content hash for caching.
129
+ * Validators are returned as inputs — the caller should pass them to
130
+ * the Typia bridge callback and then call collectValidatorOutputs.
131
+ */
132
+ export declare function runPipeline(
133
+ typeFilePaths: Array<string>,
134
+ routeFilePaths: Array<string>,
135
+ ): JsPipelineResult;