@baseplate-dev/fastify-generators 0.6.4 → 0.6.5

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 +21 -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 +47 -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 +56 -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 +82 -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 +37 -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 +86 -29
  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 +102 -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
@@ -1,14 +1,17 @@
1
- import { TsCodeUtils, tsImportBuilder, tsTemplate, tsTemplateWithImports, } from '@baseplate-dev/core-generators';
1
+ import { TsCodeUtils, tsTemplate } from '@baseplate-dev/core-generators';
2
2
  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
6
  import { contextKind, prismaQueryKind } from '#src/types/service-dto-kinds.js';
7
7
  import { createServiceOutputDtoInjectedArg, prismaToServiceOutputDto, } from '#src/types/service-output.js';
8
- import { generateAuthorizeFragment, generateCreateExecuteCallback, } from '../_shared/build-data-helpers/index.js';
8
+ import { authorizerUtilsImportsProvider } from '../../auth/_providers/authorizer-utils-imports.js';
9
+ import { serviceContextImportsProvider } from '../../core/service-context/generated/ts-import-providers.js';
10
+ import { buildTransformOperationParts } from '../_shared/build-data-helpers/build-transform-operation-parts.js';
11
+ import { generateAuthorizationStatements } from '../_shared/build-data-helpers/generate-authorization-statements.js';
9
12
  import { dataUtilsImportsProvider } from '../data-utils/index.js';
10
13
  import { prismaDataServiceProvider } from '../prisma-data-service/prisma-data-service.generator.js';
11
- import { prismaOutputProvider } from '../prisma/prisma.generator.js';
14
+ import { prismaImportsProvider, prismaOutputProvider, } from '../prisma/index.js';
12
15
  const descriptorSchema = z.object({
13
16
  name: z.string().min(1),
14
17
  modelName: z.string().min(1),
@@ -17,6 +20,11 @@ const descriptorSchema = z.object({
17
20
  });
18
21
  /**
19
22
  * Generator for prisma/prisma-data-create
23
+ *
24
+ * Generates a create function that:
25
+ * - Checks authorization (global only for creates)
26
+ * - For scalar-only models: calls prisma.model.create directly
27
+ * - For models with transformers: uses prepareTransformers + executeTransformPlan
20
28
  */
21
29
  export const prismaDataCreateGenerator = createGenerator({
22
30
  name: 'prisma/prisma-data-create',
@@ -29,8 +37,11 @@ export const prismaDataCreateGenerator = createGenerator({
29
37
  prismaDataService: prismaDataServiceProvider,
30
38
  dataUtilsImports: dataUtilsImportsProvider,
31
39
  prismaOutput: prismaOutputProvider,
40
+ prismaImports: prismaImportsProvider,
41
+ authorizerImports: authorizerUtilsImportsProvider,
42
+ serviceContextImports: serviceContextImportsProvider,
32
43
  },
33
- run({ serviceFile, prismaDataService, dataUtilsImports, prismaOutput }) {
44
+ run({ serviceFile, prismaDataService, dataUtilsImports, prismaOutput, prismaImports, authorizerImports, serviceContextImports, }) {
34
45
  const serviceFields = prismaDataService.getFields();
35
46
  const usedFields = serviceFields.filter((field) => fields.includes(field.name));
36
47
  if (usedFields.length !== fields.length) {
@@ -39,60 +50,86 @@ export const prismaDataCreateGenerator = createGenerator({
39
50
  return {
40
51
  build: () => {
41
52
  const modelVar = lowercaseFirstChar(modelName);
42
- const useAllFields = fields.length === serviceFields.length;
43
- const fieldsVariableName = useAllFields
44
- ? prismaDataService.getFieldsVariableName()
45
- : `${modelVar}CreateFields`;
46
- const fieldsDeclarationFragment = useAllFields
47
- ? ''
48
- : tsTemplateWithImports([
49
- tsImportBuilder(['pick']).from('es-toolkit'),
50
- ]) `const ${fieldsVariableName} = pick(${prismaDataService.getFieldsVariableName()}, [${fields.map((field) => quot(field)).join(', ')}] as const);\n`;
51
- // Generate execute callback that transforms FK fields into relations
52
53
  const prismaModel = prismaOutput.getPrismaModel(modelName);
53
- const { executeCallbackFragment } = generateCreateExecuteCallback({
54
+ const hasTransformFields = prismaDataService.hasTransformFields();
55
+ const transformersVarName = prismaDataService.getTransformersVariableName() ?? '';
56
+ // Use shared helper for field categorization, destructure, and data building
57
+ const parts = buildTransformOperationParts({
58
+ fields: usedFields,
54
59
  prismaModel,
55
- inputFieldNames: fields,
56
60
  dataUtilsImports,
57
- modelVariableName: modelVar,
61
+ operationType: 'create',
62
+ transformersVarFragment: transformersVarName,
58
63
  });
59
- // Generate the schema export and create function together
60
- const schemaName = `${modelVar}CreateSchema`;
61
- const authorizeFragment = generateAuthorizeFragment({
64
+ // Generate authorization
65
+ const { fragment: authFragment } = generateAuthorizationStatements({
62
66
  modelName,
63
67
  methodType: 'Create',
64
68
  globalRoles,
65
69
  modelAuthorizer: undefined,
70
+ authorizerImports,
66
71
  });
67
- const createFunction = tsTemplate `
68
- ${fieldsDeclarationFragment}\nexport const ${schemaName} = ${dataUtilsImports.generateCreateSchema.fragment()}(${fieldsVariableName});
72
+ // Extract transformer entries (guaranteed defined when hasTransformFields is true)
73
+ const transformersObject = parts.transformersObjectFragment ?? tsTemplate `{}`;
74
+ // Use property shorthand when data passes through unchanged
75
+ const prismaDataEntry = parts.prismaDataFragment === 'data'
76
+ ? 'data,'
77
+ : tsTemplate `data: ${parts.prismaDataFragment},`;
78
+ const createFunction = hasTransformFields
79
+ ? // Transform path: prepareTransformers + executeTransformPlan
80
+ tsTemplate `
81
+ export async function ${name}<TQuery extends ${dataUtilsImports.DataQuery.typeFragment()}<${quot(modelVar)}>>({
82
+ data,
83
+ query,
84
+ context,
85
+ }: {
86
+ data: z.infer<typeof ${prismaDataService.getCreateSchemaVariableName()}>;
87
+ query?: TQuery;
88
+ context: ${serviceContextImports.ServiceContext.typeFragment()};
89
+ }): Promise<${dataUtilsImports.GetResult.typeFragment()}<${quot(modelVar)}, TQuery>> {
90
+ ${authFragment}
91
+ ${parts.inputDestructureFragment}
69
92
 
70
- export async function ${name}<
71
- TIncludeArgs extends ${dataUtilsImports.ModelInclude.typeFragment()}<${quot(modelVar)}> = ${dataUtilsImports.ModelInclude.typeFragment()}<${quot(modelVar)}>,
72
- >({
73
- data: input,
74
- query,
75
- context,
76
- }: ${dataUtilsImports.DataCreateInput.typeFragment()}<
77
- ${quot(modelVar)},
78
- typeof ${fieldsVariableName},
79
- TIncludeArgs
80
- >): Promise<${dataUtilsImports.GetPayload.typeFragment()}<${quot(modelVar)}, TIncludeArgs>> {
81
- const plan = await ${dataUtilsImports.composeCreate.fragment()}({
82
- model: ${quot(modelVar)},
83
- fields: ${fieldsVariableName},
84
- input,
85
- context,${authorizeFragment}
86
- });
93
+ const plan = await ${dataUtilsImports.prepareTransformers.fragment()}({
94
+ transformers: ${transformersObject},
95
+ serviceContext: context,
96
+ });
87
97
 
88
- const item = await ${dataUtilsImports.commitCreate.fragment()}(plan, {
98
+ const result = await ${dataUtilsImports.executeTransformPlan.fragment()}(plan, {
99
+ execute: async ({ tx, transformed }) =>
100
+ tx.${modelVar}.create({
101
+ ${prismaDataEntry}
102
+ }),
103
+ refetch: (item) =>
104
+ ${prismaImports.prisma.fragment()}.${modelVar}.findUniqueOrThrow({ where: { id: item.id }, ...query }),
105
+ });
106
+
107
+ return result as ${dataUtilsImports.GetResult.typeFragment()}<${quot(modelVar)}, TQuery>;
108
+ }
109
+ `
110
+ : // Scalar-only path: direct Prisma call, no transaction
111
+ tsTemplate `
112
+ export async function ${name}<TQuery extends ${dataUtilsImports.DataQuery.typeFragment()}<${quot(modelVar)}>>({
113
+ data,
89
114
  query,
90
- execute: ${executeCallbackFragment},
91
- });
115
+ context,
116
+ }: {
117
+ data: z.infer<typeof ${prismaDataService.getCreateSchemaVariableName()}>;
118
+ query?: TQuery;
119
+ context: ${serviceContextImports.ServiceContext.typeFragment()};
120
+ }): Promise<${dataUtilsImports.GetResult.typeFragment()}<${quot(modelVar)}, TQuery>> {
121
+ ${authFragment}
122
+ ${parts.inputDestructureFragment}
92
123
 
93
- return item;
94
- }
95
- `;
124
+ const result = await ${prismaImports.prisma.fragment()}.${modelVar}.create({
125
+ ${prismaDataEntry}
126
+ ...query,
127
+ });
128
+
129
+ return result as ${dataUtilsImports.GetResult.typeFragment()}<${quot(modelVar)}, TQuery>;
130
+ }
131
+ `;
132
+ const schemaName = `${modelVar}CreateSchema`;
96
133
  const methodFragment = TsCodeUtils.importFragment(name, serviceFile.getServicePath());
97
134
  const schemaMethodFragment = TsCodeUtils.importFragment(schemaName, serviceFile.getServicePath());
98
135
  prismaDataService.registerMethod({
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-data-create.generator.js","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-create/prisma-data-create.generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prisma-data-create.generator.js","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-create/prisma-data-create.generator.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,10 @@
1
1
  /**
2
2
  * Generator for prisma/prisma-data-delete
3
+ *
4
+ * Generates a delete function that:
5
+ * - Checks authorization (global and/or instance)
6
+ * - Calls prisma.model.delete directly (no transaction wrapper)
7
+ * - Returns the deleted record
3
8
  */
4
9
  export declare const prismaDataDeleteGenerator: import("@baseplate-dev/sync").GeneratorBundleCreator<{
5
10
  name: string;
@@ -11,92 +16,74 @@ export declare const prismaDataDeleteGenerator: import("@baseplate-dev/sync").Ge
11
16
  serviceFile: import("@baseplate-dev/sync").ProviderType<import("#src/generators/core/index.js").ServiceFileProvider>;
12
17
  prismaDataService: import("@baseplate-dev/sync").ProviderType<import("../prisma-data-service/prisma-data-service.generator.js").PrismaDataServiceProvider>;
13
18
  dataUtilsImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
14
- AnyFieldDefinition: {
19
+ AfterExecuteHook: {
15
20
  isTypeOnly: true;
16
21
  };
17
- AnyOperationHooks: {
22
+ AnyBoundTransformer: {
18
23
  isTypeOnly: true;
19
24
  };
20
- commitCreate: {};
21
- commitDelete: {};
22
- commitUpdate: {};
23
- composeCreate: {};
24
- composeUpdate: {};
25
- createParentModelConfig: {};
26
- DataCreateInput: {
25
+ AnyTransformer: {
27
26
  isTypeOnly: true;
28
27
  };
29
- DataDeleteInput: {
28
+ BoundTransformer: {
30
29
  isTypeOnly: true;
31
30
  };
32
- DataOperationType: {
31
+ DataQuery: {
33
32
  isTypeOnly: true;
34
33
  };
35
- DataUpdateInput: {
34
+ defineTransformer: {};
35
+ executeTransformPlan: {};
36
+ GetResult: {
36
37
  isTypeOnly: true;
37
38
  };
38
- FieldContext: {
39
+ InferTransformed: {
39
40
  isTypeOnly: true;
40
41
  };
41
- FieldDefinition: {
42
- isTypeOnly: true;
43
- };
44
- FieldTransformData: {
45
- isTypeOnly: true;
46
- };
47
- FieldTransformResult: {
48
- isTypeOnly: true;
49
- };
50
- generateCreateSchema: {};
51
- generateUpdateSchema: {};
52
- GetPayload: {
53
- isTypeOnly: true;
54
- };
55
- InferFieldsOutput: {
56
- isTypeOnly: true;
57
- };
58
- InferInput: {
59
- isTypeOnly: true;
60
- };
61
- ModelInclude: {
42
+ MaybePromise: {
62
43
  isTypeOnly: true;
63
44
  };
64
45
  ModelPropName: {
65
46
  isTypeOnly: true;
66
47
  };
67
- nestedOneToManyField: {};
68
- NestedOneToManyFieldConfig: {
69
- isTypeOnly: true;
70
- };
71
- nestedOneToOneField: {};
72
- NestedOneToOneFieldConfig: {
48
+ oneToManyTransformer: {};
49
+ oneToOneTransformer: {};
50
+ prepareTransformers: {};
51
+ relationHelpers: {};
52
+ Transformer: {
73
53
  isTypeOnly: true;
74
54
  };
75
- OperationContext: {
55
+ TransformerResult: {
76
56
  isTypeOnly: true;
77
57
  };
78
- OperationHooks: {
58
+ TransformPlan: {
79
59
  isTypeOnly: true;
80
60
  };
81
- ParentModelConfig: {
61
+ WhereInput: {
82
62
  isTypeOnly: true;
83
63
  };
84
- relationHelpers: {};
85
- scalarField: {};
86
- TransactionalOperationContext: {
64
+ }>>;
65
+ prismaOutput: import("@baseplate-dev/sync").ProviderType<import("../prisma/prisma.generator.js").PrismaOutputProvider>;
66
+ prismaImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
67
+ prisma: {};
68
+ }>>;
69
+ authorizerImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
70
+ checkGlobalAuthorization: {};
71
+ checkInstanceAuthorization: {};
72
+ GlobalRoleCheck: {
87
73
  isTypeOnly: true;
88
74
  };
89
- WhereInput: {
75
+ InstanceRoleCheck: {
90
76
  isTypeOnly: true;
91
77
  };
92
- WhereUniqueInput: {
78
+ }>>;
79
+ serviceContextImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
80
+ createServiceContext: {};
81
+ createSystemServiceContext: {};
82
+ createTestServiceContext: {};
83
+ ServiceContext: {
93
84
  isTypeOnly: true;
94
85
  };
95
86
  }>>;
96
- prismaOutput: import("@baseplate-dev/sync").ProviderType<import("../prisma/prisma.generator.js").PrismaOutputProvider>;
97
- prismaImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
98
- prisma: {};
99
- }>>;
100
87
  modelAuthorizer: import("@baseplate-dev/sync").ProviderDependency<import("../prisma-model-authorizer/prisma-model-authorizer.generator.js").PrismaModelAuthorizerProvider | undefined>;
101
88
  }, any>;
102
89
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-data-delete.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-delete/prisma-data-delete.generator.ts"],"names":[],"mappings":"AAmCA;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkHpC,CAAC"}
1
+ {"version":3,"file":"prisma-data-delete.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-delete/prisma-data-delete.generator.ts"],"names":[],"mappings":"AAmCA;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6HpC,CAAC"}
@@ -5,7 +5,10 @@ import { z } from 'zod';
5
5
  import { serviceFileProvider } from '#src/generators/core/index.js';
6
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 { generateAuthorizeFragment, generateDeleteExecuteCallback, } from '../_shared/build-data-helpers/index.js';
8
+ import { authorizerUtilsImportsProvider } from '../../auth/_providers/authorizer-utils-imports.js';
9
+ import { serviceContextImportsProvider } from '../../core/service-context/generated/ts-import-providers.js';
10
+ import { generateAuthorizationStatements } from '../_shared/build-data-helpers/generate-authorization-statements.js';
11
+ import { generateWhereType } from '../_shared/build-data-helpers/generate-where-type.js';
9
12
  import { dataUtilsImportsProvider } from '../data-utils/index.js';
10
13
  import { prismaDataServiceProvider } from '../prisma-data-service/prisma-data-service.generator.js';
11
14
  import { prismaModelAuthorizerProvider } from '../prisma-model-authorizer/index.js';
@@ -18,6 +21,11 @@ const descriptorSchema = z.object({
18
21
  });
19
22
  /**
20
23
  * Generator for prisma/prisma-data-delete
24
+ *
25
+ * Generates a delete function that:
26
+ * - Checks authorization (global and/or instance)
27
+ * - Calls prisma.model.delete directly (no transaction wrapper)
28
+ * - Returns the deleted record
21
29
  */
22
30
  export const prismaDataDeleteGenerator = createGenerator({
23
31
  name: 'prisma/prisma-data-delete',
@@ -31,53 +39,57 @@ export const prismaDataDeleteGenerator = createGenerator({
31
39
  dataUtilsImports: dataUtilsImportsProvider,
32
40
  prismaOutput: prismaOutputProvider,
33
41
  prismaImports: prismaImportsProvider,
42
+ authorizerImports: authorizerUtilsImportsProvider,
43
+ serviceContextImports: serviceContextImportsProvider,
34
44
  modelAuthorizer: prismaModelAuthorizerProvider
35
45
  .dependency()
36
46
  .optionalReference(modelName),
37
47
  },
38
- run({ serviceFile, prismaDataService, dataUtilsImports, prismaOutput, prismaImports, modelAuthorizer, }) {
48
+ run({ serviceFile, prismaDataService, dataUtilsImports, prismaOutput, prismaImports, authorizerImports, serviceContextImports, modelAuthorizer, }) {
39
49
  return {
40
50
  build: () => {
41
51
  const modelVar = lowercaseFirstChar(modelName);
42
52
  const prismaModel = prismaOutput.getPrismaModel(modelName);
43
- // Generate execute callback
44
- const { executeCallbackFragment } = generateDeleteExecuteCallback({
45
- prismaModel,
46
- modelVariableName: modelVar,
47
- });
48
- // Build authorize array from global + instance roles
49
- const authorizeFragment = generateAuthorizeFragment({
53
+ // Generate authorization statements
54
+ const { fragment: authFragment, hasInstanceAuth } = generateAuthorizationStatements({
50
55
  modelName,
51
56
  methodType: 'Delete',
52
57
  globalRoles,
53
58
  instanceRoles,
54
59
  modelAuthorizer,
60
+ authorizerImports,
55
61
  });
56
- // Instance roles require loadExisting to fetch the model instance
57
- const hasInstanceRoles = instanceRoles != null && instanceRoles.length > 0;
58
- const loadExistingFragment = hasInstanceRoles
59
- ? tsTemplate `
60
- loadExisting: () => ${prismaImports.prisma.fragment()}.${modelVar}.findUniqueOrThrow({ where }),`
62
+ // Fetch existing item if needed for instance auth
63
+ const existingItemFragment = hasInstanceAuth
64
+ ? tsTemplate `const existingItem = await ${prismaImports.prisma.fragment()}.${modelVar}.findUniqueOrThrow({ where });`
65
+ : '';
66
+ const whereType = generateWhereType(prismaModel);
67
+ // Only include context parameter when authorization is needed
68
+ const hasAuth = authFragment !== '';
69
+ const contextParam = hasAuth ? 'context,' : '';
70
+ const contextType = hasAuth
71
+ ? tsTemplate `context: ${serviceContextImports.ServiceContext.typeFragment()};`
61
72
  : '';
62
73
  // Generate the delete function
63
74
  const deleteFunction = tsTemplate `
64
- export async function ${name}<
65
- TIncludeArgs extends ${dataUtilsImports.ModelInclude.typeFragment()}<${quot(modelVar)}> = ${dataUtilsImports.ModelInclude.typeFragment()}<${quot(modelVar)}>,
66
- >({
75
+ export async function ${name}<TQuery extends ${dataUtilsImports.DataQuery.typeFragment()}<${quot(modelVar)}>>({
67
76
  where,
68
77
  query,
69
- context,
70
- }: ${dataUtilsImports.DataDeleteInput.typeFragment()}<${quot(modelVar)}, TIncludeArgs>): Promise<
71
- ${dataUtilsImports.GetPayload.typeFragment()}<${quot(modelVar)}, TIncludeArgs>
72
- > {
73
- const item = await ${dataUtilsImports.commitDelete.fragment()}({
74
- model: ${quot(modelVar)},
75
- query,
76
- context,
77
- execute: ${executeCallbackFragment},${authorizeFragment}${loadExistingFragment}
78
+ ${contextParam}
79
+ }: {
80
+ where: ${whereType};
81
+ query?: TQuery;
82
+ ${contextType}
83
+ }): Promise<${dataUtilsImports.GetResult.typeFragment()}<${quot(modelVar)}, TQuery>> {
84
+ ${existingItemFragment}
85
+ ${authFragment}
86
+
87
+ const result = await ${prismaImports.prisma.fragment()}.${modelVar}.delete({
88
+ where,
89
+ ...query,
78
90
  });
79
91
 
80
- return item;
92
+ return result as ${dataUtilsImports.GetResult.typeFragment()}<${quot(modelVar)}, TQuery>;
81
93
  }
82
94
  `;
83
95
  prismaDataService.registerMethod({
@@ -96,11 +108,15 @@ export const prismaDataDeleteGenerator = createGenerator({
96
108
  idFields: prismaModel.idFields ?? [],
97
109
  },
98
110
  }),
99
- createServiceOutputDtoInjectedArg({
100
- name: 'context',
101
- type: 'injected',
102
- kind: contextKind,
103
- }),
111
+ ...(hasAuth
112
+ ? [
113
+ createServiceOutputDtoInjectedArg({
114
+ name: 'context',
115
+ type: 'injected',
116
+ kind: contextKind,
117
+ }),
118
+ ]
119
+ : []),
104
120
  createServiceOutputDtoInjectedArg({
105
121
  type: 'injected',
106
122
  name: 'query',
@@ -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":"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"}
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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"}
@@ -6,11 +6,25 @@ interface WritePrismaDataNestedFieldInput {
6
6
  parentModel: PrismaOutputModel;
7
7
  nestedModel: PrismaOutputModel;
8
8
  relation: PrismaOutputRelationField;
9
- /** The fragment referencing the existing fields array (otherwise we inline the fields) */
10
- dataServiceFieldsFragment?: TsCodeFragment;
11
9
  nestedFields: InputFieldDefinitionOutput[];
12
10
  dataUtilsImports: DataUtilsImportsProvider;
11
+ /** Import fragment for the nested model's transformers variable (e.g., todoItemAttachmentTransformers) */
12
+ nestedTransformersFragment?: TsCodeFragment;
13
+ /** Import fragment for the nested model's fieldSchemas variable (e.g., userImageFieldSchemas) */
14
+ nestedFieldSchemasFragment?: TsCodeFragment;
15
+ /** All field names in the nested model's data service (for subset detection) */
16
+ allDataServiceFieldNames?: string[];
13
17
  }
18
+ /**
19
+ * Writes a nested field transformer definition (oneToOneTransformer or oneToManyTransformer).
20
+ *
21
+ * Generates:
22
+ * - schemaFragment: Zod schema for the fieldSchemas object
23
+ * - transformer.fragment: oneToOneTransformer({...}) or oneToManyTransformer({...})
24
+ *
25
+ * For nested entities with sub-transform-fields (e.g., file fields), generates
26
+ * processCreate/processUpdate that use prepareTransformers + executeTransformPlan.
27
+ */
14
28
  export declare function writePrismaDataNestedField(input: WritePrismaDataNestedFieldInput): InputFieldDefinitionOutput;
15
29
  export {};
16
30
  //# sourceMappingURL=nested-field-writer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nested-field-writer.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-nested-field/nested-field-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAcrE,OAAO,KAAK,EACV,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAClG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAIvE,UAAU,+BAA+B;IACvC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,EAAE,yBAAyB,CAAC;IACpC,0FAA0F;IAC1F,yBAAyB,CAAC,EAAE,cAAc,CAAC;IAC3C,YAAY,EAAE,0BAA0B,EAAE,CAAC;IAC3C,gBAAgB,EAAE,wBAAwB,CAAC;CAC5C;AA+KD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,+BAA+B,GACrC,0BAA0B,CAsF5B"}
1
+ {"version":3,"file":"nested-field-writer.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-nested-field/nested-field-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AASrE,OAAO,KAAK,EACV,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAClG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAMvE,UAAU,+BAA+B;IACvC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,EAAE,yBAAyB,CAAC;IACpC,YAAY,EAAE,0BAA0B,EAAE,CAAC;IAC3C,gBAAgB,EAAE,wBAAwB,CAAC;IAC3C,0GAA0G;IAC1G,0BAA0B,CAAC,EAAE,cAAc,CAAC;IAC5C,iGAAiG;IACjG,0BAA0B,CAAC,EAAE,cAAc,CAAC;IAC5C,gFAAgF;IAChF,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;CACrC;AAmSD;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,+BAA+B,GACrC,0BAA0B,CAqI5B"}