@baseplate-dev/fastify-generators 0.5.3 → 0.6.1

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 (177) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/dist/constants/fastify-packages.d.ts +14 -14
  3. package/dist/constants/fastify-packages.js +14 -14
  4. package/dist/constants/fastify-packages.js.map +1 -1
  5. package/dist/generators/auth/auth-context/templates/module/types/auth-context.types.ts +1 -0
  6. package/dist/generators/auth/auth-context/templates/module/utils/auth-context.utils.ts +3 -1
  7. package/dist/generators/core/fastify/fastify.generator.d.ts.map +1 -1
  8. package/dist/generators/core/fastify/fastify.generator.js +3 -1
  9. package/dist/generators/core/fastify/fastify.generator.js.map +1 -1
  10. package/dist/generators/pothos/index.d.ts +1 -0
  11. package/dist/generators/pothos/index.d.ts.map +1 -1
  12. package/dist/generators/pothos/index.js +1 -0
  13. package/dist/generators/pothos/index.js.map +1 -1
  14. package/dist/generators/pothos/pothos-auth/pothos-auth.generator.d.ts +5 -0
  15. package/dist/generators/pothos/pothos-auth/pothos-auth.generator.d.ts.map +1 -1
  16. package/dist/generators/pothos/pothos-auth/pothos-auth.generator.js +8 -0
  17. package/dist/generators/pothos/pothos-auth/pothos-auth.generator.js.map +1 -1
  18. package/dist/generators/pothos/pothos-prisma-count-query/index.d.ts +2 -0
  19. package/dist/generators/pothos/pothos-prisma-count-query/index.d.ts.map +1 -0
  20. package/dist/generators/pothos/pothos-prisma-count-query/index.js +2 -0
  21. package/dist/generators/pothos/pothos-prisma-count-query/index.js.map +1 -0
  22. package/dist/generators/pothos/pothos-prisma-count-query/pothos-prisma-count-query.generator.d.ts +16 -0
  23. package/dist/generators/pothos/pothos-prisma-count-query/pothos-prisma-count-query.generator.d.ts.map +1 -0
  24. package/dist/generators/pothos/pothos-prisma-count-query/pothos-prisma-count-query.generator.js +104 -0
  25. package/dist/generators/pothos/pothos-prisma-count-query/pothos-prisma-count-query.generator.js.map +1 -0
  26. package/dist/generators/pothos/pothos-prisma-crud-mutation/pothos-prisma-crud-mutation.generator.d.ts.map +1 -1
  27. package/dist/generators/pothos/pothos-prisma-crud-mutation/pothos-prisma-crud-mutation.generator.js +2 -5
  28. package/dist/generators/pothos/pothos-prisma-crud-mutation/pothos-prisma-crud-mutation.generator.js.map +1 -1
  29. package/dist/generators/pothos/pothos-prisma-find-query/pothos-prisma-find-query.generator.d.ts +4 -0
  30. package/dist/generators/pothos/pothos-prisma-find-query/pothos-prisma-find-query.generator.d.ts.map +1 -1
  31. package/dist/generators/pothos/pothos-prisma-find-query/pothos-prisma-find-query.generator.js +52 -10
  32. package/dist/generators/pothos/pothos-prisma-find-query/pothos-prisma-find-query.generator.js.map +1 -1
  33. package/dist/generators/pothos/pothos-prisma-list-query/pothos-prisma-list-query.generator.d.ts +4 -0
  34. package/dist/generators/pothos/pothos-prisma-list-query/pothos-prisma-list-query.generator.d.ts.map +1 -1
  35. package/dist/generators/pothos/pothos-prisma-list-query/pothos-prisma-list-query.generator.js +39 -3
  36. package/dist/generators/pothos/pothos-prisma-list-query/pothos-prisma-list-query.generator.js.map +1 -1
  37. package/dist/generators/pothos/pothos-prisma-object/pothos-prisma-object.generator.d.ts +7 -1
  38. package/dist/generators/pothos/pothos-prisma-object/pothos-prisma-object.generator.d.ts.map +1 -1
  39. package/dist/generators/pothos/pothos-prisma-object/pothos-prisma-object.generator.js +73 -13
  40. package/dist/generators/pothos/pothos-prisma-object/pothos-prisma-object.generator.js.map +1 -1
  41. package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.d.ts +20 -0
  42. package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.d.ts.map +1 -0
  43. package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.js +28 -0
  44. package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.js.map +1 -0
  45. package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.d.ts +48 -55
  46. package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.d.ts.map +1 -1
  47. package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.js +130 -67
  48. package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.js.map +1 -1
  49. package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.d.ts +2 -0
  50. package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.d.ts.map +1 -1
  51. package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.js +3 -3
  52. package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.js.map +1 -1
  53. package/dist/generators/prisma/_shared/build-data-helpers/index.d.ts +1 -0
  54. package/dist/generators/prisma/_shared/build-data-helpers/index.d.ts.map +1 -1
  55. package/dist/generators/prisma/_shared/build-data-helpers/index.js +1 -0
  56. package/dist/generators/prisma/_shared/build-data-helpers/index.js.map +1 -1
  57. package/dist/generators/prisma/data-utils/data-utils.generator.d.ts +25 -6
  58. package/dist/generators/prisma/data-utils/data-utils.generator.d.ts.map +1 -1
  59. package/dist/generators/prisma/data-utils/generated/index.d.ts +78 -23
  60. package/dist/generators/prisma/data-utils/generated/index.d.ts.map +1 -1
  61. package/dist/generators/prisma/data-utils/generated/template-paths.d.ts +3 -1
  62. package/dist/generators/prisma/data-utils/generated/template-paths.d.ts.map +1 -1
  63. package/dist/generators/prisma/data-utils/generated/template-paths.js +3 -1
  64. package/dist/generators/prisma/data-utils/generated/template-paths.js.map +1 -1
  65. package/dist/generators/prisma/data-utils/generated/ts-import-providers.d.ts +75 -18
  66. package/dist/generators/prisma/data-utils/generated/ts-import-providers.d.ts.map +1 -1
  67. package/dist/generators/prisma/data-utils/generated/ts-import-providers.js +26 -8
  68. package/dist/generators/prisma/data-utils/generated/ts-import-providers.js.map +1 -1
  69. package/dist/generators/prisma/data-utils/generated/typed-templates.d.ts +106 -34
  70. package/dist/generators/prisma/data-utils/generated/typed-templates.d.ts.map +1 -1
  71. package/dist/generators/prisma/data-utils/generated/typed-templates.js +61 -14
  72. package/dist/generators/prisma/data-utils/generated/typed-templates.js.map +1 -1
  73. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/commit-operations.ts +366 -0
  74. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/compose-operations.ts +131 -0
  75. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/field-definitions.ts +26 -30
  76. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/field-utils.ts +201 -0
  77. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/prisma-types.ts +24 -20
  78. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/prisma-utils.ts +14 -6
  79. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/relation-helpers.ts +21 -26
  80. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/types.ts +374 -25
  81. package/dist/generators/prisma/index.d.ts +2 -0
  82. package/dist/generators/prisma/index.d.ts.map +1 -1
  83. package/dist/generators/prisma/index.js +2 -0
  84. package/dist/generators/prisma/index.js.map +1 -1
  85. package/dist/generators/prisma/prisma-authorizer-utils/generated/index.d.ts +50 -12
  86. package/dist/generators/prisma/prisma-authorizer-utils/generated/index.d.ts.map +1 -1
  87. package/dist/generators/prisma/prisma-authorizer-utils/generated/template-renderers.d.ts +25 -6
  88. package/dist/generators/prisma/prisma-authorizer-utils/generated/template-renderers.d.ts.map +1 -1
  89. package/dist/generators/prisma/prisma-authorizer-utils/generated/typed-templates.d.ts +50 -12
  90. package/dist/generators/prisma/prisma-authorizer-utils/generated/typed-templates.d.ts.map +1 -1
  91. package/dist/generators/prisma/prisma-authorizer-utils/prisma-authorizer-utils.generator.d.ts +25 -6
  92. package/dist/generators/prisma/prisma-authorizer-utils/prisma-authorizer-utils.generator.d.ts.map +1 -1
  93. package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.d.ts +26 -6
  94. package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.d.ts.map +1 -1
  95. package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.js +53 -25
  96. package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.js.map +1 -1
  97. package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.d.ts +31 -6
  98. package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.d.ts.map +1 -1
  99. package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.js +52 -15
  100. package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.js.map +1 -1
  101. package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.d.ts +25 -6
  102. package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.d.ts.map +1 -1
  103. package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.d.ts +25 -6
  104. package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.d.ts.map +1 -1
  105. package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.d.ts +31 -6
  106. package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.d.ts.map +1 -1
  107. package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.js +65 -23
  108. package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.js.map +1 -1
  109. package/dist/generators/prisma/prisma-model-authorizer/prisma-model-authorizer.generator.d.ts +2 -0
  110. package/dist/generators/prisma/prisma-model-authorizer/prisma-model-authorizer.generator.d.ts.map +1 -1
  111. package/dist/generators/prisma/prisma-model-authorizer/prisma-model-authorizer.generator.js +86 -53
  112. package/dist/generators/prisma/prisma-model-authorizer/prisma-model-authorizer.generator.js.map +1 -1
  113. package/dist/generators/prisma/prisma-model-query-filter/index.d.ts +2 -0
  114. package/dist/generators/prisma/prisma-model-query-filter/index.d.ts.map +1 -0
  115. package/dist/generators/prisma/prisma-model-query-filter/index.js +2 -0
  116. package/dist/generators/prisma/prisma-model-query-filter/index.js.map +1 -0
  117. package/dist/generators/prisma/prisma-model-query-filter/prisma-model-query-filter.generator.d.ts +60 -0
  118. package/dist/generators/prisma/prisma-model-query-filter/prisma-model-query-filter.generator.d.ts.map +1 -0
  119. package/dist/generators/prisma/prisma-model-query-filter/prisma-model-query-filter.generator.js +124 -0
  120. package/dist/generators/prisma/prisma-model-query-filter/prisma-model-query-filter.generator.js.map +1 -0
  121. package/dist/generators/prisma/prisma-query-filter-utils/generated/index.d.ts +364 -0
  122. package/dist/generators/prisma/prisma-query-filter-utils/generated/index.d.ts.map +1 -0
  123. package/dist/generators/prisma/prisma-query-filter-utils/generated/index.js +13 -0
  124. package/dist/generators/prisma/prisma-query-filter-utils/generated/index.js.map +1 -0
  125. package/dist/generators/prisma/prisma-query-filter-utils/generated/template-paths.d.ts +13 -0
  126. package/dist/generators/prisma/prisma-query-filter-utils/generated/template-paths.d.ts.map +1 -0
  127. package/dist/generators/prisma/prisma-query-filter-utils/generated/template-paths.js +25 -0
  128. package/dist/generators/prisma/prisma-query-filter-utils/generated/template-paths.js.map +1 -0
  129. package/dist/generators/prisma/prisma-query-filter-utils/generated/template-renderers.d.ts +131 -0
  130. package/dist/generators/prisma/prisma-query-filter-utils/generated/template-renderers.d.ts.map +1 -0
  131. package/dist/generators/prisma/prisma-query-filter-utils/generated/template-renderers.js +49 -0
  132. package/dist/generators/prisma/prisma-query-filter-utils/generated/template-renderers.js.map +1 -0
  133. package/dist/generators/prisma/prisma-query-filter-utils/generated/ts-import-providers.d.ts +66 -0
  134. package/dist/generators/prisma/prisma-query-filter-utils/generated/ts-import-providers.d.ts.map +1 -0
  135. package/dist/generators/prisma/prisma-query-filter-utils/generated/ts-import-providers.js +40 -0
  136. package/dist/generators/prisma/prisma-query-filter-utils/generated/ts-import-providers.js.map +1 -0
  137. package/dist/generators/prisma/prisma-query-filter-utils/generated/typed-templates.d.ts +411 -0
  138. package/dist/generators/prisma/prisma-query-filter-utils/generated/typed-templates.d.ts.map +1 -0
  139. package/dist/generators/prisma/prisma-query-filter-utils/generated/typed-templates.js +46 -0
  140. package/dist/generators/prisma/prisma-query-filter-utils/generated/typed-templates.js.map +1 -0
  141. package/dist/generators/prisma/prisma-query-filter-utils/index.d.ts +4 -0
  142. package/dist/generators/prisma/prisma-query-filter-utils/index.d.ts.map +1 -0
  143. package/dist/generators/prisma/prisma-query-filter-utils/index.js +3 -0
  144. package/dist/generators/prisma/prisma-query-filter-utils/index.js.map +1 -0
  145. package/dist/generators/prisma/prisma-query-filter-utils/prisma-query-filter-utils.generator.d.ts +156 -0
  146. package/dist/generators/prisma/prisma-query-filter-utils/prisma-query-filter-utils.generator.d.ts.map +1 -0
  147. package/dist/generators/prisma/prisma-query-filter-utils/prisma-query-filter-utils.generator.js +32 -0
  148. package/dist/generators/prisma/prisma-query-filter-utils/prisma-query-filter-utils.generator.js.map +1 -0
  149. package/dist/generators/prisma/prisma-query-filter-utils/templates/src/utils/query-filters.ts +209 -0
  150. package/dist/generators/prisma/prisma-query-filter-utils/templates/src/utils/query-helpers.ts +70 -0
  151. package/dist/generators/vitest/prisma-vitest/generated/index.d.ts +0 -6
  152. package/dist/generators/vitest/prisma-vitest/generated/index.d.ts.map +1 -1
  153. package/dist/generators/vitest/prisma-vitest/generated/template-renderers.d.ts.map +1 -1
  154. package/dist/generators/vitest/prisma-vitest/generated/template-renderers.js +0 -1
  155. package/dist/generators/vitest/prisma-vitest/generated/template-renderers.js.map +1 -1
  156. package/dist/generators/vitest/prisma-vitest/generated/typed-templates.d.ts +0 -6
  157. package/dist/generators/vitest/prisma-vitest/generated/typed-templates.d.ts.map +1 -1
  158. package/dist/generators/vitest/prisma-vitest/generated/typed-templates.js +1 -4
  159. package/dist/generators/vitest/prisma-vitest/generated/typed-templates.js.map +1 -1
  160. package/dist/generators/vitest/prisma-vitest/templates/src/tests/helpers/prisma.test-helper.ts +2 -10
  161. package/dist/types/service-dto-kinds.d.ts +0 -6
  162. package/dist/types/service-dto-kinds.d.ts.map +1 -1
  163. package/dist/types/service-dto-kinds.js +0 -6
  164. package/dist/types/service-dto-kinds.js.map +1 -1
  165. package/dist/writers/pothos/helpers.d.ts +1 -0
  166. package/dist/writers/pothos/helpers.d.ts.map +1 -1
  167. package/dist/writers/pothos/helpers.js +1 -0
  168. package/dist/writers/pothos/helpers.js.map +1 -1
  169. package/dist/writers/pothos/scalar-fields.d.ts +3 -1
  170. package/dist/writers/pothos/scalar-fields.d.ts.map +1 -1
  171. package/dist/writers/pothos/scalar-fields.js +1 -0
  172. package/dist/writers/pothos/scalar-fields.js.map +1 -1
  173. package/dist/writers/prisma-schema/fields.d.ts +1 -1
  174. package/dist/writers/prisma-schema/fields.js +2 -2
  175. package/dist/writers/prisma-schema/fields.js.map +1 -1
  176. package/package.json +8 -8
  177. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/define-operations.ts +0 -1134
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-data-delete.generator.js","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-delete/prisma-data-delete.generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EACL,WAAW,EACX,eAAe,EACf,0BAA0B,GAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,iCAAiC,EACjC,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;AACpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,eAAe,CAAC;IACvD,IAAI,EAAE,2BAA2B;IACjC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;IACjC,gBAAgB;IAChB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,IAAI,EAAE,mBAAmB,CAAC;YACxB,YAAY,EAAE;gBACZ,WAAW,EAAE,mBAAmB;gBAChC,iBAAiB,EAAE,yBAAyB;gBAC5C,gBAAgB,EAAE,wBAAwB;gBAC1C,YAAY,EAAE,oBAAoB;aACnC;YACD,GAAG,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,YAAY,EAAE;gBACpE,OAAO;oBACL,KAAK,EAAE,GAAG,EAAE;wBACV,2BAA2B;wBAC3B,MAAM,EAAE,sBAAsB,EAAE,GAAG,sBAAsB,CAAC;4BACxD,iBAAiB,EAAE,kBAAkB,CAAC,SAAS,CAAC;yBACjD,CAAC,CAAC;wBAEH,MAAM,eAAe,GAAG,UAAU,CAAA;6BACjB,IAAI,MAAM,gBAAgB,CAAC,qBAAqB,CAAC,QAAQ,EAAE;yBAC/D,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;0BAClC,sBAAsB;;aAEnC,CAAC;wBACF,WAAW,CAAC,cAAc,EAAE,CAAC;wBAE7B,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;wBAE3D,iBAAiB,CAAC,cAAc,CAAC;4BAC/B,IAAI;4BACJ,IAAI,EAAE,QAAQ;4BACd,QAAQ,EAAE,eAAe;4BACzB,YAAY,EAAE;gCACZ,IAAI;gCACJ,iBAAiB,EAAE,WAAW,CAAC,cAAc,CAC3C,IAAI,EACJ,WAAW,CAAC,cAAc,EAAE,CAC7B;gCACD,SAAS,EAAE;oCACT,iCAAiC,CAAC;wCAChC,IAAI,EAAE,OAAO;wCACb,IAAI,EAAE,UAAU;wCAChB,IAAI,EAAE,0BAA0B;wCAChC,QAAQ,EAAE;4CACR,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI,EAAE;yCACrC;qCACF,CAAC;oCACF,iCAAiC,CAAC;wCAChC,IAAI,EAAE,SAAS;wCACf,IAAI,EAAE,UAAU;wCAChB,IAAI,EAAE,WAAW;qCAClB,CAAC;oCACF,iCAAiC,CAAC;wCAChC,IAAI,EAAE,UAAU;wCAChB,IAAI,EAAE,OAAO;wCACb,IAAI,EAAE,eAAe;qCACtB,CAAC;iCACH;gCACD,UAAU,EAAE,wBAAwB,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC7D,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CACtC;6BACF;yBACF,CAAC,CAAC;oBACL,CAAC;iBACF,CAAC;YACJ,CAAC;SACF,CAAC;KACH,CAAC;CACH,CAAC,CAAC"}
1
+ {"version":3,"file":"prisma-data-delete.generator.js","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-delete/prisma-data-delete.generator.ts"],"names":[],"mappings":"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"}
@@ -33,13 +33,24 @@ export declare const prismaDataNestedFieldGenerator: import("@baseplate-dev/sync
33
33
  AnyOperationHooks: {
34
34
  isTypeOnly: true;
35
35
  };
36
+ commitCreate: {};
37
+ commitDelete: {};
38
+ commitUpdate: {};
39
+ composeCreate: {};
40
+ composeUpdate: {};
36
41
  createParentModelConfig: {};
42
+ DataCreateInput: {
43
+ isTypeOnly: true;
44
+ };
45
+ DataDeleteInput: {
46
+ isTypeOnly: true;
47
+ };
37
48
  DataOperationType: {
38
49
  isTypeOnly: true;
39
50
  };
40
- defineCreateOperation: {};
41
- defineDeleteOperation: {};
42
- defineUpdateOperation: {};
51
+ DataUpdateInput: {
52
+ isTypeOnly: true;
53
+ };
43
54
  FieldContext: {
44
55
  isTypeOnly: true;
45
56
  };
@@ -52,6 +63,8 @@ export declare const prismaDataNestedFieldGenerator: import("@baseplate-dev/sync
52
63
  FieldTransformResult: {
53
64
  isTypeOnly: true;
54
65
  };
66
+ generateCreateSchema: {};
67
+ generateUpdateSchema: {};
55
68
  GetPayload: {
56
69
  isTypeOnly: true;
57
70
  };
@@ -61,6 +74,9 @@ export declare const prismaDataNestedFieldGenerator: import("@baseplate-dev/sync
61
74
  InferInput: {
62
75
  isTypeOnly: true;
63
76
  };
77
+ ModelInclude: {
78
+ isTypeOnly: true;
79
+ };
64
80
  ModelPropName: {
65
81
  isTypeOnly: true;
66
82
  };
@@ -81,14 +97,17 @@ export declare const prismaDataNestedFieldGenerator: import("@baseplate-dev/sync
81
97
  ParentModelConfig: {
82
98
  isTypeOnly: true;
83
99
  };
84
- PrismaTransaction: {
85
- isTypeOnly: true;
86
- };
87
100
  relationHelpers: {};
88
101
  scalarField: {};
89
102
  TransactionalOperationContext: {
90
103
  isTypeOnly: true;
91
104
  };
105
+ WhereInput: {
106
+ isTypeOnly: true;
107
+ };
108
+ WhereUniqueInput: {
109
+ isTypeOnly: true;
110
+ };
92
111
  }>>;
93
112
  prismaGeneratedImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
94
113
  PrismaClient: {};
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-data-nested-field.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.ts"],"names":[],"mappings":"AAgCA;;GAEG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8HzC,CAAC"}
1
+ {"version":3,"file":"prisma-data-nested-field.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.ts"],"names":[],"mappings":"AAgCA;;GAEG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8HzC,CAAC"}
@@ -55,13 +55,24 @@ export declare const prismaDataServiceGenerator: import("@baseplate-dev/sync").G
55
55
  AnyOperationHooks: {
56
56
  isTypeOnly: true;
57
57
  };
58
+ commitCreate: {};
59
+ commitDelete: {};
60
+ commitUpdate: {};
61
+ composeCreate: {};
62
+ composeUpdate: {};
58
63
  createParentModelConfig: {};
64
+ DataCreateInput: {
65
+ isTypeOnly: true;
66
+ };
67
+ DataDeleteInput: {
68
+ isTypeOnly: true;
69
+ };
59
70
  DataOperationType: {
60
71
  isTypeOnly: true;
61
72
  };
62
- defineCreateOperation: {};
63
- defineDeleteOperation: {};
64
- defineUpdateOperation: {};
73
+ DataUpdateInput: {
74
+ isTypeOnly: true;
75
+ };
65
76
  FieldContext: {
66
77
  isTypeOnly: true;
67
78
  };
@@ -74,6 +85,8 @@ export declare const prismaDataServiceGenerator: import("@baseplate-dev/sync").G
74
85
  FieldTransformResult: {
75
86
  isTypeOnly: true;
76
87
  };
88
+ generateCreateSchema: {};
89
+ generateUpdateSchema: {};
77
90
  GetPayload: {
78
91
  isTypeOnly: true;
79
92
  };
@@ -83,6 +96,9 @@ export declare const prismaDataServiceGenerator: import("@baseplate-dev/sync").G
83
96
  InferInput: {
84
97
  isTypeOnly: true;
85
98
  };
99
+ ModelInclude: {
100
+ isTypeOnly: true;
101
+ };
86
102
  ModelPropName: {
87
103
  isTypeOnly: true;
88
104
  };
@@ -103,14 +119,17 @@ export declare const prismaDataServiceGenerator: import("@baseplate-dev/sync").G
103
119
  ParentModelConfig: {
104
120
  isTypeOnly: true;
105
121
  };
106
- PrismaTransaction: {
107
- isTypeOnly: true;
108
- };
109
122
  relationHelpers: {};
110
123
  scalarField: {};
111
124
  TransactionalOperationContext: {
112
125
  isTypeOnly: true;
113
126
  };
127
+ WhereInput: {
128
+ isTypeOnly: true;
129
+ };
130
+ WhereUniqueInput: {
131
+ isTypeOnly: true;
132
+ };
114
133
  }>>;
115
134
  prismaGeneratedImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
116
135
  PrismaClient: {};
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-data-service.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-service/prisma-data-service.generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAarE,OAAO,EAGL,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAIxE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAclG,QAAA,MAEE,8BAA8B;IAI5B,8DAA8D;;IAE9D,sDAAsD;;;;EAWzD,CAAC;AAEF,OAAO,EAAE,8BAA8B,EAAE,CAAC;AAE1C,UAAU,uBAAuB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACrC,QAAQ,EAAE,cAAc,CAAC;IACzB,YAAY,EAAE,mBAAmB,CAAC;CACnC;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,IAAI,0BAA0B,EAAE,CAAC;IAC1C,qBAAqB,IAAI,MAAM,CAAC;IAChC;;OAEG;IACH,iBAAiB,IAAI,cAAc,CAAC;IACpC,cAAc,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAAC;CACvD;AAED,eAAO,MAAM,yBAAyB,uEACgC,CAAC;AAQvE;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;YA9CnC,8DAA8D;;YAE9D,sDAAsD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4KxD,CAAC"}
1
+ {"version":3,"file":"prisma-data-service.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-service/prisma-data-service.generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAarE,OAAO,EAGL,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAIxE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAclG,QAAA,MAEE,8BAA8B;IAI5B,8DAA8D;;IAE9D,sDAAsD;;;;EAWzD,CAAC;AAEF,OAAO,EAAE,8BAA8B,EAAE,CAAC;AAE1C,UAAU,uBAAuB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACrC,QAAQ,EAAE,cAAc,CAAC;IACzB,YAAY,EAAE,mBAAmB,CAAC;CACnC;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,IAAI,0BAA0B,EAAE,CAAC;IAC1C,qBAAqB,IAAI,MAAM,CAAC;IAChC;;OAEG;IACH,iBAAiB,IAAI,cAAc,CAAC;IACpC,cAAc,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAAC;CACvD;AAED,eAAO,MAAM,yBAAyB,uEACgC,CAAC;AAQvE;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;YA9CnC,8DAA8D;;YAE9D,sDAAsD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4KxD,CAAC"}
@@ -5,6 +5,8 @@ export declare const prismaDataUpdateGenerator: import("@baseplate-dev/sync").Ge
5
5
  name: string;
6
6
  modelName: string;
7
7
  fields: string[];
8
+ globalRoles?: string[] | undefined;
9
+ instanceRoles?: string[] | undefined;
8
10
  }, {
9
11
  main: import("@baseplate-dev/sync").GeneratorTask<any, {
10
12
  serviceFile: import("@baseplate-dev/sync").ProviderType<import("#src/generators/core/index.js").ServiceFileProvider>;
@@ -16,13 +18,24 @@ export declare const prismaDataUpdateGenerator: import("@baseplate-dev/sync").Ge
16
18
  AnyOperationHooks: {
17
19
  isTypeOnly: true;
18
20
  };
21
+ commitCreate: {};
22
+ commitDelete: {};
23
+ commitUpdate: {};
24
+ composeCreate: {};
25
+ composeUpdate: {};
19
26
  createParentModelConfig: {};
27
+ DataCreateInput: {
28
+ isTypeOnly: true;
29
+ };
30
+ DataDeleteInput: {
31
+ isTypeOnly: true;
32
+ };
20
33
  DataOperationType: {
21
34
  isTypeOnly: true;
22
35
  };
23
- defineCreateOperation: {};
24
- defineDeleteOperation: {};
25
- defineUpdateOperation: {};
36
+ DataUpdateInput: {
37
+ isTypeOnly: true;
38
+ };
26
39
  FieldContext: {
27
40
  isTypeOnly: true;
28
41
  };
@@ -35,6 +48,8 @@ export declare const prismaDataUpdateGenerator: import("@baseplate-dev/sync").Ge
35
48
  FieldTransformResult: {
36
49
  isTypeOnly: true;
37
50
  };
51
+ generateCreateSchema: {};
52
+ generateUpdateSchema: {};
38
53
  GetPayload: {
39
54
  isTypeOnly: true;
40
55
  };
@@ -44,6 +59,9 @@ export declare const prismaDataUpdateGenerator: import("@baseplate-dev/sync").Ge
44
59
  InferInput: {
45
60
  isTypeOnly: true;
46
61
  };
62
+ ModelInclude: {
63
+ isTypeOnly: true;
64
+ };
47
65
  ModelPropName: {
48
66
  isTypeOnly: true;
49
67
  };
@@ -64,16 +82,23 @@ export declare const prismaDataUpdateGenerator: import("@baseplate-dev/sync").Ge
64
82
  ParentModelConfig: {
65
83
  isTypeOnly: true;
66
84
  };
67
- PrismaTransaction: {
68
- isTypeOnly: true;
69
- };
70
85
  relationHelpers: {};
71
86
  scalarField: {};
72
87
  TransactionalOperationContext: {
73
88
  isTypeOnly: true;
74
89
  };
90
+ WhereInput: {
91
+ isTypeOnly: true;
92
+ };
93
+ WhereUniqueInput: {
94
+ isTypeOnly: true;
95
+ };
75
96
  }>>;
76
97
  prismaOutput: import("@baseplate-dev/sync").ProviderType<import("../prisma/prisma.generator.js").PrismaOutputProvider>;
98
+ prismaImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
99
+ prisma: {};
100
+ }>>;
101
+ modelAuthorizer: import("@baseplate-dev/sync").ProviderDependency<import("../prisma-model-authorizer/prisma-model-authorizer.generator.js").PrismaModelAuthorizerProvider | undefined>;
77
102
  }, any>;
78
103
  }>;
79
104
  //# sourceMappingURL=prisma-data-update.generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-data-update.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-update/prisma-data-update.generator.ts"],"names":[],"mappings":"AAqCA;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4GpC,CAAC"}
1
+ {"version":3,"file":"prisma-data-update.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-update/prisma-data-update.generator.ts"],"names":[],"mappings":"AA6CA;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiKpC,CAAC"}
@@ -3,16 +3,19 @@ import { createGenerator, createGeneratorTask } from '@baseplate-dev/sync';
3
3
  import { lowercaseFirstChar, quot, uppercaseFirstChar, } from '@baseplate-dev/utils';
4
4
  import { z } from 'zod';
5
5
  import { serviceFileProvider } from '#src/generators/core/index.js';
6
- import { contextKind, prismaQueryKind, prismaWhereUniqueInputKind, skipValidationKind, } from '#src/types/service-dto-kinds.js';
6
+ import { contextKind, prismaQueryKind, prismaWhereUniqueInputKind, } from '#src/types/service-dto-kinds.js';
7
7
  import { createServiceOutputDtoInjectedArg, prismaToServiceOutputDto, } from '#src/types/service-output.js';
8
- import { generateUpdateCallback } from '../_shared/build-data-helpers/index.js';
8
+ import { generateAuthorizeFragment, generateUpdateExecuteCallback, } from '../_shared/build-data-helpers/index.js';
9
9
  import { dataUtilsImportsProvider } from '../data-utils/index.js';
10
10
  import { prismaDataServiceProvider } from '../prisma-data-service/prisma-data-service.generator.js';
11
- import { prismaOutputProvider } from '../prisma/prisma.generator.js';
11
+ import { prismaModelAuthorizerProvider } from '../prisma-model-authorizer/index.js';
12
+ import { prismaImportsProvider, prismaOutputProvider, } from '../prisma/index.js';
12
13
  const descriptorSchema = z.object({
13
14
  name: z.string().min(1),
14
15
  modelName: z.string().min(1),
15
16
  fields: z.array(z.string().min(1)),
17
+ globalRoles: z.array(z.string().min(1)).optional(),
18
+ instanceRoles: z.array(z.string().min(1)).optional(),
16
19
  });
17
20
  /**
18
21
  * Generator for prisma/prisma-data-update
@@ -21,15 +24,19 @@ export const prismaDataUpdateGenerator = createGenerator({
21
24
  name: 'prisma/prisma-data-update',
22
25
  generatorFileUrl: import.meta.url,
23
26
  descriptorSchema,
24
- buildTasks: ({ name, modelName, fields }) => ({
27
+ buildTasks: ({ name, modelName, fields, globalRoles, instanceRoles }) => ({
25
28
  main: createGeneratorTask({
26
29
  dependencies: {
27
30
  serviceFile: serviceFileProvider,
28
31
  prismaDataService: prismaDataServiceProvider,
29
32
  dataUtilsImports: dataUtilsImportsProvider,
30
33
  prismaOutput: prismaOutputProvider,
34
+ prismaImports: prismaImportsProvider,
35
+ modelAuthorizer: prismaModelAuthorizerProvider
36
+ .dependency()
37
+ .optionalReference(modelName),
31
38
  },
32
- run({ serviceFile, prismaDataService, dataUtilsImports, prismaOutput }) {
39
+ run({ serviceFile, prismaDataService, dataUtilsImports, prismaOutput, prismaImports, modelAuthorizer, }) {
33
40
  const serviceFields = prismaDataService.getFields();
34
41
  const usedFields = serviceFields.filter((field) => fields.includes(field.name));
35
42
  if (usedFields.length !== fields.length) {
@@ -37,31 +44,71 @@ export const prismaDataUpdateGenerator = createGenerator({
37
44
  }
38
45
  return {
39
46
  build: () => {
40
- const fieldsFragment = fields.length === serviceFields.length
47
+ const modelVar = lowercaseFirstChar(modelName);
48
+ const useAllFields = fields.length === serviceFields.length;
49
+ const fieldsVariableName = useAllFields
41
50
  ? prismaDataService.getFieldsVariableName()
51
+ : `${modelVar}UpdateFields`;
52
+ const fieldsDeclarationFragment = useAllFields
53
+ ? ''
42
54
  : tsTemplateWithImports([
43
55
  tsImportBuilder(['pick']).from('es-toolkit'),
44
- ]) `pick(${prismaDataService.getFieldsVariableName()}, [${fields.map((field) => quot(field)).join(', ')}] as const)`;
45
- // Generate update callback that transforms FK fields into relations
46
- const { updateCallbackFragment } = generateUpdateCallback({
56
+ ]) `const ${fieldsVariableName} = pick(${prismaDataService.getFieldsVariableName()}, [${fields.map((field) => quot(field)).join(', ')}] as const);\n\n`;
57
+ // Generate execute callback that transforms FK fields into relations
58
+ const { executeCallbackFragment } = generateUpdateExecuteCallback({
47
59
  prismaModel: prismaOutput.getPrismaModel(modelName),
48
60
  inputFieldNames: fields,
49
61
  dataUtilsImports,
50
- modelVariableName: lowercaseFirstChar(modelName),
62
+ modelVariableName: modelVar,
51
63
  });
52
- const updateOperation = tsTemplate `
53
- export const ${name} = ${dataUtilsImports.defineUpdateOperation.fragment()}({
54
- model: ${quot(lowercaseFirstChar(modelName))},
55
- fields: ${fieldsFragment},
56
- update: ${updateCallbackFragment},
57
- })
64
+ // Generate the schema export and update function together
65
+ const schemaName = `${modelVar}UpdateSchema`;
66
+ // Build authorize array from global + instance roles
67
+ const authorizeFragment = generateAuthorizeFragment({
68
+ modelName,
69
+ methodType: 'Update',
70
+ globalRoles,
71
+ instanceRoles,
72
+ modelAuthorizer,
73
+ });
74
+ const updateFunction = tsTemplate `
75
+ ${fieldsDeclarationFragment}\nexport const ${schemaName} = ${dataUtilsImports.generateUpdateSchema.fragment()}(${fieldsVariableName});
76
+
77
+ export async function ${name}<
78
+ TIncludeArgs extends ${dataUtilsImports.ModelInclude.typeFragment()}<${quot(modelVar)}> = ${dataUtilsImports.ModelInclude.typeFragment()}<${quot(modelVar)}>,
79
+ >({
80
+ where,
81
+ data: input,
82
+ query,
83
+ context,
84
+ }: ${dataUtilsImports.DataUpdateInput.typeFragment()}<
85
+ ${quot(modelVar)},
86
+ typeof ${fieldsVariableName},
87
+ TIncludeArgs
88
+ >): Promise<${dataUtilsImports.GetPayload.typeFragment()}<${quot(modelVar)}, TIncludeArgs>> {
89
+ const plan = await ${dataUtilsImports.composeUpdate.fragment()}({
90
+ model: ${quot(modelVar)},
91
+ fields: ${fieldsVariableName},
92
+ input,
93
+ context,
94
+ loadExisting: () => ${prismaImports.prisma.fragment()}.${modelVar}.findUniqueOrThrow({ where }),${authorizeFragment}
95
+ });
96
+
97
+ const item = await ${dataUtilsImports.commitUpdate.fragment()}(plan, {
98
+ query,
99
+ execute: ${executeCallbackFragment},
100
+ });
101
+
102
+ return item;
103
+ }
58
104
  `;
59
105
  const prismaModel = prismaOutput.getPrismaModel(modelName);
60
106
  const methodFragment = TsCodeUtils.importFragment(name, serviceFile.getServicePath());
107
+ const schemaMethodFragment = TsCodeUtils.importFragment(schemaName, serviceFile.getServicePath());
61
108
  prismaDataService.registerMethod({
62
109
  name,
63
110
  type: 'update',
64
- fragment: updateOperation,
111
+ fragment: updateFunction,
65
112
  outputMethod: {
66
113
  name,
67
114
  referenceFragment: methodFragment,
@@ -84,7 +131,7 @@ export const prismaDataUpdateGenerator = createGenerator({
84
131
  isOptional: true,
85
132
  })),
86
133
  },
87
- zodSchemaFragment: tsTemplate `${methodFragment}.$dataSchema`,
134
+ zodSchemaFragment: schemaMethodFragment,
88
135
  },
89
136
  createServiceOutputDtoInjectedArg({
90
137
  type: 'injected',
@@ -96,11 +143,6 @@ export const prismaDataUpdateGenerator = createGenerator({
96
143
  name: 'query',
97
144
  kind: prismaQueryKind,
98
145
  }),
99
- createServiceOutputDtoInjectedArg({
100
- type: 'injected',
101
- name: 'skipValidation',
102
- kind: skipValidationKind,
103
- }),
104
146
  ],
105
147
  returnType: prismaToServiceOutputDto(prismaModel, (enumName) => prismaOutput.getServiceEnum(enumName)),
106
148
  },
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-data-update.generator.js","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-update/prisma-data-update.generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,eAAe,EACf,UAAU,EACV,qBAAqB,GACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EACL,kBAAkB,EAClB,IAAI,EACJ,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EACL,WAAW,EACX,eAAe,EACf,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,iCAAiC,EACjC,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;AACpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACnC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,eAAe,CAAC;IACvD,IAAI,EAAE,2BAA2B;IACjC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;IACjC,gBAAgB;IAChB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,EAAE,mBAAmB,CAAC;YACxB,YAAY,EAAE;gBACZ,WAAW,EAAE,mBAAmB;gBAChC,iBAAiB,EAAE,yBAAyB;gBAC5C,gBAAgB,EAAE,wBAAwB;gBAC1C,YAAY,EAAE,oBAAoB;aACnC;YACD,GAAG,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,YAAY,EAAE;gBACpE,MAAM,aAAa,GAAG,iBAAiB,CAAC,SAAS,EAAE,CAAC;gBACpD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAChD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAC5B,CAAC;gBACF,IAAI,UAAU,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;oBACxC,MAAM,IAAI,KAAK,CACb,UAAU,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,CACvH,CAAC;gBACJ,CAAC;gBACD,OAAO;oBACL,KAAK,EAAE,GAAG,EAAE;wBACV,MAAM,cAAc,GAClB,MAAM,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM;4BACpC,CAAC,CAAC,iBAAiB,CAAC,qBAAqB,EAAE;4BAC3C,CAAC,CAAC,qBAAqB,CAAC;gCACpB,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;6BAC7C,CAAC,CAAA,QAAQ,iBAAiB,CAAC,qBAAqB,EAAE,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;wBAE1H,oEAAoE;wBACpE,MAAM,EAAE,sBAAsB,EAAE,GAAG,sBAAsB,CAAC;4BACxD,WAAW,EAAE,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC;4BACnD,eAAe,EAAE,MAAM;4BACvB,gBAAgB;4BAChB,iBAAiB,EAAE,kBAAkB,CAAC,SAAS,CAAC;yBACjD,CAAC,CAAC;wBAEH,MAAM,eAAe,GAAG,UAAU,CAAA;6BACjB,IAAI,MAAM,gBAAgB,CAAC,qBAAqB,CAAC,QAAQ,EAAE;yBAC/D,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;0BAClC,cAAc;0BACd,sBAAsB;;aAEnC,CAAC;wBAEF,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;wBAE3D,MAAM,cAAc,GAAG,WAAW,CAAC,cAAc,CAC/C,IAAI,EACJ,WAAW,CAAC,cAAc,EAAE,CAC7B,CAAC;wBAEF,iBAAiB,CAAC,cAAc,CAAC;4BAC/B,IAAI;4BACJ,IAAI,EAAE,QAAQ;4BACd,QAAQ,EAAE,eAAe;4BACzB,YAAY,EAAE;gCACZ,IAAI;gCACJ,iBAAiB,EAAE,cAAc;gCACjC,SAAS,EAAE;oCACT,iCAAiC,CAAC;wCAChC,IAAI,EAAE,UAAU;wCAChB,IAAI,EAAE,OAAO;wCACb,IAAI,EAAE,0BAA0B;wCAChC,QAAQ,EAAE;4CACR,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI,EAAE;yCACrC;qCACF,CAAC;oCACF;wCACE,IAAI,EAAE,MAAM;wCACZ,IAAI,EAAE,QAAQ;wCACd,UAAU,EAAE;4CACV,IAAI,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM;4CACvC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gDACjC,GAAG,KAAK,CAAC,cAAc;gDACvB,UAAU,EAAE,IAAI;6CACjB,CAAC,CAAC;yCACJ;wCACD,iBAAiB,EAAE,UAAU,CAAA,GAAG,cAAc,cAAc;qCAC7D;oCACD,iCAAiC,CAAC;wCAChC,IAAI,EAAE,UAAU;wCAChB,IAAI,EAAE,SAAS;wCACf,IAAI,EAAE,WAAW;qCAClB,CAAC;oCACF,iCAAiC,CAAC;wCAChC,IAAI,EAAE,UAAU;wCAChB,IAAI,EAAE,OAAO;wCACb,IAAI,EAAE,eAAe;qCACtB,CAAC;oCACF,iCAAiC,CAAC;wCAChC,IAAI,EAAE,UAAU;wCAChB,IAAI,EAAE,gBAAgB;wCACtB,IAAI,EAAE,kBAAkB;qCACzB,CAAC;iCACH;gCACD,UAAU,EAAE,wBAAwB,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC7D,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CACtC;6BACF;yBACF,CAAC,CAAC;oBACL,CAAC;iBACF,CAAC;YACJ,CAAC;SACF,CAAC;KACH,CAAC;CACH,CAAC,CAAC"}
1
+ {"version":3,"file":"prisma-data-update.generator.js","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-update/prisma-data-update.generator.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,9 @@ export declare const prismaModelAuthorizerGenerator: import("@baseplate-dev/sync
32
32
  roles: {
33
33
  name: string;
34
34
  roleCode: string;
35
+ foreignAuthorizerRefs?: string[] | undefined;
35
36
  }[];
37
+ foreignAuthorizerModelNames?: string[] | undefined;
36
38
  }, {
37
39
  main: import("@baseplate-dev/sync").GeneratorTask<any, {
38
40
  appModule: import("@baseplate-dev/sync").ProviderType<import("#src/generators/core/app-module/index.js").AppModuleProvider>;
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-model-authorizer.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-model-authorizer/prisma-model-authorizer.generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAoCrE;;;;GAIG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;OAEG;IACH,iBAAiB,IAAI,MAAM,CAAC;IAC5B;;OAEG;IACH,qBAAqB,IAAI,cAAc,CAAC;IACxC;;;OAGG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC;CACnD;AAED,eAAO,MAAM,6BAA6B,2EAGvC,CAAC;AAIJ;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;EAoGzC,CAAC"}
1
+ {"version":3,"file":"prisma-model-authorizer.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-model-authorizer/prisma-model-authorizer.generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAwCrE;;;;GAIG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;OAEG;IACH,iBAAiB,IAAI,MAAM,CAAC;IAC5B;;OAEG;IACH,qBAAqB,IAAI,cAAc,CAAC;IACxC;;;OAGG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC;CACnD;AAED,eAAO,MAAM,6BAA6B,2EAGvC,CAAC;AAIJ;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;EAgJzC,CAAC"}
@@ -12,11 +12,15 @@ const roleSchema = z.object({
12
12
  name: z.string().min(1),
13
13
  /** Pre-generated role function code (e.g., '(ctx, model) => model.id === ctx.auth.userId') */
14
14
  roleCode: z.string().min(1),
15
+ /** Foreign model names referenced by nested role expressions (e.g., ['TodoList']) */
16
+ foreignAuthorizerRefs: z.array(z.string()).default([]),
15
17
  });
16
18
  const descriptorSchema = z.object({
17
19
  modelName: z.string().min(1),
18
20
  idFieldName: z.string().min(1),
19
21
  roles: z.array(roleSchema).min(1),
22
+ /** Model names of foreign authorizers referenced by nested role expressions */
23
+ foreignAuthorizerModelNames: z.array(z.string().min(1)).default([]),
20
24
  });
21
25
  export const prismaModelAuthorizerProvider = createReadOnlyProviderType('prisma-model-authorizer');
22
26
  // ----- Generator -----
@@ -31,33 +35,61 @@ export const prismaModelAuthorizerGenerator = createGenerator({
31
35
  generatorFileUrl: import.meta.url,
32
36
  descriptorSchema,
33
37
  getInstanceName: (descriptor) => `${descriptor.modelName}Authorizer`,
34
- buildTasks: (descriptor) => ({
35
- main: createGeneratorTask({
36
- dependencies: {
37
- appModule: appModuleProvider,
38
- typescriptFile: typescriptFileProvider,
39
- prismaOutput: prismaOutputProvider,
40
- prismaAuthorizerUtilsImports: prismaAuthorizerUtilsImportsProvider,
41
- },
42
- outputs: {
43
- prismaModelAuthorizer: prismaModelAuthorizerProvider.export(packageScope, descriptor.modelName),
44
- },
45
- run({ appModule, typescriptFile, prismaOutput, prismaAuthorizerUtilsImports, }) {
46
- const { modelName, idFieldName, roles } = descriptor;
47
- const modelVarName = lowercaseFirstChar(modelName);
48
- const authorizerName = `${modelVarName}Authorizer`;
49
- const authorizerFolder = posixJoin(appModule.getModuleFolder(), 'authorizers');
50
- const authorizerPath = posixJoin(authorizerFolder, `${kebabCase(modelName)}.authorizer.ts`);
51
- return {
52
- build: async (builder) => {
53
- const rolesObject = {};
54
- for (const role of roles) {
55
- rolesObject[role.name] = role.roleCode;
56
- }
57
- const rolesFragment = TsCodeUtils.mergeFragmentsAsObject(rolesObject, { disableSort: true });
58
- const prismaModelFragment = prismaOutput.getPrismaModelFragment(modelName);
59
- const idWhere = idFieldName === 'id' ? 'id' : `${idFieldName}: id`;
60
- const fileFragment = tsTemplate `
38
+ buildTasks: (descriptor) => {
39
+ const { foreignAuthorizerModelNames } = descriptor;
40
+ // Build dynamic dependencies for foreign authorizers referenced by nested expressions
41
+ const foreignAuthorizerDeps = Object.fromEntries(foreignAuthorizerModelNames.map((name) => [
42
+ `foreignAuthorizer_${name}`,
43
+ prismaModelAuthorizerProvider.dependency().reference(name),
44
+ ]));
45
+ return {
46
+ main: createGeneratorTask({
47
+ dependencies: {
48
+ appModule: appModuleProvider,
49
+ typescriptFile: typescriptFileProvider,
50
+ prismaOutput: prismaOutputProvider,
51
+ prismaAuthorizerUtilsImports: prismaAuthorizerUtilsImportsProvider,
52
+ ...foreignAuthorizerDeps,
53
+ },
54
+ outputs: {
55
+ prismaModelAuthorizer: prismaModelAuthorizerProvider.export(packageScope, descriptor.modelName),
56
+ },
57
+ run({ appModule, typescriptFile, prismaOutput, prismaAuthorizerUtilsImports, ...dynamicDeps }) {
58
+ const { modelName, idFieldName, roles } = descriptor;
59
+ const modelVarName = lowercaseFirstChar(modelName);
60
+ const authorizerName = `${modelVarName}Authorizer`;
61
+ // Build a map of foreign model name → authorizer provider
62
+ const foreignAuthorizerProviders = new Map();
63
+ for (const name of foreignAuthorizerModelNames) {
64
+ const provider = dynamicDeps[`foreignAuthorizer_${name}`];
65
+ foreignAuthorizerProviders.set(name, provider);
66
+ }
67
+ const authorizerFolder = posixJoin(appModule.getModuleFolder(), 'authorizers');
68
+ const authorizerPath = posixJoin(authorizerFolder, `${kebabCase(modelName)}.authorizer.ts`);
69
+ return {
70
+ build: async (builder) => {
71
+ const rolesObject = {};
72
+ for (const role of roles) {
73
+ // Look up foreign authorizer providers by the metadata refs
74
+ const referencedProviders = role.foreignAuthorizerRefs
75
+ .map((name) => foreignAuthorizerProviders.get(name))
76
+ .filter((p) => p != null);
77
+ if (referencedProviders.length > 0) {
78
+ // Collect all imports from referenced foreign authorizers
79
+ const allImports = referencedProviders.flatMap((provider) => provider.getAuthorizerFragment().imports ?? []);
80
+ rolesObject[role.name] = {
81
+ contents: role.roleCode,
82
+ imports: allImports,
83
+ };
84
+ }
85
+ else {
86
+ rolesObject[role.name] = role.roleCode;
87
+ }
88
+ }
89
+ const rolesFragment = TsCodeUtils.mergeFragmentsAsObject(rolesObject, { disableSort: true });
90
+ const prismaModelFragment = prismaOutput.getPrismaModelFragment(modelName);
91
+ const idWhere = idFieldName === 'id' ? 'id' : `${idFieldName}: id`;
92
+ const fileFragment = tsTemplate `
61
93
  export const ${authorizerName} = ${prismaAuthorizerUtilsImports.createModelAuthorizer.fragment()}({
62
94
  model: '${modelVarName}',
63
95
  idField: '${idFieldName}',
@@ -65,32 +97,33 @@ export const prismaModelAuthorizerGenerator = createGenerator({
65
97
  roles: ${rolesFragment},
66
98
  });
67
99
  `;
68
- await builder.apply(typescriptFile.renderTemplateFragment({
69
- id: `prisma-model-authorizer:${modelName}`,
70
- destination: authorizerPath,
71
- fragment: fileFragment,
72
- }));
73
- return {
74
- prismaModelAuthorizer: {
75
- getAuthorizerName() {
76
- return authorizerName;
100
+ await builder.apply(typescriptFile.renderTemplateFragment({
101
+ id: `prisma-model-authorizer:${modelName}`,
102
+ destination: authorizerPath,
103
+ fragment: fileFragment,
104
+ }));
105
+ return {
106
+ prismaModelAuthorizer: {
107
+ getAuthorizerName() {
108
+ return authorizerName;
109
+ },
110
+ getAuthorizerFragment() {
111
+ return TsCodeUtils.importFragment(authorizerName, authorizerPath);
112
+ },
113
+ getRoleFragment(roleName) {
114
+ const validRoles = roles.map((r) => r.name);
115
+ if (!validRoles.includes(roleName)) {
116
+ throw new Error(`Role '${roleName}' not found on ${modelName} authorizer. Available: ${validRoles.join(', ')}`);
117
+ }
118
+ return tsTemplate `${TsCodeUtils.importFragment(authorizerName, authorizerPath)}.roles.${roleName}`;
119
+ },
77
120
  },
78
- getAuthorizerFragment() {
79
- return TsCodeUtils.importFragment(authorizerName, authorizerPath);
80
- },
81
- getRoleFragment(roleName) {
82
- const validRoles = roles.map((r) => r.name);
83
- if (!validRoles.includes(roleName)) {
84
- throw new Error(`Role '${roleName}' not found on ${modelName} authorizer. Available: ${validRoles.join(', ')}`);
85
- }
86
- return tsTemplate `${TsCodeUtils.importFragment(authorizerName, authorizerPath)}.roles.${roleName}`;
87
- },
88
- },
89
- };
90
- },
91
- };
92
- },
93
- }),
94
- }),
121
+ };
122
+ },
123
+ };
124
+ },
125
+ }),
126
+ };
127
+ },
95
128
  });
96
129
  //# sourceMappingURL=prisma-model-authorizer.generator.js.map