@baseplate-dev/fastify-generators 0.6.4 → 0.6.6

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 (130) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/constants/fastify-packages.d.ts +3 -3
  3. package/dist/constants/fastify-packages.js +3 -3
  4. package/dist/generators/auth/auth-roles/auth-roles.generator.d.ts +1 -0
  5. package/dist/generators/auth/auth-roles/auth-roles.generator.d.ts.map +1 -1
  6. package/dist/generators/auth/auth-roles/auth-roles.generator.js +5 -1
  7. package/dist/generators/auth/auth-roles/auth-roles.generator.js.map +1 -1
  8. package/dist/generators/auth/auth-roles/templates/module/constants/auth-roles.constants.ts +4 -3
  9. package/dist/generators/pothos/pothos-prisma-enum/pothos-prisma-enum.generator.d.ts +1 -0
  10. package/dist/generators/pothos/pothos-prisma-enum/pothos-prisma-enum.generator.d.ts.map +1 -1
  11. package/dist/generators/pothos/pothos-prisma-enum/pothos-prisma-enum.generator.js +11 -2
  12. package/dist/generators/pothos/pothos-prisma-enum/pothos-prisma-enum.generator.js.map +1 -1
  13. package/dist/generators/prisma/_shared/build-data-helpers/build-schema-fragments.d.ts +59 -0
  14. package/dist/generators/prisma/_shared/build-data-helpers/build-schema-fragments.d.ts.map +1 -0
  15. package/dist/generators/prisma/_shared/build-data-helpers/build-schema-fragments.js +67 -0
  16. package/dist/generators/prisma/_shared/build-data-helpers/build-schema-fragments.js.map +1 -0
  17. package/dist/generators/prisma/_shared/build-data-helpers/build-transform-operation-parts.d.ts +71 -0
  18. package/dist/generators/prisma/_shared/build-data-helpers/build-transform-operation-parts.d.ts.map +1 -0
  19. package/dist/generators/prisma/_shared/build-data-helpers/build-transform-operation-parts.js +153 -0
  20. package/dist/generators/prisma/_shared/build-data-helpers/build-transform-operation-parts.js.map +1 -0
  21. package/dist/generators/prisma/_shared/build-data-helpers/generate-authorization-statements.d.ts +46 -0
  22. package/dist/generators/prisma/_shared/build-data-helpers/generate-authorization-statements.d.ts.map +1 -0
  23. package/dist/generators/prisma/_shared/build-data-helpers/generate-authorization-statements.js +44 -0
  24. package/dist/generators/prisma/_shared/build-data-helpers/generate-authorization-statements.js.map +1 -0
  25. package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.d.ts +6 -0
  26. package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.d.ts.map +1 -1
  27. package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.js +13 -1
  28. package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.js.map +1 -1
  29. package/dist/generators/prisma/_shared/build-data-helpers/generate-where-type.d.ts +24 -0
  30. package/dist/generators/prisma/_shared/build-data-helpers/generate-where-type.d.ts.map +1 -0
  31. package/dist/generators/prisma/_shared/build-data-helpers/generate-where-type.js +49 -0
  32. package/dist/generators/prisma/_shared/build-data-helpers/generate-where-type.js.map +1 -0
  33. package/dist/generators/prisma/_shared/field-definition-generators/generate-scalar-input-field.d.ts +1 -4
  34. package/dist/generators/prisma/_shared/field-definition-generators/generate-scalar-input-field.d.ts.map +1 -1
  35. package/dist/generators/prisma/_shared/field-definition-generators/generate-scalar-input-field.js +10 -2
  36. package/dist/generators/prisma/_shared/field-definition-generators/generate-scalar-input-field.js.map +1 -1
  37. package/dist/generators/prisma/_shared/field-definition-generators/types.d.ts +47 -1
  38. package/dist/generators/prisma/_shared/field-definition-generators/types.d.ts.map +1 -1
  39. package/dist/generators/prisma/data-utils/data-utils.generator.d.ts +17 -74
  40. package/dist/generators/prisma/data-utils/data-utils.generator.d.ts.map +1 -1
  41. package/dist/generators/prisma/data-utils/generated/index.d.ts +50 -145
  42. package/dist/generators/prisma/data-utils/generated/index.d.ts.map +1 -1
  43. package/dist/generators/prisma/data-utils/generated/template-paths.d.ts +5 -6
  44. package/dist/generators/prisma/data-utils/generated/template-paths.d.ts.map +1 -1
  45. package/dist/generators/prisma/data-utils/generated/template-paths.js +5 -6
  46. package/dist/generators/prisma/data-utils/generated/template-paths.js.map +1 -1
  47. package/dist/generators/prisma/data-utils/generated/template-renderers.d.ts +0 -21
  48. package/dist/generators/prisma/data-utils/generated/template-renderers.d.ts.map +1 -1
  49. package/dist/generators/prisma/data-utils/generated/template-renderers.js +1 -7
  50. package/dist/generators/prisma/data-utils/generated/template-renderers.js.map +1 -1
  51. package/dist/generators/prisma/data-utils/generated/ts-import-providers.d.ts +51 -159
  52. package/dist/generators/prisma/data-utils/generated/ts-import-providers.d.ts.map +1 -1
  53. package/dist/generators/prisma/data-utils/generated/ts-import-providers.js +32 -64
  54. package/dist/generators/prisma/data-utils/generated/ts-import-providers.js.map +1 -1
  55. package/dist/generators/prisma/data-utils/generated/typed-templates.d.ts +66 -142
  56. package/dist/generators/prisma/data-utils/generated/typed-templates.d.ts.map +1 -1
  57. package/dist/generators/prisma/data-utils/generated/typed-templates.js +47 -98
  58. package/dist/generators/prisma/data-utils/generated/typed-templates.js.map +1 -1
  59. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/define-transformer.ts +130 -0
  60. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/execute-transform-plan.ts +108 -0
  61. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/nested-transformers.ts +364 -0
  62. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/prepare-transformers.ts +73 -0
  63. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/prisma-types.ts +6 -83
  64. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/transformer-types.ts +118 -0
  65. package/dist/generators/prisma/prisma-authorizer-utils/generated/index.d.ts +34 -106
  66. package/dist/generators/prisma/prisma-authorizer-utils/generated/index.d.ts.map +1 -1
  67. package/dist/generators/prisma/prisma-authorizer-utils/generated/template-renderers.d.ts +17 -53
  68. package/dist/generators/prisma/prisma-authorizer-utils/generated/template-renderers.d.ts.map +1 -1
  69. package/dist/generators/prisma/prisma-authorizer-utils/generated/typed-templates.d.ts +34 -106
  70. package/dist/generators/prisma/prisma-authorizer-utils/generated/typed-templates.d.ts.map +1 -1
  71. package/dist/generators/prisma/prisma-authorizer-utils/prisma-authorizer-utils.generator.d.ts +17 -53
  72. package/dist/generators/prisma/prisma-authorizer-utils/prisma-authorizer-utils.generator.d.ts.map +1 -1
  73. package/dist/generators/prisma/prisma-authorizer-utils/templates/src/utils/authorizers.ts +11 -11
  74. package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.d.ts +39 -49
  75. package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.d.ts.map +1 -1
  76. package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.js +89 -45
  77. package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.js.map +1 -1
  78. package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.d.ts +39 -52
  79. package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.d.ts.map +1 -1
  80. package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.js +48 -32
  81. package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.js.map +1 -1
  82. package/dist/generators/prisma/prisma-data-nested-field/nested-field-writer.d.ts +16 -2
  83. package/dist/generators/prisma/prisma-data-nested-field/nested-field-writer.d.ts.map +1 -1
  84. package/dist/generators/prisma/prisma-data-nested-field/nested-field-writer.js +282 -138
  85. package/dist/generators/prisma/prisma-data-nested-field/nested-field-writer.js.map +1 -1
  86. package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.d.ts +19 -55
  87. package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.d.ts.map +1 -1
  88. package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.js +18 -4
  89. package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.js.map +1 -1
  90. package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.d.ts +41 -92
  91. package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.d.ts.map +1 -1
  92. package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.js +103 -31
  93. package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.js.map +1 -1
  94. package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.d.ts +40 -52
  95. package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.d.ts.map +1 -1
  96. package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.js +109 -49
  97. package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.js.map +1 -1
  98. package/dist/generators/prisma/prisma-query-filter-utils/generated/index.d.ts +51 -159
  99. package/dist/generators/prisma/prisma-query-filter-utils/generated/index.d.ts.map +1 -1
  100. package/dist/generators/prisma/prisma-query-filter-utils/generated/template-renderers.d.ts +17 -53
  101. package/dist/generators/prisma/prisma-query-filter-utils/generated/template-renderers.d.ts.map +1 -1
  102. package/dist/generators/prisma/prisma-query-filter-utils/generated/typed-templates.d.ts +68 -212
  103. package/dist/generators/prisma/prisma-query-filter-utils/generated/typed-templates.d.ts.map +1 -1
  104. package/dist/generators/prisma/prisma-query-filter-utils/prisma-query-filter-utils.generator.d.ts +17 -53
  105. package/dist/generators/prisma/prisma-query-filter-utils/prisma-query-filter-utils.generator.d.ts.map +1 -1
  106. package/dist/generators/prisma/prisma-relation-field/prisma-relation-field.generator.js +1 -1
  107. package/dist/generators/prisma/prisma-relation-field/prisma-relation-field.generator.js.map +1 -1
  108. package/dist/writers/prisma-schema/fields.d.ts +5 -1
  109. package/dist/writers/prisma-schema/fields.d.ts.map +1 -1
  110. package/dist/writers/prisma-schema/fields.js +8 -2
  111. package/dist/writers/prisma-schema/fields.js.map +1 -1
  112. package/package.json +8 -8
  113. package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.d.ts +0 -20
  114. package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.d.ts.map +0 -1
  115. package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.js +0 -28
  116. package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.js.map +0 -1
  117. package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.d.ts +0 -130
  118. package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.d.ts.map +0 -1
  119. package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.js +0 -221
  120. package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.js.map +0 -1
  121. package/dist/generators/prisma/_shared/build-data-helpers/index.d.ts +0 -4
  122. package/dist/generators/prisma/_shared/build-data-helpers/index.d.ts.map +0 -1
  123. package/dist/generators/prisma/_shared/build-data-helpers/index.js +0 -4
  124. package/dist/generators/prisma/_shared/build-data-helpers/index.js.map +0 -1
  125. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/commit-operations.ts +0 -366
  126. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/compose-operations.ts +0 -131
  127. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/field-definitions.ts +0 -777
  128. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/field-utils.ts +0 -201
  129. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/prisma-utils.ts +0 -90
  130. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/types.ts +0 -721
@@ -0,0 +1,44 @@
1
+ import { TsCodeUtils, tsTemplate } from '@baseplate-dev/core-generators';
2
+ import { quot } from '@baseplate-dev/utils';
3
+ /**
4
+ * Generates explicit authorization check statements.
5
+ *
6
+ * Does NOT emit the `existingItem` fetch — the caller is responsible for
7
+ * ensuring `existingItem` is in scope when instance roles are used.
8
+ */
9
+ export function generateAuthorizationStatements(config) {
10
+ const { modelName, methodType, globalRoles, instanceRoles, modelAuthorizer, authorizerImports, } = config;
11
+ const hasGlobalRoles = globalRoles != null && globalRoles.length > 0;
12
+ const hasInstanceRoles = instanceRoles != null && instanceRoles.length > 0;
13
+ if (!hasGlobalRoles && !hasInstanceRoles) {
14
+ return { fragment: '', hasInstanceAuth: false };
15
+ }
16
+ // Build role items array
17
+ const globalRoleItems = (globalRoles ?? []).map((r) => quot(r));
18
+ const instanceRoleFragments = (instanceRoles ?? []).map((roleName) => {
19
+ if (!modelAuthorizer) {
20
+ throw new Error(`${methodType} method on model '${modelName}' references instance role '${roleName}' but no authorizer is configured for this model.`);
21
+ }
22
+ return modelAuthorizer.getRoleFragment(roleName);
23
+ });
24
+ if (hasInstanceRoles) {
25
+ // Instance auth: assumes existingItem is already in scope
26
+ const allRoleItems = [
27
+ ...globalRoleItems,
28
+ ...instanceRoleFragments.map((f) => f.contents),
29
+ ];
30
+ const rolesArray = `[${allRoleItems.join(', ')}]`;
31
+ const rolesFrag = TsCodeUtils.frag(rolesArray, instanceRoleFragments.flatMap((f) => f.imports ?? []));
32
+ return {
33
+ fragment: tsTemplate `await ${authorizerImports.checkInstanceAuthorization.fragment()}(context, existingItem, ${rolesFrag});`,
34
+ hasInstanceAuth: true,
35
+ };
36
+ }
37
+ // Global auth only
38
+ const rolesArray = `[${globalRoleItems.join(', ')}]`;
39
+ return {
40
+ fragment: tsTemplate `${authorizerImports.checkGlobalAuthorization.fragment()}(context, ${rolesArray});`,
41
+ hasInstanceAuth: false,
42
+ };
43
+ }
44
+ //# sourceMappingURL=generate-authorization-statements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-authorization-statements.js","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/build-data-helpers/generate-authorization-statements.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AA0C5C;;;;;GAKG;AACH,MAAM,UAAU,+BAA+B,CAC7C,MAA6C;IAE7C,MAAM,EACJ,SAAS,EACT,UAAU,EACV,WAAW,EACX,aAAa,EACb,eAAe,EACf,iBAAiB,GAClB,GAAG,MAAM,CAAC;IAEX,MAAM,cAAc,GAAG,WAAW,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IACrE,MAAM,gBAAgB,GAAG,aAAa,IAAI,IAAI,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IAE3E,IAAI,CAAC,cAAc,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;IAClD,CAAC;IAED,yBAAyB;IACzB,MAAM,eAAe,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,qBAAqB,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QACnE,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,GAAG,UAAU,qBAAqB,SAAS,+BAA+B,QAAQ,mDAAmD,CACtI,CAAC;QACJ,CAAC;QACD,OAAO,eAAe,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,IAAI,gBAAgB,EAAE,CAAC;QACrB,0DAA0D;QAC1D,MAAM,YAAY,GAAG;YACnB,GAAG,eAAe;YAClB,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;SAChD,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAClD,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAChC,UAAU,EACV,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CACtD,CAAC;QAEF,OAAO;YACL,QAAQ,EAAE,UAAU,CAAA,SAAS,iBAAiB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,2BAA2B,SAAS,IAAI;YAC5H,eAAe,EAAE,IAAI;SACtB,CAAC;IACJ,CAAC;IAED,mBAAmB;IACnB,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACrD,OAAO;QACL,QAAQ,EAAE,UAAU,CAAA,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,QAAQ,EAAE,aAAa,UAAU,IAAI;QACvG,eAAe,EAAE,KAAK;KACvB,CAAC;AACJ,CAAC"}
@@ -32,6 +32,12 @@ interface GenerateRelationBuildDataResult {
32
32
  buildUpdateDataFragment: TsCodeFragment;
33
33
  /** Whether this is a simple passthrough (no relations to transform) */
34
34
  passthrough: boolean;
35
+ /** Foreign key field names that need to be destructured from input */
36
+ foreignKeyFieldNames: string[];
37
+ /** Individual relation entries for create: { relationName: connectCreate fragment } */
38
+ createRelationEntries: Record<string, TsCodeFragment>;
39
+ /** Individual relation entries for update: { relationName: connectUpdate fragment } */
40
+ updateRelationEntries: Record<string, TsCodeFragment>;
35
41
  }
36
42
  /**
37
43
  * Generates separate buildCreateData and buildUpdateData functions that transform
@@ -1 +1 @@
1
- {"version":3,"file":"generate-relation-build-data.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAE1E;;GAEG;AACH,UAAU,+BAA+B;IACvC,4CAA4C;IAC5C,WAAW,EAAE,iBAAiB,CAAC;IAC/B,2FAA2F;IAC3F,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,0EAA0E;IAC1E,gBAAgB,EAAE,wBAAwB,CAAC;IAC3C,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,UAAU,+BAA+B;IACvC,wEAAwE;IACxE,sBAAsB,EAAE,cAAc,CAAC;IACvC,sGAAsG;IACtG,oBAAoB,EAAE,cAAc,CAAC;IACrC,wEAAwE;IACxE,sBAAsB,EAAE,cAAc,CAAC;IACvC,sGAAsG;IACtG,oBAAoB,EAAE,cAAc,CAAC;IACrC,iIAAiI;IACjI,uBAAuB,EAAE,cAAc,CAAC;IACxC,iIAAiI;IACjI,uBAAuB,EAAE,cAAc,CAAC;IACxC,uEAAuE;IACvE,WAAW,EAAE,OAAO,CAAC;CACtB;AAiMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,+BAA+B,GACtC,+BAA+B,CAuCjC"}
1
+ {"version":3,"file":"generate-relation-build-data.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAKrE,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAE1E;;GAEG;AACH,UAAU,+BAA+B;IACvC,4CAA4C;IAC5C,WAAW,EAAE,iBAAiB,CAAC;IAC/B,2FAA2F;IAC3F,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,0EAA0E;IAC1E,gBAAgB,EAAE,wBAAwB,CAAC;IAC3C,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,UAAU,+BAA+B;IACvC,wEAAwE;IACxE,sBAAsB,EAAE,cAAc,CAAC;IACvC,sGAAsG;IACtG,oBAAoB,EAAE,cAAc,CAAC;IACrC,wEAAwE;IACxE,sBAAsB,EAAE,cAAc,CAAC;IACvC,sGAAsG;IACtG,oBAAoB,EAAE,cAAc,CAAC;IACrC,iIAAiI;IACjI,uBAAuB,EAAE,cAAc,CAAC;IACxC,iIAAiI;IACjI,uBAAuB,EAAE,cAAc,CAAC;IACxC,uEAAuE;IACvE,WAAW,EAAE,OAAO,CAAC;IACrB,sEAAsE;IACtE,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,uFAAuF;IACvF,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtD,uFAAuF;IACvF,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACvD;AAmMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,+BAA+B,GACtC,+BAA+B,CA2DjC"}
@@ -1,4 +1,5 @@
1
1
  import { TsCodeUtils, tsTemplate } from '@baseplate-dev/core-generators';
2
+ import { compareStrings } from '@baseplate-dev/utils';
2
3
  /**
3
4
  * Generates a TypeScript code fragment for a unique where object
4
5
  *
@@ -111,7 +112,7 @@ function generateBuildDataBody(foreignKeyFields, operationType, dataUtilsImports
111
112
  returnObjectFragments[`...${dataName}`] = tsTemplate `${dataName}`;
112
113
  }
113
114
  // Add relation fragments
114
- const sortedRelationFragments = relationFragments.toSorted();
115
+ const sortedRelationFragments = relationFragments.toSorted((a, b) => compareStrings(a.relationName, b.relationName));
115
116
  for (const { relationName, fragment } of sortedRelationFragments) {
116
117
  returnObjectFragments[relationName] = fragment;
117
118
  }
@@ -168,6 +169,14 @@ export function generateRelationBuildData(config) {
168
169
  const updateBody = generateBuildDataBody(foreignKeyFieldNames, 'update', dataUtilsImports, relevantRelations, inputFieldNames, dataName);
169
170
  // Both should have the same passthrough status since they use the same relations
170
171
  const passthrough = createBody.passthrough && updateBody.passthrough;
172
+ // Build individual relation entries for direct use in data objects
173
+ const relationHelpersFragment = dataUtilsImports.relationHelpers.fragment();
174
+ const createRelationEntries = {};
175
+ const updateRelationEntries = {};
176
+ for (const relation of relevantRelations) {
177
+ createRelationEntries[relation.name] = generateRelationHelperCall(relation, 'create', relationHelpersFragment);
178
+ updateRelationEntries[relation.name] = generateRelationHelperCall(relation, 'update', relationHelpersFragment);
179
+ }
171
180
  return {
172
181
  createArgumentFragment: createBody.argumentFragment,
173
182
  createReturnFragment: createBody.returnFragment,
@@ -176,6 +185,9 @@ export function generateRelationBuildData(config) {
176
185
  buildCreateDataFragment: tsTemplate `(${createBody.argumentFragment}) => (${createBody.returnFragment})`,
177
186
  buildUpdateDataFragment: tsTemplate `(${updateBody.argumentFragment}) => (${updateBody.returnFragment})`,
178
187
  passthrough,
188
+ foreignKeyFieldNames,
189
+ createRelationEntries,
190
+ updateRelationEntries,
179
191
  };
180
192
  }
181
193
  //# sourceMappingURL=generate-relation-build-data.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-relation-build-data.js","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AA2CzE;;;;;;;;;;;;;;GAcG;AACH,SAAS,2BAA2B,CAClC,gBAA0B,EAC1B,gBAA0B;IAE1B,IAAI,gBAAgB,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,2EAA2E,gBAAgB,CAAC,MAAM,QAAQ,gBAAgB,CAAC,MAAM,EAAE,CACpI,CAAC;IACJ,CAAC;IAED,OAAO,WAAW,CAAC,sBAAsB,CACvC,MAAM,CAAC,WAAW,CAChB,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;QACvC,gBAAgB,CAAC,KAAK,CAAC;QACvB,OAAO;KACR,CAAC,CACH,CACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAC5B,WAA8B,EAC9B,eAAyB;IAEzB,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CACjD,CAAC,KAAK,EAAsC,EAAE,CAC5C,KAAK,CAAC,IAAI,KAAK,UAAU;QACzB,CAAC,CAAC,KAAK,CAAC,MAAM;QACd,6EAA6E;QAC7E,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CACpE,CAAC;IAEF,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QACzC,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAC3C,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAChD,CAAC;QACF,IAAI,aAAa,EAAE,MAAM,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,YAAY,QAAQ,CAAC,IAAI,2CAA2C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAChG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAC9B,SAAsC;IAEtC,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACjE,uDAAuD;IACvD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,0BAA0B,CACjC,QAAmC,EACnC,aAAkC,EAClC,uBAAuC;IAEvC,MAAM,YAAY,GAChB,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC;IACjE,MAAM,WAAW,GAAG,2BAA2B,CAC7C,QAAQ,CAAC,MAAM,IAAI,EAAE,EACrB,QAAQ,CAAC,UAAU,IAAI,EAAE,CAC1B,CAAC;IAEF,OAAO,UAAU,CAAA,GAAG,uBAAuB,IAAI,YAAY,IAAI,WAAW,GAAG,CAAC;AAChF,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,qBAAqB,CAC5B,gBAA0B,EAC1B,aAAkC,EAClC,gBAA0C,EAC1C,iBAA8C,EAC9C,kBAA6B,EAC7B,QAAQ,GAAG,MAAM;IAMjB,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO;YACL,gBAAgB,EAAE,UAAU,CAAA,GAAG,QAAQ,EAAE;YACzC,cAAc,EAAE,UAAU,CAAA,GAAG,QAAQ,EAAE;YACvC,WAAW,EAAE,IAAI;SAClB,CAAC;IACJ,CAAC;IAED,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;IAC5E,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC7D,YAAY,EAAE,QAAQ,CAAC,IAAI;QAC3B,QAAQ,EAAE,0BAA0B,CAClC,QAAQ,EACR,aAAa,EACb,uBAAuB,CACxB;KACF,CAAC,CAAC,CAAC;IAEJ,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC;IAE3D,gDAAgD;IAChD,MAAM,uBAAuB,GAAG,kBAAkB,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAClE,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CACjC,CAAC;IAEF,sEAAsE;IACtE,MAAM,YAAY,GAAG,uBAAuB;QAC1C,CAAC,CAAC,KAAK,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QAC5C,CAAC,CAAC,KAAK,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,QAAQ,IAAI,CAAC;IAE/D,mDAAmD;IACnD,MAAM,qBAAqB,GAAmC,EAAE,CAAC;IAEjE,mEAAmE;IACnE,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC7B,qBAAqB,CAAC,MAAM,QAAQ,EAAE,CAAC,GAAG,UAAU,CAAA,GAAG,QAAQ,EAAE,CAAC;IACpE,CAAC;IAED,yBAAyB;IACzB,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IAC7D,KAAK,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,uBAAuB,EAAE,CAAC;QACjE,qBAAqB,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;IACjD,CAAC;IAED,4CAA4C;IAC5C,MAAM,YAAY,GAAG,WAAW,CAAC,sBAAsB,CACrD,qBAAqB,EACrB,EAAE,WAAW,EAAE,CAAC,uBAAuB,EAAE,CAC1C,CAAC;IAEF,OAAO;QACL,gBAAgB,EAAE,UAAU,CAAA,GAAG,YAAY,EAAE;QAC7C,cAAc,EAAE,YAAY;QAC5B,WAAW,EAAE,KAAK;KACnB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAuC;IAEvC,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAE5E,kEAAkE;IAClE,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAE9E,sCAAsC;IACtC,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;IAExE,sDAAsD;IACtD,MAAM,UAAU,GAAG,qBAAqB,CACtC,oBAAoB,EACpB,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,QAAQ,CACT,CAAC;IACF,MAAM,UAAU,GAAG,qBAAqB,CACtC,oBAAoB,EACpB,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,QAAQ,CACT,CAAC;IAEF,iFAAiF;IACjF,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW,CAAC;IAErE,OAAO;QACL,sBAAsB,EAAE,UAAU,CAAC,gBAAgB;QACnD,oBAAoB,EAAE,UAAU,CAAC,cAAc;QAC/C,sBAAsB,EAAE,UAAU,CAAC,gBAAgB;QACnD,oBAAoB,EAAE,UAAU,CAAC,cAAc;QAC/C,uBAAuB,EAAE,UAAU,CAAA,IAAI,UAAU,CAAC,gBAAgB,SAAS,UAAU,CAAC,cAAc,GAAG;QACvG,uBAAuB,EAAE,UAAU,CAAA,IAAI,UAAU,CAAC,gBAAgB,SAAS,UAAU,CAAC,cAAc,GAAG;QACvG,WAAW;KACZ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"generate-relation-build-data.js","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { PrismaOutputModel } from '#src/types/prisma-output.js';
2
+ /**
3
+ * Generates a TypeScript type literal for the `where` parameter based on
4
+ * the model's ID fields.
5
+ *
6
+ * - Single ID field: `{ id: string }`
7
+ * - Composite ID: `{ field1_field2: { field1: string; field2: string } }`
8
+ *
9
+ * @param prismaModel - The Prisma model to generate for
10
+ * @returns A string representing the TypeScript type literal
11
+ */
12
+ export declare function generateWhereType(prismaModel: PrismaOutputModel): string;
13
+ /**
14
+ * Generates a where expression that references fields from an existing item variable.
15
+ *
16
+ * - Single ID: `{ id: existingItem.id }`
17
+ * - Composite ID: `{ field1_field2: { field1: existingItem.field1, field2: existingItem.field2 } }`
18
+ *
19
+ * @param prismaModel - The Prisma model to generate for
20
+ * @param existingItemVar - Variable name for the existing item (default: 'existingItem')
21
+ * @returns A string representing the where expression
22
+ */
23
+ export declare function generateExistingItemWhere(prismaModel: PrismaOutputModel, existingItemVar?: string): string;
24
+ //# sourceMappingURL=generate-where-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-where-type.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/build-data-helpers/generate-where-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,iBAAiB,GAAG,MAAM,CAexE;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,SAAiB,GAC/B,MAAM,CAiBR"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Generates a TypeScript type literal for the `where` parameter based on
3
+ * the model's ID fields.
4
+ *
5
+ * - Single ID field: `{ id: string }`
6
+ * - Composite ID: `{ field1_field2: { field1: string; field2: string } }`
7
+ *
8
+ * @param prismaModel - The Prisma model to generate for
9
+ * @returns A string representing the TypeScript type literal
10
+ */
11
+ export function generateWhereType(prismaModel) {
12
+ const { idFields } = prismaModel;
13
+ if (!idFields || idFields.length === 0) {
14
+ throw new Error(`Model ${prismaModel.name} has no primary key`);
15
+ }
16
+ if (idFields.length === 1) {
17
+ return `{ ${idFields[0]}: string }`;
18
+ }
19
+ // Composite key: { field1_field2: { field1: string; field2: string } }
20
+ const compositeKey = idFields.join('_');
21
+ const innerFields = idFields.map((f) => `${f}: string`).join('; ');
22
+ return `{ ${compositeKey}: { ${innerFields} } }`;
23
+ }
24
+ /**
25
+ * Generates a where expression that references fields from an existing item variable.
26
+ *
27
+ * - Single ID: `{ id: existingItem.id }`
28
+ * - Composite ID: `{ field1_field2: { field1: existingItem.field1, field2: existingItem.field2 } }`
29
+ *
30
+ * @param prismaModel - The Prisma model to generate for
31
+ * @param existingItemVar - Variable name for the existing item (default: 'existingItem')
32
+ * @returns A string representing the where expression
33
+ */
34
+ export function generateExistingItemWhere(prismaModel, existingItemVar = 'existingItem') {
35
+ const { idFields } = prismaModel;
36
+ if (!idFields || idFields.length === 0) {
37
+ throw new Error(`Model ${prismaModel.name} has no primary key`);
38
+ }
39
+ if (idFields.length === 1) {
40
+ return `{ ${idFields[0]}: ${existingItemVar}.${idFields[0]} }`;
41
+ }
42
+ // Composite key: { field1_field2: { field1: existingItem.field1, field2: existingItem.field2 } }
43
+ const compositeKey = idFields.join('_');
44
+ const innerFields = idFields
45
+ .map((f) => `${f}: ${existingItemVar}.${f}`)
46
+ .join(', ');
47
+ return `{ ${compositeKey}: { ${innerFields} } }`;
48
+ }
49
+ //# sourceMappingURL=generate-where-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-where-type.js","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/build-data-helpers/generate-where-type.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAA8B;IAC9D,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC;IAEjC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,SAAS,WAAW,CAAC,IAAI,qBAAqB,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC;IACtC,CAAC;IAED,uEAAuE;IACvE,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnE,OAAO,KAAK,YAAY,OAAO,WAAW,MAAM,CAAC;AACnD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CACvC,WAA8B,EAC9B,eAAe,GAAG,cAAc;IAEhC,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC;IAEjC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,SAAS,WAAW,CAAC,IAAI,qBAAqB,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,eAAe,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,CAAC;IAED,iGAAiG;IACjG,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,QAAQ;SACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,eAAe,IAAI,CAAC,EAAE,CAAC;SAC3C,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,KAAK,YAAY,OAAO,WAAW,MAAM,CAAC;AACnD,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import type { PrismaOutputScalarField } from '#src/types/prisma-output.js';
2
2
  import type { ServiceOutputEnum } from '#src/types/service-output.js';
3
3
  import type { PrismaGeneratedImportsProvider } from '../../_providers/prisma-generated-imports.js';
4
- import type { DataUtilsImportsProvider } from '../../data-utils/index.js';
5
4
  import type { InputFieldDefinitionOutput } from './types.js';
6
5
  /**
7
6
  * Configuration for generating a scalar field definition
@@ -11,15 +10,13 @@ interface GenerateScalarFieldConfig {
11
10
  fieldName: string;
12
11
  /** Prisma scalar field */
13
12
  scalarField: PrismaOutputScalarField;
14
- /** Data utils imports */
15
- dataUtilsImports: DataUtilsImportsProvider;
16
13
  /** Prisma generated imports */
17
14
  prismaGeneratedImports: PrismaGeneratedImportsProvider;
18
15
  /** Lookup function for enums */
19
16
  lookupEnum: (name: string) => ServiceOutputEnum;
20
17
  }
21
18
  /**
22
- * Generates a scalar field definition, e.g. scalarField(z.string())
19
+ * Generates a scalar field's Zod schema entry, e.g. z.string()
23
20
  */
24
21
  export declare function generateScalarInputField(config: GenerateScalarFieldConfig): InputFieldDefinitionOutput;
25
22
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"generate-scalar-input-field.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/field-definition-generators/generate-scalar-input-field.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAItE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AACnG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAE7D;;GAEG;AACH,UAAU,yBAAyB;IACjC,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,WAAW,EAAE,uBAAuB,CAAC;IACrC,yBAAyB;IACzB,gBAAgB,EAAE,wBAAwB,CAAC;IAC3C,+BAA+B;IAC/B,sBAAsB,EAAE,8BAA8B,CAAC;IACvD,gCAAgC;IAChC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,iBAAiB,CAAC;CACjD;AA0CD;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,yBAAyB,GAChC,0BAA0B,CAU5B"}
1
+ {"version":3,"file":"generate-scalar-input-field.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/field-definition-generators/generate-scalar-input-field.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAItE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AACnG,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAE7D;;GAEG;AACH,UAAU,yBAAyB;IACjC,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,WAAW,EAAE,uBAAuB,CAAC;IACrC,+BAA+B;IAC/B,sBAAsB,EAAE,8BAA8B,CAAC;IACvD,gCAAgC;IAChC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,iBAAiB,CAAC;CACjD;AAkDD;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,yBAAyB,GAChC,0BAA0B,CAW5B"}
@@ -24,6 +24,13 @@ function generateValidator({ scalarField, prismaGeneratedImports, }) {
24
24
  else if (hasDefault) {
25
25
  modifier = '.optional()';
26
26
  }
27
+ if (scalarType === 'json') {
28
+ // JSON fields use z.json() with a transform to handle Prisma's JsonNull sentinel.
29
+ // Use .optional() instead of .nullish() since the transform handles null → Prisma.JsonNull.
30
+ const jsonModifier = isOptional || hasDefault ? '.optional()' : '';
31
+ const prismaFrag = prismaGeneratedImports.Prisma.fragment();
32
+ return tsTemplate `${zFrag}.json().transform((val) => (val === null ? ${prismaFrag}.JsonNull : val))${jsonModifier}`;
33
+ }
27
34
  if (scalarType === 'enum') {
28
35
  if (!enumType) {
29
36
  throw new Error('Enum name is required for enum scalar type');
@@ -34,13 +41,14 @@ function generateValidator({ scalarField, prismaGeneratedImports, }) {
34
41
  return tsTemplate `${zFrag}.${SCALAR_TYPE_TO_ZOD_TYPE[scalarType]}${modifier}`;
35
42
  }
36
43
  /**
37
- * Generates a scalar field definition, e.g. scalarField(z.string())
44
+ * Generates a scalar field's Zod schema entry, e.g. z.string()
38
45
  */
39
46
  export function generateScalarInputField(config) {
40
47
  const validator = generateValidator(config);
41
48
  return {
42
49
  name: config.fieldName,
43
- fragment: tsTemplate `${config.dataUtilsImports.scalarField.fragment()}(${validator})`,
50
+ schemaFragment: validator,
51
+ isTransformField: false,
44
52
  outputDtoField: scalarPrismaFieldToServiceInputField(config.scalarField, config.lookupEnum),
45
53
  };
46
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generate-scalar-input-field.js","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/field-definition-generators/generate-scalar-input-field.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAMzE,OAAO,EAAE,oCAAoC,EAAE,MAAM,8BAA8B,CAAC;AAsBpF,MAAM,uBAAuB,GAAoC;IAC/D,MAAM,EAAE,UAAU;IAClB,GAAG,EAAE,OAAO;IACZ,KAAK,EAAE,UAAU;IACjB,OAAO,EAAE,UAAU;IACnB,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,WAAW;IACjB,UAAU,EAAE,iCAAiC;IAC7C,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,EAAE;CACT,CAAC;AAEF,SAAS,iBAAiB,CAAC,EACzB,WAAW,EACX,sBAAsB,GACI;IAC1B,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC;IACrE,MAAM,KAAK,GAAG,WAAW,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAErD,wFAAwF;IACxF,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,UAAU,EAAE,CAAC;QACf,QAAQ,GAAG,YAAY,CAAC;IAC1B,CAAC;SAAM,IAAI,UAAU,EAAE,CAAC;QACtB,QAAQ,GAAG,aAAa,CAAC;IAC3B,CAAC;IAED,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC1D,OAAO,UAAU,CAAA,GAAG,KAAK,SAAS,QAAQ,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;IACvE,CAAC;IAED,OAAO,UAAU,CAAA,GAAG,KAAK,IAAI,uBAAuB,CAAC,UAAU,CAAC,GAAG,QAAQ,EAAE,CAAC;AAChF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAiC;IAEjC,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,SAAS;QACtB,QAAQ,EAAE,UAAU,CAAA,GAAG,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,SAAS,GAAG;QACrF,cAAc,EAAE,oCAAoC,CAClD,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,UAAU,CAClB;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"generate-scalar-input-field.js","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/field-definition-generators/generate-scalar-input-field.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAMzE,OAAO,EAAE,oCAAoC,EAAE,MAAM,8BAA8B,CAAC;AAmBpF,MAAM,uBAAuB,GAAoC;IAC/D,MAAM,EAAE,UAAU;IAClB,GAAG,EAAE,OAAO;IACZ,KAAK,EAAE,UAAU;IACjB,OAAO,EAAE,UAAU;IACnB,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,WAAW;IACjB,UAAU,EAAE,iCAAiC;IAC7C,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,EAAE;CACT,CAAC;AAEF,SAAS,iBAAiB,CAAC,EACzB,WAAW,EACX,sBAAsB,GACI;IAC1B,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC;IACrE,MAAM,KAAK,GAAG,WAAW,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAErD,wFAAwF;IACxF,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,UAAU,EAAE,CAAC;QACf,QAAQ,GAAG,YAAY,CAAC;IAC1B,CAAC;SAAM,IAAI,UAAU,EAAE,CAAC;QACtB,QAAQ,GAAG,aAAa,CAAC;IAC3B,CAAC;IAED,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,kFAAkF;QAClF,4FAA4F;QAC5F,MAAM,YAAY,GAAG,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,UAAU,GAAG,sBAAsB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC5D,OAAO,UAAU,CAAA,GAAG,KAAK,8CAA8C,UAAU,oBAAoB,YAAY,EAAE,CAAC;IACtH,CAAC;IAED,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC1D,OAAO,UAAU,CAAA,GAAG,KAAK,SAAS,QAAQ,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;IACvE,CAAC;IAED,OAAO,UAAU,CAAA,GAAG,KAAK,IAAI,uBAAuB,CAAC,UAAU,CAAC,GAAG,QAAQ,EAAE,CAAC;AAChF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAiC;IAEjC,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,SAAS;QACtB,cAAc,EAAE,SAAS;QACzB,gBAAgB,EAAE,KAAK;QACvB,cAAc,EAAE,oCAAoC,CAClD,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,UAAU,CAClB;KACF,CAAC;AACJ,CAAC"}
@@ -1,8 +1,54 @@
1
1
  import type { TsCodeFragment } from '@baseplate-dev/core-generators';
2
2
  import type { ServiceOutputDtoField } from '#src/types/service-output.js';
3
+ /**
4
+ * Context variables passed to transformer fragment builders so they can
5
+ * adapt code generation to different call sites (top-level vs nested).
6
+ */
7
+ export interface TransformerFragmentContext {
8
+ /** Reference to the transformers variable (e.g., 'todoItemTransformers' or an import fragment) */
9
+ transformersVarFragment: TsCodeFragment | string;
10
+ /** Variable name for the existing item in update operations (e.g., 'existingItem') */
11
+ existingItemVarName: string;
12
+ /**
13
+ * Variable name for looking up existing related data in update operations.
14
+ * Top-level: 'where' (the query arg), Nested: 'existingItem' (the nested existing item).
15
+ */
16
+ loadExistingVarName: string;
17
+ }
18
+ /**
19
+ * Definition for a transformer instance attached to a field.
20
+ * Only present on transform fields (file, nested), not scalars.
21
+ */
22
+ export interface TransformerDefinition {
23
+ /** Code fragment for the transformer instance (e.g., fileTransformer({...})) */
24
+ fragment: TsCodeFragment;
25
+ /**
26
+ * Whether this transformer needs the top-level existing item loaded in update operations.
27
+ * True for transformers that reference existingItem directly (e.g., file transformer reads existingItem.fileId).
28
+ * False for transformers that handle their own data loading (e.g., nested transformers use loadExisting).
29
+ */
30
+ needsExistingItem?: boolean;
31
+ /**
32
+ * Builds the .forCreate() entry for this field in the transformers object.
33
+ * E.g., `transformers.coverPhoto.forCreate(coverPhoto)`
34
+ */
35
+ buildForCreateEntry: (ctx: TransformerFragmentContext) => TsCodeFragment;
36
+ /**
37
+ * Builds the .forUpdate() entry for this field in the transformers object.
38
+ * E.g., `transformers.coverPhoto.forUpdate(coverPhoto, existingItem.coverPhotoId)`
39
+ */
40
+ buildForUpdateEntry: (ctx: TransformerFragmentContext) => TsCodeFragment;
41
+ }
3
42
  export interface InputFieldDefinitionOutput {
43
+ /** Field name */
4
44
  name: string;
5
- fragment: TsCodeFragment;
45
+ /** Zod schema fragment for the fieldSchemas object (e.g., z.string(), fileInputSchema.nullish()) */
46
+ schemaFragment: TsCodeFragment;
47
+ /** Transformer definition. Only for transform fields (file, nested). */
48
+ transformer?: TransformerDefinition;
49
+ /** Whether this is a transform field (file, nested) vs a plain Zod schema entry */
50
+ isTransformField: boolean;
51
+ /** Output DTO field for service layer */
6
52
  outputDtoField: ServiceOutputDtoField;
7
53
  }
8
54
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/field-definition-generators/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB,cAAc,EAAE,qBAAqB,CAAC;CACvC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/field-definition-generators/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC,kGAAkG;IAClG,uBAAuB,EAAE,cAAc,GAAG,MAAM,CAAC;IACjD,sFAAsF;IACtF,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,gFAAgF;IAChF,QAAQ,EAAE,cAAc,CAAC;IACzB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,mBAAmB,EAAE,CAAC,GAAG,EAAE,0BAA0B,KAAK,cAAc,CAAC;IACzE;;;OAGG;IACH,mBAAmB,EAAE,CAAC,GAAG,EAAE,0BAA0B,KAAK,cAAc,CAAC;CAC1E;AAED,MAAM,WAAW,0BAA0B;IACzC,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,oGAAoG;IACpG,cAAc,EAAE,cAAc,CAAC;IAC/B,wEAAwE;IACxE,WAAW,CAAC,EAAE,qBAAqB,CAAC;IACpC,mFAAmF;IACnF,gBAAgB,EAAE,OAAO,CAAC;IAC1B,yCAAyC;IACzC,cAAc,EAAE,qBAAqB,CAAC;CACvC"}
@@ -10,27 +10,6 @@ export declare const dataUtilsGenerator: import("@baseplate-dev/sync").Generator
10
10
  renderers: import("@baseplate-dev/sync").GeneratorTask<{
11
11
  prismaDataUtilsRenderers: import("@baseplate-dev/sync").ProviderExport<import("./generated/template-renderers.js").PrismaDataUtilsRenderers>;
12
12
  }, {
13
- authorizerUtilsImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
14
- checkGlobalAuthorization: {};
15
- checkInstanceAuthorization: {};
16
- GlobalRoleCheck: {
17
- isTypeOnly: true;
18
- };
19
- InstanceRoleCheck: {
20
- isTypeOnly: true;
21
- };
22
- }>>;
23
- errorHandlerServiceImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
24
- BadRequestError: {};
25
- ForbiddenError: {};
26
- handleZodRequestValidationError: {};
27
- HttpError: {};
28
- InternalServerError: {};
29
- logError: {};
30
- NotFoundError: {};
31
- TooManyRequestsError: {};
32
- UnauthorizedError: {};
33
- }>>;
34
13
  paths: import("@baseplate-dev/sync").ProviderType<import("./generated/template-paths.js").PrismaDataUtilsPaths>;
35
14
  prismaGeneratedImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
36
15
  PrismaClient: {};
@@ -53,87 +32,51 @@ export declare const dataUtilsGenerator: import("@baseplate-dev/sync").Generator
53
32
  }, undefined>;
54
33
  imports: import("@baseplate-dev/sync").GeneratorTask<{
55
34
  dataUtilsImports: import("@baseplate-dev/sync").ProviderExport<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
56
- AnyFieldDefinition: {
57
- isTypeOnly: true;
58
- };
59
- AnyOperationHooks: {
60
- isTypeOnly: true;
61
- };
62
- commitCreate: {};
63
- commitDelete: {};
64
- commitUpdate: {};
65
- composeCreate: {};
66
- composeUpdate: {};
67
- createParentModelConfig: {};
68
- DataCreateInput: {
69
- isTypeOnly: true;
70
- };
71
- DataDeleteInput: {
72
- isTypeOnly: true;
73
- };
74
- DataOperationType: {
35
+ AfterExecuteHook: {
75
36
  isTypeOnly: true;
76
37
  };
77
- DataUpdateInput: {
38
+ AnyBoundTransformer: {
78
39
  isTypeOnly: true;
79
40
  };
80
- FieldContext: {
41
+ AnyTransformer: {
81
42
  isTypeOnly: true;
82
43
  };
83
- FieldDefinition: {
44
+ BoundTransformer: {
84
45
  isTypeOnly: true;
85
46
  };
86
- FieldTransformData: {
47
+ DataQuery: {
87
48
  isTypeOnly: true;
88
49
  };
89
- FieldTransformResult: {
50
+ defineTransformer: {};
51
+ executeTransformPlan: {};
52
+ GetResult: {
90
53
  isTypeOnly: true;
91
54
  };
92
- generateCreateSchema: {};
93
- generateUpdateSchema: {};
94
- GetPayload: {
55
+ InferTransformed: {
95
56
  isTypeOnly: true;
96
57
  };
97
- InferFieldsOutput: {
98
- isTypeOnly: true;
99
- };
100
- InferInput: {
101
- isTypeOnly: true;
102
- };
103
- ModelInclude: {
58
+ MaybePromise: {
104
59
  isTypeOnly: true;
105
60
  };
106
61
  ModelPropName: {
107
62
  isTypeOnly: true;
108
63
  };
109
- nestedOneToManyField: {};
110
- NestedOneToManyFieldConfig: {
111
- isTypeOnly: true;
112
- };
113
- nestedOneToOneField: {};
114
- NestedOneToOneFieldConfig: {
115
- isTypeOnly: true;
116
- };
117
- OperationContext: {
64
+ oneToManyTransformer: {};
65
+ oneToOneTransformer: {};
66
+ prepareTransformers: {};
67
+ relationHelpers: {};
68
+ Transformer: {
118
69
  isTypeOnly: true;
119
70
  };
120
- OperationHooks: {
71
+ TransformerResult: {
121
72
  isTypeOnly: true;
122
73
  };
123
- ParentModelConfig: {
124
- isTypeOnly: true;
125
- };
126
- relationHelpers: {};
127
- scalarField: {};
128
- TransactionalOperationContext: {
74
+ TransformPlan: {
129
75
  isTypeOnly: true;
130
76
  };
131
77
  WhereInput: {
132
78
  isTypeOnly: true;
133
79
  };
134
- WhereUniqueInput: {
135
- isTypeOnly: true;
136
- };
137
80
  }>>;
138
81
  }, {
139
82
  paths: import("@baseplate-dev/sync").ProviderType<import("./generated/template-paths.js").PrismaDataUtilsPaths>;
@@ -1 +1 @@
1
- {"version":3,"file":"data-utils.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/data-utils/data-utils.generator.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyB7B,CAAC"}
1
+ {"version":3,"file":"data-utils.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/data-utils/data-utils.generator.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyB7B,CAAC"}