@prisma-next/target-sqlite 0.0.1

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 ADDED
@@ -0,0 +1,69 @@
1
+ # @prisma-next/target-sqlite
2
+
3
+ SQLite target pack for Prisma Next.
4
+
5
+ ## Package Classification
6
+
7
+ - **Domain**: targets
8
+ - **Layer**: targets
9
+ - **Plane**: multi-plane (runtime, authoring)
10
+
11
+ ## Purpose
12
+
13
+ Provides the SQLite target descriptor for runtime use and pack refs for contract authoring. The control-plane entry point (migration planner/runner) is not yet implemented.
14
+
15
+ ## Responsibilities
16
+
17
+ - **Runtime Target Descriptor**: Exports `SqlRuntimeTargetDescriptor<'sqlite'>` with codec registry and factory
18
+ - **Pack Ref Export**: Exports `TargetPackRef<'sql', 'sqlite'>` for `defineContract().target(sqlitePack)` contract authoring
19
+ - **Descriptor Metadata**: Defines target identity (`familyId: 'sql'`, `targetId: 'sqlite'`, `id: 'sqlite'`) and version
20
+
21
+ **Non-goals:**
22
+ - Migration planner/runner (future milestone)
23
+ - Schema introspection (future milestone)
24
+ - Control-plane target descriptor (future milestone)
25
+
26
+ This package spans multiple planes:
27
+ - **Runtime plane** (`src/exports/runtime.ts`): Runtime entry point for target-specific runtime code
28
+ - **Authoring pack ref** (`src/exports/pack.ts`): Pure data surface for contract builder workflows
29
+
30
+ ## Usage
31
+
32
+ ### Pack refs for TypeScript contract authoring
33
+
34
+ ```typescript
35
+ import sqlitePack from '@prisma-next/target-sqlite/pack';
36
+ import { defineContract } from '@prisma-next/sql-contract-ts/contract-builder';
37
+
38
+ export const contract = defineContract()
39
+ .target(sqlitePack)
40
+ .build();
41
+ ```
42
+
43
+ Pack refs are pure JSON-friendly objects that make TypeScript contract authoring work in both emit and no-emit workflows without requiring separate manifest files.
44
+
45
+ ## Architecture
46
+
47
+ This package provides a runtime entry point for the SQLite target. All declarative fields (version, capabilities) are defined directly on the descriptor. The `./pack` entry point provides a pure pack ref for contract authoring.
48
+
49
+ ## Dependencies
50
+
51
+ - **`@prisma-next/framework-components`**: Descriptor types (`RuntimeTargetInstance`)
52
+ - **`@prisma-next/sql-relational-core`**: Codec registry factory
53
+ - **`@prisma-next/sql-runtime`**: `SqlRuntimeTargetDescriptor` type
54
+ - **`@prisma-next/sql-contract`**: Pack ref types (`TargetPackRef`)
55
+ - **`@prisma-next/adapter-sqlite`** *(dev)*: Codec types for pack ref `__codecTypes`
56
+
57
+ ## Related Subsystems
58
+
59
+ - **[Adapters & Targets](../../../../docs/architecture%20docs/subsystems/5.%20Adapters%20&%20Targets.md)**: Target specification
60
+
61
+ ## Related ADRs
62
+
63
+ - [ADR 005 -- Thin Core Fat Targets](../../../../docs/architecture%20docs/adrs/ADR%20005%20-%20Thin%20Core%20Fat%20Targets.md)
64
+ - [ADR 112 -- Target Extension Packs](../../../../docs/architecture%20docs/adrs/ADR%20112%20-%20Target%20Extension%20Packs.md)
65
+
66
+ ## Exports
67
+
68
+ - `./runtime`: Runtime entry point for `SqlRuntimeTargetDescriptor<'sqlite'>`
69
+ - `./pack`: Pure pack ref for `defineContract().target(sqlitePack)`
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@prisma-next/target-sqlite",
3
+ "version": "0.0.1",
4
+ "type": "module",
5
+ "sideEffects": false,
6
+ "scripts": {
7
+ "build": "tsdown",
8
+ "test": "vitest run --passWithNoTests",
9
+ "test:coverage": "vitest run --coverage --passWithNoTests",
10
+ "typecheck": "tsc --project tsconfig.json --noEmit",
11
+ "lint": "biome check . --error-on-warnings",
12
+ "lint:fix": "biome check --write .",
13
+ "lint:fix:unsafe": "biome check --write --unsafe .",
14
+ "clean": "rm -rf dist dist-tsc dist-tsc-prod coverage .tmp-output"
15
+ },
16
+ "dependencies": {
17
+ "@prisma-next/contract": "workspace:*",
18
+ "@prisma-next/framework-components": "workspace:*",
19
+ "@prisma-next/sql-contract": "workspace:*",
20
+ "@prisma-next/sql-relational-core": "workspace:*",
21
+ "@prisma-next/sql-runtime": "workspace:*"
22
+ },
23
+ "devDependencies": {
24
+ "@prisma-next/adapter-sqlite": "workspace:*",
25
+ "@prisma-next/test-utils": "workspace:*",
26
+ "@prisma-next/tsconfig": "workspace:*",
27
+ "@prisma-next/tsdown": "workspace:*",
28
+ "tsdown": "catalog:",
29
+ "typescript": "catalog:",
30
+ "vitest": "catalog:"
31
+ },
32
+ "files": [
33
+ "dist",
34
+ "src"
35
+ ],
36
+ "exports": {
37
+ "./control": "./dist/control.mjs",
38
+ "./pack": "./dist/pack.mjs",
39
+ "./runtime": "./dist/runtime.mjs",
40
+ "./package.json": "./package.json"
41
+ },
42
+ "repository": {
43
+ "type": "git",
44
+ "url": "https://github.com/prisma/prisma-next.git",
45
+ "directory": "packages/3-targets/3-targets/sqlite"
46
+ }
47
+ }
@@ -0,0 +1,18 @@
1
+ import type {
2
+ ControlTargetDescriptor,
3
+ ControlTargetInstance,
4
+ } from '@prisma-next/framework-components/control';
5
+ import { sqliteTargetDescriptorMeta } from './descriptor-meta';
6
+
7
+ const sqliteControlTargetDescriptor: ControlTargetDescriptor<
8
+ 'sql',
9
+ 'sqlite',
10
+ ControlTargetInstance<'sql', 'sqlite'>
11
+ > = {
12
+ ...sqliteTargetDescriptorMeta,
13
+ create(): ControlTargetInstance<'sql', 'sqlite'> {
14
+ return { familyId: 'sql', targetId: 'sqlite' };
15
+ },
16
+ };
17
+
18
+ export default sqliteControlTargetDescriptor;
@@ -0,0 +1,8 @@
1
+ export const sqliteTargetDescriptorMeta = {
2
+ kind: 'target',
3
+ familyId: 'sql',
4
+ targetId: 'sqlite',
5
+ id: 'sqlite',
6
+ version: '0.0.1',
7
+ capabilities: {},
8
+ } as const;
@@ -0,0 +1,23 @@
1
+ import type { RuntimeTargetInstance } from '@prisma-next/framework-components/execution';
2
+ import { createCodecRegistry } from '@prisma-next/sql-relational-core/ast';
3
+ import type { SqlRuntimeTargetDescriptor } from '@prisma-next/sql-runtime';
4
+ import { sqliteTargetDescriptorMeta } from './descriptor-meta';
5
+
6
+ export interface SqliteRuntimeTargetInstance extends RuntimeTargetInstance<'sql', 'sqlite'> {}
7
+
8
+ const sqliteRuntimeTargetDescriptor: SqlRuntimeTargetDescriptor<
9
+ 'sqlite',
10
+ SqliteRuntimeTargetInstance
11
+ > = {
12
+ ...sqliteTargetDescriptorMeta,
13
+ codecs: () => createCodecRegistry(),
14
+ parameterizedCodecs: () => [],
15
+ create(): SqliteRuntimeTargetInstance {
16
+ return {
17
+ familyId: 'sql',
18
+ targetId: 'sqlite',
19
+ };
20
+ },
21
+ };
22
+
23
+ export default sqliteRuntimeTargetDescriptor;
@@ -0,0 +1 @@
1
+ export { default } from '../core/control-target';
@@ -0,0 +1,9 @@
1
+ import type { CodecTypes } from '@prisma-next/adapter-sqlite/codec-types';
2
+ import type { TargetPackRef } from '@prisma-next/framework-components/components';
3
+ import { sqliteTargetDescriptorMeta } from '../core/descriptor-meta';
4
+
5
+ const sqlitePack = sqliteTargetDescriptorMeta;
6
+
7
+ export default sqlitePack as TargetPackRef<'sql', 'sqlite'> & {
8
+ readonly __codecTypes?: CodecTypes;
9
+ };
@@ -0,0 +1,2 @@
1
+ export type { SqliteRuntimeTargetInstance } from '../core/runtime-target';
2
+ export { default } from '../core/runtime-target';