@prisma-next/sql-runtime 0.3.0-dev.3 → 0.3.0-dev.30

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 (53) hide show
  1. package/README.md +1 -2
  2. package/dist/{accelerate-EEKAFGN3-SHR4XFVV.js → accelerate-EEKAFGN3-P6A6XJWJ.js} +28 -28
  3. package/dist/{accelerate-EEKAFGN3-SHR4XFVV.js.map → accelerate-EEKAFGN3-P6A6XJWJ.js.map} +1 -1
  4. package/dist/{chunk-C6I3V3DM.js → chunk-APA6GHYY.js} +84 -2
  5. package/dist/chunk-APA6GHYY.js.map +1 -0
  6. package/dist/{dist-LCVVJCGI.js → dist-AQ3LWXOX.js} +13 -13
  7. package/dist/{dist-LCVVJCGI.js.map → dist-AQ3LWXOX.js.map} +1 -1
  8. package/dist/index.js +1 -1
  9. package/dist/src/codecs/decoding.d.ts +4 -0
  10. package/dist/src/codecs/decoding.d.ts.map +1 -0
  11. package/dist/src/codecs/encoding.d.ts +5 -0
  12. package/dist/src/codecs/encoding.d.ts.map +1 -0
  13. package/dist/src/codecs/validation.d.ts +6 -0
  14. package/dist/src/codecs/validation.d.ts.map +1 -0
  15. package/dist/src/exports/index.d.ts +11 -0
  16. package/dist/src/exports/index.d.ts.map +1 -0
  17. package/dist/src/index.d.ts +2 -0
  18. package/dist/src/index.d.ts.map +1 -0
  19. package/dist/src/lower-sql-plan.d.ts +15 -0
  20. package/dist/src/lower-sql-plan.d.ts.map +1 -0
  21. package/dist/src/sql-context.d.ts +130 -0
  22. package/dist/src/sql-context.d.ts.map +1 -0
  23. package/dist/src/sql-family-adapter.d.ts +10 -0
  24. package/dist/src/sql-family-adapter.d.ts.map +1 -0
  25. package/dist/src/sql-marker.d.ts +22 -0
  26. package/dist/src/sql-marker.d.ts.map +1 -0
  27. package/dist/src/sql-runtime.d.ts +25 -0
  28. package/dist/src/sql-runtime.d.ts.map +1 -0
  29. package/dist/test/utils.d.ts +20 -24
  30. package/dist/test/utils.d.ts.map +1 -0
  31. package/dist/test/utils.js +26 -26
  32. package/dist/test/utils.js.map +1 -1
  33. package/package.json +25 -22
  34. package/src/codecs/decoding.ts +140 -0
  35. package/src/codecs/encoding.ts +76 -0
  36. package/src/codecs/validation.ts +67 -0
  37. package/src/exports/index.ts +40 -0
  38. package/src/index.ts +1 -0
  39. package/src/lower-sql-plan.ts +32 -0
  40. package/src/sql-context.ts +402 -0
  41. package/src/sql-family-adapter.ts +43 -0
  42. package/src/sql-marker.ts +105 -0
  43. package/src/sql-runtime.ts +166 -0
  44. package/test/async-iterable-result.test.ts +136 -0
  45. package/test/context.types.test-d.ts +70 -0
  46. package/test/parameterized-types.test.ts +553 -0
  47. package/test/sql-context.test.ts +217 -0
  48. package/test/sql-family-adapter.test.ts +86 -0
  49. package/test/sql-runtime.test.ts +155 -0
  50. package/test/utils.ts +266 -0
  51. package/dist/chunk-C6I3V3DM.js.map +0 -1
  52. package/dist/index.d.ts +0 -29
  53. package/dist/sql-runtime-DgEbg2OP.d.ts +0 -109
@@ -66,6 +66,80 @@ function lowerSqlPlan(context, queryPlan) {
66
66
  // src/sql-context.ts
67
67
  import { createOperationRegistry } from "@prisma-next/operations";
68
68
  import { createCodecRegistry } from "@prisma-next/sql-relational-core/ast";
69
+ import { type as arktype } from "arktype";
70
+ function runtimeTypeParamsInvalid(message, details) {
71
+ const error = new Error(message);
72
+ Object.defineProperty(error, "name", { value: "RuntimeError", configurable: true });
73
+ return Object.assign(error, {
74
+ code: "RUNTIME.TYPE_PARAMS_INVALID",
75
+ category: "RUNTIME",
76
+ severity: "error",
77
+ details
78
+ });
79
+ }
80
+ function validateTypeParams(typeParams, codecDescriptor, context) {
81
+ const result = codecDescriptor.paramsSchema(typeParams);
82
+ if (result instanceof arktype.errors) {
83
+ const messages = result.map((p) => p.message).join("; ");
84
+ const locationInfo = context.typeName ? `type '${context.typeName}'` : `column '${context.tableName}.${context.columnName}'`;
85
+ throw runtimeTypeParamsInvalid(
86
+ `Invalid typeParams for ${locationInfo} (codecId: ${codecDescriptor.codecId}): ${messages}`,
87
+ { ...context, codecId: codecDescriptor.codecId, typeParams }
88
+ );
89
+ }
90
+ return result;
91
+ }
92
+ function collectParameterizedCodecDescriptors(extensionInstances) {
93
+ const descriptors = /* @__PURE__ */ new Map();
94
+ for (const extInstance of extensionInstances) {
95
+ const paramCodecs = extInstance.parameterizedCodecs?.();
96
+ if (paramCodecs) {
97
+ for (const descriptor of paramCodecs) {
98
+ if (descriptors.has(descriptor.codecId)) {
99
+ console.warn(
100
+ `Duplicate parameterized codec descriptor for codecId '${descriptor.codecId}' - using later registration`
101
+ );
102
+ }
103
+ descriptors.set(descriptor.codecId, descriptor);
104
+ }
105
+ }
106
+ }
107
+ return descriptors;
108
+ }
109
+ function initializeTypeHelpers(storageTypes, codecDescriptors) {
110
+ const helpers = {};
111
+ if (!storageTypes) {
112
+ return helpers;
113
+ }
114
+ for (const [typeName, typeInstance] of Object.entries(storageTypes)) {
115
+ const descriptor = codecDescriptors.get(typeInstance.codecId);
116
+ if (descriptor) {
117
+ const validatedParams = validateTypeParams(typeInstance.typeParams, descriptor, {
118
+ typeName
119
+ });
120
+ if (descriptor.init) {
121
+ helpers[typeName] = descriptor.init(validatedParams);
122
+ } else {
123
+ helpers[typeName] = typeInstance;
124
+ }
125
+ } else {
126
+ helpers[typeName] = typeInstance;
127
+ }
128
+ }
129
+ return helpers;
130
+ }
131
+ function validateColumnTypeParams(storage, codecDescriptors) {
132
+ for (const [tableName, table] of Object.entries(storage.tables)) {
133
+ for (const [columnName, column] of Object.entries(table.columns)) {
134
+ if (column.typeParams) {
135
+ const descriptor = codecDescriptors.get(column.codecId);
136
+ if (descriptor) {
137
+ validateTypeParams(column.typeParams, descriptor, { tableName, columnName });
138
+ }
139
+ }
140
+ }
141
+ }
142
+ }
69
143
  function createRuntimeContext(options) {
70
144
  const { contract, adapter: adapterDescriptor, extensionPacks } = options;
71
145
  const adapterInstance = adapterDescriptor.create();
@@ -75,8 +149,10 @@ function createRuntimeContext(options) {
75
149
  for (const codec of adapterCodecs.values()) {
76
150
  codecRegistry.register(codec);
77
151
  }
152
+ const extensionInstances = [];
78
153
  for (const extDescriptor of extensionPacks ?? []) {
79
154
  const extInstance = extDescriptor.create();
155
+ extensionInstances.push(extInstance);
80
156
  const extCodecs = extInstance.codecs?.();
81
157
  if (extCodecs) {
82
158
  for (const codec of extCodecs.values()) {
@@ -90,11 +166,17 @@ function createRuntimeContext(options) {
90
166
  }
91
167
  }
92
168
  }
169
+ const parameterizedCodecDescriptors = collectParameterizedCodecDescriptors(extensionInstances);
170
+ if (parameterizedCodecDescriptors.size > 0) {
171
+ validateColumnTypeParams(contract.storage, parameterizedCodecDescriptors);
172
+ }
173
+ const types = initializeTypeHelpers(contract.storage.types, parameterizedCodecDescriptors);
93
174
  return {
94
175
  contract,
95
176
  adapter: adapterInstance,
96
177
  operations: operationRegistry,
97
- codecs: codecRegistry
178
+ codecs: codecRegistry,
179
+ types
98
180
  };
99
181
  }
100
182
 
@@ -452,4 +534,4 @@ export {
452
534
  budgets,
453
535
  lints
454
536
  };
455
- //# sourceMappingURL=chunk-C6I3V3DM.js.map
537
+ //# sourceMappingURL=chunk-APA6GHYY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/codecs/validation.ts","../src/lower-sql-plan.ts","../src/sql-context.ts","../src/sql-marker.ts","../src/sql-runtime.ts","../src/codecs/decoding.ts","../src/codecs/encoding.ts","../src/sql-family-adapter.ts","../src/exports/index.ts"],"sourcesContent":["import { runtimeError } from '@prisma-next/runtime-executor';\nimport type { SqlContract, SqlStorage } from '@prisma-next/sql-contract/types';\nimport type { CodecRegistry } from '@prisma-next/sql-relational-core/ast';\n\nexport function extractCodecIds(contract: SqlContract<SqlStorage>): Set<string> {\n const codecIds = new Set<string>();\n\n for (const table of Object.values(contract.storage.tables)) {\n for (const column of Object.values(table.columns)) {\n const codecId = column.codecId;\n codecIds.add(codecId);\n }\n }\n\n return codecIds;\n}\n\nfunction extractCodecIdsFromColumns(contract: SqlContract<SqlStorage>): Map<string, string> {\n const codecIds = new Map<string, string>();\n\n for (const [tableName, table] of Object.entries(contract.storage.tables)) {\n for (const [columnName, column] of Object.entries(table.columns)) {\n const codecId = column.codecId;\n const key = `${tableName}.${columnName}`;\n codecIds.set(key, codecId);\n }\n }\n\n return codecIds;\n}\n\nexport function validateContractCodecMappings(\n registry: CodecRegistry,\n contract: SqlContract<SqlStorage>,\n): void {\n const codecIds = extractCodecIdsFromColumns(contract);\n const invalidCodecs: Array<{ table: string; column: string; codecId: string }> = [];\n\n for (const [key, codecId] of codecIds.entries()) {\n if (!registry.has(codecId)) {\n const parts = key.split('.');\n const table = parts[0] ?? '';\n const column = parts[1] ?? '';\n invalidCodecs.push({ table, column, codecId });\n }\n }\n\n if (invalidCodecs.length > 0) {\n const details: Record<string, unknown> = {\n contractTarget: contract.target,\n invalidCodecs,\n };\n\n throw runtimeError(\n 'RUNTIME.CODEC_MISSING',\n `Missing codec implementations for column codecIds: ${invalidCodecs.map((c) => `${c.table}.${c.column} (${c.codecId})`).join(', ')}`,\n details,\n );\n }\n}\n\nexport function validateCodecRegistryCompleteness(\n registry: CodecRegistry,\n contract: SqlContract<SqlStorage>,\n): void {\n validateContractCodecMappings(registry, contract);\n}\n","import type { ExecutionPlan } from '@prisma-next/contract/types';\nimport type { SqlQueryPlan } from '@prisma-next/sql-relational-core/plan';\nimport type { RuntimeContext } from './sql-context';\n\n/**\n * Lowers a SQL query plan to an executable Plan by calling the adapter's lower method.\n *\n * This function is responsible for converting a lane-produced SqlQueryPlan (which contains\n * AST and params but no SQL) into a fully executable Plan (which includes SQL string).\n *\n * @param context - Runtime context containing the adapter\n * @param queryPlan - SQL query plan from a lane (contains AST, params, meta, but no SQL)\n * @returns Fully executable Plan with SQL string\n */\nexport function lowerSqlPlan<Row>(\n context: RuntimeContext,\n queryPlan: SqlQueryPlan<Row>,\n): ExecutionPlan<Row> {\n const lowered = context.adapter.lower(queryPlan.ast, {\n contract: context.contract,\n params: queryPlan.params,\n });\n\n const body = lowered.body;\n\n return Object.freeze({\n sql: body.sql,\n params: body.params ?? queryPlan.params,\n ast: queryPlan.ast,\n meta: queryPlan.meta,\n });\n}\n","import type {\n RuntimeAdapterDescriptor,\n RuntimeAdapterInstance,\n RuntimeExtensionDescriptor,\n RuntimeExtensionInstance,\n RuntimeTargetDescriptor,\n} from '@prisma-next/core-execution-plane/types';\nimport { createOperationRegistry } from '@prisma-next/operations';\nimport type { SqlContract, SqlStorage, StorageTypeInstance } from '@prisma-next/sql-contract/types';\nimport type { SqlOperationSignature } from '@prisma-next/sql-operations';\nimport type {\n Adapter,\n CodecRegistry,\n LoweredStatement,\n QueryAst,\n} from '@prisma-next/sql-relational-core/ast';\nimport { createCodecRegistry } from '@prisma-next/sql-relational-core/ast';\nimport type {\n QueryLaneContext,\n TypeHelperRegistry,\n} from '@prisma-next/sql-relational-core/query-lane-context';\nimport type { Type } from 'arktype';\nimport { type as arktype } from 'arktype';\n\n// ============================================================================\n// Runtime Parameterized Codec Descriptor Types\n// ============================================================================\n\n/**\n * Runtime parameterized codec descriptor.\n * Provides validation schema and optional init hook for codecs that support type parameters.\n * Used at runtime to validate typeParams and create type helpers.\n */\nexport interface RuntimeParameterizedCodecDescriptor<\n TParams = Record<string, unknown>,\n THelper = unknown,\n> {\n /** The codec ID this descriptor applies to (e.g., 'pg/vector@1') */\n readonly codecId: string;\n\n /**\n * Arktype schema for validating typeParams.\n * The schema is used to validate both storage.types entries and inline column typeParams.\n */\n readonly paramsSchema: Type<TParams>;\n\n /**\n * Optional init hook called during runtime context creation.\n * Receives validated params and returns a helper object to be stored in context.types.\n * If not provided, the validated params are stored directly.\n */\n readonly init?: (params: TParams) => THelper;\n}\n\n// ============================================================================\n// SQL Runtime Extension Types\n// ============================================================================\n\n/**\n * SQL runtime extension instance.\n * Extends the framework RuntimeExtensionInstance with SQL-specific hooks\n * for contributing codecs and operations to the runtime context.\n *\n * @template TTargetId - The target ID (e.g., 'postgres', 'mysql')\n */\nexport interface SqlRuntimeExtensionInstance<TTargetId extends string>\n extends RuntimeExtensionInstance<'sql', TTargetId> {\n /** Returns codecs to register in the runtime context. */\n codecs?(): CodecRegistry;\n /** Returns operations to register in the runtime context. */\n operations?(): ReadonlyArray<SqlOperationSignature>;\n /**\n * Returns parameterized codec descriptors for type validation and helper creation.\n * Uses unknown for type parameters to allow any concrete descriptor types.\n */\n // biome-ignore lint/suspicious/noExplicitAny: needed for covariance with concrete descriptor types\n parameterizedCodecs?(): ReadonlyArray<RuntimeParameterizedCodecDescriptor<any, any>>;\n}\n\n/**\n * SQL runtime extension descriptor.\n * Extends the framework RuntimeExtensionDescriptor with SQL-specific instance type.\n *\n * @template TTargetId - The target ID (e.g., 'postgres', 'mysql')\n */\nexport interface SqlRuntimeExtensionDescriptor<TTargetId extends string>\n extends RuntimeExtensionDescriptor<'sql', TTargetId, SqlRuntimeExtensionInstance<TTargetId>> {\n create(): SqlRuntimeExtensionInstance<TTargetId>;\n}\n\n// ============================================================================\n// SQL Runtime Adapter Instance\n// ============================================================================\n\n/**\n * SQL runtime adapter instance interface.\n * Combines RuntimeAdapterInstance identity with SQL Adapter behavior.\n * The instance IS an Adapter (via intersection), not HAS an adapter property.\n *\n * @template TTargetId - The target ID (e.g., 'postgres', 'mysql')\n */\nexport type SqlRuntimeAdapterInstance<TTargetId extends string = string> = RuntimeAdapterInstance<\n 'sql',\n TTargetId\n> &\n Adapter<QueryAst, SqlContract<SqlStorage>, LoweredStatement>;\n\n// ============================================================================\n// SQL Runtime Context\n// ============================================================================\n\nexport type { TypeHelperRegistry };\n\nexport interface RuntimeContext<TContract extends SqlContract<SqlStorage> = SqlContract<SqlStorage>>\n extends QueryLaneContext<TContract> {\n readonly adapter:\n | Adapter<QueryAst, TContract, LoweredStatement>\n | Adapter<QueryAst, SqlContract<SqlStorage>, LoweredStatement>;\n\n /**\n * Initialized type helpers from storage.types.\n * Each entry corresponds to a named type instance in the contract's storage.types.\n * The value is the result of calling the codec's init hook (if provided)\n * or the validated typeParams (if no init hook).\n */\n readonly types?: TypeHelperRegistry;\n}\n\n/**\n * Descriptor-first options for creating a SQL runtime context.\n * Takes the same framework composition as control-plane: target, adapter, extensionPacks.\n *\n * @template TContract - The SQL contract type\n * @template TTargetId - The target ID (e.g., 'postgres', 'mysql')\n */\nexport interface CreateRuntimeContextOptions<\n TContract extends SqlContract<SqlStorage> = SqlContract<SqlStorage>,\n TTargetId extends string = string,\n> {\n readonly contract: TContract;\n readonly target: RuntimeTargetDescriptor<'sql', TTargetId>;\n readonly adapter: RuntimeAdapterDescriptor<\n 'sql',\n TTargetId,\n SqlRuntimeAdapterInstance<TTargetId>\n >;\n readonly extensionPacks?: ReadonlyArray<SqlRuntimeExtensionDescriptor<TTargetId>>;\n}\n\n// ============================================================================\n// Runtime Error Types and Helpers\n// ============================================================================\n\n/**\n * Structured error thrown by the SQL runtime.\n *\n * Aligns with the repository's error envelope convention:\n * - `code`: Stable error code for programmatic handling (e.g., `RUNTIME.TYPE_PARAMS_INVALID`)\n * - `category`: Error source category (`RUNTIME`)\n * - `severity`: Error severity level (`error`)\n * - `details`: Optional structured details for debugging\n *\n * @example\n * ```typescript\n * try {\n * createRuntimeContext({ ... });\n * } catch (e) {\n * if ((e as RuntimeError).code === 'RUNTIME.TYPE_PARAMS_INVALID') {\n * console.error('Invalid type parameters:', (e as RuntimeError).details);\n * }\n * }\n * ```\n */\nexport interface RuntimeError extends Error {\n /** Stable error code for programmatic handling (e.g., `RUNTIME.TYPE_PARAMS_INVALID`) */\n readonly code: string;\n /** Error source category */\n readonly category: 'RUNTIME';\n /** Error severity level */\n readonly severity: 'error';\n /** Optional structured details for debugging */\n readonly details?: Record<string, unknown>;\n}\n\n/**\n * Creates a RuntimeError for invalid type parameters.\n *\n * Error code: `RUNTIME.TYPE_PARAMS_INVALID`\n *\n * Thrown when:\n * - `storage.types` entries have typeParams that fail codec schema validation\n * - Column inline typeParams fail codec schema validation\n *\n * @internal\n */\nfunction runtimeTypeParamsInvalid(\n message: string,\n details?: Record<string, unknown>,\n): RuntimeError {\n const error = new Error(message) as RuntimeError;\n Object.defineProperty(error, 'name', { value: 'RuntimeError', configurable: true });\n return Object.assign(error, {\n code: 'RUNTIME.TYPE_PARAMS_INVALID',\n category: 'RUNTIME' as const,\n severity: 'error' as const,\n details,\n });\n}\n\n// ============================================================================\n// Parameterized Type Validation\n// ============================================================================\n\n/**\n * Validates typeParams against the codec's paramsSchema.\n * @throws RuntimeError with code RUNTIME.TYPE_PARAMS_INVALID if validation fails\n */\nfunction validateTypeParams(\n typeParams: Record<string, unknown>,\n codecDescriptor: RuntimeParameterizedCodecDescriptor,\n context: { typeName?: string; tableName?: string; columnName?: string },\n): Record<string, unknown> {\n const result = codecDescriptor.paramsSchema(typeParams);\n if (result instanceof arktype.errors) {\n const messages = result.map((p: { message: string }) => p.message).join('; ');\n const locationInfo = context.typeName\n ? `type '${context.typeName}'`\n : `column '${context.tableName}.${context.columnName}'`;\n throw runtimeTypeParamsInvalid(\n `Invalid typeParams for ${locationInfo} (codecId: ${codecDescriptor.codecId}): ${messages}`,\n { ...context, codecId: codecDescriptor.codecId, typeParams },\n );\n }\n return result as Record<string, unknown>;\n}\n\n/**\n * Collects parameterized codec descriptors from extension instances.\n * Returns a map of codecId → descriptor for quick lookup.\n */\nfunction collectParameterizedCodecDescriptors(\n extensionInstances: ReadonlyArray<SqlRuntimeExtensionInstance<string>>,\n): Map<string, RuntimeParameterizedCodecDescriptor> {\n const descriptors = new Map<string, RuntimeParameterizedCodecDescriptor>();\n\n for (const extInstance of extensionInstances) {\n const paramCodecs = extInstance.parameterizedCodecs?.();\n if (paramCodecs) {\n for (const descriptor of paramCodecs) {\n if (descriptors.has(descriptor.codecId)) {\n console.warn(\n `Duplicate parameterized codec descriptor for codecId '${descriptor.codecId}' - using later registration`,\n );\n }\n descriptors.set(descriptor.codecId, descriptor);\n }\n }\n }\n\n return descriptors;\n}\n\n/**\n * Initializes type helpers from storage.types using codec descriptors.\n *\n * For each named type instance in `storage.types`:\n * - If a codec descriptor exists with an `init` hook: calls the hook and stores the result\n * - Otherwise: stores the full type instance metadata directly (codecId, nativeType, typeParams)\n *\n * This matches the typing in `ExtractSchemaTypes<Contract>` which extracts\n * `Contract['storage']['types']` directly, ensuring runtime values match static types\n * when no init hook transforms the value.\n */\nfunction initializeTypeHelpers(\n storageTypes: Record<string, StorageTypeInstance> | undefined,\n codecDescriptors: Map<string, RuntimeParameterizedCodecDescriptor>,\n): TypeHelperRegistry {\n const helpers: TypeHelperRegistry = {};\n\n if (!storageTypes) {\n return helpers;\n }\n\n for (const [typeName, typeInstance] of Object.entries(storageTypes)) {\n const descriptor = codecDescriptors.get(typeInstance.codecId);\n\n if (descriptor) {\n // Validate typeParams against the codec's schema\n const validatedParams = validateTypeParams(typeInstance.typeParams, descriptor, {\n typeName,\n });\n\n // Call init hook if provided, otherwise store full type instance\n if (descriptor.init) {\n helpers[typeName] = descriptor.init(validatedParams);\n } else {\n // No init hook: expose full type instance metadata (matches contract typing)\n helpers[typeName] = typeInstance;\n }\n } else {\n // No descriptor found: expose full type instance (no validation possible)\n helpers[typeName] = typeInstance;\n }\n }\n\n return helpers;\n}\n\n/**\n * Validates inline column typeParams across all tables.\n * @throws RuntimeError with code RUNTIME.TYPE_PARAMS_INVALID if validation fails\n */\nfunction validateColumnTypeParams(\n storage: SqlStorage,\n codecDescriptors: Map<string, RuntimeParameterizedCodecDescriptor>,\n): void {\n for (const [tableName, table] of Object.entries(storage.tables)) {\n for (const [columnName, column] of Object.entries(table.columns)) {\n if (column.typeParams) {\n const descriptor = codecDescriptors.get(column.codecId);\n if (descriptor) {\n validateTypeParams(column.typeParams, descriptor, { tableName, columnName });\n }\n }\n }\n }\n}\n\n/**\n * Creates a SQL runtime context from descriptor-first composition.\n *\n * The context includes:\n * - The validated contract\n * - The adapter instance (created from descriptor)\n * - Codec registry (populated from adapter + extension instances)\n * - Operation registry (populated from extension instances)\n * - Types registry (initialized helpers from storage.types)\n *\n * @param options - Descriptor-first composition options\n * @returns RuntimeContext with registries wired from all components\n */\nexport function createRuntimeContext<\n TContract extends SqlContract<SqlStorage> = SqlContract<SqlStorage>,\n TTargetId extends string = string,\n>(options: CreateRuntimeContextOptions<TContract, TTargetId>): RuntimeContext<TContract> {\n const { contract, adapter: adapterDescriptor, extensionPacks } = options;\n\n // Create adapter instance from descriptor\n // The adapter instance IS an Adapter (via intersection)\n const adapterInstance = adapterDescriptor.create();\n\n // Create registries\n const codecRegistry = createCodecRegistry();\n const operationRegistry = createOperationRegistry();\n\n // Register adapter codecs (adapter instance has profile.codecs())\n const adapterCodecs = adapterInstance.profile.codecs();\n for (const codec of adapterCodecs.values()) {\n codecRegistry.register(codec);\n }\n\n // Create extension instances and collect their contributions\n const extensionInstances: SqlRuntimeExtensionInstance<TTargetId>[] = [];\n\n for (const extDescriptor of extensionPacks ?? []) {\n const extInstance = extDescriptor.create();\n extensionInstances.push(extInstance);\n\n const extCodecs = extInstance.codecs?.();\n if (extCodecs) {\n for (const codec of extCodecs.values()) {\n codecRegistry.register(codec);\n }\n }\n\n const extOperations = extInstance.operations?.();\n if (extOperations) {\n for (const operation of extOperations) {\n operationRegistry.register(operation);\n }\n }\n }\n\n // Collect parameterized codec descriptors from extensions\n const parameterizedCodecDescriptors = collectParameterizedCodecDescriptors(extensionInstances);\n\n // Validate column typeParams if any descriptors are registered\n if (parameterizedCodecDescriptors.size > 0) {\n validateColumnTypeParams(contract.storage, parameterizedCodecDescriptors);\n }\n\n // Initialize type helpers from storage.types\n const types = initializeTypeHelpers(contract.storage.types, parameterizedCodecDescriptors);\n\n return {\n contract,\n adapter: adapterInstance,\n operations: operationRegistry,\n codecs: codecRegistry,\n types,\n };\n}\n","import type { MarkerStatement } from '@prisma-next/runtime-executor';\n\nexport interface SqlStatement {\n readonly sql: string;\n readonly params: readonly unknown[];\n}\n\nexport interface WriteMarkerInput {\n readonly coreHash: string;\n readonly profileHash: string;\n readonly contractJson?: unknown;\n readonly canonicalVersion?: number;\n readonly appTag?: string;\n readonly meta?: Record<string, unknown>;\n}\n\nexport const ensureSchemaStatement: SqlStatement = {\n sql: 'create schema if not exists prisma_contract',\n params: [],\n};\n\nexport const ensureTableStatement: SqlStatement = {\n sql: `create table if not exists prisma_contract.marker (\n id smallint primary key default 1,\n core_hash text not null,\n profile_hash text not null,\n contract_json jsonb,\n canonical_version int,\n updated_at timestamptz not null default now(),\n app_tag text,\n meta jsonb not null default '{}'\n )`,\n params: [],\n};\n\nexport function readContractMarker(): MarkerStatement {\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\nexport interface WriteContractMarkerStatements {\n readonly insert: SqlStatement;\n readonly update: SqlStatement;\n}\n\nexport function writeContractMarker(input: WriteMarkerInput): WriteContractMarkerStatements {\n const baseParams: readonly unknown[] = [\n 1,\n input.coreHash,\n input.profileHash,\n input.contractJson ?? null,\n input.canonicalVersion ?? null,\n input.appTag ?? null,\n JSON.stringify(input.meta ?? {}),\n ];\n\n const insert: SqlStatement = {\n sql: `insert into prisma_contract.marker (\n id,\n core_hash,\n profile_hash,\n contract_json,\n canonical_version,\n updated_at,\n app_tag,\n meta\n ) values (\n $1,\n $2,\n $3,\n $4::jsonb,\n $5,\n now(),\n $6,\n $7::jsonb\n )`,\n params: baseParams,\n };\n\n const update: SqlStatement = {\n sql: `update prisma_contract.marker set\n core_hash = $2,\n profile_hash = $3,\n contract_json = $4::jsonb,\n canonical_version = $5,\n updated_at = now(),\n app_tag = $6,\n meta = $7::jsonb\n where id = $1`,\n params: baseParams,\n };\n\n return { insert, update };\n}\n","import type { ExecutionPlan } from '@prisma-next/contract/types';\nimport type { OperationRegistry } from '@prisma-next/operations';\nimport type {\n Log,\n Plugin,\n RuntimeCore,\n RuntimeCoreOptions,\n RuntimeTelemetryEvent,\n RuntimeVerifyOptions,\n TelemetryOutcome,\n} from '@prisma-next/runtime-executor';\nimport { AsyncIterableResult, createRuntimeCore } from '@prisma-next/runtime-executor';\nimport type { SqlContract, SqlStorage } from '@prisma-next/sql-contract/types';\nimport type {\n Adapter,\n CodecRegistry,\n LoweredStatement,\n SelectAst,\n SqlDriver,\n} from '@prisma-next/sql-relational-core/ast';\nimport type { SqlQueryPlan } from '@prisma-next/sql-relational-core/plan';\nimport { decodeRow } from './codecs/decoding';\nimport { encodeParams } from './codecs/encoding';\nimport { validateCodecRegistryCompleteness } from './codecs/validation';\nimport { lowerSqlPlan } from './lower-sql-plan';\nimport type { RuntimeContext } from './sql-context';\nimport { SqlFamilyAdapter } from './sql-family-adapter';\n\nexport interface RuntimeOptions<\n TContract extends SqlContract<SqlStorage> = SqlContract<SqlStorage>,\n> {\n readonly driver: SqlDriver;\n readonly verify: RuntimeVerifyOptions;\n readonly context: RuntimeContext<TContract>;\n readonly plugins?: readonly Plugin<\n TContract,\n Adapter<SelectAst, SqlContract<SqlStorage>, LoweredStatement>,\n SqlDriver\n >[];\n readonly mode?: 'strict' | 'permissive';\n readonly log?: Log;\n}\n\nexport interface Runtime {\n execute<Row = Record<string, unknown>>(\n plan: ExecutionPlan<Row> | SqlQueryPlan<Row>,\n ): AsyncIterableResult<Row>;\n telemetry(): RuntimeTelemetryEvent | null;\n close(): Promise<void>;\n operations(): OperationRegistry;\n}\n\nexport type { RuntimeTelemetryEvent, RuntimeVerifyOptions, TelemetryOutcome };\n\nclass SqlRuntimeImpl<TContract extends SqlContract<SqlStorage> = SqlContract<SqlStorage>>\n implements Runtime\n{\n private readonly core: RuntimeCore<\n TContract,\n Adapter<SelectAst, SqlContract<SqlStorage>, LoweredStatement>,\n SqlDriver\n >;\n private readonly contract: TContract;\n private readonly context: RuntimeContext<TContract>;\n private readonly codecRegistry: CodecRegistry;\n private codecRegistryValidated: boolean;\n\n constructor(options: RuntimeOptions<TContract>) {\n const { context, driver, verify, plugins, mode, log } = options;\n this.contract = context.contract;\n this.context = context;\n this.codecRegistry = context.codecs;\n this.codecRegistryValidated = false;\n\n const familyAdapter = new SqlFamilyAdapter(context.contract);\n\n const coreOptions: RuntimeCoreOptions<\n TContract,\n Adapter<SelectAst, SqlContract<SqlStorage>, LoweredStatement>,\n SqlDriver\n > = {\n familyAdapter,\n driver,\n verify,\n plugins: plugins as readonly Plugin<\n TContract,\n Adapter<SelectAst, SqlContract<SqlStorage>, LoweredStatement>,\n SqlDriver\n >[],\n ...(mode !== undefined ? { mode } : {}),\n ...(log !== undefined ? { log } : {}),\n operationRegistry: context.operations,\n };\n\n this.core = createRuntimeCore(coreOptions);\n\n if (verify.mode === 'startup') {\n validateCodecRegistryCompleteness(this.codecRegistry, context.contract);\n this.codecRegistryValidated = true;\n }\n }\n\n private ensureCodecRegistryValidated(contract: SqlContract<SqlStorage>): void {\n if (!this.codecRegistryValidated) {\n validateCodecRegistryCompleteness(this.codecRegistry, contract);\n this.codecRegistryValidated = true;\n }\n }\n\n execute<Row = Record<string, unknown>>(\n plan: ExecutionPlan<Row> | SqlQueryPlan<Row>,\n ): AsyncIterableResult<Row> {\n this.ensureCodecRegistryValidated(this.contract);\n\n // Check if plan is SqlQueryPlan (has ast but no sql)\n const isSqlQueryPlan = (p: ExecutionPlan<Row> | SqlQueryPlan<Row>): p is SqlQueryPlan<Row> => {\n return 'ast' in p && !('sql' in p);\n };\n\n // Lower SqlQueryPlan to Plan if needed\n const executablePlan: ExecutionPlan<Row> = isSqlQueryPlan(plan)\n ? lowerSqlPlan(this.context, plan)\n : plan;\n\n const iterator = async function* (\n self: SqlRuntimeImpl<TContract>,\n ): AsyncGenerator<Row, void, unknown> {\n const encodedParams = encodeParams(executablePlan, self.codecRegistry);\n const planWithEncodedParams: ExecutionPlan<Row> = {\n ...executablePlan,\n params: encodedParams,\n };\n\n const coreIterator = self.core.execute(planWithEncodedParams);\n\n for await (const rawRow of coreIterator) {\n const decodedRow = decodeRow(\n rawRow as Record<string, unknown>,\n executablePlan,\n self.codecRegistry,\n );\n yield decodedRow as Row;\n }\n };\n\n return new AsyncIterableResult(iterator(this));\n }\n\n telemetry(): RuntimeTelemetryEvent | null {\n return this.core.telemetry();\n }\n\n operations(): OperationRegistry {\n return this.core.operations();\n }\n\n close(): Promise<void> {\n return this.core.close();\n }\n}\n\nexport function createRuntime<TContract extends SqlContract<SqlStorage>>(\n options: RuntimeOptions<TContract>,\n): Runtime {\n return new SqlRuntimeImpl(options);\n}\n","import type { ExecutionPlan } from '@prisma-next/contract/types';\nimport type { Codec, CodecRegistry } from '@prisma-next/sql-relational-core/ast';\n\nfunction resolveRowCodec(\n alias: string,\n plan: ExecutionPlan,\n registry: CodecRegistry,\n): Codec | null {\n const planCodecId = plan.meta.annotations?.codecs?.[alias] as string | undefined;\n if (planCodecId) {\n const codec = registry.get(planCodecId);\n if (codec) {\n return codec;\n }\n }\n\n if (plan.meta.projectionTypes) {\n const typeId = plan.meta.projectionTypes[alias];\n if (typeId) {\n const codec = registry.get(typeId);\n if (codec) {\n return codec;\n }\n }\n }\n\n return null;\n}\n\nexport function decodeRow(\n row: Record<string, unknown>,\n plan: ExecutionPlan,\n registry: CodecRegistry,\n): Record<string, unknown> {\n const decoded: Record<string, unknown> = {};\n\n let aliases: readonly string[];\n const projection = plan.meta.projection;\n if (projection && !Array.isArray(projection)) {\n aliases = Object.keys(projection);\n } else if (projection && Array.isArray(projection)) {\n aliases = projection;\n } else {\n aliases = Object.keys(row);\n }\n\n for (const alias of aliases) {\n const wireValue = row[alias];\n\n const projection = plan.meta.projection;\n const projectionValue =\n projection && typeof projection === 'object' && !Array.isArray(projection)\n ? (projection as Record<string, string>)[alias]\n : undefined;\n\n if (typeof projectionValue === 'string' && projectionValue.startsWith('include:')) {\n if (wireValue === null || wireValue === undefined) {\n decoded[alias] = [];\n continue;\n }\n\n try {\n let parsed: unknown;\n if (typeof wireValue === 'string') {\n parsed = JSON.parse(wireValue);\n } else if (Array.isArray(wireValue)) {\n parsed = wireValue;\n } else {\n parsed = JSON.parse(String(wireValue));\n }\n\n if (!Array.isArray(parsed)) {\n throw new Error(`Expected array for include alias '${alias}', got ${typeof parsed}`);\n }\n\n decoded[alias] = parsed;\n } catch (error) {\n const decodeError = new Error(\n `Failed to parse JSON array for include alias '${alias}': ${error instanceof Error ? error.message : String(error)}`,\n ) as Error & {\n code: string;\n category: string;\n severity: string;\n details?: Record<string, unknown>;\n };\n decodeError.code = 'RUNTIME.DECODE_FAILED';\n decodeError.category = 'RUNTIME';\n decodeError.severity = 'error';\n decodeError.details = {\n alias,\n wirePreview:\n typeof wireValue === 'string' && wireValue.length > 100\n ? `${wireValue.substring(0, 100)}...`\n : String(wireValue).substring(0, 100),\n };\n throw decodeError;\n }\n continue;\n }\n\n if (wireValue === null || wireValue === undefined) {\n decoded[alias] = wireValue;\n continue;\n }\n\n const codec = resolveRowCodec(alias, plan, registry);\n\n if (!codec) {\n decoded[alias] = wireValue;\n continue;\n }\n\n try {\n decoded[alias] = codec.decode(wireValue);\n } catch (error) {\n const decodeError = new Error(\n `Failed to decode row alias '${alias}' with codec '${codec.id}': ${error instanceof Error ? error.message : String(error)}`,\n ) as Error & {\n code: string;\n category: string;\n severity: string;\n details?: Record<string, unknown>;\n };\n decodeError.code = 'RUNTIME.DECODE_FAILED';\n decodeError.category = 'RUNTIME';\n decodeError.severity = 'error';\n decodeError.details = {\n alias,\n codec: codec.id,\n wirePreview:\n typeof wireValue === 'string' && wireValue.length > 100\n ? `${wireValue.substring(0, 100)}...`\n : String(wireValue).substring(0, 100),\n };\n throw decodeError;\n }\n }\n\n return decoded;\n}\n","import type { ExecutionPlan, ParamDescriptor } from '@prisma-next/contract/types';\nimport type { Codec, CodecRegistry } from '@prisma-next/sql-relational-core/ast';\n\nfunction resolveParamCodec(\n paramDescriptor: ParamDescriptor,\n plan: ExecutionPlan,\n registry: CodecRegistry,\n): Codec | null {\n const paramName = paramDescriptor.name ?? `param_${paramDescriptor.index ?? 0}`;\n\n const planCodecId = plan.meta.annotations?.codecs?.[paramName] as string | undefined;\n if (planCodecId) {\n const codec = registry.get(planCodecId);\n if (codec) {\n return codec;\n }\n }\n\n if (paramDescriptor.codecId) {\n const codec = registry.get(paramDescriptor.codecId);\n if (codec) {\n return codec;\n }\n }\n\n return null;\n}\n\nexport function encodeParam(\n value: unknown,\n paramDescriptor: ParamDescriptor,\n plan: ExecutionPlan,\n registry: CodecRegistry,\n): unknown {\n if (value === null || value === undefined) {\n return null;\n }\n\n const codec = resolveParamCodec(paramDescriptor, plan, registry);\n if (!codec) {\n return value;\n }\n\n if (codec.encode) {\n try {\n return codec.encode(value);\n } catch (error) {\n throw new Error(\n `Failed to encode parameter ${paramDescriptor.name ?? paramDescriptor.index}: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n }\n\n return value;\n}\n\nexport function encodeParams(plan: ExecutionPlan, registry: CodecRegistry): readonly unknown[] {\n if (plan.params.length === 0) {\n return plan.params;\n }\n\n const encoded: unknown[] = [];\n\n for (let i = 0; i < plan.params.length; i++) {\n const paramValue = plan.params[i];\n const paramDescriptor = plan.meta.paramDescriptors[i];\n\n if (paramDescriptor) {\n encoded.push(encodeParam(paramValue, paramDescriptor, plan, registry));\n } else {\n encoded.push(paramValue);\n }\n }\n\n return Object.freeze(encoded);\n}\n","import type { ExecutionPlan } from '@prisma-next/contract/types';\nimport type {\n MarkerReader,\n MarkerStatement,\n RuntimeFamilyAdapter,\n} from '@prisma-next/runtime-executor';\nimport { runtimeError } from '@prisma-next/runtime-executor';\nimport type { SqlContract, SqlStorage } from '@prisma-next/sql-contract/types';\nimport { readContractMarker } from './sql-marker';\n\nclass SqlMarkerReader implements MarkerReader {\n readMarkerStatement(): MarkerStatement {\n return readContractMarker();\n }\n}\n\nexport class SqlFamilyAdapter<TContract extends SqlContract<SqlStorage>>\n implements RuntimeFamilyAdapter<TContract>\n{\n readonly contract: TContract;\n readonly markerReader: MarkerReader;\n\n constructor(contract: TContract) {\n this.contract = contract;\n this.markerReader = new SqlMarkerReader();\n }\n\n validatePlan(plan: ExecutionPlan, contract: TContract): void {\n if (plan.meta.target !== contract.target) {\n throw runtimeError('PLAN.TARGET_MISMATCH', 'Plan target does not match runtime target', {\n planTarget: plan.meta.target,\n runtimeTarget: contract.target,\n });\n }\n\n if (plan.meta.coreHash !== contract.coreHash) {\n throw runtimeError('PLAN.HASH_MISMATCH', 'Plan core hash does not match runtime contract', {\n planCoreHash: plan.meta.coreHash,\n runtimeCoreHash: contract.coreHash,\n });\n }\n }\n}\n","export type {\n AfterExecuteResult,\n BudgetsOptions,\n LintsOptions,\n Log,\n Plugin,\n PluginContext,\n} from '@prisma-next/runtime-executor';\nexport { budgets, lints } from '@prisma-next/runtime-executor';\nexport {\n extractCodecIds,\n validateCodecRegistryCompleteness,\n validateContractCodecMappings,\n} from '../codecs/validation';\nexport { lowerSqlPlan } from '../lower-sql-plan';\nexport type {\n CreateRuntimeContextOptions,\n RuntimeContext,\n RuntimeParameterizedCodecDescriptor,\n SqlRuntimeAdapterInstance,\n SqlRuntimeExtensionDescriptor,\n SqlRuntimeExtensionInstance,\n TypeHelperRegistry,\n} from '../sql-context';\nexport { createRuntimeContext } from '../sql-context';\nexport type { SqlStatement } from '../sql-marker';\nexport {\n ensureSchemaStatement,\n ensureTableStatement,\n readContractMarker,\n writeContractMarker,\n} from '../sql-marker';\nexport type {\n Runtime,\n RuntimeOptions,\n RuntimeTelemetryEvent,\n RuntimeVerifyOptions,\n TelemetryOutcome,\n} from '../sql-runtime';\nexport { createRuntime } from '../sql-runtime';\n"],"mappings":"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","names":["projection","runtimeError","runtimeError"]}
@@ -43,7 +43,7 @@ var newHeadersFromIncoming = (incoming) => {
43
43
  }
44
44
  return new Headers(headerRecord);
45
45
  };
46
- var wrapBodyStream = Symbol("wrapBodyStream");
46
+ var wrapBodyStream = /* @__PURE__ */ Symbol("wrapBodyStream");
47
47
  var newRequestFromIncoming = (method, url, headers, incoming, abortController) => {
48
48
  const init = {
49
49
  method,
@@ -91,13 +91,13 @@ var newRequestFromIncoming = (method, url, headers, incoming, abortController) =
91
91
  }
92
92
  return new Request(url, init);
93
93
  };
94
- var getRequestCache = Symbol("getRequestCache");
95
- var requestCache = Symbol("requestCache");
96
- var incomingKey = Symbol("incomingKey");
97
- var urlKey = Symbol("urlKey");
98
- var headersKey = Symbol("headersKey");
99
- var abortControllerKey = Symbol("abortControllerKey");
100
- var getAbortController = Symbol("getAbortController");
94
+ var getRequestCache = /* @__PURE__ */ Symbol("getRequestCache");
95
+ var requestCache = /* @__PURE__ */ Symbol("requestCache");
96
+ var incomingKey = /* @__PURE__ */ Symbol("incomingKey");
97
+ var urlKey = /* @__PURE__ */ Symbol("urlKey");
98
+ var headersKey = /* @__PURE__ */ Symbol("headersKey");
99
+ var abortControllerKey = /* @__PURE__ */ Symbol("abortControllerKey");
100
+ var getAbortController = /* @__PURE__ */ Symbol("getAbortController");
101
101
  var requestPrototype = {
102
102
  get method() {
103
103
  return this[incomingKey].method || "GET";
@@ -188,9 +188,9 @@ var newRequest = (incoming, defaultHostname) => {
188
188
  req[urlKey] = url.href;
189
189
  return req;
190
190
  };
191
- var responseCache = Symbol("responseCache");
192
- var getResponseCache = Symbol("getResponseCache");
193
- var cacheKey = Symbol("cache");
191
+ var responseCache = /* @__PURE__ */ Symbol("responseCache");
192
+ var getResponseCache = /* @__PURE__ */ Symbol("getResponseCache");
193
+ var cacheKey = /* @__PURE__ */ Symbol("cache");
194
194
  var GlobalResponse = global.Response;
195
195
  var Response2 = class _Response {
196
196
  #body;
@@ -332,7 +332,7 @@ global.fetch = (info, init) => {
332
332
  };
333
333
  return webFetch(info, init);
334
334
  };
335
- var outgoingEnded = Symbol("outgoingEnded");
335
+ var outgoingEnded = /* @__PURE__ */ Symbol("outgoingEnded");
336
336
  var handleRequestError = () => new Response(null, {
337
337
  status: 400
338
338
  });
@@ -567,4 +567,4 @@ export {
567
567
  getRequestListener,
568
568
  serve
569
569
  };
570
- //# sourceMappingURL=dist-LCVVJCGI.js.map
570
+ //# sourceMappingURL=dist-AQ3LWXOX.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../node_modules/.pnpm/@hono+node-server@1.19.7_hono@4.11.1/node_modules/@hono/node-server/dist/index.mjs"],"sourcesContent":["// src/server.ts\nimport { createServer as createServerHTTP } from \"http\";\n\n// src/listener.ts\nimport { Http2ServerRequest as Http2ServerRequest2 } from \"http2\";\n\n// src/request.ts\nimport { Http2ServerRequest } from \"http2\";\nimport { Readable } from \"stream\";\nvar RequestError = class extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"RequestError\";\n }\n};\nvar toRequestError = (e) => {\n if (e instanceof RequestError) {\n return e;\n }\n return new RequestError(e.message, { cause: e });\n};\nvar GlobalRequest = global.Request;\nvar Request = class extends GlobalRequest {\n constructor(input, options) {\n if (typeof input === \"object\" && getRequestCache in input) {\n input = input[getRequestCache]();\n }\n if (typeof options?.body?.getReader !== \"undefined\") {\n ;\n options.duplex ??= \"half\";\n }\n super(input, options);\n }\n};\nvar newHeadersFromIncoming = (incoming) => {\n const headerRecord = [];\n const rawHeaders = incoming.rawHeaders;\n for (let i = 0; i < rawHeaders.length; i += 2) {\n const { [i]: key, [i + 1]: value } = rawHeaders;\n if (key.charCodeAt(0) !== /*:*/\n 58) {\n headerRecord.push([key, value]);\n }\n }\n return new Headers(headerRecord);\n};\nvar wrapBodyStream = Symbol(\"wrapBodyStream\");\nvar newRequestFromIncoming = (method, url, headers, incoming, abortController) => {\n const init = {\n method,\n headers,\n signal: abortController.signal\n };\n if (method === \"TRACE\") {\n init.method = \"GET\";\n const req = new Request(url, init);\n Object.defineProperty(req, \"method\", {\n get() {\n return \"TRACE\";\n }\n });\n return req;\n }\n if (!(method === \"GET\" || method === \"HEAD\")) {\n if (\"rawBody\" in incoming && incoming.rawBody instanceof Buffer) {\n init.body = new ReadableStream({\n start(controller) {\n controller.enqueue(incoming.rawBody);\n controller.close();\n }\n });\n } else if (incoming[wrapBodyStream]) {\n let reader;\n init.body = new ReadableStream({\n async pull(controller) {\n try {\n reader ||= Readable.toWeb(incoming).getReader();\n const { done, value } = await reader.read();\n if (done) {\n controller.close();\n } else {\n controller.enqueue(value);\n }\n } catch (error) {\n controller.error(error);\n }\n }\n });\n } else {\n init.body = Readable.toWeb(incoming);\n }\n }\n return new Request(url, init);\n};\nvar getRequestCache = Symbol(\"getRequestCache\");\nvar requestCache = Symbol(\"requestCache\");\nvar incomingKey = Symbol(\"incomingKey\");\nvar urlKey = Symbol(\"urlKey\");\nvar headersKey = Symbol(\"headersKey\");\nvar abortControllerKey = Symbol(\"abortControllerKey\");\nvar getAbortController = Symbol(\"getAbortController\");\nvar requestPrototype = {\n get method() {\n return this[incomingKey].method || \"GET\";\n },\n get url() {\n return this[urlKey];\n },\n get headers() {\n return this[headersKey] ||= newHeadersFromIncoming(this[incomingKey]);\n },\n [getAbortController]() {\n this[getRequestCache]();\n return this[abortControllerKey];\n },\n [getRequestCache]() {\n this[abortControllerKey] ||= new AbortController();\n return this[requestCache] ||= newRequestFromIncoming(\n this.method,\n this[urlKey],\n this.headers,\n this[incomingKey],\n this[abortControllerKey]\n );\n }\n};\n[\n \"body\",\n \"bodyUsed\",\n \"cache\",\n \"credentials\",\n \"destination\",\n \"integrity\",\n \"mode\",\n \"redirect\",\n \"referrer\",\n \"referrerPolicy\",\n \"signal\",\n \"keepalive\"\n].forEach((k) => {\n Object.defineProperty(requestPrototype, k, {\n get() {\n return this[getRequestCache]()[k];\n }\n });\n});\n[\"arrayBuffer\", \"blob\", \"clone\", \"formData\", \"json\", \"text\"].forEach((k) => {\n Object.defineProperty(requestPrototype, k, {\n value: function() {\n return this[getRequestCache]()[k]();\n }\n });\n});\nObject.setPrototypeOf(requestPrototype, Request.prototype);\nvar newRequest = (incoming, defaultHostname) => {\n const req = Object.create(requestPrototype);\n req[incomingKey] = incoming;\n const incomingUrl = incoming.url || \"\";\n if (incomingUrl[0] !== \"/\" && // short-circuit for performance. most requests are relative URL.\n (incomingUrl.startsWith(\"http://\") || incomingUrl.startsWith(\"https://\"))) {\n if (incoming instanceof Http2ServerRequest) {\n throw new RequestError(\"Absolute URL for :path is not allowed in HTTP/2\");\n }\n try {\n const url2 = new URL(incomingUrl);\n req[urlKey] = url2.href;\n } catch (e) {\n throw new RequestError(\"Invalid absolute URL\", { cause: e });\n }\n return req;\n }\n const host = (incoming instanceof Http2ServerRequest ? incoming.authority : incoming.headers.host) || defaultHostname;\n if (!host) {\n throw new RequestError(\"Missing host header\");\n }\n let scheme;\n if (incoming instanceof Http2ServerRequest) {\n scheme = incoming.scheme;\n if (!(scheme === \"http\" || scheme === \"https\")) {\n throw new RequestError(\"Unsupported scheme\");\n }\n } else {\n scheme = incoming.socket && incoming.socket.encrypted ? \"https\" : \"http\";\n }\n const url = new URL(`${scheme}://${host}${incomingUrl}`);\n if (url.hostname.length !== host.length && url.hostname !== host.replace(/:\\d+$/, \"\")) {\n throw new RequestError(\"Invalid host header\");\n }\n req[urlKey] = url.href;\n return req;\n};\n\n// src/response.ts\nvar responseCache = Symbol(\"responseCache\");\nvar getResponseCache = Symbol(\"getResponseCache\");\nvar cacheKey = Symbol(\"cache\");\nvar GlobalResponse = global.Response;\nvar Response2 = class _Response {\n #body;\n #init;\n [getResponseCache]() {\n delete this[cacheKey];\n return this[responseCache] ||= new GlobalResponse(this.#body, this.#init);\n }\n constructor(body, init) {\n let headers;\n this.#body = body;\n if (init instanceof _Response) {\n const cachedGlobalResponse = init[responseCache];\n if (cachedGlobalResponse) {\n this.#init = cachedGlobalResponse;\n this[getResponseCache]();\n return;\n } else {\n this.#init = init.#init;\n headers = new Headers(init.#init.headers);\n }\n } else {\n this.#init = init;\n }\n if (typeof body === \"string\" || typeof body?.getReader !== \"undefined\" || body instanceof Blob || body instanceof Uint8Array) {\n headers ||= init?.headers || { \"content-type\": \"text/plain; charset=UTF-8\" };\n this[cacheKey] = [init?.status || 200, body, headers];\n }\n }\n get headers() {\n const cache = this[cacheKey];\n if (cache) {\n if (!(cache[2] instanceof Headers)) {\n cache[2] = new Headers(cache[2]);\n }\n return cache[2];\n }\n return this[getResponseCache]().headers;\n }\n get status() {\n return this[cacheKey]?.[0] ?? this[getResponseCache]().status;\n }\n get ok() {\n const status = this.status;\n return status >= 200 && status < 300;\n }\n};\n[\"body\", \"bodyUsed\", \"redirected\", \"statusText\", \"trailers\", \"type\", \"url\"].forEach((k) => {\n Object.defineProperty(Response2.prototype, k, {\n get() {\n return this[getResponseCache]()[k];\n }\n });\n});\n[\"arrayBuffer\", \"blob\", \"clone\", \"formData\", \"json\", \"text\"].forEach((k) => {\n Object.defineProperty(Response2.prototype, k, {\n value: function() {\n return this[getResponseCache]()[k]();\n }\n });\n});\nObject.setPrototypeOf(Response2, GlobalResponse);\nObject.setPrototypeOf(Response2.prototype, GlobalResponse.prototype);\n\n// src/utils.ts\nasync function readWithoutBlocking(readPromise) {\n return Promise.race([readPromise, Promise.resolve().then(() => Promise.resolve(void 0))]);\n}\nfunction writeFromReadableStreamDefaultReader(reader, writable, currentReadPromise) {\n const cancel = (error) => {\n reader.cancel(error).catch(() => {\n });\n };\n writable.on(\"close\", cancel);\n writable.on(\"error\", cancel);\n (currentReadPromise ?? reader.read()).then(flow, handleStreamError);\n return reader.closed.finally(() => {\n writable.off(\"close\", cancel);\n writable.off(\"error\", cancel);\n });\n function handleStreamError(error) {\n if (error) {\n writable.destroy(error);\n }\n }\n function onDrain() {\n reader.read().then(flow, handleStreamError);\n }\n function flow({ done, value }) {\n try {\n if (done) {\n writable.end();\n } else if (!writable.write(value)) {\n writable.once(\"drain\", onDrain);\n } else {\n return reader.read().then(flow, handleStreamError);\n }\n } catch (e) {\n handleStreamError(e);\n }\n }\n}\nfunction writeFromReadableStream(stream, writable) {\n if (stream.locked) {\n throw new TypeError(\"ReadableStream is locked.\");\n } else if (writable.destroyed) {\n return;\n }\n return writeFromReadableStreamDefaultReader(stream.getReader(), writable);\n}\nvar buildOutgoingHttpHeaders = (headers) => {\n const res = {};\n if (!(headers instanceof Headers)) {\n headers = new Headers(headers ?? void 0);\n }\n const cookies = [];\n for (const [k, v] of headers) {\n if (k === \"set-cookie\") {\n cookies.push(v);\n } else {\n res[k] = v;\n }\n }\n if (cookies.length > 0) {\n res[\"set-cookie\"] = cookies;\n }\n res[\"content-type\"] ??= \"text/plain; charset=UTF-8\";\n return res;\n};\n\n// src/utils/response/constants.ts\nvar X_ALREADY_SENT = \"x-hono-already-sent\";\n\n// src/globals.ts\nimport crypto from \"crypto\";\nvar webFetch = global.fetch;\nif (typeof global.crypto === \"undefined\") {\n global.crypto = crypto;\n}\nglobal.fetch = (info, init) => {\n init = {\n // Disable compression handling so people can return the result of a fetch\n // directly in the loader without messing with the Content-Encoding header.\n compress: false,\n ...init\n };\n return webFetch(info, init);\n};\n\n// src/listener.ts\nvar outgoingEnded = Symbol(\"outgoingEnded\");\nvar handleRequestError = () => new Response(null, {\n status: 400\n});\nvar handleFetchError = (e) => new Response(null, {\n status: e instanceof Error && (e.name === \"TimeoutError\" || e.constructor.name === \"TimeoutError\") ? 504 : 500\n});\nvar handleResponseError = (e, outgoing) => {\n const err = e instanceof Error ? e : new Error(\"unknown error\", { cause: e });\n if (err.code === \"ERR_STREAM_PREMATURE_CLOSE\") {\n console.info(\"The user aborted a request.\");\n } else {\n console.error(e);\n if (!outgoing.headersSent) {\n outgoing.writeHead(500, { \"Content-Type\": \"text/plain\" });\n }\n outgoing.end(`Error: ${err.message}`);\n outgoing.destroy(err);\n }\n};\nvar flushHeaders = (outgoing) => {\n if (\"flushHeaders\" in outgoing && outgoing.writable) {\n outgoing.flushHeaders();\n }\n};\nvar responseViaCache = async (res, outgoing) => {\n let [status, body, header] = res[cacheKey];\n if (header instanceof Headers) {\n header = buildOutgoingHttpHeaders(header);\n }\n if (typeof body === \"string\") {\n header[\"Content-Length\"] = Buffer.byteLength(body);\n } else if (body instanceof Uint8Array) {\n header[\"Content-Length\"] = body.byteLength;\n } else if (body instanceof Blob) {\n header[\"Content-Length\"] = body.size;\n }\n outgoing.writeHead(status, header);\n if (typeof body === \"string\" || body instanceof Uint8Array) {\n outgoing.end(body);\n } else if (body instanceof Blob) {\n outgoing.end(new Uint8Array(await body.arrayBuffer()));\n } else {\n flushHeaders(outgoing);\n await writeFromReadableStream(body, outgoing)?.catch(\n (e) => handleResponseError(e, outgoing)\n );\n }\n ;\n outgoing[outgoingEnded]?.();\n};\nvar isPromise = (res) => typeof res.then === \"function\";\nvar responseViaResponseObject = async (res, outgoing, options = {}) => {\n if (isPromise(res)) {\n if (options.errorHandler) {\n try {\n res = await res;\n } catch (err) {\n const errRes = await options.errorHandler(err);\n if (!errRes) {\n return;\n }\n res = errRes;\n }\n } else {\n res = await res.catch(handleFetchError);\n }\n }\n if (cacheKey in res) {\n return responseViaCache(res, outgoing);\n }\n const resHeaderRecord = buildOutgoingHttpHeaders(res.headers);\n if (res.body) {\n const reader = res.body.getReader();\n const values = [];\n let done = false;\n let currentReadPromise = void 0;\n if (resHeaderRecord[\"transfer-encoding\"] !== \"chunked\") {\n let maxReadCount = 2;\n for (let i = 0; i < maxReadCount; i++) {\n currentReadPromise ||= reader.read();\n const chunk = await readWithoutBlocking(currentReadPromise).catch((e) => {\n console.error(e);\n done = true;\n });\n if (!chunk) {\n if (i === 1) {\n await new Promise((resolve) => setTimeout(resolve));\n maxReadCount = 3;\n continue;\n }\n break;\n }\n currentReadPromise = void 0;\n if (chunk.value) {\n values.push(chunk.value);\n }\n if (chunk.done) {\n done = true;\n break;\n }\n }\n if (done && !(\"content-length\" in resHeaderRecord)) {\n resHeaderRecord[\"content-length\"] = values.reduce((acc, value) => acc + value.length, 0);\n }\n }\n outgoing.writeHead(res.status, resHeaderRecord);\n values.forEach((value) => {\n ;\n outgoing.write(value);\n });\n if (done) {\n outgoing.end();\n } else {\n if (values.length === 0) {\n flushHeaders(outgoing);\n }\n await writeFromReadableStreamDefaultReader(reader, outgoing, currentReadPromise);\n }\n } else if (resHeaderRecord[X_ALREADY_SENT]) {\n } else {\n outgoing.writeHead(res.status, resHeaderRecord);\n outgoing.end();\n }\n ;\n outgoing[outgoingEnded]?.();\n};\nvar getRequestListener = (fetchCallback, options = {}) => {\n const autoCleanupIncoming = options.autoCleanupIncoming ?? true;\n if (options.overrideGlobalObjects !== false && global.Request !== Request) {\n Object.defineProperty(global, \"Request\", {\n value: Request\n });\n Object.defineProperty(global, \"Response\", {\n value: Response2\n });\n }\n return async (incoming, outgoing) => {\n let res, req;\n try {\n req = newRequest(incoming, options.hostname);\n let incomingEnded = !autoCleanupIncoming || incoming.method === \"GET\" || incoming.method === \"HEAD\";\n if (!incomingEnded) {\n ;\n incoming[wrapBodyStream] = true;\n incoming.on(\"end\", () => {\n incomingEnded = true;\n });\n if (incoming instanceof Http2ServerRequest2) {\n ;\n outgoing[outgoingEnded] = () => {\n if (!incomingEnded) {\n setTimeout(() => {\n if (!incomingEnded) {\n setTimeout(() => {\n incoming.destroy();\n outgoing.destroy();\n });\n }\n });\n }\n };\n }\n }\n outgoing.on(\"close\", () => {\n const abortController = req[abortControllerKey];\n if (abortController) {\n if (incoming.errored) {\n req[abortControllerKey].abort(incoming.errored.toString());\n } else if (!outgoing.writableFinished) {\n req[abortControllerKey].abort(\"Client connection prematurely closed.\");\n }\n }\n if (!incomingEnded) {\n setTimeout(() => {\n if (!incomingEnded) {\n setTimeout(() => {\n incoming.destroy();\n });\n }\n });\n }\n });\n res = fetchCallback(req, { incoming, outgoing });\n if (cacheKey in res) {\n return responseViaCache(res, outgoing);\n }\n } catch (e) {\n if (!res) {\n if (options.errorHandler) {\n res = await options.errorHandler(req ? e : toRequestError(e));\n if (!res) {\n return;\n }\n } else if (!req) {\n res = handleRequestError();\n } else {\n res = handleFetchError(e);\n }\n } else {\n return handleResponseError(e, outgoing);\n }\n }\n try {\n return await responseViaResponseObject(res, outgoing, options);\n } catch (e) {\n return handleResponseError(e, outgoing);\n }\n };\n};\n\n// src/server.ts\nvar createAdaptorServer = (options) => {\n const fetchCallback = options.fetch;\n const requestListener = getRequestListener(fetchCallback, {\n hostname: options.hostname,\n overrideGlobalObjects: options.overrideGlobalObjects,\n autoCleanupIncoming: options.autoCleanupIncoming\n });\n const createServer = options.createServer || createServerHTTP;\n const server = createServer(options.serverOptions || {}, requestListener);\n return server;\n};\nvar serve = (options, listeningListener) => {\n const server = createAdaptorServer(options);\n server.listen(options?.port ?? 3e3, options.hostname, () => {\n const serverInfo = server.address();\n listeningListener && listeningListener(serverInfo);\n });\n return server;\n};\nexport {\n RequestError,\n createAdaptorServer,\n getRequestListener,\n serve\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../node_modules/.pnpm/@hono+node-server@1.19.7_hono@4.11.1/node_modules/@hono/node-server/dist/index.mjs"],"sourcesContent":["// src/server.ts\nimport { createServer as createServerHTTP } from \"http\";\n\n// src/listener.ts\nimport { Http2ServerRequest as Http2ServerRequest2 } from \"http2\";\n\n// src/request.ts\nimport { Http2ServerRequest } from \"http2\";\nimport { Readable } from \"stream\";\nvar RequestError = class extends Error {\n constructor(message, options) {\n super(message, options);\n this.name = \"RequestError\";\n }\n};\nvar toRequestError = (e) => {\n if (e instanceof RequestError) {\n return e;\n }\n return new RequestError(e.message, { cause: e });\n};\nvar GlobalRequest = global.Request;\nvar Request = class extends GlobalRequest {\n constructor(input, options) {\n if (typeof input === \"object\" && getRequestCache in input) {\n input = input[getRequestCache]();\n }\n if (typeof options?.body?.getReader !== \"undefined\") {\n ;\n options.duplex ??= \"half\";\n }\n super(input, options);\n }\n};\nvar newHeadersFromIncoming = (incoming) => {\n const headerRecord = [];\n const rawHeaders = incoming.rawHeaders;\n for (let i = 0; i < rawHeaders.length; i += 2) {\n const { [i]: key, [i + 1]: value } = rawHeaders;\n if (key.charCodeAt(0) !== /*:*/\n 58) {\n headerRecord.push([key, value]);\n }\n }\n return new Headers(headerRecord);\n};\nvar wrapBodyStream = Symbol(\"wrapBodyStream\");\nvar newRequestFromIncoming = (method, url, headers, incoming, abortController) => {\n const init = {\n method,\n headers,\n signal: abortController.signal\n };\n if (method === \"TRACE\") {\n init.method = \"GET\";\n const req = new Request(url, init);\n Object.defineProperty(req, \"method\", {\n get() {\n return \"TRACE\";\n }\n });\n return req;\n }\n if (!(method === \"GET\" || method === \"HEAD\")) {\n if (\"rawBody\" in incoming && incoming.rawBody instanceof Buffer) {\n init.body = new ReadableStream({\n start(controller) {\n controller.enqueue(incoming.rawBody);\n controller.close();\n }\n });\n } else if (incoming[wrapBodyStream]) {\n let reader;\n init.body = new ReadableStream({\n async pull(controller) {\n try {\n reader ||= Readable.toWeb(incoming).getReader();\n const { done, value } = await reader.read();\n if (done) {\n controller.close();\n } else {\n controller.enqueue(value);\n }\n } catch (error) {\n controller.error(error);\n }\n }\n });\n } else {\n init.body = Readable.toWeb(incoming);\n }\n }\n return new Request(url, init);\n};\nvar getRequestCache = Symbol(\"getRequestCache\");\nvar requestCache = Symbol(\"requestCache\");\nvar incomingKey = Symbol(\"incomingKey\");\nvar urlKey = Symbol(\"urlKey\");\nvar headersKey = Symbol(\"headersKey\");\nvar abortControllerKey = Symbol(\"abortControllerKey\");\nvar getAbortController = Symbol(\"getAbortController\");\nvar requestPrototype = {\n get method() {\n return this[incomingKey].method || \"GET\";\n },\n get url() {\n return this[urlKey];\n },\n get headers() {\n return this[headersKey] ||= newHeadersFromIncoming(this[incomingKey]);\n },\n [getAbortController]() {\n this[getRequestCache]();\n return this[abortControllerKey];\n },\n [getRequestCache]() {\n this[abortControllerKey] ||= new AbortController();\n return this[requestCache] ||= newRequestFromIncoming(\n this.method,\n this[urlKey],\n this.headers,\n this[incomingKey],\n this[abortControllerKey]\n );\n }\n};\n[\n \"body\",\n \"bodyUsed\",\n \"cache\",\n \"credentials\",\n \"destination\",\n \"integrity\",\n \"mode\",\n \"redirect\",\n \"referrer\",\n \"referrerPolicy\",\n \"signal\",\n \"keepalive\"\n].forEach((k) => {\n Object.defineProperty(requestPrototype, k, {\n get() {\n return this[getRequestCache]()[k];\n }\n });\n});\n[\"arrayBuffer\", \"blob\", \"clone\", \"formData\", \"json\", \"text\"].forEach((k) => {\n Object.defineProperty(requestPrototype, k, {\n value: function() {\n return this[getRequestCache]()[k]();\n }\n });\n});\nObject.setPrototypeOf(requestPrototype, Request.prototype);\nvar newRequest = (incoming, defaultHostname) => {\n const req = Object.create(requestPrototype);\n req[incomingKey] = incoming;\n const incomingUrl = incoming.url || \"\";\n if (incomingUrl[0] !== \"/\" && // short-circuit for performance. most requests are relative URL.\n (incomingUrl.startsWith(\"http://\") || incomingUrl.startsWith(\"https://\"))) {\n if (incoming instanceof Http2ServerRequest) {\n throw new RequestError(\"Absolute URL for :path is not allowed in HTTP/2\");\n }\n try {\n const url2 = new URL(incomingUrl);\n req[urlKey] = url2.href;\n } catch (e) {\n throw new RequestError(\"Invalid absolute URL\", { cause: e });\n }\n return req;\n }\n const host = (incoming instanceof Http2ServerRequest ? incoming.authority : incoming.headers.host) || defaultHostname;\n if (!host) {\n throw new RequestError(\"Missing host header\");\n }\n let scheme;\n if (incoming instanceof Http2ServerRequest) {\n scheme = incoming.scheme;\n if (!(scheme === \"http\" || scheme === \"https\")) {\n throw new RequestError(\"Unsupported scheme\");\n }\n } else {\n scheme = incoming.socket && incoming.socket.encrypted ? \"https\" : \"http\";\n }\n const url = new URL(`${scheme}://${host}${incomingUrl}`);\n if (url.hostname.length !== host.length && url.hostname !== host.replace(/:\\d+$/, \"\")) {\n throw new RequestError(\"Invalid host header\");\n }\n req[urlKey] = url.href;\n return req;\n};\n\n// src/response.ts\nvar responseCache = Symbol(\"responseCache\");\nvar getResponseCache = Symbol(\"getResponseCache\");\nvar cacheKey = Symbol(\"cache\");\nvar GlobalResponse = global.Response;\nvar Response2 = class _Response {\n #body;\n #init;\n [getResponseCache]() {\n delete this[cacheKey];\n return this[responseCache] ||= new GlobalResponse(this.#body, this.#init);\n }\n constructor(body, init) {\n let headers;\n this.#body = body;\n if (init instanceof _Response) {\n const cachedGlobalResponse = init[responseCache];\n if (cachedGlobalResponse) {\n this.#init = cachedGlobalResponse;\n this[getResponseCache]();\n return;\n } else {\n this.#init = init.#init;\n headers = new Headers(init.#init.headers);\n }\n } else {\n this.#init = init;\n }\n if (typeof body === \"string\" || typeof body?.getReader !== \"undefined\" || body instanceof Blob || body instanceof Uint8Array) {\n headers ||= init?.headers || { \"content-type\": \"text/plain; charset=UTF-8\" };\n this[cacheKey] = [init?.status || 200, body, headers];\n }\n }\n get headers() {\n const cache = this[cacheKey];\n if (cache) {\n if (!(cache[2] instanceof Headers)) {\n cache[2] = new Headers(cache[2]);\n }\n return cache[2];\n }\n return this[getResponseCache]().headers;\n }\n get status() {\n return this[cacheKey]?.[0] ?? this[getResponseCache]().status;\n }\n get ok() {\n const status = this.status;\n return status >= 200 && status < 300;\n }\n};\n[\"body\", \"bodyUsed\", \"redirected\", \"statusText\", \"trailers\", \"type\", \"url\"].forEach((k) => {\n Object.defineProperty(Response2.prototype, k, {\n get() {\n return this[getResponseCache]()[k];\n }\n });\n});\n[\"arrayBuffer\", \"blob\", \"clone\", \"formData\", \"json\", \"text\"].forEach((k) => {\n Object.defineProperty(Response2.prototype, k, {\n value: function() {\n return this[getResponseCache]()[k]();\n }\n });\n});\nObject.setPrototypeOf(Response2, GlobalResponse);\nObject.setPrototypeOf(Response2.prototype, GlobalResponse.prototype);\n\n// src/utils.ts\nasync function readWithoutBlocking(readPromise) {\n return Promise.race([readPromise, Promise.resolve().then(() => Promise.resolve(void 0))]);\n}\nfunction writeFromReadableStreamDefaultReader(reader, writable, currentReadPromise) {\n const cancel = (error) => {\n reader.cancel(error).catch(() => {\n });\n };\n writable.on(\"close\", cancel);\n writable.on(\"error\", cancel);\n (currentReadPromise ?? reader.read()).then(flow, handleStreamError);\n return reader.closed.finally(() => {\n writable.off(\"close\", cancel);\n writable.off(\"error\", cancel);\n });\n function handleStreamError(error) {\n if (error) {\n writable.destroy(error);\n }\n }\n function onDrain() {\n reader.read().then(flow, handleStreamError);\n }\n function flow({ done, value }) {\n try {\n if (done) {\n writable.end();\n } else if (!writable.write(value)) {\n writable.once(\"drain\", onDrain);\n } else {\n return reader.read().then(flow, handleStreamError);\n }\n } catch (e) {\n handleStreamError(e);\n }\n }\n}\nfunction writeFromReadableStream(stream, writable) {\n if (stream.locked) {\n throw new TypeError(\"ReadableStream is locked.\");\n } else if (writable.destroyed) {\n return;\n }\n return writeFromReadableStreamDefaultReader(stream.getReader(), writable);\n}\nvar buildOutgoingHttpHeaders = (headers) => {\n const res = {};\n if (!(headers instanceof Headers)) {\n headers = new Headers(headers ?? void 0);\n }\n const cookies = [];\n for (const [k, v] of headers) {\n if (k === \"set-cookie\") {\n cookies.push(v);\n } else {\n res[k] = v;\n }\n }\n if (cookies.length > 0) {\n res[\"set-cookie\"] = cookies;\n }\n res[\"content-type\"] ??= \"text/plain; charset=UTF-8\";\n return res;\n};\n\n// src/utils/response/constants.ts\nvar X_ALREADY_SENT = \"x-hono-already-sent\";\n\n// src/globals.ts\nimport crypto from \"crypto\";\nvar webFetch = global.fetch;\nif (typeof global.crypto === \"undefined\") {\n global.crypto = crypto;\n}\nglobal.fetch = (info, init) => {\n init = {\n // Disable compression handling so people can return the result of a fetch\n // directly in the loader without messing with the Content-Encoding header.\n compress: false,\n ...init\n };\n return webFetch(info, init);\n};\n\n// src/listener.ts\nvar outgoingEnded = Symbol(\"outgoingEnded\");\nvar handleRequestError = () => new Response(null, {\n status: 400\n});\nvar handleFetchError = (e) => new Response(null, {\n status: e instanceof Error && (e.name === \"TimeoutError\" || e.constructor.name === \"TimeoutError\") ? 504 : 500\n});\nvar handleResponseError = (e, outgoing) => {\n const err = e instanceof Error ? e : new Error(\"unknown error\", { cause: e });\n if (err.code === \"ERR_STREAM_PREMATURE_CLOSE\") {\n console.info(\"The user aborted a request.\");\n } else {\n console.error(e);\n if (!outgoing.headersSent) {\n outgoing.writeHead(500, { \"Content-Type\": \"text/plain\" });\n }\n outgoing.end(`Error: ${err.message}`);\n outgoing.destroy(err);\n }\n};\nvar flushHeaders = (outgoing) => {\n if (\"flushHeaders\" in outgoing && outgoing.writable) {\n outgoing.flushHeaders();\n }\n};\nvar responseViaCache = async (res, outgoing) => {\n let [status, body, header] = res[cacheKey];\n if (header instanceof Headers) {\n header = buildOutgoingHttpHeaders(header);\n }\n if (typeof body === \"string\") {\n header[\"Content-Length\"] = Buffer.byteLength(body);\n } else if (body instanceof Uint8Array) {\n header[\"Content-Length\"] = body.byteLength;\n } else if (body instanceof Blob) {\n header[\"Content-Length\"] = body.size;\n }\n outgoing.writeHead(status, header);\n if (typeof body === \"string\" || body instanceof Uint8Array) {\n outgoing.end(body);\n } else if (body instanceof Blob) {\n outgoing.end(new Uint8Array(await body.arrayBuffer()));\n } else {\n flushHeaders(outgoing);\n await writeFromReadableStream(body, outgoing)?.catch(\n (e) => handleResponseError(e, outgoing)\n );\n }\n ;\n outgoing[outgoingEnded]?.();\n};\nvar isPromise = (res) => typeof res.then === \"function\";\nvar responseViaResponseObject = async (res, outgoing, options = {}) => {\n if (isPromise(res)) {\n if (options.errorHandler) {\n try {\n res = await res;\n } catch (err) {\n const errRes = await options.errorHandler(err);\n if (!errRes) {\n return;\n }\n res = errRes;\n }\n } else {\n res = await res.catch(handleFetchError);\n }\n }\n if (cacheKey in res) {\n return responseViaCache(res, outgoing);\n }\n const resHeaderRecord = buildOutgoingHttpHeaders(res.headers);\n if (res.body) {\n const reader = res.body.getReader();\n const values = [];\n let done = false;\n let currentReadPromise = void 0;\n if (resHeaderRecord[\"transfer-encoding\"] !== \"chunked\") {\n let maxReadCount = 2;\n for (let i = 0; i < maxReadCount; i++) {\n currentReadPromise ||= reader.read();\n const chunk = await readWithoutBlocking(currentReadPromise).catch((e) => {\n console.error(e);\n done = true;\n });\n if (!chunk) {\n if (i === 1) {\n await new Promise((resolve) => setTimeout(resolve));\n maxReadCount = 3;\n continue;\n }\n break;\n }\n currentReadPromise = void 0;\n if (chunk.value) {\n values.push(chunk.value);\n }\n if (chunk.done) {\n done = true;\n break;\n }\n }\n if (done && !(\"content-length\" in resHeaderRecord)) {\n resHeaderRecord[\"content-length\"] = values.reduce((acc, value) => acc + value.length, 0);\n }\n }\n outgoing.writeHead(res.status, resHeaderRecord);\n values.forEach((value) => {\n ;\n outgoing.write(value);\n });\n if (done) {\n outgoing.end();\n } else {\n if (values.length === 0) {\n flushHeaders(outgoing);\n }\n await writeFromReadableStreamDefaultReader(reader, outgoing, currentReadPromise);\n }\n } else if (resHeaderRecord[X_ALREADY_SENT]) {\n } else {\n outgoing.writeHead(res.status, resHeaderRecord);\n outgoing.end();\n }\n ;\n outgoing[outgoingEnded]?.();\n};\nvar getRequestListener = (fetchCallback, options = {}) => {\n const autoCleanupIncoming = options.autoCleanupIncoming ?? true;\n if (options.overrideGlobalObjects !== false && global.Request !== Request) {\n Object.defineProperty(global, \"Request\", {\n value: Request\n });\n Object.defineProperty(global, \"Response\", {\n value: Response2\n });\n }\n return async (incoming, outgoing) => {\n let res, req;\n try {\n req = newRequest(incoming, options.hostname);\n let incomingEnded = !autoCleanupIncoming || incoming.method === \"GET\" || incoming.method === \"HEAD\";\n if (!incomingEnded) {\n ;\n incoming[wrapBodyStream] = true;\n incoming.on(\"end\", () => {\n incomingEnded = true;\n });\n if (incoming instanceof Http2ServerRequest2) {\n ;\n outgoing[outgoingEnded] = () => {\n if (!incomingEnded) {\n setTimeout(() => {\n if (!incomingEnded) {\n setTimeout(() => {\n incoming.destroy();\n outgoing.destroy();\n });\n }\n });\n }\n };\n }\n }\n outgoing.on(\"close\", () => {\n const abortController = req[abortControllerKey];\n if (abortController) {\n if (incoming.errored) {\n req[abortControllerKey].abort(incoming.errored.toString());\n } else if (!outgoing.writableFinished) {\n req[abortControllerKey].abort(\"Client connection prematurely closed.\");\n }\n }\n if (!incomingEnded) {\n setTimeout(() => {\n if (!incomingEnded) {\n setTimeout(() => {\n incoming.destroy();\n });\n }\n });\n }\n });\n res = fetchCallback(req, { incoming, outgoing });\n if (cacheKey in res) {\n return responseViaCache(res, outgoing);\n }\n } catch (e) {\n if (!res) {\n if (options.errorHandler) {\n res = await options.errorHandler(req ? e : toRequestError(e));\n if (!res) {\n return;\n }\n } else if (!req) {\n res = handleRequestError();\n } else {\n res = handleFetchError(e);\n }\n } else {\n return handleResponseError(e, outgoing);\n }\n }\n try {\n return await responseViaResponseObject(res, outgoing, options);\n } catch (e) {\n return handleResponseError(e, outgoing);\n }\n };\n};\n\n// src/server.ts\nvar createAdaptorServer = (options) => {\n const fetchCallback = options.fetch;\n const requestListener = getRequestListener(fetchCallback, {\n hostname: options.hostname,\n overrideGlobalObjects: options.overrideGlobalObjects,\n autoCleanupIncoming: options.autoCleanupIncoming\n });\n const createServer = options.createServer || createServerHTTP;\n const server = createServer(options.serverOptions || {}, requestListener);\n return server;\n};\nvar serve = (options, listeningListener) => {\n const server = createAdaptorServer(options);\n server.listen(options?.port ?? 3e3, options.hostname, () => {\n const serverInfo = server.address();\n listeningListener && listeningListener(serverInfo);\n });\n return server;\n};\nexport {\n RequestError,\n createAdaptorServer,\n getRequestListener,\n serve\n};\n"],"mappings":"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","names":[]}
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  validateCodecRegistryCompleteness,
12
12
  validateContractCodecMappings,
13
13
  writeContractMarker
14
- } from "./chunk-C6I3V3DM.js";
14
+ } from "./chunk-APA6GHYY.js";
15
15
  import "./chunk-7D4SUZUM.js";
16
16
  export {
17
17
  budgets,
@@ -0,0 +1,4 @@
1
+ import type { ExecutionPlan } from '@prisma-next/contract/types';
2
+ import type { CodecRegistry } from '@prisma-next/sql-relational-core/ast';
3
+ export declare function decodeRow(row: Record<string, unknown>, plan: ExecutionPlan, registry: CodecRegistry): Record<string, unknown>;
4
+ //# sourceMappingURL=decoding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoding.d.ts","sourceRoot":"","sources":["../../../src/codecs/decoding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAS,aAAa,EAAE,MAAM,sCAAsC,CAAC;AA4BjF,wBAAgB,SAAS,CACvB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,aAAa,GACtB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0GzB"}
@@ -0,0 +1,5 @@
1
+ import type { ExecutionPlan, ParamDescriptor } from '@prisma-next/contract/types';
2
+ import type { CodecRegistry } from '@prisma-next/sql-relational-core/ast';
3
+ export declare function encodeParam(value: unknown, paramDescriptor: ParamDescriptor, plan: ExecutionPlan, registry: CodecRegistry): unknown;
4
+ export declare function encodeParams(plan: ExecutionPlan, registry: CodecRegistry): readonly unknown[];
5
+ //# sourceMappingURL=encoding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../../src/codecs/encoding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,KAAK,EAAS,aAAa,EAAE,MAAM,sCAAsC,CAAC;AA2BjF,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,aAAa,GACtB,OAAO,CAqBT;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,GAAG,SAAS,OAAO,EAAE,CAmB7F"}
@@ -0,0 +1,6 @@
1
+ import type { SqlContract, SqlStorage } from '@prisma-next/sql-contract/types';
2
+ import type { CodecRegistry } from '@prisma-next/sql-relational-core/ast';
3
+ export declare function extractCodecIds(contract: SqlContract<SqlStorage>): Set<string>;
4
+ export declare function validateContractCodecMappings(registry: CodecRegistry, contract: SqlContract<SqlStorage>): void;
5
+ export declare function validateCodecRegistryCompleteness(registry: CodecRegistry, contract: SqlContract<SqlStorage>): void;
6
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/codecs/validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAE1E,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAW9E;AAgBD,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,GAChC,IAAI,CAyBN;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,GAChC,IAAI,CAEN"}
@@ -0,0 +1,11 @@
1
+ export type { AfterExecuteResult, BudgetsOptions, LintsOptions, Log, Plugin, PluginContext, } from '@prisma-next/runtime-executor';
2
+ export { budgets, lints } from '@prisma-next/runtime-executor';
3
+ export { extractCodecIds, validateCodecRegistryCompleteness, validateContractCodecMappings, } from '../codecs/validation';
4
+ export { lowerSqlPlan } from '../lower-sql-plan';
5
+ export type { CreateRuntimeContextOptions, RuntimeContext, RuntimeParameterizedCodecDescriptor, SqlRuntimeAdapterInstance, SqlRuntimeExtensionDescriptor, SqlRuntimeExtensionInstance, TypeHelperRegistry, } from '../sql-context';
6
+ export { createRuntimeContext } from '../sql-context';
7
+ export type { SqlStatement } from '../sql-marker';
8
+ export { ensureSchemaStatement, ensureTableStatement, readContractMarker, writeContractMarker, } from '../sql-marker';
9
+ export type { Runtime, RuntimeOptions, RuntimeTelemetryEvent, RuntimeVerifyOptions, TelemetryOutcome, } from '../sql-runtime';
10
+ export { createRuntime } from '../sql-runtime';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exports/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,GAAG,EACH,MAAM,EACN,aAAa,GACd,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EACL,eAAe,EACf,iCAAiC,EACjC,6BAA6B,GAC9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EACV,2BAA2B,EAC3B,cAAc,EACd,mCAAmC,EACnC,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,OAAO,EACP,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './exports';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { ExecutionPlan } from '@prisma-next/contract/types';
2
+ import type { SqlQueryPlan } from '@prisma-next/sql-relational-core/plan';
3
+ import type { RuntimeContext } from './sql-context';
4
+ /**
5
+ * Lowers a SQL query plan to an executable Plan by calling the adapter's lower method.
6
+ *
7
+ * This function is responsible for converting a lane-produced SqlQueryPlan (which contains
8
+ * AST and params but no SQL) into a fully executable Plan (which includes SQL string).
9
+ *
10
+ * @param context - Runtime context containing the adapter
11
+ * @param queryPlan - SQL query plan from a lane (contains AST, params, meta, but no SQL)
12
+ * @returns Fully executable Plan with SQL string
13
+ */
14
+ export declare function lowerSqlPlan<Row>(context: RuntimeContext, queryPlan: SqlQueryPlan<Row>): ExecutionPlan<Row>;
15
+ //# sourceMappingURL=lower-sql-plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lower-sql-plan.d.ts","sourceRoot":"","sources":["../../src/lower-sql-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAC9B,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,GAC3B,aAAa,CAAC,GAAG,CAAC,CAcpB"}