@prisma-next/sqlite 0.7.0 → 0.8.0-dev.2
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/README.md +1 -1
- package/dist/runtime.d.mts.map +1 -1
- package/dist/runtime.mjs +3 -3
- package/dist/runtime.mjs.map +1 -1
- package/package.json +16 -15
- package/src/runtime/sqlite.ts +2 -3
package/README.md
CHANGED
|
@@ -40,7 +40,7 @@ Connection binding can be provided up front (`path`) or deferred via `db.connect
|
|
|
40
40
|
- **`@prisma-next/sql-builder`** for `sql(...)` query builder
|
|
41
41
|
- **`@prisma-next/sql-relational-core`** for `schema(...)`
|
|
42
42
|
- **`@prisma-next/sql-orm-client`** for `orm(...)`
|
|
43
|
-
- **`@prisma-next/sql-contract`** for `
|
|
43
|
+
- **`@prisma-next/sql-contract`** for contract types (contract validation flows through the `ContractSerializer` SPI on the SQL family target descriptor; the `sqlite<Contract>(...)` facade wraps it)
|
|
44
44
|
|
|
45
45
|
## Architecture
|
|
46
46
|
|
package/dist/runtime.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.mts","names":[],"sources":["../src/runtime/binding.ts","../src/runtime/sqlite.ts"],"mappings":";;;;;;;KAEY,kBAAA;EAAA,SAAgC,IAAA;AAAA;;;
|
|
1
|
+
{"version":3,"file":"runtime.d.mts","names":[],"sources":["../src/runtime/binding.ts","../src/runtime/sqlite.ts"],"mappings":";;;;;;;KAEY,kBAAA;EAAA,SAAgC,IAAA;AAAA;;;KCwBhC,cAAA;AAAA,KACP,SAAA,mBAA4B,QAAA,CAAS,UAAA,KAAe,UAAA,QAAkB,GAAA,CAAW,SAAA;AAAA,UAErE,YAAA,mBAA+B,QAAA,CAAS,UAAA;EAAA,SAC9C,GAAA,EAAK,EAAA,CAAG,SAAA;EAAA,SACR,GAAA,EAAK,SAAA,CAAU,SAAA;EAAA,SACf,OAAA,EAAS,gBAAA,CAAiB,SAAA;EAAA,SAC1B,KAAA,EAAO,2BAAA,CAA4B,cAAA;EAC5C,OAAA,CAAQ,YAAA;IAAA,SAA0B,IAAA;EAAA,IAAiB,OAAA,CAAQ,OAAA;EAC3D,OAAA,IAAW,OAAA;AAAA;AAAA,UAGI,iBAAA;EAAA,SACN,UAAA,YAAsB,6BAAA,CAA8B,cAAA;EAAA,SACpD,UAAA,YAAsB,aAAA;EAAA,SACtB,MAAA,GAAS,oBAAA;AAAA;AAAA,KAGR,yBAAA,mBAA4C,QAAA,CAAS,UAAA;EAAA,SACtD,IAAA;AAAA,IACP,iBAAA;EAAA,SACS,QAAA,EAAU,SAAA;EAAA,SACV,YAAA;AAAA;AAAA,KAGD,6BAAA,mBAAgD,QAAA,CAAS,UAAA;EAAA,SAC1D,IAAA;EAAA,SACA,SAAA,GAAY,SAAA;AAAA,IACnB,iBAAA;EAAA,SACS,YAAA;EAAA,SACA,QAAA;AAAA;AAAA,KAGD,aAAA,mBAAgC,QAAA,CAAS,UAAA,KACjD,yBAAA,CAA0B,SAAA,IAC1B,6BAAA,CAA8B,SAAA;AAAA,iBAYV,MAAA,mBAAyB,QAAA,CAAS,UAAA,EAAA,CACxD,OAAA,EAAS,yBAAA,CAA0B,SAAA,IAClC,YAAA,CAAa,SAAA;AAAA,iBACQ,MAAA,mBAAyB,QAAA,CAAS,UAAA,EAAA,CACxD,OAAA,EAAS,6BAAA,CAA8B,SAAA,IACtC,YAAA,CAAa,SAAA"}
|
package/dist/runtime.mjs
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import sqliteAdapter from "@prisma-next/adapter-sqlite/runtime";
|
|
2
2
|
import sqliteDriver from "@prisma-next/driver-sqlite/runtime";
|
|
3
|
-
import {
|
|
3
|
+
import { SqlContractSerializer } from "@prisma-next/family-sql/ir";
|
|
4
4
|
import { instantiateExecutionStack } from "@prisma-next/framework-components/execution";
|
|
5
5
|
import { sql } from "@prisma-next/sql-builder/runtime";
|
|
6
|
-
import { validateContract } from "@prisma-next/sql-contract/validate";
|
|
7
6
|
import { orm } from "@prisma-next/sql-orm-client";
|
|
8
7
|
import { createExecutionContext, createRuntime, createSqlExecutionStack } from "@prisma-next/sql-runtime";
|
|
9
8
|
import sqliteTarget from "@prisma-next/target-sqlite/runtime";
|
|
@@ -24,7 +23,8 @@ function resolveOptionalSqliteBinding(options) {
|
|
|
24
23
|
//#endregion
|
|
25
24
|
//#region src/runtime/sqlite.ts
|
|
26
25
|
function resolveContract(options) {
|
|
27
|
-
|
|
26
|
+
const contractInput = "contractJson" in options && options.contractJson !== void 0 ? options.contractJson : options.contract;
|
|
27
|
+
return new SqlContractSerializer().deserializeContract(contractInput);
|
|
28
28
|
}
|
|
29
29
|
function sqlite(options) {
|
|
30
30
|
const contract = resolveContract(options);
|
package/dist/runtime.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.mjs","names":["sql","sqlBuilder","ormBuilder"],"sources":["../src/runtime/binding.ts","../src/runtime/sqlite.ts"],"sourcesContent":["import type { SqliteBinding } from '@prisma-next/driver-sqlite/runtime';\n\nexport type SqliteBindingInput = { readonly path: string };\n\nexport function resolveSqliteBinding(input: SqliteBindingInput): SqliteBinding {\n return { kind: 'path', path: input.path };\n}\n\nexport function resolveOptionalSqliteBinding(options: {\n readonly path?: string;\n}): SqliteBinding | undefined {\n if (options.path === undefined) {\n return undefined;\n }\n return { kind: 'path', path: options.path };\n}\n","import sqliteAdapter from '@prisma-next/adapter-sqlite/runtime';\nimport type { Contract } from '@prisma-next/contract/types';\nimport type { SqliteBinding } from '@prisma-next/driver-sqlite/runtime';\nimport sqliteDriver from '@prisma-next/driver-sqlite/runtime';\nimport {
|
|
1
|
+
{"version":3,"file":"runtime.mjs","names":["sql","sqlBuilder","ormBuilder"],"sources":["../src/runtime/binding.ts","../src/runtime/sqlite.ts"],"sourcesContent":["import type { SqliteBinding } from '@prisma-next/driver-sqlite/runtime';\n\nexport type SqliteBindingInput = { readonly path: string };\n\nexport function resolveSqliteBinding(input: SqliteBindingInput): SqliteBinding {\n return { kind: 'path', path: input.path };\n}\n\nexport function resolveOptionalSqliteBinding(options: {\n readonly path?: string;\n}): SqliteBinding | undefined {\n if (options.path === undefined) {\n return undefined;\n }\n return { kind: 'path', path: options.path };\n}\n","import sqliteAdapter from '@prisma-next/adapter-sqlite/runtime';\nimport type { Contract } from '@prisma-next/contract/types';\nimport type { SqliteBinding } from '@prisma-next/driver-sqlite/runtime';\nimport sqliteDriver from '@prisma-next/driver-sqlite/runtime';\nimport { SqlContractSerializer } from '@prisma-next/family-sql/ir';\nimport { instantiateExecutionStack } from '@prisma-next/framework-components/execution';\nimport { sql as sqlBuilder } from '@prisma-next/sql-builder/runtime';\nimport type { Db } from '@prisma-next/sql-builder/types';\nimport type { SqlStorage } from '@prisma-next/sql-contract/types';\nimport { orm as ormBuilder } from '@prisma-next/sql-orm-client';\nimport type {\n ExecutionContext,\n Runtime,\n RuntimeVerifyOptions,\n SqlExecutionStackWithDriver,\n SqlMiddleware,\n SqlRuntimeExtensionDescriptor,\n} from '@prisma-next/sql-runtime';\nimport {\n createExecutionContext,\n createRuntime,\n createSqlExecutionStack,\n} from '@prisma-next/sql-runtime';\nimport sqliteTarget from '@prisma-next/target-sqlite/runtime';\nimport { resolveOptionalSqliteBinding, resolveSqliteBinding } from './binding';\n\nexport type SqliteTargetId = 'sqlite';\ntype OrmClient<TContract extends Contract<SqlStorage>> = ReturnType<typeof ormBuilder<TContract>>;\n\nexport interface SqliteClient<TContract extends Contract<SqlStorage>> {\n readonly sql: Db<TContract>;\n readonly orm: OrmClient<TContract>;\n readonly context: ExecutionContext<TContract>;\n readonly stack: SqlExecutionStackWithDriver<SqliteTargetId>;\n connect(bindingInput?: { readonly path: string }): Promise<Runtime>;\n runtime(): Runtime;\n}\n\nexport interface SqliteOptionsBase {\n readonly extensions?: readonly SqlRuntimeExtensionDescriptor<SqliteTargetId>[];\n readonly middleware?: readonly SqlMiddleware[];\n readonly verify?: RuntimeVerifyOptions;\n}\n\nexport type SqliteOptionsWithContract<TContract extends Contract<SqlStorage>> = {\n readonly path?: string;\n} & SqliteOptionsBase & {\n readonly contract: TContract;\n readonly contractJson?: never;\n };\n\nexport type SqliteOptionsWithContractJson<TContract extends Contract<SqlStorage>> = {\n readonly path?: string;\n readonly _contract?: TContract;\n} & SqliteOptionsBase & {\n readonly contractJson: unknown;\n readonly contract?: never;\n };\n\nexport type SqliteOptions<TContract extends Contract<SqlStorage>> =\n | SqliteOptionsWithContract<TContract>\n | SqliteOptionsWithContractJson<TContract>;\n\nfunction resolveContract<TContract extends Contract<SqlStorage>>(\n options: SqliteOptions<TContract>,\n): TContract {\n const contractInput =\n 'contractJson' in options && options.contractJson !== undefined\n ? options.contractJson\n : (options as SqliteOptionsWithContract<TContract>).contract;\n return new SqlContractSerializer().deserializeContract(contractInput) as TContract;\n}\n\nexport default function sqlite<TContract extends Contract<SqlStorage>>(\n options: SqliteOptionsWithContract<TContract>,\n): SqliteClient<TContract>;\nexport default function sqlite<TContract extends Contract<SqlStorage>>(\n options: SqliteOptionsWithContractJson<TContract>,\n): SqliteClient<TContract>;\nexport default function sqlite<TContract extends Contract<SqlStorage>>(\n options: SqliteOptions<TContract>,\n): SqliteClient<TContract> {\n const contract = resolveContract(options);\n let binding = resolveOptionalSqliteBinding(options);\n const stack = createSqlExecutionStack({\n target: sqliteTarget,\n adapter: sqliteAdapter,\n driver: sqliteDriver,\n extensionPacks: options.extensions ?? [],\n });\n\n const context = createExecutionContext({\n contract,\n stack,\n });\n\n const sql: Db<TContract> = sqlBuilder<TContract>({ context });\n let runtimeInstance: Runtime | undefined;\n let runtimeDriver: { connect(binding: unknown): Promise<void> } | undefined;\n let driverConnected = false;\n let connectPromise: Promise<void> | undefined;\n let backgroundConnectError: unknown;\n\n const connectDriver = async (resolvedBinding: SqliteBinding): Promise<void> => {\n if (driverConnected) return;\n if (!runtimeDriver) throw new Error('SQLite runtime driver missing');\n if (connectPromise) return connectPromise;\n connectPromise = runtimeDriver\n .connect(resolvedBinding)\n .then(() => {\n driverConnected = true;\n })\n .catch((err) => {\n backgroundConnectError = err;\n connectPromise = undefined;\n throw err;\n });\n return connectPromise;\n };\n\n const getRuntime = (): Runtime => {\n if (backgroundConnectError !== undefined) {\n throw backgroundConnectError;\n }\n\n if (runtimeInstance) {\n return runtimeInstance;\n }\n\n const stackInstance = instantiateExecutionStack(stack);\n const driverDescriptor = stack.driver;\n if (!driverDescriptor) {\n throw new Error('Driver descriptor missing from execution stack');\n }\n\n const driver = driverDescriptor.create();\n runtimeDriver = driver;\n if (binding !== undefined) {\n void connectDriver(binding).catch(() => undefined);\n }\n\n runtimeInstance = createRuntime({\n stackInstance,\n context,\n driver,\n verify: options.verify ?? { mode: 'onFirstUse', requireMarker: false },\n ...(options.middleware ? { middleware: options.middleware } : {}),\n });\n\n return runtimeInstance;\n };\n\n const orm: OrmClient<TContract> = ormBuilder({\n context,\n runtime: {\n execute(plan) {\n return getRuntime().execute(plan);\n },\n connection() {\n return getRuntime().connection();\n },\n },\n });\n\n return {\n sql,\n orm,\n context,\n stack,\n async connect(bindingInput) {\n if (driverConnected || connectPromise) {\n throw new Error('SQLite client already connected');\n }\n\n backgroundConnectError = undefined;\n\n if (bindingInput !== undefined) {\n binding = resolveSqliteBinding(bindingInput);\n }\n\n if (binding === undefined) {\n throw new Error(\n 'SQLite binding not configured. Pass path to sqlite(...) or call db.connect({ path }).',\n );\n }\n\n const runtime = getRuntime();\n if (driverConnected) {\n return runtime;\n }\n\n await connectDriver(binding);\n return runtime;\n },\n runtime() {\n return getRuntime();\n },\n };\n}\n"],"mappings":";;;;;;;;;AAIA,SAAgB,qBAAqB,OAA0C;CAC7E,OAAO;EAAE,MAAM;EAAQ,MAAM,MAAM;EAAM;;AAG3C,SAAgB,6BAA6B,SAEf;CAC5B,IAAI,QAAQ,SAAS,KAAA,GACnB;CAEF,OAAO;EAAE,MAAM;EAAQ,MAAM,QAAQ;EAAM;;;;ACiD7C,SAAS,gBACP,SACW;CACX,MAAM,gBACJ,kBAAkB,WAAW,QAAQ,iBAAiB,KAAA,IAClD,QAAQ,eACP,QAAiD;CACxD,OAAO,IAAI,uBAAuB,CAAC,oBAAoB,cAAc;;AASvE,SAAwB,OACtB,SACyB;CACzB,MAAM,WAAW,gBAAgB,QAAQ;CACzC,IAAI,UAAU,6BAA6B,QAAQ;CACnD,MAAM,QAAQ,wBAAwB;EACpC,QAAQ;EACR,SAAS;EACT,QAAQ;EACR,gBAAgB,QAAQ,cAAc,EAAE;EACzC,CAAC;CAEF,MAAM,UAAU,uBAAuB;EACrC;EACA;EACD,CAAC;CAEF,MAAMA,QAAqBC,IAAsB,EAAE,SAAS,CAAC;CAC7D,IAAI;CACJ,IAAI;CACJ,IAAI,kBAAkB;CACtB,IAAI;CACJ,IAAI;CAEJ,MAAM,gBAAgB,OAAO,oBAAkD;EAC7E,IAAI,iBAAiB;EACrB,IAAI,CAAC,eAAe,MAAM,IAAI,MAAM,gCAAgC;EACpE,IAAI,gBAAgB,OAAO;EAC3B,iBAAiB,cACd,QAAQ,gBAAgB,CACxB,WAAW;GACV,kBAAkB;IAClB,CACD,OAAO,QAAQ;GACd,yBAAyB;GACzB,iBAAiB,KAAA;GACjB,MAAM;IACN;EACJ,OAAO;;CAGT,MAAM,mBAA4B;EAChC,IAAI,2BAA2B,KAAA,GAC7B,MAAM;EAGR,IAAI,iBACF,OAAO;EAGT,MAAM,gBAAgB,0BAA0B,MAAM;EACtD,MAAM,mBAAmB,MAAM;EAC/B,IAAI,CAAC,kBACH,MAAM,IAAI,MAAM,iDAAiD;EAGnE,MAAM,SAAS,iBAAiB,QAAQ;EACxC,gBAAgB;EAChB,IAAI,YAAY,KAAA,GACd,cAAmB,QAAQ,CAAC,YAAY,KAAA,EAAU;EAGpD,kBAAkB,cAAc;GAC9B;GACA;GACA;GACA,QAAQ,QAAQ,UAAU;IAAE,MAAM;IAAc,eAAe;IAAO;GACtE,GAAI,QAAQ,aAAa,EAAE,YAAY,QAAQ,YAAY,GAAG,EAAE;GACjE,CAAC;EAEF,OAAO;;CAeT,OAAO;EACL,KAAA;EACA,KAdgCC,IAAW;GAC3C;GACA,SAAS;IACP,QAAQ,MAAM;KACZ,OAAO,YAAY,CAAC,QAAQ,KAAK;;IAEnC,aAAa;KACX,OAAO,YAAY,CAAC,YAAY;;IAEnC;GACF,CAII;EACH;EACA;EACA,MAAM,QAAQ,cAAc;GAC1B,IAAI,mBAAmB,gBACrB,MAAM,IAAI,MAAM,kCAAkC;GAGpD,yBAAyB,KAAA;GAEzB,IAAI,iBAAiB,KAAA,GACnB,UAAU,qBAAqB,aAAa;GAG9C,IAAI,YAAY,KAAA,GACd,MAAM,IAAI,MACR,wFACD;GAGH,MAAM,UAAU,YAAY;GAC5B,IAAI,iBACF,OAAO;GAGT,MAAM,cAAc,QAAQ;GAC5B,OAAO;;EAET,UAAU;GACR,OAAO,YAAY;;EAEtB"}
|
package/package.json
CHANGED
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prisma-next/sqlite",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0-dev.2",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
7
7
|
"description": "One-liner lazy SQLite client composition for Prisma Next",
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@prisma-next/adapter-sqlite": "0.
|
|
10
|
-
"@prisma-next/contract": "0.
|
|
11
|
-
"@prisma-next/driver-sqlite": "0.
|
|
12
|
-
"@prisma-next/sql
|
|
13
|
-
"@prisma-next/
|
|
14
|
-
"@prisma-next/sql-
|
|
15
|
-
"@prisma-next/sql-
|
|
16
|
-
"@prisma-next/
|
|
17
|
-
"@prisma-next/sql-
|
|
18
|
-
"@prisma-next/
|
|
9
|
+
"@prisma-next/adapter-sqlite": "0.8.0-dev.2",
|
|
10
|
+
"@prisma-next/contract": "0.8.0-dev.2",
|
|
11
|
+
"@prisma-next/driver-sqlite": "0.8.0-dev.2",
|
|
12
|
+
"@prisma-next/family-sql": "0.8.0-dev.2",
|
|
13
|
+
"@prisma-next/framework-components": "0.8.0-dev.2",
|
|
14
|
+
"@prisma-next/sql-builder": "0.8.0-dev.2",
|
|
15
|
+
"@prisma-next/sql-contract": "0.8.0-dev.2",
|
|
16
|
+
"@prisma-next/sql-orm-client": "0.8.0-dev.2",
|
|
17
|
+
"@prisma-next/sql-relational-core": "0.8.0-dev.2",
|
|
18
|
+
"@prisma-next/sql-runtime": "0.8.0-dev.2",
|
|
19
|
+
"@prisma-next/target-sqlite": "0.8.0-dev.2"
|
|
19
20
|
},
|
|
20
21
|
"devDependencies": {
|
|
22
|
+
"@prisma-next/test-utils": "0.8.0-dev.2",
|
|
23
|
+
"@prisma-next/tsconfig": "0.8.0-dev.2",
|
|
24
|
+
"@prisma-next/tsdown": "0.8.0-dev.2",
|
|
21
25
|
"tsdown": "0.22.0",
|
|
22
26
|
"typescript": "5.9.3",
|
|
23
|
-
"vitest": "4.1.5"
|
|
24
|
-
"@prisma-next/test-utils": "0.7.0",
|
|
25
|
-
"@prisma-next/tsconfig": "0.7.0",
|
|
26
|
-
"@prisma-next/tsdown": "0.7.0"
|
|
27
|
+
"vitest": "4.1.5"
|
|
27
28
|
},
|
|
28
29
|
"files": [
|
|
29
30
|
"dist",
|
package/src/runtime/sqlite.ts
CHANGED
|
@@ -2,12 +2,11 @@ import sqliteAdapter from '@prisma-next/adapter-sqlite/runtime';
|
|
|
2
2
|
import type { Contract } from '@prisma-next/contract/types';
|
|
3
3
|
import type { SqliteBinding } from '@prisma-next/driver-sqlite/runtime';
|
|
4
4
|
import sqliteDriver from '@prisma-next/driver-sqlite/runtime';
|
|
5
|
-
import {
|
|
5
|
+
import { SqlContractSerializer } from '@prisma-next/family-sql/ir';
|
|
6
6
|
import { instantiateExecutionStack } from '@prisma-next/framework-components/execution';
|
|
7
7
|
import { sql as sqlBuilder } from '@prisma-next/sql-builder/runtime';
|
|
8
8
|
import type { Db } from '@prisma-next/sql-builder/types';
|
|
9
9
|
import type { SqlStorage } from '@prisma-next/sql-contract/types';
|
|
10
|
-
import { validateContract } from '@prisma-next/sql-contract/validate';
|
|
11
10
|
import { orm as ormBuilder } from '@prisma-next/sql-orm-client';
|
|
12
11
|
import type {
|
|
13
12
|
ExecutionContext,
|
|
@@ -69,7 +68,7 @@ function resolveContract<TContract extends Contract<SqlStorage>>(
|
|
|
69
68
|
'contractJson' in options && options.contractJson !== undefined
|
|
70
69
|
? options.contractJson
|
|
71
70
|
: (options as SqliteOptionsWithContract<TContract>).contract;
|
|
72
|
-
return
|
|
71
|
+
return new SqlContractSerializer().deserializeContract(contractInput) as TContract;
|
|
73
72
|
}
|
|
74
73
|
|
|
75
74
|
export default function sqlite<TContract extends Contract<SqlStorage>>(
|