@typed-sql/sqlite 2.0.0-rc.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 (44) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/LICENSE +21 -0
  3. package/README.md +34 -0
  4. package/dist/packages/sqlite/src/index.d.ts +17 -0
  5. package/dist/packages/sqlite/src/index.d.ts.map +1 -0
  6. package/dist/packages/sqlite/src/index.js +72 -0
  7. package/dist/packages/sqlite/src/index.js.map +1 -0
  8. package/dist/packages/sqlite/src/node-sqlite.d.ts +44 -0
  9. package/dist/packages/sqlite/src/node-sqlite.d.ts.map +1 -0
  10. package/dist/packages/sqlite/src/node-sqlite.js +125 -0
  11. package/dist/packages/sqlite/src/node-sqlite.js.map +1 -0
  12. package/dist/packages/sqlite/src/prepared.d.ts +20 -0
  13. package/dist/packages/sqlite/src/prepared.d.ts.map +1 -0
  14. package/dist/packages/sqlite/src/prepared.js +47 -0
  15. package/dist/packages/sqlite/src/prepared.js.map +1 -0
  16. package/dist/packages/sqlite/src/provider.d.ts +21 -0
  17. package/dist/packages/sqlite/src/provider.d.ts.map +1 -0
  18. package/dist/packages/sqlite/src/provider.js +120 -0
  19. package/dist/packages/sqlite/src/provider.js.map +1 -0
  20. package/dist/packages/sqlite/src/resolver.d.ts +26 -0
  21. package/dist/packages/sqlite/src/resolver.d.ts.map +1 -0
  22. package/dist/packages/sqlite/src/resolver.js +664 -0
  23. package/dist/packages/sqlite/src/resolver.js.map +1 -0
  24. package/dist/packages/sqlite/src/runtime.d.ts +27 -0
  25. package/dist/packages/sqlite/src/runtime.d.ts.map +1 -0
  26. package/dist/packages/sqlite/src/runtime.js +288 -0
  27. package/dist/packages/sqlite/src/runtime.js.map +1 -0
  28. package/dist/packages/sqlite/src/semantics.d.ts +5 -0
  29. package/dist/packages/sqlite/src/semantics.d.ts.map +1 -0
  30. package/dist/packages/sqlite/src/semantics.js +206 -0
  31. package/dist/packages/sqlite/src/semantics.js.map +1 -0
  32. package/dist/packages/sqlite/src/snapshot.d.ts +40 -0
  33. package/dist/packages/sqlite/src/snapshot.d.ts.map +1 -0
  34. package/dist/packages/sqlite/src/snapshot.js +131 -0
  35. package/dist/packages/sqlite/src/snapshot.js.map +1 -0
  36. package/dist/packages/sqlite/src/type-policy.d.ts +18 -0
  37. package/dist/packages/sqlite/src/type-policy.d.ts.map +1 -0
  38. package/dist/packages/sqlite/src/type-policy.js +63 -0
  39. package/dist/packages/sqlite/src/type-policy.js.map +1 -0
  40. package/dist/packages/sqlite/src/version.d.ts +2 -0
  41. package/dist/packages/sqlite/src/version.d.ts.map +1 -0
  42. package/dist/packages/sqlite/src/version.js +2 -0
  43. package/dist/packages/sqlite/src/version.js.map +1 -0
  44. package/package.json +53 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantics.js","sourceRoot":"","sources":["../../../../src/semantics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { type ColumnSnapshot, type SchemaSnapshot, type TableSnapshot } from "@typed-sql/schema";
2
+ export interface SqliteColumnSnapshot extends ColumnSnapshot {
3
+ readonly generated?: "virtual" | "stored";
4
+ readonly hidden?: boolean;
5
+ readonly primaryKeyPosition?: number;
6
+ }
7
+ export interface SqliteIndexColumnSnapshot {
8
+ readonly name?: string;
9
+ readonly expression?: boolean;
10
+ readonly descending?: boolean;
11
+ }
12
+ export interface SqliteIndexSnapshot {
13
+ readonly name: string;
14
+ readonly unique: boolean;
15
+ readonly partial: boolean;
16
+ readonly origin: "create" | "unique" | "primary-key";
17
+ readonly columns: readonly SqliteIndexColumnSnapshot[];
18
+ }
19
+ export interface SqliteForeignKeySnapshot {
20
+ readonly columns: readonly string[];
21
+ readonly referencedTable: string;
22
+ readonly referencedColumns: readonly string[];
23
+ readonly onUpdate: string;
24
+ readonly onDelete: string;
25
+ }
26
+ export interface SqliteTableSnapshot extends TableSnapshot {
27
+ readonly schema: string;
28
+ readonly kind: "table" | "view" | "virtual";
29
+ readonly strict: boolean;
30
+ readonly withoutRowid: boolean;
31
+ readonly columns: Readonly<Record<string, SqliteColumnSnapshot>>;
32
+ readonly indexes: readonly SqliteIndexSnapshot[];
33
+ readonly foreignKeys: readonly SqliteForeignKeySnapshot[];
34
+ }
35
+ export interface SqliteSchemaSnapshot extends SchemaSnapshot {
36
+ readonly dialect: "sqlite";
37
+ readonly tables: Readonly<Record<string, SqliteTableSnapshot>>;
38
+ }
39
+ export declare function parseSqliteSchemaSnapshot(value: unknown): SqliteSchemaSnapshot;
40
+ //# sourceMappingURL=snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../../src/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAuB,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEtH,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,aAAa,CAAC;IACrD,QAAQ,CAAC,OAAO,EAAE,SAAS,yBAAyB,EAAE,CAAC;CACxD;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACjE,QAAQ,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,SAAS,wBAAwB,EAAE,CAAC;CAC3D;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;CAChE;AAwDD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,CAgE9E"}
@@ -0,0 +1,131 @@
1
+ import { parseSchemaSnapshot } from "@typed-sql/schema";
2
+ function record(value) {
3
+ return typeof value === "object" && value !== null && !Array.isArray(value);
4
+ }
5
+ function stringArray(value, path) {
6
+ if (!Array.isArray(value) || value.some((item) => typeof item !== "string")) {
7
+ throw new TypeError(`${path} must be a string array`);
8
+ }
9
+ return value;
10
+ }
11
+ function parseIndex(value, path) {
12
+ if (!record(value))
13
+ throw new TypeError(`${path} must be an object`);
14
+ if (typeof value.name !== "string")
15
+ throw new TypeError(`${path}.name must be a string`);
16
+ if (typeof value.unique !== "boolean")
17
+ throw new TypeError(`${path}.unique must be a boolean`);
18
+ if (typeof value.partial !== "boolean")
19
+ throw new TypeError(`${path}.partial must be a boolean`);
20
+ if (!(value.origin === "create" || value.origin === "unique" || value.origin === "primary-key")) {
21
+ throw new TypeError(`${path}.origin must be create, unique, or primary-key`);
22
+ }
23
+ if (!Array.isArray(value.columns))
24
+ throw new TypeError(`${path}.columns must be an array`);
25
+ const columns = value.columns.map((column, index) => {
26
+ if (!record(column))
27
+ throw new TypeError(`${path}.columns.${index} must be an object`);
28
+ if (column.name !== undefined && typeof column.name !== "string") {
29
+ throw new TypeError(`${path}.columns.${index}.name must be a string`);
30
+ }
31
+ if (column.expression !== undefined && typeof column.expression !== "boolean") {
32
+ throw new TypeError(`${path}.columns.${index}.expression must be a boolean`);
33
+ }
34
+ if (column.descending !== undefined && typeof column.descending !== "boolean") {
35
+ throw new TypeError(`${path}.columns.${index}.descending must be a boolean`);
36
+ }
37
+ return {
38
+ ...(column.name === undefined ? {} : { name: column.name }),
39
+ ...(column.expression === undefined ? {} : { expression: column.expression }),
40
+ ...(column.descending === undefined ? {} : { descending: column.descending }),
41
+ };
42
+ });
43
+ return { name: value.name, unique: value.unique, partial: value.partial, origin: value.origin, columns };
44
+ }
45
+ function parseForeignKey(value, path) {
46
+ if (!record(value))
47
+ throw new TypeError(`${path} must be an object`);
48
+ if (typeof value.referencedTable !== "string")
49
+ throw new TypeError(`${path}.referencedTable must be a string`);
50
+ if (typeof value.onUpdate !== "string")
51
+ throw new TypeError(`${path}.onUpdate must be a string`);
52
+ if (typeof value.onDelete !== "string")
53
+ throw new TypeError(`${path}.onDelete must be a string`);
54
+ return {
55
+ columns: stringArray(value.columns, `${path}.columns`),
56
+ referencedTable: value.referencedTable,
57
+ referencedColumns: stringArray(value.referencedColumns, `${path}.referencedColumns`),
58
+ onUpdate: value.onUpdate,
59
+ onDelete: value.onDelete,
60
+ };
61
+ }
62
+ export function parseSqliteSchemaSnapshot(value) {
63
+ const base = parseSchemaSnapshot(value);
64
+ if (base.dialect !== "sqlite")
65
+ throw new TypeError(`@typed-sql/sqlite cannot use a ${base.dialect} schema snapshot`);
66
+ if (!record(value) || !record(value.tables))
67
+ throw new TypeError("schema.tables must be an object");
68
+ const tables = {};
69
+ for (const [key, table] of Object.entries(base.tables)) {
70
+ const raw = value.tables[key];
71
+ if (!record(raw))
72
+ throw new TypeError(`schema.tables.${key} must be an object`);
73
+ const schema = raw.schema === undefined ? "main" : raw.schema;
74
+ if (typeof schema !== "string")
75
+ throw new TypeError(`schema.tables.${key}.schema must be a string`);
76
+ const kind = raw.kind === undefined ? "table" : raw.kind;
77
+ if (!(kind === "table" || kind === "view" || kind === "virtual")) {
78
+ throw new TypeError(`schema.tables.${key}.kind must be table, view, or virtual`);
79
+ }
80
+ const strict = raw.strict ?? false;
81
+ const withoutRowid = raw.withoutRowid ?? false;
82
+ if (typeof strict !== "boolean")
83
+ throw new TypeError(`schema.tables.${key}.strict must be a boolean`);
84
+ if (typeof withoutRowid !== "boolean")
85
+ throw new TypeError(`schema.tables.${key}.withoutRowid must be a boolean`);
86
+ const columns = {};
87
+ for (const [columnKey, column] of Object.entries(table.columns)) {
88
+ const rawColumn = record(raw.columns) ? raw.columns[columnKey] : undefined;
89
+ if (rawColumn !== undefined && !record(rawColumn)) {
90
+ throw new TypeError(`schema.tables.${key}.columns.${columnKey} must be an object`);
91
+ }
92
+ const generated = rawColumn?.generated;
93
+ if (generated !== undefined && generated !== "virtual" && generated !== "stored") {
94
+ throw new TypeError(`schema.tables.${key}.columns.${columnKey}.generated must be virtual or stored`);
95
+ }
96
+ const hidden = rawColumn?.hidden;
97
+ const primaryKeyPosition = rawColumn?.primaryKeyPosition;
98
+ if (hidden !== undefined && typeof hidden !== "boolean") {
99
+ throw new TypeError(`schema.tables.${key}.columns.${columnKey}.hidden must be a boolean`);
100
+ }
101
+ if (primaryKeyPosition !== undefined &&
102
+ (typeof primaryKeyPosition !== "number" || !Number.isSafeInteger(primaryKeyPosition) || primaryKeyPosition < 0)) {
103
+ throw new TypeError(`schema.tables.${key}.columns.${columnKey}.primaryKeyPosition must be non-negative`);
104
+ }
105
+ columns[columnKey] = {
106
+ ...column,
107
+ ...(generated === undefined ? {} : { generated }),
108
+ ...(hidden === undefined ? {} : { hidden }),
109
+ ...(primaryKeyPosition === undefined ? {} : { primaryKeyPosition: primaryKeyPosition }),
110
+ };
111
+ }
112
+ const indexes = raw.indexes === undefined ? [] : raw.indexes;
113
+ const foreignKeys = raw.foreignKeys === undefined ? [] : raw.foreignKeys;
114
+ if (!Array.isArray(indexes))
115
+ throw new TypeError(`schema.tables.${key}.indexes must be an array`);
116
+ if (!Array.isArray(foreignKeys))
117
+ throw new TypeError(`schema.tables.${key}.foreignKeys must be an array`);
118
+ tables[key] = {
119
+ ...table,
120
+ schema,
121
+ kind,
122
+ strict,
123
+ withoutRowid,
124
+ columns,
125
+ indexes: indexes.map((index, offset) => parseIndex(index, `schema.tables.${key}.indexes.${offset}`)),
126
+ foreignKeys: foreignKeys.map((foreignKey, offset) => parseForeignKey(foreignKey, `schema.tables.${key}.foreignKeys.${offset}`)),
127
+ };
128
+ }
129
+ return { ...base, dialect: "sqlite", tables };
130
+ }
131
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../../src/snapshot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { SchemaSnapshot } from "@typed-sql/schema";
2
+ export type SqliteAffinity = "integer" | "text" | "blob" | "real" | "numeric";
3
+ export interface SqliteTypePolicy {
4
+ readonly integer: "bigint" | "number";
5
+ readonly flexible: "union" | "unknown";
6
+ readonly unknown: "unknown" | "never";
7
+ }
8
+ export declare const defaultSqliteTypePolicy: SqliteTypePolicy;
9
+ export declare function sqliteAffinity(databaseType: string): SqliteAffinity;
10
+ export declare function isKnownStrictSqliteType(databaseType: string): boolean;
11
+ export declare function isKnownSqliteType(databaseType: string): boolean;
12
+ export declare function sqliteFlexibleType(policy: SqliteTypePolicy): string;
13
+ export declare function mapSqliteType(databaseType: string, policy: SqliteTypePolicy, options?: {
14
+ readonly strict?: boolean;
15
+ readonly schema?: SchemaSnapshot;
16
+ }): string;
17
+ export declare function mapSqliteCastType(databaseType: string, policy: SqliteTypePolicy): string;
18
+ //# sourceMappingURL=type-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-policy.d.ts","sourceRoot":"","sources":["../../../../src/type-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC;CACvC;AAED,eAAO,MAAM,uBAAuB,EAAE,gBAIpC,CAAC;AAEH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CAOnE;AAED,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAErE;AAED,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAInE;AAED,wBAAgB,aAAa,CAC3B,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAA;CAAO,GAC5E,MAAM,CAmBR;AAED,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAaxF"}
@@ -0,0 +1,63 @@
1
+ export const defaultSqliteTypePolicy = Object.freeze({
2
+ integer: "bigint",
3
+ flexible: "union",
4
+ unknown: "unknown",
5
+ });
6
+ export function sqliteAffinity(databaseType) {
7
+ const type = databaseType.trim().toUpperCase();
8
+ if (type.includes("INT"))
9
+ return "integer";
10
+ if (type.includes("CHAR") || type.includes("CLOB") || type.includes("TEXT"))
11
+ return "text";
12
+ if (type.length === 0 || type.includes("BLOB"))
13
+ return "blob";
14
+ if (type.includes("REAL") || type.includes("FLOA") || type.includes("DOUB"))
15
+ return "real";
16
+ return "numeric";
17
+ }
18
+ export function isKnownStrictSqliteType(databaseType) {
19
+ return ["ANY", "BLOB", "INT", "INTEGER", "REAL", "TEXT"].includes(databaseType.trim().toUpperCase());
20
+ }
21
+ export function isKnownSqliteType(databaseType) {
22
+ return databaseType.trim().length > 0;
23
+ }
24
+ export function sqliteFlexibleType(policy) {
25
+ return policy.flexible === "unknown"
26
+ ? "unknown"
27
+ : [...new Set([policy.integer, "number", "string", "Uint8Array"])].join(" | ");
28
+ }
29
+ export function mapSqliteType(databaseType, policy, options = {}) {
30
+ if (!options.strict) {
31
+ return sqliteFlexibleType(policy);
32
+ }
33
+ switch (databaseType.trim().toUpperCase()) {
34
+ case "INT":
35
+ case "INTEGER":
36
+ return policy.integer;
37
+ case "REAL":
38
+ return "number";
39
+ case "TEXT":
40
+ return "string";
41
+ case "BLOB":
42
+ return "Uint8Array";
43
+ case "ANY":
44
+ return sqliteFlexibleType(policy);
45
+ default:
46
+ return options.schema?.domains?.[databaseType.toLowerCase()]?.tsType ?? policy.unknown;
47
+ }
48
+ }
49
+ export function mapSqliteCastType(databaseType, policy) {
50
+ switch (sqliteAffinity(databaseType)) {
51
+ case "integer":
52
+ return policy.integer;
53
+ case "real":
54
+ return "number";
55
+ case "text":
56
+ return "string";
57
+ case "blob":
58
+ return "Uint8Array";
59
+ case "numeric":
60
+ return [...new Set([policy.integer, "number"])].join(" | ");
61
+ }
62
+ }
63
+ //# sourceMappingURL=type-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-policy.js","sourceRoot":"","sources":["../../../../src/type-policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const SQLITE_DIALECT_VERSION = "1.0.0";
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const SQLITE_DIALECT_VERSION = "1.0.0";
2
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAC"}
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@typed-sql/sqlite",
3
+ "version": "2.0.0-rc.0",
4
+ "description": "SQLite grammar, sound schema introspection, type resolution, and optional application-owned adapters for typed-sql.",
5
+ "license": "MIT",
6
+ "author": "Lojhan",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/Lojhan/typed-sql.git",
10
+ "directory": "packages/sqlite"
11
+ },
12
+ "homepage": "https://github.com/Lojhan/typed-sql#readme",
13
+ "bugs": {
14
+ "url": "https://github.com/Lojhan/typed-sql/issues"
15
+ },
16
+ "engines": {
17
+ "node": ">=22.11"
18
+ },
19
+ "files": [
20
+ "dist/**/*.js",
21
+ "dist/**/*.d.ts",
22
+ "dist/**/*.map",
23
+ "README.md",
24
+ "LICENSE",
25
+ "CHANGELOG.md"
26
+ ],
27
+ "publishConfig": {
28
+ "access": "public"
29
+ },
30
+ "typedSql": {
31
+ "releaseTrack": "experimental"
32
+ },
33
+ "sideEffects": false,
34
+ "type": "module",
35
+ "exports": {
36
+ ".": "./dist/packages/sqlite/src/index.js",
37
+ "./runtime": "./dist/packages/sqlite/src/runtime.js",
38
+ "./node-sqlite": "./dist/packages/sqlite/src/node-sqlite.js"
39
+ },
40
+ "dependencies": {
41
+ "@typed-sql/ast": "2.0.0-rc.0",
42
+ "@typed-sql/core": "2.0.0-rc.0",
43
+ "@typed-sql/schema": "2.0.0-rc.0"
44
+ },
45
+ "devDependencies": {
46
+ "@typed-sql/conformance": "2.0.0-rc.0"
47
+ },
48
+ "scripts": {
49
+ "test": "poku test --reporter=compact --enforce",
50
+ "test:soundness": "poku test/soundness.test.ts --reporter=compact --enforce",
51
+ "coverage": "poku test --coverage=@pokujs/c8 --coverageConfig=.c8rc.json --reporter=compact --enforce"
52
+ }
53
+ }