@prisma-next/errors
Advanced tools
| import { r as CliStructuredError } from "./control-B20v3PXT.mjs"; | ||
| import { SchemaIssue, VerifyDatabaseSchemaResult } from "@prisma-next/framework-components/control"; | ||
| import { SchemaDiffIssue, VerifyDatabaseSchemaResult } from "@prisma-next/framework-components/control"; | ||
@@ -63,3 +63,3 @@ //#region src/execution.d.ts | ||
| * Schema verification found mismatches between the database and the contract. | ||
| * The full verification tree is preserved in `meta.verificationResult`. | ||
| * The full verification result is preserved in `meta.verificationResult`. | ||
| */ | ||
@@ -69,3 +69,3 @@ declare function errorSchemaVerificationFailed(options: { | ||
| readonly verificationResult: VerifyDatabaseSchemaResult; | ||
| readonly issues?: readonly SchemaIssue[]; | ||
| readonly issues?: readonly SchemaDiffIssue[]; | ||
| }): CliStructuredError; | ||
@@ -72,0 +72,0 @@ /** |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"execution.d.mts","names":[],"sources":["../src/execution.ts"],"mappings":";;;;;;AAcA;iBAAgB,kBAAA,CAAmB,OAAA;EAAA,SAAqB,GAAA;AAAA,IAAiB,kBAAkB;;;;iBAW3E,iBAAA,CAAkB,OAAA;EAAA,SACvB,GAAA;EAAA,SACA,QAAA;EAAA,SACA,MAAA;AAAA,IACP,kBAAkB;;;;iBAmBN,mBAAA,CACd,QAAA,UACA,MAAA,UACA,OAAA;EAAA,SACW,GAAA;AAAA,IAEV,kBAAkB;;AAzBC;AAmBtB;iBAoBgB,qBAAA,CAAsB,OAAA;EAAA,SAC3B,GAAA;EAAA,SACA,KAAA;EAAA,SACA,cAAA;AAAA,IACP,kBAAkB;;;;iBAYN,qBAAA,CAAsB,OAAA;EAAA,SAC3B,GAAA;EAAA,SACA,KAAA;EAAA,SACA,cAAA;AAAA,IACP,kBAAkB;AAAA,iBAyCN,sBAAA,CACd,GAAA,WACA,OAAA;EAAA,SAAoB,KAAA;EAAA,SAAwB,cAAA;AAAA;AAAA,iBA0BxB,2BAAA,IACpB,SAAA,QAAiB,OAAA,CAAQ,CAAA,GACzB,OAAA;EAAA,SAAoB,KAAA;EAAA,SAAwB,cAAA;AAAA,IAC3C,OAAA,CAAQ,CAAA;AAAA,iBAQK,oBAAA,IACd,GAAA,WACA,KAAA,GAAQ,KAAA,cAAmB,CAAA,EAC3B,OAAA;EAAA,SAAoB,KAAA;EAAA,SAAwB,cAAA;AAAA,IAC3C,CAAC;;;;;iBAYY,mBAAA,CAAoB,OAAA;EAAA,SACzB,GAAA;EAAA,SACA,GAAA;AAAA,IACP,kBAAkB;;;;;iBAYN,6BAAA,CAA8B,OAAA;EAAA,SACnC,OAAA;EAAA,SACA,kBAAA,EAAoB,0BAAA;EAAA,SACpB,MAAA,YAAkB,WAAA;AAAA,IACzB,kBAAA;AA9CJ;;;AAAA,iBA6DgB,iBAAA,CACd,OAAA,UACA,OAAA;EAAA,SACW,GAAA;EAAA,SACA,GAAA;EAAA,SACA,IAAA,GAAO,MAAA;AAAA,IAEjB,kBAAkB;;cAUR,8BAAA;;;;iBAKG,uBAAA,CACd,OAAA,UACA,OAAA;EAAA,SACW,GAAA;EAAA,SACA,GAAA;EAAA,SACA,IAAA,GAAO,MAAA;AAAA,IAEjB,kBAAkB;;AAvFT;AAQZ;iBA2FgB,YAAA,CACd,OAAA,UACA,OAAA;EAAA,SACW,GAAA;EAAA,SACA,GAAA;EAAA,SACA,IAAA,GAAO,MAAA;AAAA,IAEjB,kBAAkB"} | ||
| {"version":3,"file":"execution.d.mts","names":[],"sources":["../src/execution.ts"],"mappings":";;;;;;AAcA;iBAAgB,kBAAA,CAAmB,OAAA;EAAA,SAAqB,GAAA;AAAA,IAAiB,kBAAkB;;;;iBAW3E,iBAAA,CAAkB,OAAA;EAAA,SACvB,GAAA;EAAA,SACA,QAAA;EAAA,SACA,MAAA;AAAA,IACP,kBAAkB;;;;iBAmBN,mBAAA,CACd,QAAA,UACA,MAAA,UACA,OAAA;EAAA,SACW,GAAA;AAAA,IAEV,kBAAkB;;AAzBC;AAmBtB;iBAoBgB,qBAAA,CAAsB,OAAA;EAAA,SAC3B,GAAA;EAAA,SACA,KAAA;EAAA,SACA,cAAA;AAAA,IACP,kBAAkB;;;;iBAYN,qBAAA,CAAsB,OAAA;EAAA,SAC3B,GAAA;EAAA,SACA,KAAA;EAAA,SACA,cAAA;AAAA,IACP,kBAAkB;AAAA,iBAyCN,sBAAA,CACd,GAAA,WACA,OAAA;EAAA,SAAoB,KAAA;EAAA,SAAwB,cAAA;AAAA;AAAA,iBA0BxB,2BAAA,IACpB,SAAA,QAAiB,OAAA,CAAQ,CAAA,GACzB,OAAA;EAAA,SAAoB,KAAA;EAAA,SAAwB,cAAA;AAAA,IAC3C,OAAA,CAAQ,CAAA;AAAA,iBAQK,oBAAA,IACd,GAAA,WACA,KAAA,GAAQ,KAAA,cAAmB,CAAA,EAC3B,OAAA;EAAA,SAAoB,KAAA;EAAA,SAAwB,cAAA;AAAA,IAC3C,CAAC;;;;;iBAYY,mBAAA,CAAoB,OAAA;EAAA,SACzB,GAAA;EAAA,SACA,GAAA;AAAA,IACP,kBAAkB;;;;;iBAYN,6BAAA,CAA8B,OAAA;EAAA,SACnC,OAAA;EAAA,SACA,kBAAA,EAAoB,0BAAA;EAAA,SACpB,MAAA,YAAkB,eAAA;AAAA,IACzB,kBAAA;AA9CJ;;;AAAA,iBA6DgB,iBAAA,CACd,OAAA,UACA,OAAA;EAAA,SACW,GAAA;EAAA,SACA,GAAA;EAAA,SACA,IAAA,GAAO,MAAA;AAAA,IAEjB,kBAAkB;;cAUR,8BAAA;;;;iBAKG,uBAAA,CACd,OAAA,UACA,OAAA;EAAA,SACW,GAAA;EAAA,SACA,GAAA;EAAA,SACA,IAAA,GAAO,MAAA;AAAA,IAEjB,kBAAkB;;AAvFT;AAQZ;iBA2FgB,YAAA,CACd,OAAA,UACA,OAAA;EAAA,SACW,GAAA;EAAA,SACA,GAAA;EAAA,SACA,IAAA,GAAO,MAAA;AAAA,IAEjB,kBAAkB"} |
@@ -126,3 +126,3 @@ import { t as CliStructuredError } from "./control-BVMQqofj.mjs"; | ||
| * Schema verification found mismatches between the database and the contract. | ||
| * The full verification tree is preserved in `meta.verificationResult`. | ||
| * The full verification result is preserved in `meta.verificationResult`. | ||
| */ | ||
@@ -129,0 +129,0 @@ function errorSchemaVerificationFailed(options) { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"execution.mjs","names":[],"sources":["../src/execution.ts"],"sourcesContent":["import type {\n SchemaIssue,\n VerifyDatabaseSchemaResult,\n} from '@prisma-next/framework-components/control';\nimport { ifDefined } from '@prisma-next/utils/defined';\nimport { CliStructuredError } from './control';\n\n// ============================================================================\n// Runtime Errors (PN-RUN-3000-3030)\n// ============================================================================\n\n/**\n * Contract marker not found in database.\n */\nexport function errorMarkerMissing(options?: { readonly why?: string }): CliStructuredError {\n return new CliStructuredError('3001', 'Database not signed', {\n domain: 'RUN',\n why: options?.why ?? 'No database signature (marker) found',\n fix: 'Run `prisma-next db sign --db <url>` to sign the database',\n });\n}\n\n/**\n * Contract hash does not match database marker.\n */\nexport function errorHashMismatch(options?: {\n readonly why?: string;\n readonly expected?: string;\n readonly actual?: string;\n}): CliStructuredError {\n return new CliStructuredError('3002', 'Hash mismatch', {\n domain: 'RUN',\n why: options?.why ?? 'Contract hash does not match database marker',\n fix: 'Migrate database or re-sign if intentional',\n ...(options?.expected !== undefined || options?.actual !== undefined\n ? {\n meta: {\n ...ifDefined('expected', options?.expected),\n ...ifDefined('actual', options?.actual),\n },\n }\n : {}),\n });\n}\n\n/**\n * Contract target does not match config target.\n */\nexport function errorTargetMismatch(\n expected: string,\n actual: string,\n options?: {\n readonly why?: string;\n },\n): CliStructuredError {\n return new CliStructuredError('3003', 'Target mismatch', {\n domain: 'RUN',\n why:\n options?.why ??\n `Contract target does not match config target (expected: ${expected}, actual: ${actual})`,\n fix: 'Align contract target and config target',\n meta: { expected, actual },\n });\n}\n\n/**\n * Marker row exists but column values fail schema validation.\n */\nexport function errorMarkerRowCorrupt(options: {\n readonly why: string;\n readonly space: string;\n readonly markerLocation: string;\n}): CliStructuredError {\n return new CliStructuredError('3005', 'Marker row is corrupt or incompatible', {\n domain: 'RUN',\n why: options.why,\n fix: `The ${options.markerLocation} row for space \"${options.space}\" contains invalid data. Delete the row, then run \\`prisma-next db sign --db <url>\\` to write a fresh marker.`,\n meta: { space: options.space },\n });\n}\n\n/**\n * Driver-level failure while reading the contract marker table.\n */\nexport function errorMarkerReadFailed(options: {\n readonly why: string;\n readonly space: string;\n readonly markerLocation: string;\n}): CliStructuredError {\n return new CliStructuredError('3006', 'Database error while reading contract marker', {\n domain: 'RUN',\n why: options.why,\n fix: `Could not read marker at ${options.markerLocation} for space \"${options.space}\". Verify read permissions, connectivity, and locks, then retry.`,\n meta: { space: options.space },\n });\n}\n\nfunction isMarkerRowParseError(err: unknown): err is Error {\n return (\n err instanceof Error &&\n (err.message.startsWith('Invalid contract marker row:') ||\n err.message.startsWith('Invalid marker doc on'))\n );\n}\n\nfunction isLegacyMarkerShapeReadError(message: string): boolean {\n const normalized = message.toLowerCase();\n return (\n normalized.includes('column \"space\" does not exist') ||\n normalized.includes('no such column: space')\n );\n}\n\nfunction errorLegacyMarkerShape(options: {\n readonly why: string;\n readonly markerLocation: string;\n}): CliStructuredError {\n return errorRunnerFailed(\n `Legacy marker-table shape detected on ${options.markerLocation} (no \\`space\\` column). ` +\n 'Prisma Next is in pre-1.0; the previous transitional auto-migration to the per-space-row schema has been removed. ' +\n `Drop \\`${options.markerLocation}\\` and re-run \\`prisma-next db init\\` to reinitialise from a clean baseline.`,\n {\n why: options.why,\n fix: 'Legacy marker-table shape detected. Drop `prisma_contract.marker` (Postgres) or `_prisma_marker` (SQLite) and re-run `prisma-next db init` to recreate it with the current per-space schema.',\n meta: { code: 'RUNNER_FAILED', runnerErrorCode: 'LEGACY_MARKER_SHAPE' },\n },\n );\n}\n\nexport function rethrowMarkerReadError(\n err: unknown,\n context: { readonly space: string; readonly markerLocation: string },\n): never {\n if (CliStructuredError.is(err)) {\n throw err;\n }\n if (isMarkerRowParseError(err)) {\n throw errorMarkerRowCorrupt({\n why: err.message,\n space: context.space,\n markerLocation: context.markerLocation,\n });\n }\n const message = err instanceof Error ? err.message : String(err);\n if (isLegacyMarkerShapeReadError(message)) {\n throw errorLegacyMarkerShape({\n why: message,\n markerLocation: context.markerLocation,\n });\n }\n throw errorMarkerReadFailed({\n why: message,\n space: context.space,\n markerLocation: context.markerLocation,\n });\n}\n\nexport async function withMarkerReadErrorHandling<T>(\n operation: () => Promise<T>,\n context: { readonly space: string; readonly markerLocation: string },\n): Promise<T> {\n try {\n return await operation();\n } catch (err) {\n rethrowMarkerReadError(err, context);\n }\n}\n\nexport function parseMarkerRowSafely<T>(\n row: unknown,\n parse: (value: unknown) => T,\n context: { readonly space: string; readonly markerLocation: string },\n): T {\n try {\n return parse(row);\n } catch (err) {\n rethrowMarkerReadError(err, context);\n }\n}\n\n/**\n * Database marker is required but not found.\n * Used by commands that require a pre-existing marker as a precondition.\n */\nexport function errorMarkerRequired(options?: {\n readonly why?: string;\n readonly fix?: string;\n}): CliStructuredError {\n return new CliStructuredError('3010', 'Database must be signed first', {\n domain: 'RUN',\n why: options?.why ?? 'No database signature (marker) found',\n fix: options?.fix ?? 'Run `prisma-next db init` first to sign the database',\n });\n}\n\n/**\n * Schema verification found mismatches between the database and the contract.\n * The full verification tree is preserved in `meta.verificationResult`.\n */\nexport function errorSchemaVerificationFailed(options: {\n readonly summary: string;\n readonly verificationResult: VerifyDatabaseSchemaResult;\n readonly issues?: readonly SchemaIssue[];\n}): CliStructuredError {\n return new CliStructuredError('3004', options.summary, {\n domain: 'RUN',\n why: 'Database schema does not satisfy the contract',\n fix: 'Run `prisma-next db update` to reconcile, or adjust your contract to match the database',\n meta: {\n verificationResult: options.verificationResult,\n ...ifDefined('issues', options.issues),\n },\n });\n}\n\n/**\n * Migration runner failed during execution.\n */\nexport function errorRunnerFailed(\n summary: string,\n options?: {\n readonly why?: string;\n readonly fix?: string;\n readonly meta?: Record<string, unknown>;\n },\n): CliStructuredError {\n return new CliStructuredError('3020', summary, {\n domain: 'RUN',\n why: options?.why ?? 'Migration runner failed',\n fix: options?.fix ?? 'Inspect the reported conflict and reconcile schema drift',\n ...(options?.meta ? { meta: options.meta } : {}),\n });\n}\n\n/** Error code for destructive changes that require explicit confirmation. */\nexport const ERROR_CODE_DESTRUCTIVE_CHANGES = '3030';\n\n/**\n * Destructive operations require explicit confirmation via -y/--yes.\n */\nexport function errorDestructiveChanges(\n summary: string,\n options?: {\n readonly why?: string;\n readonly fix?: string;\n readonly meta?: Record<string, unknown>;\n },\n): CliStructuredError {\n return new CliStructuredError(ERROR_CODE_DESTRUCTIVE_CHANGES, summary, {\n domain: 'RUN',\n why: options?.why ?? 'Planned operations include destructive changes that require confirmation',\n fix: options?.fix ?? 'Re-run with `-y` to apply, or use `--dry-run` to preview first',\n ...(options?.meta ? { meta: options.meta } : {}),\n });\n}\n\n/**\n * Generic runtime error.\n */\nexport function errorRuntime(\n summary: string,\n options?: {\n readonly why?: string;\n readonly fix?: string;\n readonly meta?: Record<string, unknown>;\n },\n): CliStructuredError {\n return new CliStructuredError('3000', summary, {\n domain: 'RUN',\n ...(options?.why ? { why: options.why } : { why: 'Verification failed' }),\n ...(options?.fix ? { fix: options.fix } : { fix: 'Check contract and database state' }),\n ...(options?.meta ? { meta: options.meta } : {}),\n });\n}\n"],"mappings":"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"} | ||
| {"version":3,"file":"execution.mjs","names":[],"sources":["../src/execution.ts"],"sourcesContent":["import type {\n SchemaDiffIssue,\n VerifyDatabaseSchemaResult,\n} from '@prisma-next/framework-components/control';\nimport { ifDefined } from '@prisma-next/utils/defined';\nimport { CliStructuredError } from './control';\n\n// ============================================================================\n// Runtime Errors (PN-RUN-3000-3030)\n// ============================================================================\n\n/**\n * Contract marker not found in database.\n */\nexport function errorMarkerMissing(options?: { readonly why?: string }): CliStructuredError {\n return new CliStructuredError('3001', 'Database not signed', {\n domain: 'RUN',\n why: options?.why ?? 'No database signature (marker) found',\n fix: 'Run `prisma-next db sign --db <url>` to sign the database',\n });\n}\n\n/**\n * Contract hash does not match database marker.\n */\nexport function errorHashMismatch(options?: {\n readonly why?: string;\n readonly expected?: string;\n readonly actual?: string;\n}): CliStructuredError {\n return new CliStructuredError('3002', 'Hash mismatch', {\n domain: 'RUN',\n why: options?.why ?? 'Contract hash does not match database marker',\n fix: 'Migrate database or re-sign if intentional',\n ...(options?.expected !== undefined || options?.actual !== undefined\n ? {\n meta: {\n ...ifDefined('expected', options?.expected),\n ...ifDefined('actual', options?.actual),\n },\n }\n : {}),\n });\n}\n\n/**\n * Contract target does not match config target.\n */\nexport function errorTargetMismatch(\n expected: string,\n actual: string,\n options?: {\n readonly why?: string;\n },\n): CliStructuredError {\n return new CliStructuredError('3003', 'Target mismatch', {\n domain: 'RUN',\n why:\n options?.why ??\n `Contract target does not match config target (expected: ${expected}, actual: ${actual})`,\n fix: 'Align contract target and config target',\n meta: { expected, actual },\n });\n}\n\n/**\n * Marker row exists but column values fail schema validation.\n */\nexport function errorMarkerRowCorrupt(options: {\n readonly why: string;\n readonly space: string;\n readonly markerLocation: string;\n}): CliStructuredError {\n return new CliStructuredError('3005', 'Marker row is corrupt or incompatible', {\n domain: 'RUN',\n why: options.why,\n fix: `The ${options.markerLocation} row for space \"${options.space}\" contains invalid data. Delete the row, then run \\`prisma-next db sign --db <url>\\` to write a fresh marker.`,\n meta: { space: options.space },\n });\n}\n\n/**\n * Driver-level failure while reading the contract marker table.\n */\nexport function errorMarkerReadFailed(options: {\n readonly why: string;\n readonly space: string;\n readonly markerLocation: string;\n}): CliStructuredError {\n return new CliStructuredError('3006', 'Database error while reading contract marker', {\n domain: 'RUN',\n why: options.why,\n fix: `Could not read marker at ${options.markerLocation} for space \"${options.space}\". Verify read permissions, connectivity, and locks, then retry.`,\n meta: { space: options.space },\n });\n}\n\nfunction isMarkerRowParseError(err: unknown): err is Error {\n return (\n err instanceof Error &&\n (err.message.startsWith('Invalid contract marker row:') ||\n err.message.startsWith('Invalid marker doc on'))\n );\n}\n\nfunction isLegacyMarkerShapeReadError(message: string): boolean {\n const normalized = message.toLowerCase();\n return (\n normalized.includes('column \"space\" does not exist') ||\n normalized.includes('no such column: space')\n );\n}\n\nfunction errorLegacyMarkerShape(options: {\n readonly why: string;\n readonly markerLocation: string;\n}): CliStructuredError {\n return errorRunnerFailed(\n `Legacy marker-table shape detected on ${options.markerLocation} (no \\`space\\` column). ` +\n 'Prisma Next is in pre-1.0; the previous transitional auto-migration to the per-space-row schema has been removed. ' +\n `Drop \\`${options.markerLocation}\\` and re-run \\`prisma-next db init\\` to reinitialise from a clean baseline.`,\n {\n why: options.why,\n fix: 'Legacy marker-table shape detected. Drop `prisma_contract.marker` (Postgres) or `_prisma_marker` (SQLite) and re-run `prisma-next db init` to recreate it with the current per-space schema.',\n meta: { code: 'RUNNER_FAILED', runnerErrorCode: 'LEGACY_MARKER_SHAPE' },\n },\n );\n}\n\nexport function rethrowMarkerReadError(\n err: unknown,\n context: { readonly space: string; readonly markerLocation: string },\n): never {\n if (CliStructuredError.is(err)) {\n throw err;\n }\n if (isMarkerRowParseError(err)) {\n throw errorMarkerRowCorrupt({\n why: err.message,\n space: context.space,\n markerLocation: context.markerLocation,\n });\n }\n const message = err instanceof Error ? err.message : String(err);\n if (isLegacyMarkerShapeReadError(message)) {\n throw errorLegacyMarkerShape({\n why: message,\n markerLocation: context.markerLocation,\n });\n }\n throw errorMarkerReadFailed({\n why: message,\n space: context.space,\n markerLocation: context.markerLocation,\n });\n}\n\nexport async function withMarkerReadErrorHandling<T>(\n operation: () => Promise<T>,\n context: { readonly space: string; readonly markerLocation: string },\n): Promise<T> {\n try {\n return await operation();\n } catch (err) {\n rethrowMarkerReadError(err, context);\n }\n}\n\nexport function parseMarkerRowSafely<T>(\n row: unknown,\n parse: (value: unknown) => T,\n context: { readonly space: string; readonly markerLocation: string },\n): T {\n try {\n return parse(row);\n } catch (err) {\n rethrowMarkerReadError(err, context);\n }\n}\n\n/**\n * Database marker is required but not found.\n * Used by commands that require a pre-existing marker as a precondition.\n */\nexport function errorMarkerRequired(options?: {\n readonly why?: string;\n readonly fix?: string;\n}): CliStructuredError {\n return new CliStructuredError('3010', 'Database must be signed first', {\n domain: 'RUN',\n why: options?.why ?? 'No database signature (marker) found',\n fix: options?.fix ?? 'Run `prisma-next db init` first to sign the database',\n });\n}\n\n/**\n * Schema verification found mismatches between the database and the contract.\n * The full verification result is preserved in `meta.verificationResult`.\n */\nexport function errorSchemaVerificationFailed(options: {\n readonly summary: string;\n readonly verificationResult: VerifyDatabaseSchemaResult;\n readonly issues?: readonly SchemaDiffIssue[];\n}): CliStructuredError {\n return new CliStructuredError('3004', options.summary, {\n domain: 'RUN',\n why: 'Database schema does not satisfy the contract',\n fix: 'Run `prisma-next db update` to reconcile, or adjust your contract to match the database',\n meta: {\n verificationResult: options.verificationResult,\n ...ifDefined('issues', options.issues),\n },\n });\n}\n\n/**\n * Migration runner failed during execution.\n */\nexport function errorRunnerFailed(\n summary: string,\n options?: {\n readonly why?: string;\n readonly fix?: string;\n readonly meta?: Record<string, unknown>;\n },\n): CliStructuredError {\n return new CliStructuredError('3020', summary, {\n domain: 'RUN',\n why: options?.why ?? 'Migration runner failed',\n fix: options?.fix ?? 'Inspect the reported conflict and reconcile schema drift',\n ...(options?.meta ? { meta: options.meta } : {}),\n });\n}\n\n/** Error code for destructive changes that require explicit confirmation. */\nexport const ERROR_CODE_DESTRUCTIVE_CHANGES = '3030';\n\n/**\n * Destructive operations require explicit confirmation via -y/--yes.\n */\nexport function errorDestructiveChanges(\n summary: string,\n options?: {\n readonly why?: string;\n readonly fix?: string;\n readonly meta?: Record<string, unknown>;\n },\n): CliStructuredError {\n return new CliStructuredError(ERROR_CODE_DESTRUCTIVE_CHANGES, summary, {\n domain: 'RUN',\n why: options?.why ?? 'Planned operations include destructive changes that require confirmation',\n fix: options?.fix ?? 'Re-run with `-y` to apply, or use `--dry-run` to preview first',\n ...(options?.meta ? { meta: options.meta } : {}),\n });\n}\n\n/**\n * Generic runtime error.\n */\nexport function errorRuntime(\n summary: string,\n options?: {\n readonly why?: string;\n readonly fix?: string;\n readonly meta?: Record<string, unknown>;\n },\n): CliStructuredError {\n return new CliStructuredError('3000', summary, {\n domain: 'RUN',\n ...(options?.why ? { why: options.why } : { why: 'Verification failed' }),\n ...(options?.fix ? { fix: options.fix } : { fix: 'Check contract and database state' }),\n ...(options?.meta ? { meta: options.meta } : {}),\n });\n}\n"],"mappings":"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"} |
+5
-5
| { | ||
| "name": "@prisma-next/errors", | ||
| "version": "0.14.0-dev.49", | ||
| "version": "0.14.0-dev.50", | ||
| "license": "Apache-2.0", | ||
@@ -9,8 +9,8 @@ "type": "module", | ||
| "dependencies": { | ||
| "@prisma-next/framework-components": "0.14.0-dev.49", | ||
| "@prisma-next/utils": "0.14.0-dev.49" | ||
| "@prisma-next/framework-components": "0.14.0-dev.50", | ||
| "@prisma-next/utils": "0.14.0-dev.50" | ||
| }, | ||
| "devDependencies": { | ||
| "@prisma-next/tsconfig": "0.14.0-dev.49", | ||
| "@prisma-next/tsdown": "0.14.0-dev.49", | ||
| "@prisma-next/tsconfig": "0.14.0-dev.50", | ||
| "@prisma-next/tsdown": "0.14.0-dev.50", | ||
| "tsdown": "0.22.1", | ||
@@ -17,0 +17,0 @@ "typescript": "5.9.3", |
+3
-3
| import type { | ||
| SchemaIssue, | ||
| SchemaDiffIssue, | ||
| VerifyDatabaseSchemaResult, | ||
@@ -198,3 +198,3 @@ } from '@prisma-next/framework-components/control'; | ||
| * Schema verification found mismatches between the database and the contract. | ||
| * The full verification tree is preserved in `meta.verificationResult`. | ||
| * The full verification result is preserved in `meta.verificationResult`. | ||
| */ | ||
@@ -204,3 +204,3 @@ export function errorSchemaVerificationFailed(options: { | ||
| readonly verificationResult: VerifyDatabaseSchemaResult; | ||
| readonly issues?: readonly SchemaIssue[]; | ||
| readonly issues?: readonly SchemaDiffIssue[]; | ||
| }): CliStructuredError { | ||
@@ -207,0 +207,0 @@ return new CliStructuredError('3004', options.summary, { |
142283
0.02%+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed