@prisma-next/sql-contract-ts 0.14.0-dev.5 → 0.14.0-dev.51

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.
@@ -1,10 +1,10 @@
1
- import { t as buildSqlContractFromDefinition } from "./build-contract-CQ4u83jx.mjs";
1
+ import { t as buildSqlContractFromDefinition } from "./build-contract-Bi8UaU_S.mjs";
2
2
  import { blindCast } from "@prisma-next/utils/casts";
3
3
  import { ifDefined } from "@prisma-next/utils/defined";
4
4
  import { isColumnDefault } from "@prisma-next/contract/types";
5
- import { createEntityHelpersFromNamespace } from "@prisma-next/contract-authoring";
5
+ import { bindEnumType, createEntityHelpersFromNamespace, enumType, isEnumTypeHandle, member } from "@prisma-next/contract-authoring";
6
6
  import { toStorageTypeInstance } from "@prisma-next/sql-contract/types";
7
- import { assertNoCrossRegistryCollisions, instantiateAuthoringFieldPreset, instantiateAuthoringTypeConstructor, isAuthoringEntityTypeDescriptor, isAuthoringFieldPresetDescriptor, isAuthoringTypeConstructorDescriptor, mergeAuthoringNamespaces, validateAuthoringHelperArguments } from "@prisma-next/framework-components/authoring";
7
+ import { assertNoCrossRegistryCollisions, instantiateAuthoringFieldPreset, instantiateAuthoringTypeConstructor, isAuthoringFieldPresetDescriptor, isAuthoringTypeConstructorDescriptor, mergeAuthoringNamespaces, validateAuthoringHelperArguments } from "@prisma-next/framework-components/authoring";
8
8
  //#region src/authoring-helper-runtime.ts
9
9
  function isNamedConstraintOptionsLike(value) {
10
10
  if (typeof value !== "object" || value === null || Array.isArray(value)) return false;
@@ -79,71 +79,6 @@ function createFieldHelpersFromNamespace(namespace, createLeafHelper, path = [])
79
79
  return helpers;
80
80
  }
81
81
  //#endregion
82
- //#region src/enum-type.ts
83
- function member(name, value) {
84
- return {
85
- name,
86
- value: blindCast(value ?? name)
87
- };
88
- }
89
- /**
90
- * Internal brand that identifies an EnumTypeHandle in the lowering pipeline.
91
- * Not exported — callers only interact with `EnumTypeHandle`.
92
- */
93
- const ENUM_TYPE_HANDLE_BRAND = Symbol("EnumTypeHandle");
94
- function enumType(name, codec, ...members) {
95
- if (members.length === 0) throw new Error(`enumType("${name}"): must have at least one member.`);
96
- const seenNames = /* @__PURE__ */ new Set();
97
- const seenValues = /* @__PURE__ */ new Set();
98
- for (const m of members) {
99
- if (seenNames.has(m.name)) throw new Error(`enumType("${name}"): duplicate member name "${m.name}". Member names must be unique.`);
100
- seenNames.add(m.name);
101
- const loweredValue = String(m.value);
102
- if (seenValues.has(loweredValue)) throw new Error(`enumType("${name}"): duplicate member value "${loweredValue}". Member values must be unique.`);
103
- seenValues.add(loweredValue);
104
- }
105
- const values = Object.freeze(members.map((m) => m.value));
106
- const names = Object.freeze(members.map((m) => m.name));
107
- const enumMembers = Object.freeze(members.map((m) => ({
108
- name: m.name,
109
- value: m.value
110
- })));
111
- const membersAccessor = Object.freeze(Object.fromEntries(members.map((m) => [m.name, m.value])));
112
- const valueSet = new Set(values);
113
- const valueToName = new Map(members.map((m) => [m.value, m.name]));
114
- const valueToOrdinal = new Map(values.map((v, i) => [v, i]));
115
- return {
116
- [ENUM_TYPE_HANDLE_BRAND]: true,
117
- enumName: name,
118
- codecId: codec.codecId,
119
- nativeType: codec.nativeType,
120
- enumMembers,
121
- values,
122
- names,
123
- members: membersAccessor,
124
- has: (v) => valueSet.has(v),
125
- nameOf: (v) => valueToName.get(v),
126
- ordinalOf: (v) => valueToOrdinal.get(v) ?? -1
127
- };
128
- }
129
- /**
130
- * Bind `enumType` to a target's codec typemap. The returned function is the
131
- * same runtime `enumType`, retyped so member values are constrained to the
132
- * codec's input type. Target packages call this with their pack's
133
- * `ExtractCodecTypesFromPack<Pack>` to expose a codec-aware `enumType`.
134
- */
135
- function bindEnumType() {
136
- return enumType;
137
- }
138
- /**
139
- * Returns true when the value is an `EnumTypeHandle` produced by
140
- * `enumType()`. Used in the lowering pipeline to detect enum handles
141
- * in field state without importing the BRAND symbol at every call site.
142
- */
143
- function isEnumTypeHandle(value) {
144
- return typeof value === "object" && value !== null && Reflect.get(value, ENUM_TYPE_HANDLE_BRAND) === true;
145
- }
146
- //#endregion
147
82
  //#region src/contract-dsl.ts
148
83
  function toColumnDefault(value) {
149
84
  if (isColumnDefault(value)) return value;
@@ -178,6 +113,12 @@ var ScalarFieldBuilder = class ScalarFieldBuilder {
178
113
  columnName: name
179
114
  });
180
115
  }
116
+ many() {
117
+ return new ScalarFieldBuilder(blindCast({
118
+ ...this.state,
119
+ many: true
120
+ }));
121
+ }
181
122
  default(value) {
182
123
  return new ScalarFieldBuilder({
183
124
  ...this.state,
@@ -259,11 +200,11 @@ function generatedField(spec) {
259
200
  });
260
201
  }
261
202
  function namedTypeField(typeRef) {
262
- if (isEnumTypeHandle(typeRef)) return new EnumScalarFieldBuilder({
203
+ if (isEnumTypeHandle(typeRef)) return new EnumScalarFieldBuilder(blindCast({
263
204
  kind: "scalar",
264
205
  typeRef,
265
206
  nullable: false
266
- }, typeRef);
207
+ }), typeRef);
267
208
  return new ScalarFieldBuilder({
268
209
  kind: "scalar",
269
210
  typeRef,
@@ -653,7 +594,7 @@ function composeTypeNamespace(components) {
653
594
  const merged = {};
654
595
  for (const component of components) {
655
596
  const ns = extractTypeNamespace(component);
656
- if (Object.keys(ns).length > 0) mergeAuthoringNamespaces(merged, ns, [], isAuthoringTypeConstructorDescriptor, "type");
597
+ if (Object.keys(ns).length > 0) mergeAuthoringNamespaces(merged, ns, [], "typeConstructor", "type");
657
598
  }
658
599
  return merged;
659
600
  }
@@ -661,7 +602,7 @@ function composeFieldNamespace(components) {
661
602
  const merged = {};
662
603
  for (const component of components) {
663
604
  const ns = extractFieldNamespace(component);
664
- if (Object.keys(ns).length > 0) mergeAuthoringNamespaces(merged, ns, [], isAuthoringFieldPresetDescriptor, "field");
605
+ if (Object.keys(ns).length > 0) mergeAuthoringNamespaces(merged, ns, [], "fieldPreset", "field");
665
606
  }
666
607
  return merged;
667
608
  }
@@ -669,7 +610,7 @@ function composeEntityNamespace(components) {
669
610
  const merged = {};
670
611
  for (const component of components) {
671
612
  const ns = extractEntitiesNamespace(component);
672
- if (Object.keys(ns).length > 0) mergeAuthoringNamespaces(merged, ns, [], isAuthoringEntityTypeDescriptor, "entity");
613
+ if (Object.keys(ns).length > 0) mergeAuthoringNamespaces(merged, ns, [], "entity", "entity");
673
614
  }
674
615
  return merged;
675
616
  }
@@ -1159,6 +1100,7 @@ function resolveModelNode(spec, allSpecs, storageTypes, storageTypeReverseLookup
1159
1100
  columnName,
1160
1101
  descriptor,
1161
1102
  nullable: fieldState.nullable,
1103
+ ...fieldState.many === true ? { many: true } : {},
1162
1104
  ...fieldState.default ? { default: fieldState.default } : {},
1163
1105
  ...fieldState.executionDefaults ? { executionDefaults: fieldState.executionDefaults } : {},
1164
1106
  ...enumHandle !== void 0 ? { enumTypeHandle: enumHandle } : {}
@@ -1259,7 +1201,7 @@ function buildContractDefinition(definition) {
1259
1201
  ...definition.foreignKeyDefaults ? { foreignKeyDefaults: definition.foreignKeyDefaults } : {},
1260
1202
  ...Object.keys(collection.storageTypes).length > 0 ? { storageTypes: collection.storageTypes } : {},
1261
1203
  ...definition.namespaces ? { namespaces: definition.namespaces } : {},
1262
- ...definition.createNamespace ? { createNamespace: definition.createNamespace } : {},
1204
+ createNamespace: definition.createNamespace,
1263
1205
  ...definition.enums && Object.keys(definition.enums).length > 0 ? { enums: definition.enums } : {},
1264
1206
  models
1265
1207
  };