@toiroakr/lines-db 0.6.1 → 0.8.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 +27 -0
- package/bin/cli.js +163 -59
- package/dist/index.cjs +126 -31
- package/dist/index.d.cts +38 -2
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +38 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +121 -31
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/cli.ts +121 -57
- package/src/database.test.ts +28 -0
- package/src/database.ts +89 -18
- package/src/index.ts +9 -0
- package/src/schema-extensions.test.ts +155 -0
- package/src/schema-extensions.ts +86 -0
- package/src/schema-loader.test.ts +90 -0
- package/src/schema-loader.ts +10 -18
- package/src/type-generator.ts +12 -10
- package/src/types.ts +9 -0
package/dist/index.cjs
CHANGED
|
@@ -180,6 +180,71 @@ var JsonlWriter = class {
|
|
|
180
180
|
}
|
|
181
181
|
};
|
|
182
182
|
|
|
183
|
+
//#endregion
|
|
184
|
+
//#region src/schema-extensions.ts
|
|
185
|
+
/**
|
|
186
|
+
* Supported schema file extensions, in priority order.
|
|
187
|
+
* The first match wins when discovering schema files.
|
|
188
|
+
*/
|
|
189
|
+
const SCHEMA_EXTENSIONS = [
|
|
190
|
+
".schema.ts",
|
|
191
|
+
".schema.mts",
|
|
192
|
+
".schema.cts"
|
|
193
|
+
];
|
|
194
|
+
/**
|
|
195
|
+
* Map from schema extensions to their JavaScript import counterparts.
|
|
196
|
+
*/
|
|
197
|
+
const SCHEMA_TO_JS_IMPORT_MAP = {
|
|
198
|
+
".schema.ts": ".schema.js",
|
|
199
|
+
".schema.mts": ".schema.mjs",
|
|
200
|
+
".schema.cts": ".schema.cjs"
|
|
201
|
+
};
|
|
202
|
+
/**
|
|
203
|
+
* Try each supported schema extension and return the full path of the first
|
|
204
|
+
* one that exists on disk. Returns undefined if none is found.
|
|
205
|
+
*/
|
|
206
|
+
async function findSchemaFile(dir, tableName) {
|
|
207
|
+
for (const ext of SCHEMA_EXTENSIONS) {
|
|
208
|
+
const candidate = (0, node_path.join)(dir, `${tableName}${ext}`);
|
|
209
|
+
try {
|
|
210
|
+
await (0, node_fs_promises.access)(candidate);
|
|
211
|
+
return candidate;
|
|
212
|
+
} catch {}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Synchronously find a schema file among directory entries.
|
|
217
|
+
* Returns the full path of the first match, or undefined.
|
|
218
|
+
*/
|
|
219
|
+
function findSchemaFileInEntries(dataDirPath, tableName, entries) {
|
|
220
|
+
for (const ext of SCHEMA_EXTENSIONS) {
|
|
221
|
+
const candidateName = `${tableName}${ext}`;
|
|
222
|
+
if (entries.some((e) => e.isFile() && e.name === candidateName)) return (0, node_path.join)(dataDirPath, candidateName);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Check if a filename matches any supported schema file pattern.
|
|
227
|
+
*/
|
|
228
|
+
function isSchemaFile(fileName) {
|
|
229
|
+
return SCHEMA_EXTENSIONS.some((ext) => fileName.endsWith(ext));
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Extract table name from a schema filename.
|
|
233
|
+
* e.g., "users.schema.ts" -> "users", "users.schema.mts" -> "users"
|
|
234
|
+
*/
|
|
235
|
+
function extractTableNameFromSchemaFile(fileName) {
|
|
236
|
+
for (const ext of SCHEMA_EXTENSIONS) if (fileName.endsWith(ext)) return fileName.slice(0, -ext.length);
|
|
237
|
+
return null;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Rewrite a TypeScript path to its JavaScript counterpart for ESM imports.
|
|
241
|
+
* ".schema.ts" -> ".schema.js", ".schema.mts" -> ".schema.mjs", ".schema.cts" -> ".schema.cjs"
|
|
242
|
+
*/
|
|
243
|
+
function rewriteExtensionForImport(filePath) {
|
|
244
|
+
for (const [tsExt, jsExt] of Object.entries(SCHEMA_TO_JS_IMPORT_MAP)) if (filePath.endsWith(tsExt)) return filePath.slice(0, -tsExt.length) + jsExt;
|
|
245
|
+
return filePath;
|
|
246
|
+
}
|
|
247
|
+
|
|
183
248
|
//#endregion
|
|
184
249
|
//#region src/schema-loader.ts
|
|
185
250
|
var SchemaLoader = class {
|
|
@@ -187,27 +252,17 @@ var SchemaLoader = class {
|
|
|
187
252
|
* Check if a schema file exists for a table
|
|
188
253
|
*/
|
|
189
254
|
static async hasSchema(jsonlPath) {
|
|
190
|
-
|
|
191
|
-
try {
|
|
192
|
-
await (0, node_fs_promises.access)(schemaPath);
|
|
193
|
-
return true;
|
|
194
|
-
} catch {
|
|
195
|
-
return false;
|
|
196
|
-
}
|
|
255
|
+
return await findSchemaFile((0, node_path.dirname)(jsonlPath), (0, node_path.basename)(jsonlPath, ".jsonl")) !== void 0;
|
|
197
256
|
}
|
|
198
257
|
/**
|
|
199
258
|
* Load a validation schema file for a table
|
|
200
|
-
* Requires ${tableName}.schema.ts to exist alongside the JSONL file
|
|
259
|
+
* Requires ${tableName}.schema.{ts,mts,cts} to exist alongside the JSONL file
|
|
201
260
|
*/
|
|
202
261
|
static async loadSchema(jsonlPath) {
|
|
203
262
|
const dir = (0, node_path.dirname)(jsonlPath);
|
|
204
263
|
const tableName = (0, node_path.basename)(jsonlPath, ".jsonl");
|
|
205
|
-
const schemaPath =
|
|
206
|
-
|
|
207
|
-
await (0, node_fs_promises.access)(schemaPath);
|
|
208
|
-
} catch (error) {
|
|
209
|
-
throw new Error(`Schema file not found for table '${tableName}'. Expected: ${schemaPath}`, { cause: error instanceof Error ? error : void 0 });
|
|
210
|
-
}
|
|
264
|
+
const schemaPath = await findSchemaFile(dir, tableName);
|
|
265
|
+
if (!schemaPath) throw new Error(`Schema file not found for table '${tableName}'. Expected one of: ${SCHEMA_EXTENSIONS.map((ext) => `${tableName}${ext}`).join(", ")}`);
|
|
211
266
|
try {
|
|
212
267
|
const module$1 = await import(`${(0, node_url.pathToFileURL)(schemaPath).href}?t=${Date.now()}`);
|
|
213
268
|
const schema = module$1.default || module$1.schema;
|
|
@@ -341,6 +396,7 @@ var LinesDB = class LinesDB {
|
|
|
341
396
|
async initialize(options) {
|
|
342
397
|
const allErrors = [];
|
|
343
398
|
const allWarnings = [];
|
|
399
|
+
const allRowCounts = /* @__PURE__ */ new Map();
|
|
344
400
|
const tableName = options?.tableName;
|
|
345
401
|
const detailedValidate = options?.detailedValidate ?? false;
|
|
346
402
|
const transform = options?.transform;
|
|
@@ -352,14 +408,27 @@ var LinesDB = class LinesDB {
|
|
|
352
408
|
const attemptedTables = /* @__PURE__ */ new Set();
|
|
353
409
|
for (const tableNameToLoad of tablesToLoad) if (!attemptedTables.has(tableNameToLoad)) {
|
|
354
410
|
const tableTransform = tableNameToLoad === tableName ? transform : void 0;
|
|
355
|
-
const { errors, warnings } = await this.loadTableWithDependencies(tableNameToLoad, loadedTables, loadingTables, attemptedTables, detailedValidate, tableTransform);
|
|
411
|
+
const { errors, warnings, rowCounts: tableRowCounts } = await this.loadTableWithDependencies(tableNameToLoad, loadedTables, loadingTables, attemptedTables, detailedValidate, tableTransform);
|
|
356
412
|
allErrors.push(...errors);
|
|
357
413
|
allWarnings.push(...warnings);
|
|
414
|
+
for (const [k, v] of tableRowCounts) allRowCounts.set(k, v);
|
|
358
415
|
}
|
|
416
|
+
const tableResults = tablesToLoad.map((name) => {
|
|
417
|
+
const tableErrors = allErrors.filter((e) => e.tableName === name);
|
|
418
|
+
const tableWarnings = allWarnings.filter((w) => w.includes(`'${name}'`));
|
|
419
|
+
return {
|
|
420
|
+
tableName: name,
|
|
421
|
+
valid: tableErrors.length === 0,
|
|
422
|
+
rowCount: allRowCounts.get(name) ?? 0,
|
|
423
|
+
errors: tableErrors,
|
|
424
|
+
warnings: tableWarnings
|
|
425
|
+
};
|
|
426
|
+
});
|
|
359
427
|
return {
|
|
360
428
|
valid: allErrors.length === 0,
|
|
361
429
|
errors: allErrors,
|
|
362
|
-
warnings: allWarnings
|
|
430
|
+
warnings: allWarnings,
|
|
431
|
+
tableResults
|
|
363
432
|
};
|
|
364
433
|
}
|
|
365
434
|
/**
|
|
@@ -368,9 +437,11 @@ var LinesDB = class LinesDB {
|
|
|
368
437
|
async loadTableWithDependencies(tableName, loadedTables, loadingTables, attemptedTables, detailedValidate, transform) {
|
|
369
438
|
const errors = [];
|
|
370
439
|
const warnings = [];
|
|
440
|
+
const rowCounts = /* @__PURE__ */ new Map();
|
|
371
441
|
if (attemptedTables.has(tableName)) return {
|
|
372
442
|
errors,
|
|
373
|
-
warnings
|
|
443
|
+
warnings,
|
|
444
|
+
rowCounts
|
|
374
445
|
};
|
|
375
446
|
attemptedTables.add(tableName);
|
|
376
447
|
if (loadingTables.has(tableName)) throw new Error(`Circular dependency detected for table '${tableName}'`);
|
|
@@ -381,8 +452,11 @@ var LinesDB = class LinesDB {
|
|
|
381
452
|
let foreignKeys;
|
|
382
453
|
try {
|
|
383
454
|
const { pathToFileURL: pathToFileURL$1 } = await import("node:url");
|
|
384
|
-
const
|
|
385
|
-
|
|
455
|
+
const schemaPath = await findSchemaFile((0, node_path.dirname)(tableConfig.jsonlPath), (0, node_path.basename)(tableConfig.jsonlPath, ".jsonl"));
|
|
456
|
+
if (schemaPath) {
|
|
457
|
+
const schemaModule = await import(`${pathToFileURL$1(schemaPath).href}?t=${Date.now()}`);
|
|
458
|
+
foreignKeys = (schemaModule.schema || schemaModule.default)?.foreignKeys || schemaModule.foreignKeys;
|
|
459
|
+
}
|
|
386
460
|
} catch {}
|
|
387
461
|
if (foreignKeys && foreignKeys.length > 0) for (const fk of foreignKeys) {
|
|
388
462
|
const referencedTable = fk.references.table;
|
|
@@ -391,10 +465,21 @@ var LinesDB = class LinesDB {
|
|
|
391
465
|
const depResult = await this.loadTableWithDependencies(referencedTable, loadedTables, loadingTables, attemptedTables, detailedValidate, void 0);
|
|
392
466
|
errors.push(...depResult.errors);
|
|
393
467
|
warnings.push(...depResult.warnings);
|
|
468
|
+
for (const [k, v] of depResult.rowCounts) rowCounts.set(k, v);
|
|
394
469
|
} else throw new Error(`Foreign key reference to non-existent table '${referencedTable}' in table '${tableName}'`);
|
|
395
470
|
}
|
|
396
|
-
const
|
|
471
|
+
const failedDependencies = /* @__PURE__ */ new Set();
|
|
472
|
+
if (foreignKeys && foreignKeys.length > 0) {
|
|
473
|
+
for (const fk of foreignKeys) {
|
|
474
|
+
const referencedTable = fk.references.table;
|
|
475
|
+
if (referencedTable === tableName) continue;
|
|
476
|
+
if (attemptedTables.has(referencedTable) && !loadedTables.has(referencedTable)) failedDependencies.add(referencedTable);
|
|
477
|
+
}
|
|
478
|
+
if (failedDependencies.size > 0) for (const dep of failedDependencies) warnings.push(`Skipping foreign key validation for table '${tableName}': referenced table '${dep}' has validation errors`);
|
|
479
|
+
}
|
|
480
|
+
const { loaded, rowCount, errors: loadErrors } = await this.loadTable(tableName, tableConfig, detailedValidate, transform, failedDependencies);
|
|
397
481
|
errors.push(...loadErrors);
|
|
482
|
+
rowCounts.set(tableName, rowCount);
|
|
398
483
|
if (loaded) loadedTables.add(tableName);
|
|
399
484
|
else {
|
|
400
485
|
warnings.push(`Table '${tableName}' was not loaded (no data or skipped)`);
|
|
@@ -405,14 +490,15 @@ var LinesDB = class LinesDB {
|
|
|
405
490
|
}
|
|
406
491
|
return {
|
|
407
492
|
errors,
|
|
408
|
-
warnings
|
|
493
|
+
warnings,
|
|
494
|
+
rowCounts
|
|
409
495
|
};
|
|
410
496
|
}
|
|
411
497
|
/**
|
|
412
498
|
* Load a single table from JSONL file
|
|
413
499
|
* @returns Object with loaded status and validation errors
|
|
414
500
|
*/
|
|
415
|
-
async loadTable(tableName, config, detailedValidate, transform) {
|
|
501
|
+
async loadTable(tableName, config, detailedValidate, transform, failedDependencies) {
|
|
416
502
|
let data = await JsonlReader.read(config.jsonlPath);
|
|
417
503
|
if (transform) data = data.map((row) => transform(row));
|
|
418
504
|
let validationSchema = config.validationSchema;
|
|
@@ -422,7 +508,9 @@ var LinesDB = class LinesDB {
|
|
|
422
508
|
} catch (_error) {}
|
|
423
509
|
if (!config.validationSchema) try {
|
|
424
510
|
const { pathToFileURL: pathToFileURL$1 } = await import("node:url");
|
|
425
|
-
const
|
|
511
|
+
const schemaPath = await findSchemaFile((0, node_path.dirname)(config.jsonlPath), (0, node_path.basename)(config.jsonlPath, ".jsonl"));
|
|
512
|
+
if (!schemaPath) throw new Error("Schema file not found");
|
|
513
|
+
const schemaModule = await import(`${pathToFileURL$1(schemaPath).href}?t=${Date.now()}`);
|
|
426
514
|
const schemaExport = schemaModule.schema || schemaModule.default;
|
|
427
515
|
if (schemaExport?.primaryKey) schemaMetadata.primaryKey = schemaExport.primaryKey;
|
|
428
516
|
else if (schemaModule.primaryKey) schemaMetadata.primaryKey = schemaModule.primaryKey;
|
|
@@ -465,6 +553,7 @@ var LinesDB = class LinesDB {
|
|
|
465
553
|
}));
|
|
466
554
|
if (validationErrors.length > 0) return {
|
|
467
555
|
loaded: false,
|
|
556
|
+
rowCount: data.length,
|
|
468
557
|
errors: validationErrorDetails
|
|
469
558
|
};
|
|
470
559
|
let schema;
|
|
@@ -479,6 +568,7 @@ var LinesDB = class LinesDB {
|
|
|
479
568
|
} else if (config.autoInferSchema !== false) {
|
|
480
569
|
if (validatedData.length === 0) return {
|
|
481
570
|
loaded: false,
|
|
571
|
+
rowCount: 0,
|
|
482
572
|
errors: []
|
|
483
573
|
};
|
|
484
574
|
schema = inferredSchema;
|
|
@@ -494,7 +584,7 @@ var LinesDB = class LinesDB {
|
|
|
494
584
|
const idColumn = schema.columns.find((c) => c.name === "id");
|
|
495
585
|
if (idColumn) idColumn.primaryKey = true;
|
|
496
586
|
}
|
|
497
|
-
if (foreignKeys) schema.foreignKeys = foreignKeys;
|
|
587
|
+
if (foreignKeys) schema.foreignKeys = failedDependencies && failedDependencies.size > 0 ? foreignKeys.filter((fk) => !failedDependencies.has(fk.references.table)) : foreignKeys;
|
|
498
588
|
if (indexes) {
|
|
499
589
|
schema.indexes = indexes;
|
|
500
590
|
for (const index of indexes) if (index.unique && index.columns.length === 1) {
|
|
@@ -508,11 +598,13 @@ var LinesDB = class LinesDB {
|
|
|
508
598
|
const insertErrors = this.insertDataWithDetailedValidation(tableName, schema, validatedData, config.jsonlPath);
|
|
509
599
|
if (insertErrors.length > 0) return {
|
|
510
600
|
loaded: false,
|
|
601
|
+
rowCount: data.length,
|
|
511
602
|
errors: insertErrors
|
|
512
603
|
};
|
|
513
604
|
} else this.insertData(tableName, schema, validatedData);
|
|
514
605
|
return {
|
|
515
606
|
loaded: true,
|
|
607
|
+
rowCount: data.length,
|
|
516
608
|
errors: []
|
|
517
609
|
};
|
|
518
610
|
}
|
|
@@ -1110,7 +1202,7 @@ var TypeGenerator = class {
|
|
|
1110
1202
|
this.projectRoot = envProjectRoot !== void 0 ? envProjectRoot : options.projectRoot || process.cwd();
|
|
1111
1203
|
this.dataDir = options.dataDir;
|
|
1112
1204
|
this.dataDirPath = (0, node_path.isAbsolute)(this.dataDir) ? this.dataDir : (0, node_path.join)(this.projectRoot, this.dataDir);
|
|
1113
|
-
this.outputFile = (0, node_path.join)(this.dataDirPath, "db.ts");
|
|
1205
|
+
this.outputFile = options.output ? (0, node_path.isAbsolute)(options.output) ? options.output : (0, node_path.join)(this.projectRoot, options.output) : (0, node_path.join)(this.dataDirPath, "db.ts");
|
|
1114
1206
|
}
|
|
1115
1207
|
/**
|
|
1116
1208
|
* Generate types file from JSONL files and their optional schema files.
|
|
@@ -1133,12 +1225,10 @@ var TypeGenerator = class {
|
|
|
1133
1225
|
const tables = [];
|
|
1134
1226
|
for (const entry of entries) if (entry.isFile() && entry.name.endsWith(".jsonl")) {
|
|
1135
1227
|
const tableName = (0, node_path.basename)(entry.name, ".jsonl");
|
|
1136
|
-
const
|
|
1137
|
-
const schemaFilePath = (0, node_path.join)(this.dataDirPath, schemaFileName);
|
|
1138
|
-
const hasSchema = entries.some((e) => e.isFile() && e.name === schemaFileName);
|
|
1228
|
+
const schemaFilePath = findSchemaFileInEntries(this.dataDirPath, tableName, entries);
|
|
1139
1229
|
tables.push({
|
|
1140
1230
|
tableName,
|
|
1141
|
-
schemaFile:
|
|
1231
|
+
schemaFile: schemaFilePath
|
|
1142
1232
|
});
|
|
1143
1233
|
}
|
|
1144
1234
|
return tables;
|
|
@@ -1159,7 +1249,7 @@ var TypeGenerator = class {
|
|
|
1159
1249
|
if (table.schemaFile) {
|
|
1160
1250
|
const schemaIdentifier = this.createSchemaIdentifier(table.tableName, usedAliases);
|
|
1161
1251
|
usedAliases.add(schemaIdentifier);
|
|
1162
|
-
let relativePath = (0, node_path.relative)((0, node_path.join)(this.outputFile, ".."), table.schemaFile).replace(/\\/g, "/")
|
|
1252
|
+
let relativePath = rewriteExtensionForImport((0, node_path.relative)((0, node_path.join)(this.outputFile, ".."), table.schemaFile).replace(/\\/g, "/"));
|
|
1163
1253
|
if (!relativePath.startsWith(".")) relativePath = "./" + relativePath;
|
|
1164
1254
|
imports.push(`import { schema as ${schemaIdentifier} } from '${relativePath}';`);
|
|
1165
1255
|
tableEntries.push(` ${tableKey}: InferOutput<typeof ${schemaIdentifier}>;`);
|
|
@@ -1240,9 +1330,14 @@ exports.JsonlReader = JsonlReader;
|
|
|
1240
1330
|
exports.JsonlWriter = JsonlWriter;
|
|
1241
1331
|
exports.LinesDB = LinesDB;
|
|
1242
1332
|
exports.RUNTIME = RUNTIME;
|
|
1333
|
+
exports.SCHEMA_EXTENSIONS = SCHEMA_EXTENSIONS;
|
|
1243
1334
|
exports.SchemaLoader = SchemaLoader;
|
|
1244
1335
|
exports.TypeGenerator = TypeGenerator;
|
|
1245
1336
|
exports.defineSchema = defineSchema;
|
|
1246
1337
|
exports.detectRuntime = detectRuntime;
|
|
1247
1338
|
exports.ensureTableRowsValid = ensureTableRowsValid;
|
|
1248
|
-
exports.
|
|
1339
|
+
exports.extractTableNameFromSchemaFile = extractTableNameFromSchemaFile;
|
|
1340
|
+
exports.findSchemaFile = findSchemaFile;
|
|
1341
|
+
exports.hasBackward = hasBackward;
|
|
1342
|
+
exports.isSchemaFile = isSchemaFile;
|
|
1343
|
+
exports.rewriteExtensionForImport = rewriteExtensionForImport;
|
package/dist/index.d.cts
CHANGED
|
@@ -29,10 +29,18 @@ type StandardSchemaResult<Output> = StandardSchemaV1.Result<Output>;
|
|
|
29
29
|
type StandardSchemaIssue = StandardSchemaV1.Issue;
|
|
30
30
|
type InferInput<T$1> = T$1 extends StandardSchemaV1<infer I, unknown> ? I : never;
|
|
31
31
|
type InferOutput<T$1> = T$1 extends StandardSchemaV1<unknown, infer O> ? O : never;
|
|
32
|
+
interface TableValidationResult {
|
|
33
|
+
tableName: string;
|
|
34
|
+
valid: boolean;
|
|
35
|
+
rowCount: number;
|
|
36
|
+
errors: ValidationErrorDetail[];
|
|
37
|
+
warnings: string[];
|
|
38
|
+
}
|
|
32
39
|
interface ValidationResult {
|
|
33
40
|
valid: boolean;
|
|
34
41
|
errors: ValidationErrorDetail[];
|
|
35
42
|
warnings: string[];
|
|
43
|
+
tableResults: TableValidationResult[];
|
|
36
44
|
}
|
|
37
45
|
interface ValidationErrorDetail {
|
|
38
46
|
file: string;
|
|
@@ -344,7 +352,7 @@ declare class SchemaLoader {
|
|
|
344
352
|
static hasSchema(jsonlPath: string): Promise<boolean>;
|
|
345
353
|
/**
|
|
346
354
|
* Load a validation schema file for a table
|
|
347
|
-
* Requires ${tableName}.schema.ts to exist alongside the JSONL file
|
|
355
|
+
* Requires ${tableName}.schema.{ts,mts,cts} to exist alongside the JSONL file
|
|
348
356
|
*/
|
|
349
357
|
static loadSchema(jsonlPath: string): Promise<StandardSchema>;
|
|
350
358
|
/**
|
|
@@ -456,6 +464,7 @@ declare function hasBackward<Input extends Table, Output extends Table>(schema:
|
|
|
456
464
|
interface TypeGeneratorOptions {
|
|
457
465
|
dataDir: string;
|
|
458
466
|
projectRoot?: string;
|
|
467
|
+
output?: string;
|
|
459
468
|
}
|
|
460
469
|
declare class TypeGenerator {
|
|
461
470
|
private dataDir;
|
|
@@ -491,6 +500,33 @@ interface TableValidationOptions {
|
|
|
491
500
|
*/
|
|
492
501
|
declare function ensureTableRowsValid(options: TableValidationOptions): Promise<void>;
|
|
493
502
|
//#endregion
|
|
503
|
+
//#region src/schema-extensions.d.ts
|
|
504
|
+
/**
|
|
505
|
+
* Supported schema file extensions, in priority order.
|
|
506
|
+
* The first match wins when discovering schema files.
|
|
507
|
+
*/
|
|
508
|
+
declare const SCHEMA_EXTENSIONS: readonly [".schema.ts", ".schema.mts", ".schema.cts"];
|
|
509
|
+
type SchemaExtension = (typeof SCHEMA_EXTENSIONS)[number];
|
|
510
|
+
/**
|
|
511
|
+
* Try each supported schema extension and return the full path of the first
|
|
512
|
+
* one that exists on disk. Returns undefined if none is found.
|
|
513
|
+
*/
|
|
514
|
+
declare function findSchemaFile(dir: string, tableName: string): Promise<string | undefined>;
|
|
515
|
+
/**
|
|
516
|
+
* Check if a filename matches any supported schema file pattern.
|
|
517
|
+
*/
|
|
518
|
+
declare function isSchemaFile(fileName: string): boolean;
|
|
519
|
+
/**
|
|
520
|
+
* Extract table name from a schema filename.
|
|
521
|
+
* e.g., "users.schema.ts" -> "users", "users.schema.mts" -> "users"
|
|
522
|
+
*/
|
|
523
|
+
declare function extractTableNameFromSchemaFile(fileName: string): string | null;
|
|
524
|
+
/**
|
|
525
|
+
* Rewrite a TypeScript path to its JavaScript counterpart for ESM imports.
|
|
526
|
+
* ".schema.ts" -> ".schema.js", ".schema.mts" -> ".schema.mjs", ".schema.cts" -> ".schema.cjs"
|
|
527
|
+
*/
|
|
528
|
+
declare function rewriteExtensionForImport(filePath: string): string;
|
|
529
|
+
//#endregion
|
|
494
530
|
//#region src/runtime.d.ts
|
|
495
531
|
/**
|
|
496
532
|
* Runtime detection utilities
|
|
@@ -499,5 +535,5 @@ type RuntimeEnvironment = 'node' | 'unknown';
|
|
|
499
535
|
declare function detectRuntime(): RuntimeEnvironment;
|
|
500
536
|
declare const RUNTIME: RuntimeEnvironment;
|
|
501
537
|
//#endregion
|
|
502
|
-
export { type BiDirectionalSchema, type ColumnDefinition, type DatabaseConfig, DirectoryScanner, type ForeignKeyDefinition, type IndexDefinition, type InferInput, type InferOutput, type JsonArray, type JsonObject, type JsonValue, JsonlReader, JsonlWriter, LinesDB, RUNTIME, type RuntimeEnvironment, type SQLiteDatabase, type SQLiteStatement, SchemaLoader, type SchemaOptions, type StandardSchema, type StandardSchemaIssue, type StandardSchemaResult, type Table, type TableConfig, type TableDefs, type TableSchema, type TableValidationOptions, TypeGenerator, type TypeGeneratorOptions, type ValidationError, type ValidationErrorDetail, type ValidationResult, defineSchema, detectRuntime, ensureTableRowsValid, hasBackward };
|
|
538
|
+
export { type BiDirectionalSchema, type ColumnDefinition, type DatabaseConfig, DirectoryScanner, type ForeignKeyDefinition, type IndexDefinition, type InferInput, type InferOutput, type JsonArray, type JsonObject, type JsonValue, JsonlReader, JsonlWriter, LinesDB, RUNTIME, type RuntimeEnvironment, SCHEMA_EXTENSIONS, type SQLiteDatabase, type SQLiteStatement, type SchemaExtension, SchemaLoader, type SchemaOptions, type StandardSchema, type StandardSchemaIssue, type StandardSchemaResult, type Table, type TableConfig, type TableDefs, type TableSchema, type TableValidationOptions, type TableValidationResult, TypeGenerator, type TypeGeneratorOptions, type ValidationError, type ValidationErrorDetail, type ValidationResult, defineSchema, detectRuntime, ensureTableRowsValid, extractTableNameFromSchemaFile, findSchemaFile, hasBackward, isSchemaFile, rewriteExtensionForImport };
|
|
503
539
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/sqlite-adapter.ts","../src/types.ts","../src/database.ts","../src/jsonl-reader.ts","../src/jsonl-writer.ts","../src/schema-loader.ts","../src/directory-scanner.ts","../src/schema.ts","../src/type-generator.ts","../src/jsonl-migration.ts","../src/runtime.ts"],"sourcesContent":[],"mappings":";;;;;;;AASA;AAMA;;UANiB,cAAA;wBACO;ECPZ,IAAA,CAAA,GAAK,EAAA,MAAA,CAAA,
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/sqlite-adapter.ts","../src/types.ts","../src/database.ts","../src/jsonl-reader.ts","../src/jsonl-writer.ts","../src/schema-loader.ts","../src/directory-scanner.ts","../src/schema.ts","../src/type-generator.ts","../src/jsonl-migration.ts","../src/schema-extensions.ts","../src/runtime.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -29,10 +29,18 @@ type StandardSchemaResult<Output> = StandardSchemaV1.Result<Output>;
|
|
|
29
29
|
type StandardSchemaIssue = StandardSchemaV1.Issue;
|
|
30
30
|
type InferInput<T$1> = T$1 extends StandardSchemaV1<infer I, unknown> ? I : never;
|
|
31
31
|
type InferOutput<T$1> = T$1 extends StandardSchemaV1<unknown, infer O> ? O : never;
|
|
32
|
+
interface TableValidationResult {
|
|
33
|
+
tableName: string;
|
|
34
|
+
valid: boolean;
|
|
35
|
+
rowCount: number;
|
|
36
|
+
errors: ValidationErrorDetail[];
|
|
37
|
+
warnings: string[];
|
|
38
|
+
}
|
|
32
39
|
interface ValidationResult {
|
|
33
40
|
valid: boolean;
|
|
34
41
|
errors: ValidationErrorDetail[];
|
|
35
42
|
warnings: string[];
|
|
43
|
+
tableResults: TableValidationResult[];
|
|
36
44
|
}
|
|
37
45
|
interface ValidationErrorDetail {
|
|
38
46
|
file: string;
|
|
@@ -344,7 +352,7 @@ declare class SchemaLoader {
|
|
|
344
352
|
static hasSchema(jsonlPath: string): Promise<boolean>;
|
|
345
353
|
/**
|
|
346
354
|
* Load a validation schema file for a table
|
|
347
|
-
* Requires ${tableName}.schema.ts to exist alongside the JSONL file
|
|
355
|
+
* Requires ${tableName}.schema.{ts,mts,cts} to exist alongside the JSONL file
|
|
348
356
|
*/
|
|
349
357
|
static loadSchema(jsonlPath: string): Promise<StandardSchema>;
|
|
350
358
|
/**
|
|
@@ -456,6 +464,7 @@ declare function hasBackward<Input extends Table, Output extends Table>(schema:
|
|
|
456
464
|
interface TypeGeneratorOptions {
|
|
457
465
|
dataDir: string;
|
|
458
466
|
projectRoot?: string;
|
|
467
|
+
output?: string;
|
|
459
468
|
}
|
|
460
469
|
declare class TypeGenerator {
|
|
461
470
|
private dataDir;
|
|
@@ -491,6 +500,33 @@ interface TableValidationOptions {
|
|
|
491
500
|
*/
|
|
492
501
|
declare function ensureTableRowsValid(options: TableValidationOptions): Promise<void>;
|
|
493
502
|
//#endregion
|
|
503
|
+
//#region src/schema-extensions.d.ts
|
|
504
|
+
/**
|
|
505
|
+
* Supported schema file extensions, in priority order.
|
|
506
|
+
* The first match wins when discovering schema files.
|
|
507
|
+
*/
|
|
508
|
+
declare const SCHEMA_EXTENSIONS: readonly [".schema.ts", ".schema.mts", ".schema.cts"];
|
|
509
|
+
type SchemaExtension = (typeof SCHEMA_EXTENSIONS)[number];
|
|
510
|
+
/**
|
|
511
|
+
* Try each supported schema extension and return the full path of the first
|
|
512
|
+
* one that exists on disk. Returns undefined if none is found.
|
|
513
|
+
*/
|
|
514
|
+
declare function findSchemaFile(dir: string, tableName: string): Promise<string | undefined>;
|
|
515
|
+
/**
|
|
516
|
+
* Check if a filename matches any supported schema file pattern.
|
|
517
|
+
*/
|
|
518
|
+
declare function isSchemaFile(fileName: string): boolean;
|
|
519
|
+
/**
|
|
520
|
+
* Extract table name from a schema filename.
|
|
521
|
+
* e.g., "users.schema.ts" -> "users", "users.schema.mts" -> "users"
|
|
522
|
+
*/
|
|
523
|
+
declare function extractTableNameFromSchemaFile(fileName: string): string | null;
|
|
524
|
+
/**
|
|
525
|
+
* Rewrite a TypeScript path to its JavaScript counterpart for ESM imports.
|
|
526
|
+
* ".schema.ts" -> ".schema.js", ".schema.mts" -> ".schema.mjs", ".schema.cts" -> ".schema.cjs"
|
|
527
|
+
*/
|
|
528
|
+
declare function rewriteExtensionForImport(filePath: string): string;
|
|
529
|
+
//#endregion
|
|
494
530
|
//#region src/runtime.d.ts
|
|
495
531
|
/**
|
|
496
532
|
* Runtime detection utilities
|
|
@@ -499,5 +535,5 @@ type RuntimeEnvironment = 'node' | 'unknown';
|
|
|
499
535
|
declare function detectRuntime(): RuntimeEnvironment;
|
|
500
536
|
declare const RUNTIME: RuntimeEnvironment;
|
|
501
537
|
//#endregion
|
|
502
|
-
export { type BiDirectionalSchema, type ColumnDefinition, type DatabaseConfig, DirectoryScanner, type ForeignKeyDefinition, type IndexDefinition, type InferInput, type InferOutput, type JsonArray, type JsonObject, type JsonValue, JsonlReader, JsonlWriter, LinesDB, RUNTIME, type RuntimeEnvironment, type SQLiteDatabase, type SQLiteStatement, SchemaLoader, type SchemaOptions, type StandardSchema, type StandardSchemaIssue, type StandardSchemaResult, type Table, type TableConfig, type TableDefs, type TableSchema, type TableValidationOptions, TypeGenerator, type TypeGeneratorOptions, type ValidationError, type ValidationErrorDetail, type ValidationResult, defineSchema, detectRuntime, ensureTableRowsValid, hasBackward };
|
|
538
|
+
export { type BiDirectionalSchema, type ColumnDefinition, type DatabaseConfig, DirectoryScanner, type ForeignKeyDefinition, type IndexDefinition, type InferInput, type InferOutput, type JsonArray, type JsonObject, type JsonValue, JsonlReader, JsonlWriter, LinesDB, RUNTIME, type RuntimeEnvironment, SCHEMA_EXTENSIONS, type SQLiteDatabase, type SQLiteStatement, type SchemaExtension, SchemaLoader, type SchemaOptions, type StandardSchema, type StandardSchemaIssue, type StandardSchemaResult, type Table, type TableConfig, type TableDefs, type TableSchema, type TableValidationOptions, type TableValidationResult, TypeGenerator, type TypeGeneratorOptions, type ValidationError, type ValidationErrorDetail, type ValidationResult, defineSchema, detectRuntime, ensureTableRowsValid, extractTableNameFromSchemaFile, findSchemaFile, hasBackward, isSchemaFile, rewriteExtensionForImport };
|
|
503
539
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/sqlite-adapter.ts","../src/types.ts","../src/database.ts","../src/jsonl-reader.ts","../src/jsonl-writer.ts","../src/schema-loader.ts","../src/directory-scanner.ts","../src/schema.ts","../src/type-generator.ts","../src/jsonl-migration.ts","../src/runtime.ts"],"sourcesContent":[],"mappings":";;;;;;;AASA;AAMA;;UANiB,cAAA;wBACO;ECPZ,IAAA,CAAA,GAAK,EAAA,MAAA,CAAA,EAAG,IAAA;EACR,KAAA,EAAA,EAAA,IAAA;;AACY,UDUP,eAAA,CCVO;EACP,GAAA,CAAA,GAAA,MAAA,EAAA,GAAA,EAAA,CAAA,EAAA;IAAQ,OAAA,EAAA,MAAA;IACJ,eAAA,EAAA,MAAA,GAAA,MAAA;EAAO,CAAA;EAAxB,GAAA,CAAA,GAAA,MAAA,EAAA,GAAA,EAAA,CAAA,EAAA,GAAA;EAAgB,GAAA,CAAA,GAAA,MAAA,EAAA,GAAA,EAAA,CAAA,EAAA,GAAA,EAAA;AACpB;;;KALY,KAAA,GAAQ;KACR,6BACI,QAAQ,sBACP,QAAQ,SACrB,iBAAiB,OAAO;ADEX,KCDL,oBDCmB,CACP,MAAA,CAAA,GCFmB,gBAAA,CAAiB,MDErB,CCF4B,MDE5B,CAAA;AAKtB,KCNL,mBAAA,GAAsB,gBAAA,CAAiB,KDMnB;KCCpB,kBAAgB,YAAU,qCAAqC;KAC/D,mBAAiB,YAAU,qCAAqC;AAdhE,UAiBK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/sqlite-adapter.ts","../src/types.ts","../src/database.ts","../src/jsonl-reader.ts","../src/jsonl-writer.ts","../src/schema-loader.ts","../src/directory-scanner.ts","../src/schema.ts","../src/type-generator.ts","../src/jsonl-migration.ts","../src/schema-extensions.ts","../src/runtime.ts"],"sourcesContent":[],"mappings":"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"}
|