@baseplate-dev/fastify-generators 0.6.3 → 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 +30 -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 +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":"AAkCA;;GAEG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6IzC,CAAC"}
@@ -95,21 +95,35 @@ export const prismaDataNestedFieldGenerator = createGenerator({
95
95
  return modelFields.map((field) => generateScalarInputField({
96
96
  fieldName: field.name,
97
97
  scalarField: field,
98
- dataUtilsImports,
99
98
  prismaGeneratedImports,
100
99
  lookupEnum: (name) => prismaOutput.getServiceEnum(name),
101
100
  }));
102
101
  })();
103
- const dataServiceFieldsFragment = nestedPrismaDataService?.getFieldsFragment();
102
+ // Get the nested model's transformers import fragment (if it has sub-transform-fields)
103
+ const nestedTransformersFragment = nestedPrismaDataService?.getTransformersFragment();
104
+ // Request fieldSchemas export from nested data service so the parent
105
+ // can import it instead of duplicating schemas inline
106
+ let nestedFieldSchemasFragment;
107
+ let allDataServiceFieldNames;
108
+ if (nestedPrismaDataService) {
109
+ nestedPrismaDataService.requestFieldSchemas();
110
+ nestedFieldSchemasFragment =
111
+ nestedPrismaDataService.getFieldSchemasFragment();
112
+ allDataServiceFieldNames = nestedPrismaDataService
113
+ .getFields()
114
+ .map((f) => f.name);
115
+ }
104
116
  return {
105
117
  build: () => {
106
- prismaDataServiceSetup.virtualInputFields.add(writePrismaDataNestedField({
118
+ prismaDataServiceSetup.transformFields.add(writePrismaDataNestedField({
107
119
  parentModel,
108
120
  nestedModel,
109
121
  relation,
110
- dataServiceFieldsFragment,
111
122
  nestedFields,
112
123
  dataUtilsImports,
124
+ nestedTransformersFragment,
125
+ nestedFieldSchemasFragment,
126
+ allDataServiceFieldNames,
113
127
  }));
114
128
  },
115
129
  };
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-data-nested-field.generator.js","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prisma-data-nested-field.generator.js","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,8 @@ import type { InputFieldDefinitionOutput } from '../_shared/field-definition-gen
5
5
  declare const prismaDataServiceSetupProvider: import("@baseplate-dev/sync").ProviderType<{
6
6
  /** Additional model field names to add to the data service */
7
7
  additionalModelFieldNames: import("@baseplate-dev/utils").ArrayContainer<string>;
8
- /** Virtual input fields to add to the data service */
9
- virtualInputFields: NamedArrayFieldContainer<InputFieldDefinitionOutput>;
8
+ /** Transform field definitions to add to the data service (file, nested) */
9
+ transformFields: NamedArrayFieldContainer<InputFieldDefinitionOutput>;
10
10
  } & {
11
11
  modelName: string;
12
12
  }>;
@@ -17,18 +17,46 @@ interface PrismaDataServiceMethod {
17
17
  fragment: TsCodeFragment;
18
18
  outputMethod: ServiceOutputMethod;
19
19
  }
20
+ /**
21
+ * Provider interface for the prisma data service.
22
+ * Other generators (create, update, delete, nested) use this to access
23
+ * field information and register their methods.
24
+ */
20
25
  export interface PrismaDataServiceProvider {
26
+ /** All input fields (scalar + transform) */
21
27
  getFields(): InputFieldDefinitionOutput[];
22
- getFieldsVariableName(): string;
23
- /**
24
- * Gets the fragment with the fields imported in.
25
- */
26
- getFieldsFragment(): TsCodeFragment;
28
+ /** Only scalar fields (for Zod schema entries) */
29
+ getScalarFields(): InputFieldDefinitionOutput[];
30
+ /** Only transform fields (for the transformers object) */
31
+ getTransformFields(): InputFieldDefinitionOutput[];
32
+ /** Whether the model has any transform fields */
33
+ hasTransformFields(): boolean;
34
+ /** Variable name for field schemas, e.g. "todoListFieldSchemas" */
35
+ getFieldSchemasVariableName(): string;
36
+ /** Variable name for create schema, e.g. "todoListCreateSchema" */
37
+ getCreateSchemaVariableName(): string;
38
+ /** Variable name for update schema, e.g. "todoListUpdateSchema" */
39
+ getUpdateSchemaVariableName(): string;
40
+ /** Variable name for transformers object, e.g. "todoListTransformers" (undefined if no transforms) */
41
+ getTransformersVariableName(): string | undefined;
42
+ /** Import fragment for the transformers variable (auto-generates import when used in code) */
43
+ getTransformersFragment(): TsCodeFragment | undefined;
44
+ /** Request that fieldSchemas be exported (for import by parent nested-field-writer) */
45
+ requestFieldSchemas(): void;
46
+ /** Import fragment for the fieldSchemas variable (auto-generates import when used in code) */
47
+ getFieldSchemasFragment(): TsCodeFragment;
48
+ /** Register a create/update/delete method to be added to the service file */
27
49
  registerMethod(method: PrismaDataServiceMethod): void;
28
50
  }
29
51
  export declare const prismaDataServiceProvider: import("@baseplate-dev/sync").ProviderType<PrismaDataServiceProvider>;
30
52
  /**
31
53
  * Generator for prisma/prisma-data-service
54
+ *
55
+ * Emits the data service file with:
56
+ * - Field schemas object (Zod entries for all fields)
57
+ * - Create/update Zod schemas
58
+ * - Transformers object (only if model has transform fields)
59
+ * - Create/update/delete methods (registered by other generators)
32
60
  */
33
61
  export declare const prismaDataServiceGenerator: import("@baseplate-dev/sync").GeneratorBundleCreator<{
34
62
  modelName: string;
@@ -41,96 +69,13 @@ export declare const prismaDataServiceGenerator: import("@baseplate-dev/sync").G
41
69
  configValues: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/utils").FieldMapValues<{
42
70
  /** Additional model field names to add to the data service */
43
71
  additionalModelFieldNames: import("@baseplate-dev/utils").ArrayContainer<string>;
44
- /** Virtual input fields to add to the data service */
45
- virtualInputFields: NamedArrayFieldContainer<InputFieldDefinitionOutput>;
72
+ /** Transform field definitions to add to the data service (file, nested) */
73
+ transformFields: NamedArrayFieldContainer<InputFieldDefinitionOutput>;
46
74
  }> & {
47
75
  modelName: string;
48
76
  }>;
49
77
  prismaOutput: import("@baseplate-dev/sync").ProviderType<import("../prisma/prisma.generator.js").PrismaOutputProvider>;
50
78
  serviceFile: import("@baseplate-dev/sync").ProviderType<import("#src/generators/core/index.js").ServiceFileProvider>;
51
- dataUtilsImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
52
- AnyFieldDefinition: {
53
- isTypeOnly: true;
54
- };
55
- AnyOperationHooks: {
56
- isTypeOnly: true;
57
- };
58
- commitCreate: {};
59
- commitDelete: {};
60
- commitUpdate: {};
61
- composeCreate: {};
62
- composeUpdate: {};
63
- createParentModelConfig: {};
64
- DataCreateInput: {
65
- isTypeOnly: true;
66
- };
67
- DataDeleteInput: {
68
- isTypeOnly: true;
69
- };
70
- DataOperationType: {
71
- isTypeOnly: true;
72
- };
73
- DataUpdateInput: {
74
- isTypeOnly: true;
75
- };
76
- FieldContext: {
77
- isTypeOnly: true;
78
- };
79
- FieldDefinition: {
80
- isTypeOnly: true;
81
- };
82
- FieldTransformData: {
83
- isTypeOnly: true;
84
- };
85
- FieldTransformResult: {
86
- isTypeOnly: true;
87
- };
88
- generateCreateSchema: {};
89
- generateUpdateSchema: {};
90
- GetPayload: {
91
- isTypeOnly: true;
92
- };
93
- InferFieldsOutput: {
94
- isTypeOnly: true;
95
- };
96
- InferInput: {
97
- isTypeOnly: true;
98
- };
99
- ModelInclude: {
100
- isTypeOnly: true;
101
- };
102
- ModelPropName: {
103
- isTypeOnly: true;
104
- };
105
- nestedOneToManyField: {};
106
- NestedOneToManyFieldConfig: {
107
- isTypeOnly: true;
108
- };
109
- nestedOneToOneField: {};
110
- NestedOneToOneFieldConfig: {
111
- isTypeOnly: true;
112
- };
113
- OperationContext: {
114
- isTypeOnly: true;
115
- };
116
- OperationHooks: {
117
- isTypeOnly: true;
118
- };
119
- ParentModelConfig: {
120
- isTypeOnly: true;
121
- };
122
- relationHelpers: {};
123
- scalarField: {};
124
- TransactionalOperationContext: {
125
- isTypeOnly: true;
126
- };
127
- WhereInput: {
128
- isTypeOnly: true;
129
- };
130
- WhereUniqueInput: {
131
- isTypeOnly: true;
132
- };
133
- }>>;
134
79
  prismaGeneratedImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
135
80
  PrismaClient: {};
136
81
  Prisma: {};
@@ -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,4EAA4E;;;;EAW/E,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;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,4CAA4C;IAC5C,SAAS,IAAI,0BAA0B,EAAE,CAAC;IAC1C,kDAAkD;IAClD,eAAe,IAAI,0BAA0B,EAAE,CAAC;IAChD,0DAA0D;IAC1D,kBAAkB,IAAI,0BAA0B,EAAE,CAAC;IACnD,iDAAiD;IACjD,kBAAkB,IAAI,OAAO,CAAC;IAC9B,mEAAmE;IACnE,2BAA2B,IAAI,MAAM,CAAC;IACtC,mEAAmE;IACnE,2BAA2B,IAAI,MAAM,CAAC;IACtC,mEAAmE;IACnE,2BAA2B,IAAI,MAAM,CAAC;IACtC,sGAAsG;IACtG,2BAA2B,IAAI,MAAM,GAAG,SAAS,CAAC;IAClD,8FAA8F;IAC9F,uBAAuB,IAAI,cAAc,GAAG,SAAS,CAAC;IACtD,uFAAuF;IACvF,mBAAmB,IAAI,IAAI,CAAC;IAC5B,8FAA8F;IAC9F,uBAAuB,IAAI,cAAc,CAAC;IAC1C,6EAA6E;IAC7E,cAAc,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAAC;CACvD;AAED,eAAO,MAAM,yBAAyB,uEACgC,CAAC;AAQvE;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;YA1EnC,8DAA8D;;YAE9D,4EAA4E;;;;;;;;;;;;;;EAiR9E,CAAC"}
@@ -4,8 +4,8 @@ import { compareStrings, lowercaseFirstChar, NamedArrayFieldContainer, } from '@
4
4
  import { z } from 'zod';
5
5
  import { serviceFileProvider } from '#src/generators/core/index.js';
6
6
  import { prismaGeneratedImportsProvider } from '../_providers/prisma-generated-imports.js';
7
+ import { buildFieldSchemasObject } from '../_shared/build-data-helpers/build-schema-fragments.js';
7
8
  import { generateScalarInputField } from '../_shared/field-definition-generators/generate-scalar-input-field.js';
8
- import { dataUtilsImportsProvider } from '../data-utils/index.js';
9
9
  import { prismaOutputProvider } from '../prisma/prisma.generator.js';
10
10
  const descriptorSchema = z.object({
11
11
  modelName: z.string().min(1),
@@ -14,8 +14,8 @@ const descriptorSchema = z.object({
14
14
  const [createPrismaDataServiceTask, prismaDataServiceSetupProvider, prismaDataServiceValuesProvider,] = createConfigProviderTaskWithInfo((t) => ({
15
15
  /** Additional model field names to add to the data service */
16
16
  additionalModelFieldNames: t.array([]),
17
- /** Virtual input fields to add to the data service */
18
- virtualInputFields: t.namedArray([]),
17
+ /** Transform field definitions to add to the data service (file, nested) */
18
+ transformFields: t.namedArray([]),
19
19
  }), {
20
20
  prefix: 'prisma-data-service',
21
21
  configScope: (provider, descriptor) => provider.export().andExport(packageScope, descriptor.modelName),
@@ -32,6 +32,12 @@ const TYPE_TO_ORDER = {
32
32
  };
33
33
  /**
34
34
  * Generator for prisma/prisma-data-service
35
+ *
36
+ * Emits the data service file with:
37
+ * - Field schemas object (Zod entries for all fields)
38
+ * - Create/update Zod schemas
39
+ * - Transformers object (only if model has transform fields)
40
+ * - Create/update/delete methods (registered by other generators)
35
41
  */
36
42
  export const prismaDataServiceGenerator = createGenerator({
37
43
  name: 'prisma/prisma-data-service',
@@ -44,7 +50,6 @@ export const prismaDataServiceGenerator = createGenerator({
44
50
  configValues: prismaDataServiceValuesProvider,
45
51
  prismaOutput: prismaOutputProvider,
46
52
  serviceFile: serviceFileProvider,
47
- dataUtilsImports: dataUtilsImportsProvider,
48
53
  prismaGeneratedImports: prismaGeneratedImportsProvider,
49
54
  },
50
55
  exports: {
@@ -52,10 +57,10 @@ export const prismaDataServiceGenerator = createGenerator({
52
57
  .export()
53
58
  .andExport(packageScope, descriptor.modelName),
54
59
  },
55
- run({ configValues, prismaOutput, serviceFile, dataUtilsImports, prismaGeneratedImports, }) {
60
+ run({ configValues, prismaOutput, serviceFile, prismaGeneratedImports }) {
56
61
  const { modelName, modelFieldNames } = descriptor;
57
62
  const model = prismaOutput.getPrismaModel(modelName);
58
- const { virtualInputFields, additionalModelFieldNames } = configValues;
63
+ const { transformFields: configTransformFields, additionalModelFieldNames, } = configValues;
59
64
  const modelScalarFields = model.fields.filter((f) => f.type === 'scalar');
60
65
  const modelScalarFieldNames = new Set([
61
66
  ...modelFieldNames,
@@ -65,51 +70,103 @@ export const prismaDataServiceGenerator = createGenerator({
65
70
  if (invalidModelFieldNames.length > 0) {
66
71
  throw new Error(`Fields ${invalidModelFieldNames.join(', ')} are not scalar fields in model ${modelName}`);
67
72
  }
68
- const methods = new NamedArrayFieldContainer();
69
- // Check if modelFields and virtual input fields overlap
70
- const overlappingFields = virtualInputFields.filter((field) => modelScalarFieldNames.has(field.name));
73
+ // Check if modelFields and transform fields overlap
74
+ const overlappingFields = configTransformFields.filter((field) => modelScalarFieldNames.has(field.name));
71
75
  if (overlappingFields.length > 0) {
72
76
  throw new Error(`Fields ${overlappingFields.map((field) => field.name).join(', ')} overlap with model fields`);
73
77
  }
74
- const inputFields = [
75
- // preserve order of model fields
78
+ const methods = new NamedArrayFieldContainer();
79
+ // Build all input fields (scalar + transform)
80
+ const allFields = [
81
+ // Scalar fields — preserve order of model fields
76
82
  ...modelScalarFields
77
83
  .filter((f) => modelScalarFieldNames.has(f.name))
78
84
  .map((field) => generateScalarInputField({
79
85
  fieldName: field.name,
80
86
  scalarField: field,
81
- dataUtilsImports,
82
87
  prismaGeneratedImports,
83
88
  lookupEnum: (name) => prismaOutput.getServiceEnum(name),
84
89
  })),
85
- ...virtualInputFields.toSorted((a, b) => compareStrings(a.name, b.name)),
90
+ // Transform fields sorted alphabetically
91
+ ...configTransformFields.toSorted((a, b) => compareStrings(a.name, b.name)),
86
92
  ];
87
- const inputFieldsObject = TsCodeUtils.mergeFragmentsAsObject(Object.fromEntries(inputFields.map((field) => [field.name, field.fragment])), { disableSort: true });
88
- const fieldsVariableName = `${lowercaseFirstChar(modelName)}InputFields`;
89
- const inputFieldsFragment = tsTemplate `
90
- export const ${fieldsVariableName} = ${inputFieldsObject};`;
93
+ const scalarFields = allFields.filter((f) => !f.isTransformField);
94
+ const transformFields = allFields.filter((f) => f.isTransformField);
95
+ // Build the field schemas object using shared utility
96
+ const fieldSchemasObject = buildFieldSchemasObject(allFields, {
97
+ disableSort: true,
98
+ });
99
+ const fieldSchemasVarName = `${lowercaseFirstChar(modelName)}FieldSchemas`;
100
+ const createSchemaVarName = `${lowercaseFirstChar(modelName)}CreateSchema`;
101
+ const updateSchemaVarName = `${lowercaseFirstChar(modelName)}UpdateSchema`;
102
+ const transformersVarName = transformFields.length > 0
103
+ ? `${lowercaseFirstChar(modelName)}Transformers`
104
+ : undefined;
105
+ const zFrag = TsCodeUtils.importFragment('z', 'zod');
106
+ let fieldSchemasRequested = false;
91
107
  return {
92
108
  providers: {
93
109
  prismaDataService: {
94
- getFields() {
95
- return inputFields;
96
- },
97
- getFieldsVariableName() {
98
- return fieldsVariableName;
99
- },
100
- getFieldsFragment() {
101
- return TsCodeUtils.importFragment(fieldsVariableName, serviceFile.getServicePath());
110
+ getFields: () => allFields,
111
+ getScalarFields: () => scalarFields,
112
+ getTransformFields: () => transformFields,
113
+ hasTransformFields: () => transformFields.length > 0,
114
+ getFieldSchemasVariableName: () => fieldSchemasVarName,
115
+ getCreateSchemaVariableName: () => createSchemaVarName,
116
+ getUpdateSchemaVariableName: () => updateSchemaVarName,
117
+ getTransformersVariableName: () => transformersVarName,
118
+ getTransformersFragment: () => transformersVarName
119
+ ? TsCodeUtils.importFragment(transformersVarName, serviceFile.getServicePath())
120
+ : undefined,
121
+ requestFieldSchemas() {
122
+ fieldSchemasRequested = true;
102
123
  },
124
+ getFieldSchemasFragment: () => TsCodeUtils.importFragment(fieldSchemasVarName, serviceFile.getServicePath()),
103
125
  registerMethod(method) {
104
126
  methods.add(method);
105
127
  },
106
128
  },
107
129
  },
108
130
  build: () => {
109
- serviceFile.registerHeader({
110
- name: 'input-fields',
111
- fragment: inputFieldsFragment,
112
- });
131
+ const registeredMethods = methods.getValue();
132
+ const hasCreateMethod = registeredMethods.some((m) => m.type === 'create');
133
+ const hasUpdateMethod = registeredMethods.some((m) => m.type === 'update');
134
+ const needsSchemas = hasCreateMethod || hasUpdateMethod;
135
+ const needsFieldSchemas = needsSchemas || fieldSchemasRequested;
136
+ // Only register schemas when needed by methods or external references
137
+ if (needsFieldSchemas) {
138
+ // Export fieldSchemas when explicitly requested (for import by parent)
139
+ const fieldSchemasKeyword = fieldSchemasRequested
140
+ ? 'export const'
141
+ : 'const';
142
+ serviceFile.registerHeader({
143
+ name: 'schemas-1-fields',
144
+ fragment: tsTemplate `${fieldSchemasKeyword} ${fieldSchemasVarName} = ${fieldSchemasObject};`,
145
+ });
146
+ if (hasCreateMethod) {
147
+ serviceFile.registerHeader({
148
+ name: 'schemas-2-create',
149
+ fragment: tsTemplate `export const ${createSchemaVarName} = ${zFrag}.object(${fieldSchemasVarName});`,
150
+ });
151
+ }
152
+ if (hasUpdateMethod) {
153
+ serviceFile.registerHeader({
154
+ name: 'schemas-3-update',
155
+ fragment: tsTemplate `export const ${updateSchemaVarName} = ${zFrag}.object(${fieldSchemasVarName}).partial();`,
156
+ });
157
+ }
158
+ }
159
+ // Register transformers object (only if there are transform fields)
160
+ if (transformersVarName && transformFields.length > 0) {
161
+ const transformerEntries = Object.fromEntries(transformFields
162
+ .filter((field) => field.transformer != null)
163
+ .map((field) => [field.name, field.transformer.fragment]));
164
+ const transformersObject = TsCodeUtils.mergeFragmentsAsObject(transformerEntries);
165
+ serviceFile.registerHeader({
166
+ name: 'transformers',
167
+ fragment: tsTemplate `export const ${transformersVarName} = ${transformersObject};`,
168
+ });
169
+ }
113
170
  for (const method of methods.getValue()) {
114
171
  serviceFile.registerMethod({
115
172
  name: method.name,
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-data-service.generator.js","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-service/prisma-data-service.generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prisma-data-service.generator.js","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-service/prisma-data-service.generator.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,UAAU,GACX,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,gCAAgC,EAChC,eAAe,EACf,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAIpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAClG,OAAO,EAAE,wBAAwB,EAAE,MAAM,uEAAuE,CAAC;AACjH,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CACrC,CAAC,CAAC;AAIH,MAAM,CACJ,2BAA2B,EAC3B,8BAA8B,EAC9B,+BAA+B,EAChC,GAAG,gCAAgC,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACN,8DAA8D;IAC9D,yBAAyB,EAAE,CAAC,CAAC,KAAK,CAAS,EAAE,CAAC;IAC9C,4EAA4E;IAC5E,eAAe,EAAE,CAAC,CAAC,UAAU,CAA6B,EAAE,CAAC;CAC9D,CAAC,EACF;IACE,MAAM,EAAE,qBAAqB;IAC7B,WAAW,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,CACpC,QAAQ,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,SAAS,CAAC;IACjE,kBAAkB,EAAE,CAAC,UAAsB,EAAE,EAAE,CAAC,CAAC;QAC/C,SAAS,EAAE,UAAU,CAAC,SAAS;KAChC,CAAC;CACH,CACF,CAAC;AAEF,OAAO,EAAE,8BAA8B,EAAE,CAAC;AAyC1C,MAAM,CAAC,MAAM,yBAAyB,GACpC,kBAAkB,CAA4B,qBAAqB,CAAC,CAAC;AAEvE,MAAM,aAAa,GAAoD;IACrE,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;CACV,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,eAAe,CAAC;IACxD,IAAI,EAAE,4BAA4B;IAClC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;IACjC,gBAAgB;IAChB,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC3B,MAAM,EAAE,2BAA2B,CAAC,UAAU,CAAC;QAC/C,IAAI,EAAE,mBAAmB,CAAC;YACxB,YAAY,EAAE;gBACZ,YAAY,EAAE,+BAA+B;gBAC7C,YAAY,EAAE,oBAAoB;gBAClC,WAAW,EAAE,mBAAmB;gBAEhC,sBAAsB,EAAE,8BAA8B;aACvD;YACD,OAAO,EAAE;gBACP,iBAAiB,EAAE,yBAAyB;qBACzC,MAAM,EAAE;qBACR,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,SAAS,CAAC;aACjD;YACD,GAAG,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,sBAAsB,EAAE;gBACrE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,UAAU,CAAC;gBAClD,MAAM,KAAK,GAAG,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gBACrD,MAAM,EACJ,eAAe,EAAE,qBAAqB,EACtC,yBAAyB,GAC1B,GAAG,YAAY,CAAC;gBACjB,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAC3C,CAAC,CAAC,EAAgC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CACzD,CAAC;gBAEF,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;oBACpC,GAAG,eAAe;oBAClB,GAAG,yBAAyB;iBAC7B,CAAC,CAAC;gBAEH,MAAM,sBAAsB,GAAG,eAAe,CAAC,MAAM,CACnD,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CACrD,CAAC;gBACF,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtC,MAAM,IAAI,KAAK,CACb,UAAU,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,mCAAmC,SAAS,EAAE,CAC1F,CAAC;gBACJ,CAAC;gBAED,oDAAoD;gBACpD,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAC/D,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CACtC,CAAC;gBACF,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACjC,MAAM,IAAI,KAAK,CACb,UAAU,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAC9F,CAAC;gBACJ,CAAC;gBAED,MAAM,OAAO,GAAG,IAAI,wBAAwB,EAA2B,CAAC;gBAExE,8CAA8C;gBAC9C,MAAM,SAAS,GAAiC;oBAC9C,iDAAiD;oBACjD,GAAG,iBAAiB;yBACjB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;yBAChD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACb,wBAAwB,CAAC;wBACvB,SAAS,EAAE,KAAK,CAAC,IAAI;wBACrB,WAAW,EAAE,KAAK;wBAClB,sBAAsB;wBACtB,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC;qBACxD,CAAC,CACH;oBACH,2CAA2C;oBAC3C,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACzC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAC/B;iBACF,CAAC;gBAEF,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;gBAClE,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;gBAEpE,sDAAsD;gBACtD,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,SAAS,EAAE;oBAC5D,WAAW,EAAE,IAAI;iBAClB,CAAC,CAAC;gBAEH,MAAM,mBAAmB,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,cAAc,CAAC;gBAC3E,MAAM,mBAAmB,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,cAAc,CAAC;gBAC3E,MAAM,mBAAmB,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,cAAc,CAAC;gBAC3E,MAAM,mBAAmB,GACvB,eAAe,CAAC,MAAM,GAAG,CAAC;oBACxB,CAAC,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,cAAc;oBAChD,CAAC,CAAC,SAAS,CAAC;gBAEhB,MAAM,KAAK,GAAG,WAAW,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACrD,IAAI,qBAAqB,GAAG,KAAK,CAAC;gBAElC,OAAO;oBACL,SAAS,EAAE;wBACT,iBAAiB,EAAE;4BACjB,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS;4BAC1B,eAAe,EAAE,GAAG,EAAE,CAAC,YAAY;4BACnC,kBAAkB,EAAE,GAAG,EAAE,CAAC,eAAe;4BACzC,kBAAkB,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;4BACpD,2BAA2B,EAAE,GAAG,EAAE,CAAC,mBAAmB;4BACtD,2BAA2B,EAAE,GAAG,EAAE,CAAC,mBAAmB;4BACtD,2BAA2B,EAAE,GAAG,EAAE,CAAC,mBAAmB;4BACtD,2BAA2B,EAAE,GAAG,EAAE,CAAC,mBAAmB;4BACtD,uBAAuB,EAAE,GAAG,EAAE,CAC5B,mBAAmB;gCACjB,CAAC,CAAC,WAAW,CAAC,cAAc,CACxB,mBAAmB,EACnB,WAAW,CAAC,cAAc,EAAE,CAC7B;gCACH,CAAC,CAAC,SAAS;4BACf,mBAAmB;gCACjB,qBAAqB,GAAG,IAAI,CAAC;4BAC/B,CAAC;4BACD,uBAAuB,EAAE,GAAG,EAAE,CAC5B,WAAW,CAAC,cAAc,CACxB,mBAAmB,EACnB,WAAW,CAAC,cAAc,EAAE,CAC7B;4BACH,cAAc,CAAC,MAAM;gCACnB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;4BACtB,CAAC;yBACF;qBACF;oBACD,KAAK,EAAE,GAAG,EAAE;wBACV,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;wBAC7C,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAC3B,CAAC;wBACF,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAC3B,CAAC;wBACF,MAAM,YAAY,GAAG,eAAe,IAAI,eAAe,CAAC;wBACxD,MAAM,iBAAiB,GAAG,YAAY,IAAI,qBAAqB,CAAC;wBAEhE,sEAAsE;wBACtE,IAAI,iBAAiB,EAAE,CAAC;4BACtB,uEAAuE;4BACvE,MAAM,mBAAmB,GAAG,qBAAqB;gCAC/C,CAAC,CAAC,cAAc;gCAChB,CAAC,CAAC,OAAO,CAAC;4BACZ,WAAW,CAAC,cAAc,CAAC;gCACzB,IAAI,EAAE,kBAAkB;gCACxB,QAAQ,EAAE,UAAU,CAAA,GAAG,mBAAmB,IAAI,mBAAmB,MAAM,kBAAkB,GAAG;6BAC7F,CAAC,CAAC;4BAEH,IAAI,eAAe,EAAE,CAAC;gCACpB,WAAW,CAAC,cAAc,CAAC;oCACzB,IAAI,EAAE,kBAAkB;oCACxB,QAAQ,EAAE,UAAU,CAAA,gBAAgB,mBAAmB,MAAM,KAAK,WAAW,mBAAmB,IAAI;iCACrG,CAAC,CAAC;4BACL,CAAC;4BACD,IAAI,eAAe,EAAE,CAAC;gCACpB,WAAW,CAAC,cAAc,CAAC;oCACzB,IAAI,EAAE,kBAAkB;oCACxB,QAAQ,EAAE,UAAU,CAAA,gBAAgB,mBAAmB,MAAM,KAAK,WAAW,mBAAmB,cAAc;iCAC/G,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;wBAED,oEAAoE;wBACpE,IAAI,mBAAmB,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACtD,MAAM,kBAAkB,GACtB,MAAM,CAAC,WAAW,CAChB,eAAe;iCACZ,MAAM,CACL,CACE,KAAK,EAKL,EAAE,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAC/B;iCACA,GAAG,CACF,CAAC,KAAK,EAAE,EAAE,CACR,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAU,CACpD,CACJ,CAAC;4BACJ,MAAM,kBAAkB,GACtB,WAAW,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;4BACzD,WAAW,CAAC,cAAc,CAAC;gCACzB,IAAI,EAAE,cAAc;gCACpB,QAAQ,EAAE,UAAU,CAAA,gBAAgB,mBAAmB,MAAM,kBAAkB,GAAG;6BACnF,CAAC,CAAC;wBACL,CAAC;wBAED,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;4BACxC,WAAW,CAAC,cAAc,CAAC;gCACzB,IAAI,EAAE,MAAM,CAAC,IAAI;gCACjB,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC;gCACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gCACzB,YAAY,EAAE,MAAM,CAAC,YAAY;6BAClC,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;iBACF,CAAC;YACJ,CAAC;SACF,CAAC;KACH,CAAC;CACH,CAAC,CAAC"}
@@ -1,5 +1,11 @@
1
1
  /**
2
2
  * Generator for prisma/prisma-data-update
3
+ *
4
+ * Generates an update function that:
5
+ * - Loads existing item (always, for authorization and/or transform fields)
6
+ * - Checks authorization (global and/or instance)
7
+ * - For scalar-only models: calls prisma.model.update directly
8
+ * - For models with transformers: uses prepareTransformers + executeTransformPlan
3
9
  */
4
10
  export declare const prismaDataUpdateGenerator: import("@baseplate-dev/sync").GeneratorBundleCreator<{
5
11
  name: string;
@@ -12,92 +18,74 @@ export declare const prismaDataUpdateGenerator: import("@baseplate-dev/sync").Ge
12
18
  serviceFile: import("@baseplate-dev/sync").ProviderType<import("#src/generators/core/index.js").ServiceFileProvider>;
13
19
  prismaDataService: import("@baseplate-dev/sync").ProviderType<import("../prisma-data-service/prisma-data-service.generator.js").PrismaDataServiceProvider>;
14
20
  dataUtilsImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
15
- AnyFieldDefinition: {
21
+ AfterExecuteHook: {
16
22
  isTypeOnly: true;
17
23
  };
18
- AnyOperationHooks: {
24
+ AnyBoundTransformer: {
19
25
  isTypeOnly: true;
20
26
  };
21
- commitCreate: {};
22
- commitDelete: {};
23
- commitUpdate: {};
24
- composeCreate: {};
25
- composeUpdate: {};
26
- createParentModelConfig: {};
27
- DataCreateInput: {
27
+ AnyTransformer: {
28
28
  isTypeOnly: true;
29
29
  };
30
- DataDeleteInput: {
30
+ BoundTransformer: {
31
31
  isTypeOnly: true;
32
32
  };
33
- DataOperationType: {
33
+ DataQuery: {
34
34
  isTypeOnly: true;
35
35
  };
36
- DataUpdateInput: {
36
+ defineTransformer: {};
37
+ executeTransformPlan: {};
38
+ GetResult: {
37
39
  isTypeOnly: true;
38
40
  };
39
- FieldContext: {
41
+ InferTransformed: {
40
42
  isTypeOnly: true;
41
43
  };
42
- FieldDefinition: {
43
- isTypeOnly: true;
44
- };
45
- FieldTransformData: {
46
- isTypeOnly: true;
47
- };
48
- FieldTransformResult: {
49
- isTypeOnly: true;
50
- };
51
- generateCreateSchema: {};
52
- generateUpdateSchema: {};
53
- GetPayload: {
54
- isTypeOnly: true;
55
- };
56
- InferFieldsOutput: {
57
- isTypeOnly: true;
58
- };
59
- InferInput: {
60
- isTypeOnly: true;
61
- };
62
- ModelInclude: {
44
+ MaybePromise: {
63
45
  isTypeOnly: true;
64
46
  };
65
47
  ModelPropName: {
66
48
  isTypeOnly: true;
67
49
  };
68
- nestedOneToManyField: {};
69
- NestedOneToManyFieldConfig: {
70
- isTypeOnly: true;
71
- };
72
- nestedOneToOneField: {};
73
- NestedOneToOneFieldConfig: {
50
+ oneToManyTransformer: {};
51
+ oneToOneTransformer: {};
52
+ prepareTransformers: {};
53
+ relationHelpers: {};
54
+ Transformer: {
74
55
  isTypeOnly: true;
75
56
  };
76
- OperationContext: {
57
+ TransformerResult: {
77
58
  isTypeOnly: true;
78
59
  };
79
- OperationHooks: {
60
+ TransformPlan: {
80
61
  isTypeOnly: true;
81
62
  };
82
- ParentModelConfig: {
63
+ WhereInput: {
83
64
  isTypeOnly: true;
84
65
  };
85
- relationHelpers: {};
86
- scalarField: {};
87
- TransactionalOperationContext: {
66
+ }>>;
67
+ prismaOutput: import("@baseplate-dev/sync").ProviderType<import("../prisma/prisma.generator.js").PrismaOutputProvider>;
68
+ prismaImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
69
+ prisma: {};
70
+ }>>;
71
+ authorizerImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
72
+ checkGlobalAuthorization: {};
73
+ checkInstanceAuthorization: {};
74
+ GlobalRoleCheck: {
88
75
  isTypeOnly: true;
89
76
  };
90
- WhereInput: {
77
+ InstanceRoleCheck: {
91
78
  isTypeOnly: true;
92
79
  };
93
- WhereUniqueInput: {
80
+ }>>;
81
+ serviceContextImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
82
+ createServiceContext: {};
83
+ createSystemServiceContext: {};
84
+ createTestServiceContext: {};
85
+ ServiceContext: {
94
86
  isTypeOnly: true;
95
87
  };
96
88
  }>>;
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
89
  modelAuthorizer: import("@baseplate-dev/sync").ProviderDependency<import("../prisma-model-authorizer/prisma-model-authorizer.generator.js").PrismaModelAuthorizerProvider | undefined>;
102
90
  }, any>;
103
91
  }>;
@@ -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":"AA6CA;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiKpC,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":"AAyCA;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqNpC,CAAC"}