@prisma-next/sql-contract-ts 0.13.0-dev.17 → 0.13.0-dev.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,27 +1,27 @@
1
1
  {
2
2
  "name": "@prisma-next/sql-contract-ts",
3
- "version": "0.13.0-dev.17",
3
+ "version": "0.13.0-dev.19",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "sideEffects": false,
7
7
  "description": "SQL-specific TypeScript contract authoring surface for Prisma Next",
8
8
  "dependencies": {
9
- "@prisma-next/config": "0.13.0-dev.17",
10
- "@prisma-next/contract": "0.13.0-dev.17",
11
- "@prisma-next/contract-authoring": "0.13.0-dev.17",
12
- "@prisma-next/framework-components": "0.13.0-dev.17",
13
- "@prisma-next/sql-contract": "0.13.0-dev.17",
14
- "@prisma-next/utils": "0.13.0-dev.17",
9
+ "@prisma-next/config": "0.13.0-dev.19",
10
+ "@prisma-next/contract": "0.13.0-dev.19",
11
+ "@prisma-next/contract-authoring": "0.13.0-dev.19",
12
+ "@prisma-next/framework-components": "0.13.0-dev.19",
13
+ "@prisma-next/sql-contract": "0.13.0-dev.19",
14
+ "@prisma-next/utils": "0.13.0-dev.19",
15
15
  "arktype": "^2.2.0",
16
16
  "pathe": "^2.0.3",
17
17
  "ts-toolbelt": "^9.6.0"
18
18
  },
19
19
  "devDependencies": {
20
- "@prisma-next/test-utils": "0.13.0-dev.17",
21
- "@prisma-next/tsconfig": "0.13.0-dev.17",
20
+ "@prisma-next/test-utils": "0.13.0-dev.19",
21
+ "@prisma-next/tsconfig": "0.13.0-dev.19",
22
22
  "@types/pg": "8.20.0",
23
23
  "pg": "8.21.0",
24
- "@prisma-next/tsdown": "0.13.0-dev.17",
24
+ "@prisma-next/tsdown": "0.13.0-dev.19",
25
25
  "tsdown": "0.22.1",
26
26
  "typescript": "5.9.3",
27
27
  "vitest": "4.1.8"
@@ -338,6 +338,36 @@ export class ScalarFieldBuilder<State extends AnyScalarFieldState = AnyScalarFie
338
338
  }
339
339
  }
340
340
 
341
+ export class EnumScalarFieldBuilder<
342
+ Handle extends EnumTypeHandle,
343
+ State extends AnyScalarFieldState = ScalarFieldState<Handle['codecId'], Handle, false, undefined>,
344
+ > extends ScalarFieldBuilder<State> {
345
+ readonly #handle: Handle;
346
+
347
+ constructor(state: State, handle: Handle) {
348
+ super(state);
349
+ this.#handle = handle;
350
+ }
351
+
352
+ override default(value: Handle['values'][number]): EnumScalarFieldBuilder<Handle, State> {
353
+ return blindCast<
354
+ EnumScalarFieldBuilder<Handle, State>,
355
+ 'object spread does not narrow the generic State conditional; runtime shape is correct'
356
+ >(
357
+ new EnumScalarFieldBuilder(
358
+ { ...this.build(), default: { kind: 'literal', value } },
359
+ this.#handle,
360
+ ),
361
+ );
362
+ }
363
+
364
+ override defaultSql(_expression: never): never {
365
+ throw new Error(
366
+ 'defaultSql is not available on an enum field; use .default(members.X) instead',
367
+ );
368
+ }
369
+ }
370
+
341
371
  function columnField<Descriptor extends ColumnTypeDescriptor>(
342
372
  descriptor: Descriptor,
343
373
  ): ScalarFieldBuilder<ScalarFieldState<Descriptor['codecId'], undefined, false, undefined>> {
@@ -373,16 +403,17 @@ function namedTypeField<TypeRef extends PostgresEnumStorageEntry>(
373
403
  ): ScalarFieldBuilder<ScalarFieldState<string, TypeRef, false, undefined>>;
374
404
  function namedTypeField<Handle extends EnumTypeHandle>(
375
405
  typeRef: Handle,
376
- ): ScalarFieldBuilder<ScalarFieldState<Handle['codecId'], Handle, false, undefined>>;
377
- function namedTypeField(
378
- typeRef: NamedStorageTypeRef,
379
- ): ScalarFieldBuilder<ScalarFieldState<string, NamedStorageTypeRef, false, undefined>> {
406
+ ): EnumScalarFieldBuilder<Handle>;
407
+ function namedTypeField(typeRef: NamedStorageTypeRef): ScalarFieldBuilder {
380
408
  if (isEnumTypeHandle(typeRef)) {
381
- return new ScalarFieldBuilder({
382
- kind: 'scalar',
409
+ return new EnumScalarFieldBuilder(
410
+ {
411
+ kind: 'scalar',
412
+ typeRef,
413
+ nullable: false,
414
+ },
383
415
  typeRef,
384
- nullable: false,
385
- });
416
+ );
386
417
  }
387
418
  return new ScalarFieldBuilder({
388
419
  kind: 'scalar',