@prisma-next/family-sql 0.1.0-dev.2 → 0.1.0-dev.21
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 +42 -0
- package/dist/exports/chunk-54XYY6SU.js +772 -0
- package/dist/exports/chunk-54XYY6SU.js.map +1 -0
- package/dist/exports/{chunk-3HYKCN35.js → chunk-C3GKWCKA.js} +16 -9
- package/dist/exports/chunk-C3GKWCKA.js.map +1 -0
- package/dist/exports/chunk-LECWNGKN.js +609 -0
- package/dist/exports/chunk-LECWNGKN.js.map +1 -0
- package/dist/exports/control-adapter.d.ts +1 -1
- package/dist/exports/control.d.ts +40 -113
- package/dist/exports/control.js +126 -1349
- package/dist/exports/control.js.map +1 -1
- package/dist/exports/instance-BDpyIYu5.d.ts +384 -0
- package/dist/exports/runtime.d.ts +13 -3
- package/dist/exports/runtime.js +2 -3
- package/dist/exports/runtime.js.map +1 -1
- package/dist/exports/schema-verify.d.ts +72 -0
- package/dist/exports/schema-verify.js +11 -0
- package/dist/exports/schema-verify.js.map +1 -0
- package/dist/exports/test-utils.d.ts +34 -0
- package/dist/exports/test-utils.js +15 -0
- package/dist/exports/test-utils.js.map +1 -0
- package/dist/exports/verify.d.ts +1 -1
- package/dist/exports/verify.js +1 -1
- package/package.json +29 -21
- package/dist/exports/chunk-3HYKCN35.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prisma-next/family-sql",
|
|
3
|
-
"version": "0.1.0-dev.
|
|
3
|
+
"version": "0.1.0-dev.21",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"description": "SQL family descriptor for Prisma Next",
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"arktype": "^2.0.0",
|
|
9
|
-
"@prisma-next/cli": "0.1.0-dev.
|
|
10
|
-
"@prisma-next/contract": "0.1.0-dev.
|
|
11
|
-
"@prisma-next/core-control-plane": "0.1.0-dev.
|
|
12
|
-
"@prisma-next/core-execution-plane": "0.1.0-dev.
|
|
13
|
-
"@prisma-next/operations": "0.1.0-dev.
|
|
14
|
-
"@prisma-next/runtime-executor": "0.1.0-dev.
|
|
15
|
-
"@prisma-next/sql-contract-emitter": "0.1.0-dev.
|
|
16
|
-
"@prisma-next/sql-contract-ts": "0.1.0-dev.
|
|
17
|
-
"@prisma-next/sql-
|
|
18
|
-
"@prisma-next/sql-
|
|
19
|
-
"@prisma-next/sql-
|
|
20
|
-
"@prisma-next/sql-
|
|
21
|
-
"@prisma-next/sql-schema-ir": "0.1.0-dev.
|
|
9
|
+
"@prisma-next/cli": "0.1.0-dev.21",
|
|
10
|
+
"@prisma-next/contract": "0.1.0-dev.21",
|
|
11
|
+
"@prisma-next/core-control-plane": "0.1.0-dev.21",
|
|
12
|
+
"@prisma-next/core-execution-plane": "0.1.0-dev.21",
|
|
13
|
+
"@prisma-next/operations": "0.1.0-dev.21",
|
|
14
|
+
"@prisma-next/runtime-executor": "0.1.0-dev.21",
|
|
15
|
+
"@prisma-next/sql-contract-emitter": "0.1.0-dev.21",
|
|
16
|
+
"@prisma-next/sql-contract-ts": "0.1.0-dev.21",
|
|
17
|
+
"@prisma-next/sql-contract": "0.1.0-dev.21",
|
|
18
|
+
"@prisma-next/sql-operations": "0.1.0-dev.21",
|
|
19
|
+
"@prisma-next/sql-relational-core": "0.1.0-dev.21",
|
|
20
|
+
"@prisma-next/sql-runtime": "0.1.0-dev.21",
|
|
21
|
+
"@prisma-next/sql-schema-ir": "0.1.0-dev.21",
|
|
22
|
+
"@prisma-next/utils": "0.1.0-dev.21"
|
|
22
23
|
},
|
|
23
24
|
"devDependencies": {
|
|
24
25
|
"tsup": "^8.3.0",
|
|
25
26
|
"typescript": "^5.9.3",
|
|
26
27
|
"vite-tsconfig-paths": "^5.1.4",
|
|
27
|
-
"vitest": "^
|
|
28
|
-
"@prisma-next/driver-postgres": "0.1.0-dev.
|
|
29
|
-
"@prisma-next/targets-postgres": "0.1.0-dev.2",
|
|
28
|
+
"vitest": "^4.0.16",
|
|
29
|
+
"@prisma-next/driver-postgres": "0.1.0-dev.21",
|
|
30
30
|
"@prisma-next/test-utils": "0.0.1"
|
|
31
31
|
},
|
|
32
32
|
"files": [
|
|
@@ -48,14 +48,22 @@
|
|
|
48
48
|
"./verify": {
|
|
49
49
|
"types": "./dist/exports/verify.d.ts",
|
|
50
50
|
"import": "./dist/exports/verify.js"
|
|
51
|
+
},
|
|
52
|
+
"./test-utils": {
|
|
53
|
+
"types": "./dist/exports/test-utils.d.ts",
|
|
54
|
+
"import": "./dist/exports/test-utils.js"
|
|
55
|
+
},
|
|
56
|
+
"./schema-verify": {
|
|
57
|
+
"types": "./dist/exports/schema-verify.d.ts",
|
|
58
|
+
"import": "./dist/exports/schema-verify.js"
|
|
51
59
|
}
|
|
52
60
|
},
|
|
53
61
|
"scripts": {
|
|
54
62
|
"build": "tsup --config tsup.config.ts",
|
|
55
|
-
"test": "vitest run
|
|
56
|
-
"test:coverage": "vitest run --coverage
|
|
63
|
+
"test": "vitest run",
|
|
64
|
+
"test:coverage": "vitest run --coverage",
|
|
57
65
|
"typecheck": "tsc --project tsconfig.json --noEmit",
|
|
58
|
-
"lint": "biome check . --config-path
|
|
59
|
-
"clean": "node
|
|
66
|
+
"lint": "biome check . --config-path ../../../../biome.json --error-on-warnings",
|
|
67
|
+
"clean": "node ../../../../scripts/clean.mjs"
|
|
60
68
|
}
|
|
61
69
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/verify.ts"],"sourcesContent":["import type { ContractMarkerRecord } from '@prisma-next/contract/types';\nimport type {\n ControlAdapterDescriptor,\n ControlDriverInstance,\n ControlExtensionDescriptor,\n ControlTargetDescriptor,\n} from '@prisma-next/core-control-plane/types';\nimport { type } from 'arktype';\n\nconst MetaSchema = type({ '[string]': 'unknown' });\n\nfunction parseMeta(meta: unknown): Record<string, unknown> {\n if (meta === null || meta === undefined) {\n return {};\n }\n\n let parsed: unknown;\n if (typeof meta === 'string') {\n try {\n parsed = JSON.parse(meta);\n } catch {\n return {};\n }\n } else {\n parsed = meta;\n }\n\n const result = MetaSchema(parsed);\n if (result instanceof type.errors) {\n return {};\n }\n\n return result as Record<string, unknown>;\n}\n\nconst ContractMarkerRowSchema = type({\n core_hash: 'string',\n profile_hash: 'string',\n 'contract_json?': 'unknown | null',\n 'canonical_version?': 'number | null',\n 'updated_at?': 'Date | string',\n 'app_tag?': 'string | null',\n 'meta?': 'unknown | null',\n});\n\n/**\n * Parses a contract marker row from database query result.\n * This is SQL-specific parsing logic (handles SQL row structure with snake_case columns).\n */\nexport function parseContractMarkerRow(row: unknown): ContractMarkerRecord {\n const result = ContractMarkerRowSchema(row);\n if (result instanceof type.errors) {\n const messages = result.map((p: { message: string }) => p.message).join('; ');\n throw new Error(`Invalid contract marker row: ${messages}`);\n }\n\n const validatedRow = result as {\n core_hash: string;\n profile_hash: string;\n contract_json?: unknown | null;\n canonical_version?: number | null;\n updated_at?: Date | string;\n app_tag?: string | null;\n meta?: unknown | null;\n };\n\n const updatedAt = validatedRow.updated_at\n ? validatedRow.updated_at instanceof Date\n ? validatedRow.updated_at\n : new Date(validatedRow.updated_at)\n : new Date();\n\n return {\n coreHash: validatedRow.core_hash,\n profileHash: validatedRow.profile_hash,\n contractJson: validatedRow.contract_json ?? null,\n canonicalVersion: validatedRow.canonical_version ?? null,\n updatedAt,\n appTag: validatedRow.app_tag ?? null,\n meta: parseMeta(validatedRow.meta),\n };\n}\n\n/**\n * Returns the SQL statement to read the contract marker.\n * This is a migration-plane helper (no runtime imports).\n * @internal - Used internally by readMarker(). Prefer readMarker() for Control Plane usage.\n */\nexport function readMarkerSql(): { readonly sql: string; readonly params: readonly unknown[] } {\n return {\n sql: `select\n core_hash,\n profile_hash,\n contract_json,\n canonical_version,\n updated_at,\n app_tag,\n meta\n from prisma_contract.marker\n where id = $1`,\n params: [1],\n };\n}\n\n/**\n * Reads the contract marker from the database using the provided driver.\n * Returns the parsed marker record or null if no marker is found.\n * This abstracts SQL-specific details from the Control Plane.\n *\n * @param driver - ControlDriverInstance instance for executing queries\n * @returns Promise resolving to ContractMarkerRecord or null if marker not found\n */\nexport async function readMarker(\n driver: ControlDriverInstance,\n): Promise<ContractMarkerRecord | null> {\n const markerStatement = readMarkerSql();\n const queryResult = await driver.query<{\n core_hash: string;\n profile_hash: string;\n contract_json: unknown | null;\n canonical_version: number | null;\n updated_at: Date | string;\n app_tag: string | null;\n meta: unknown | null;\n }>(markerStatement.sql, markerStatement.params);\n\n if (queryResult.rows.length === 0) {\n return null;\n }\n\n const markerRow = queryResult.rows[0];\n if (!markerRow) {\n // If rows array has length > 0 but first element is undefined, this is an unexpected result structure\n throw new Error('Database query returned unexpected result structure');\n }\n\n return parseContractMarkerRow(markerRow);\n}\n\n/**\n * Collects supported codec type IDs from adapter and extension manifests.\n * Returns a sorted, unique array of type IDs that are declared in the manifests.\n * This enables coverage checks by comparing contract column types against supported types.\n *\n * Note: This extracts type IDs from manifest type imports, not from runtime codec registries.\n * The manifests declare which codec types are available, but the actual type IDs\n * are defined in the codec-types TypeScript modules that are imported.\n *\n * For MVP, we return an empty array since extracting type IDs from TypeScript modules\n * would require runtime evaluation or static analysis. This can be enhanced later.\n */\nexport function collectSupportedCodecTypeIds<TFamilyId extends string, TTargetId extends string>(\n descriptors: ReadonlyArray<\n | ControlTargetDescriptor<TFamilyId, TTargetId>\n | ControlAdapterDescriptor<TFamilyId, TTargetId>\n | ControlExtensionDescriptor<TFamilyId, TTargetId>\n >,\n): readonly string[] {\n // For MVP, return empty array\n // Future enhancement: Extract type IDs from codec-types modules via static analysis\n // or require manifests to explicitly list supported type IDs\n void descriptors;\n return [];\n}\n"],"mappings":";AAOA,SAAS,YAAY;AAErB,IAAM,aAAa,KAAK,EAAE,YAAY,UAAU,CAAC;AAEjD,SAAS,UAAU,MAAwC;AACzD,MAAI,SAAS,QAAQ,SAAS,QAAW;AACvC,WAAO,CAAC;AAAA,EACV;AAEA,MAAI;AACJ,MAAI,OAAO,SAAS,UAAU;AAC5B,QAAI;AACF,eAAS,KAAK,MAAM,IAAI;AAAA,IAC1B,QAAQ;AACN,aAAO,CAAC;AAAA,IACV;AAAA,EACF,OAAO;AACL,aAAS;AAAA,EACX;AAEA,QAAM,SAAS,WAAW,MAAM;AAChC,MAAI,kBAAkB,KAAK,QAAQ;AACjC,WAAO,CAAC;AAAA,EACV;AAEA,SAAO;AACT;AAEA,IAAM,0BAA0B,KAAK;AAAA,EACnC,WAAW;AAAA,EACX,cAAc;AAAA,EACd,kBAAkB;AAAA,EAClB,sBAAsB;AAAA,EACtB,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,SAAS;AACX,CAAC;AAMM,SAAS,uBAAuB,KAAoC;AACzE,QAAM,SAAS,wBAAwB,GAAG;AAC1C,MAAI,kBAAkB,KAAK,QAAQ;AACjC,UAAM,WAAW,OAAO,IAAI,CAAC,MAA2B,EAAE,OAAO,EAAE,KAAK,IAAI;AAC5E,UAAM,IAAI,MAAM,gCAAgC,QAAQ,EAAE;AAAA,EAC5D;AAEA,QAAM,eAAe;AAUrB,QAAM,YAAY,aAAa,aAC3B,aAAa,sBAAsB,OACjC,aAAa,aACb,IAAI,KAAK,aAAa,UAAU,IAClC,oBAAI,KAAK;AAEb,SAAO;AAAA,IACL,UAAU,aAAa;AAAA,IACvB,aAAa,aAAa;AAAA,IAC1B,cAAc,aAAa,iBAAiB;AAAA,IAC5C,kBAAkB,aAAa,qBAAqB;AAAA,IACpD;AAAA,IACA,QAAQ,aAAa,WAAW;AAAA,IAChC,MAAM,UAAU,aAAa,IAAI;AAAA,EACnC;AACF;AAOO,SAAS,gBAA+E;AAC7F,SAAO;AAAA,IACL,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUL,QAAQ,CAAC,CAAC;AAAA,EACZ;AACF;AAUA,eAAsB,WACpB,QACsC;AACtC,QAAM,kBAAkB,cAAc;AACtC,QAAM,cAAc,MAAM,OAAO,MAQ9B,gBAAgB,KAAK,gBAAgB,MAAM;AAE9C,MAAI,YAAY,KAAK,WAAW,GAAG;AACjC,WAAO;AAAA,EACT;AAEA,QAAM,YAAY,YAAY,KAAK,CAAC;AACpC,MAAI,CAAC,WAAW;AAEd,UAAM,IAAI,MAAM,qDAAqD;AAAA,EACvE;AAEA,SAAO,uBAAuB,SAAS;AACzC;AAcO,SAAS,6BACd,aAKmB;AAInB,OAAK;AACL,SAAO,CAAC;AACV;","names":[]}
|