@prisma-next/sql-contract-psl 0.13.0-dev.17 → 0.13.0-dev.18

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 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/psl-column-resolution.ts","../src/interpreter.ts"],"mappings":";;;;;;;;;;;;KA0CY,gBAAA;EAAA,SACD,OAAA;EAAA,SACA,UAAA;EAAA,SACA,OAAA;EAAA,SACA,UAAA,GAAa,MAAM;AAAA;;;UCwDb,sCAAA;EAAA,SACN,QAAA,EAAU,sBAAA;EAAA,SACV,MAAA,EAAQ,aAAA;EAAA,SACR,qBAAA,EAAuB,WAAA,SAAoB,gBAAA;EAAA,SAC3C,sBAAA;EAAA,SACA,yBAAA,YAAqC,gBAAA;EAAA,SACrC,uBAAA,GAA0B,yBAAA;EAAA,SAC1B,sBAAA,GAAyB,sBAAA;ED/DzB;;;AAAmB;;;;ACwD9B;;EDxDW,SCyEA,0BAAA,EAA4B,WAAA,SAAoB,QAAA;EAhBtC;;;;;;;;;EAAA,SA0BV,eAAA,IAAmB,KAAA,EAAO,uBAAA,KAA4B,SAAA;EAAA,SACtD,WAAA,GAAc,WAAA;AAAA;AAAA,iBAwwDT,iCAAA,CACd,KAAA,EAAO,sCAAA,GACN,MAAA,CAAO,QAAA,EAAU,yBAAA"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/psl-column-resolution.ts","../src/interpreter.ts"],"mappings":";;;;;;;;;;;;KA0CY,gBAAA;EAAA,SACD,OAAA;EAAA,SACA,UAAA;EAAA,SACA,OAAA;EAAA,SACA,UAAA,GAAa,MAAM;AAAA;;;UCwDb,sCAAA;EAAA,SACN,QAAA,EAAU,sBAAA;EAAA,SACV,MAAA,EAAQ,aAAA;EAAA,SACR,qBAAA,EAAuB,WAAA,SAAoB,gBAAA;EAAA,SAC3C,sBAAA;EAAA,SACA,yBAAA,YAAqC,gBAAA;EAAA,SACrC,uBAAA,GAA0B,yBAAA;EAAA,SAC1B,sBAAA,GAAyB,sBAAA;ED/DzB;;;AAAmB;;;;ACwD9B;;EDxDW,SCyEA,0BAAA,EAA4B,WAAA,SAAoB,QAAA;EAhBtC;;;;;;;;;EAAA,SA0BV,eAAA,IAAmB,KAAA,EAAO,uBAAA,KAA4B,SAAA;EAAA,SACtD,WAAA,GAAc,WAAA;AAAA;AAAA,iBAywDT,iCAAA,CACd,KAAA,EAAO,sCAAA,GACN,MAAA,CAAO,QAAA,EAAU,yBAAA"}
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { t as interpretPslDocumentToSqlContract } from "./interpreter-He_PL0li.mjs";
1
+ import { t as interpretPslDocumentToSqlContract } from "./interpreter-CQdQo427.mjs";
2
2
  export { interpretPslDocumentToSqlContract };
@@ -1309,6 +1309,37 @@ function resolveColumnDescriptor(field, enumTypeDescriptors, namedTypeDescriptor
1309
1309
  }
1310
1310
  //#endregion
1311
1311
  //#region src/psl-field-resolution.ts
1312
+ function lowerEnum2DefaultForField(input) {
1313
+ const expressionEntry = getPositionalArgumentEntry(input.defaultAttribute);
1314
+ if (!expressionEntry) return {};
1315
+ const raw = expressionEntry.value.trim();
1316
+ const isQuotedString = /^(['"]).*\1$/.test(raw);
1317
+ const isFunctionCall = raw.includes("(") && raw.endsWith(")");
1318
+ if (isQuotedString || isFunctionCall) {
1319
+ input.diagnostics.push({
1320
+ code: "PSL_ENUM2_DEFAULT_MUST_BE_MEMBER_NAME",
1321
+ message: `Field "${input.modelName}.${input.fieldName}" @default on an enum2 field must name a member (e.g. @default(Low)), not a raw value or function.`,
1322
+ sourceId: input.sourceId,
1323
+ span: input.defaultAttribute.span
1324
+ });
1325
+ return {};
1326
+ }
1327
+ const match = input.enumHandle.enumMembers.find((m) => m.name === raw);
1328
+ if (!match) {
1329
+ const validNames = input.enumHandle.enumMembers.map((m) => m.name).join(", ");
1330
+ input.diagnostics.push({
1331
+ code: "PSL_ENUM2_UNKNOWN_DEFAULT_MEMBER",
1332
+ message: `Field "${input.modelName}.${input.fieldName}" @default(${raw}) does not name a member of ${input.enumHandle.enumName}. Valid members: ${validNames}.`,
1333
+ sourceId: input.sourceId,
1334
+ span: input.defaultAttribute.span
1335
+ });
1336
+ return {};
1337
+ }
1338
+ return { defaultValue: {
1339
+ kind: "literal",
1340
+ value: blindCast(match.value)
1341
+ } };
1342
+ }
1312
1343
  const MODEL_COORDINATE_SEPARATOR = "\0";
1313
1344
  function modelCoordinateKey(namespaceId, modelName) {
1314
1345
  return `${namespaceId}${MODEL_COORDINATE_SEPARATOR}${modelName}`;
@@ -1382,7 +1413,7 @@ function extractFieldConstraintNames(input) {
1382
1413
  };
1383
1414
  }
1384
1415
  function collectResolvedFields(input) {
1385
- const { model, mapping, enumTypeDescriptors, namedTypeDescriptors, modelNames, compositeTypeNames, composedExtensions, authoringContributions, familyId, targetId, defaultFunctionRegistry, generatorDescriptorById, diagnostics, sourceId, scalarTypeDescriptors } = input;
1416
+ const { model, mapping, enumTypeDescriptors, namedTypeDescriptors, modelNames, compositeTypeNames, composedExtensions, authoringContributions, familyId, targetId, defaultFunctionRegistry, generatorDescriptorById, diagnostics, sourceId, scalarTypeDescriptors, enum2Handles } = input;
1386
1417
  const resolvedFields = [];
1387
1418
  for (const field of model.fields) {
1388
1419
  const isModelField = modelNames.has(field.typeName);
@@ -1475,7 +1506,15 @@ function collectResolvedFields(input) {
1475
1506
  });
1476
1507
  continue;
1477
1508
  }
1478
- const loweredDefault = defaultAttribute ? lowerDefaultForField({
1509
+ const enum2Handle = enum2Handles?.get(field.typeName);
1510
+ const loweredDefault = defaultAttribute ? enum2Handle ? lowerEnum2DefaultForField({
1511
+ modelName: model.name,
1512
+ fieldName: field.name,
1513
+ defaultAttribute,
1514
+ enumHandle: enum2Handle,
1515
+ sourceId,
1516
+ diagnostics
1517
+ }) : lowerDefaultForField({
1479
1518
  modelName: model.name,
1480
1519
  fieldName: field.name,
1481
1520
  defaultAttribute,
@@ -2205,7 +2244,8 @@ function buildModelNodeFromPsl(input) {
2205
2244
  generatorDescriptorById: input.generatorDescriptorById,
2206
2245
  diagnostics,
2207
2246
  sourceId,
2208
- scalarTypeDescriptors: input.scalarTypeDescriptors
2247
+ scalarTypeDescriptors: input.scalarTypeDescriptors,
2248
+ ...ifDefined("enum2Handles", input.enum2Handles)
2209
2249
  });
2210
2250
  const inlineIdFields = resolvedFields.filter((field) => field.isId);
2211
2251
  if (inlineIdFields.length > 1) diagnostics.push({
@@ -3454,4 +3494,4 @@ function interpretPslDocumentToSqlContract(input) {
3454
3494
  //#endregion
3455
3495
  export { interpretPslDocumentToSqlContract as t };
3456
3496
 
3457
- //# sourceMappingURL=interpreter-He_PL0li.mjs.map
3497
+ //# sourceMappingURL=interpreter-CQdQo427.mjs.map