@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.
- package/CHANGELOG.md +70 -0
- package/dist/constants/fastify-packages.d.ts +14 -14
- package/dist/constants/fastify-packages.js +14 -14
- package/dist/constants/fastify-packages.js.map +1 -1
- package/dist/generators/auth/auth-context/templates/module/types/auth-context.types.ts +1 -0
- package/dist/generators/auth/auth-context/templates/module/utils/auth-context.utils.ts +3 -1
- package/dist/generators/core/fastify/fastify.generator.d.ts.map +1 -1
- package/dist/generators/core/fastify/fastify.generator.js +3 -1
- package/dist/generators/core/fastify/fastify.generator.js.map +1 -1
- package/dist/generators/pothos/index.d.ts +1 -0
- package/dist/generators/pothos/index.d.ts.map +1 -1
- package/dist/generators/pothos/index.js +1 -0
- package/dist/generators/pothos/index.js.map +1 -1
- package/dist/generators/pothos/pothos-auth/pothos-auth.generator.d.ts +5 -0
- package/dist/generators/pothos/pothos-auth/pothos-auth.generator.d.ts.map +1 -1
- package/dist/generators/pothos/pothos-auth/pothos-auth.generator.js +8 -0
- package/dist/generators/pothos/pothos-auth/pothos-auth.generator.js.map +1 -1
- package/dist/generators/pothos/pothos-prisma-count-query/index.d.ts +2 -0
- package/dist/generators/pothos/pothos-prisma-count-query/index.d.ts.map +1 -0
- package/dist/generators/pothos/pothos-prisma-count-query/index.js +2 -0
- package/dist/generators/pothos/pothos-prisma-count-query/index.js.map +1 -0
- package/dist/generators/pothos/pothos-prisma-count-query/pothos-prisma-count-query.generator.d.ts +16 -0
- package/dist/generators/pothos/pothos-prisma-count-query/pothos-prisma-count-query.generator.d.ts.map +1 -0
- package/dist/generators/pothos/pothos-prisma-count-query/pothos-prisma-count-query.generator.js +104 -0
- package/dist/generators/pothos/pothos-prisma-count-query/pothos-prisma-count-query.generator.js.map +1 -0
- package/dist/generators/pothos/pothos-prisma-crud-mutation/pothos-prisma-crud-mutation.generator.d.ts.map +1 -1
- package/dist/generators/pothos/pothos-prisma-crud-mutation/pothos-prisma-crud-mutation.generator.js +2 -5
- package/dist/generators/pothos/pothos-prisma-crud-mutation/pothos-prisma-crud-mutation.generator.js.map +1 -1
- package/dist/generators/pothos/pothos-prisma-find-query/pothos-prisma-find-query.generator.d.ts +4 -0
- package/dist/generators/pothos/pothos-prisma-find-query/pothos-prisma-find-query.generator.d.ts.map +1 -1
- package/dist/generators/pothos/pothos-prisma-find-query/pothos-prisma-find-query.generator.js +52 -10
- package/dist/generators/pothos/pothos-prisma-find-query/pothos-prisma-find-query.generator.js.map +1 -1
- package/dist/generators/pothos/pothos-prisma-list-query/pothos-prisma-list-query.generator.d.ts +4 -0
- package/dist/generators/pothos/pothos-prisma-list-query/pothos-prisma-list-query.generator.d.ts.map +1 -1
- package/dist/generators/pothos/pothos-prisma-list-query/pothos-prisma-list-query.generator.js +39 -3
- package/dist/generators/pothos/pothos-prisma-list-query/pothos-prisma-list-query.generator.js.map +1 -1
- package/dist/generators/pothos/pothos-prisma-object/pothos-prisma-object.generator.d.ts +7 -1
- package/dist/generators/pothos/pothos-prisma-object/pothos-prisma-object.generator.d.ts.map +1 -1
- package/dist/generators/pothos/pothos-prisma-object/pothos-prisma-object.generator.js +73 -13
- package/dist/generators/pothos/pothos-prisma-object/pothos-prisma-object.generator.js.map +1 -1
- package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.d.ts +20 -0
- package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.d.ts.map +1 -0
- package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.js +28 -0
- package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.js.map +1 -0
- package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.d.ts +48 -55
- package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.d.ts.map +1 -1
- package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.js +130 -67
- package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.js.map +1 -1
- package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.d.ts +2 -0
- package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.d.ts.map +1 -1
- package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.js +3 -3
- package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.js.map +1 -1
- package/dist/generators/prisma/_shared/build-data-helpers/index.d.ts +1 -0
- package/dist/generators/prisma/_shared/build-data-helpers/index.d.ts.map +1 -1
- package/dist/generators/prisma/_shared/build-data-helpers/index.js +1 -0
- package/dist/generators/prisma/_shared/build-data-helpers/index.js.map +1 -1
- package/dist/generators/prisma/data-utils/data-utils.generator.d.ts +25 -6
- package/dist/generators/prisma/data-utils/data-utils.generator.d.ts.map +1 -1
- package/dist/generators/prisma/data-utils/generated/index.d.ts +78 -23
- package/dist/generators/prisma/data-utils/generated/index.d.ts.map +1 -1
- package/dist/generators/prisma/data-utils/generated/template-paths.d.ts +3 -1
- package/dist/generators/prisma/data-utils/generated/template-paths.d.ts.map +1 -1
- package/dist/generators/prisma/data-utils/generated/template-paths.js +3 -1
- package/dist/generators/prisma/data-utils/generated/template-paths.js.map +1 -1
- package/dist/generators/prisma/data-utils/generated/ts-import-providers.d.ts +75 -18
- package/dist/generators/prisma/data-utils/generated/ts-import-providers.d.ts.map +1 -1
- package/dist/generators/prisma/data-utils/generated/ts-import-providers.js +26 -8
- package/dist/generators/prisma/data-utils/generated/ts-import-providers.js.map +1 -1
- package/dist/generators/prisma/data-utils/generated/typed-templates.d.ts +106 -34
- package/dist/generators/prisma/data-utils/generated/typed-templates.d.ts.map +1 -1
- package/dist/generators/prisma/data-utils/generated/typed-templates.js +61 -14
- package/dist/generators/prisma/data-utils/generated/typed-templates.js.map +1 -1
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/commit-operations.ts +366 -0
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/compose-operations.ts +131 -0
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/field-definitions.ts +26 -30
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/field-utils.ts +201 -0
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/prisma-types.ts +24 -20
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/prisma-utils.ts +14 -6
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/relation-helpers.ts +21 -26
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/types.ts +374 -25
- package/dist/generators/prisma/index.d.ts +2 -0
- package/dist/generators/prisma/index.d.ts.map +1 -1
- package/dist/generators/prisma/index.js +2 -0
- package/dist/generators/prisma/index.js.map +1 -1
- package/dist/generators/prisma/prisma-authorizer-utils/generated/index.d.ts +50 -12
- package/dist/generators/prisma/prisma-authorizer-utils/generated/index.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-authorizer-utils/generated/template-renderers.d.ts +25 -6
- package/dist/generators/prisma/prisma-authorizer-utils/generated/template-renderers.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-authorizer-utils/generated/typed-templates.d.ts +50 -12
- package/dist/generators/prisma/prisma-authorizer-utils/generated/typed-templates.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-authorizer-utils/prisma-authorizer-utils.generator.d.ts +25 -6
- package/dist/generators/prisma/prisma-authorizer-utils/prisma-authorizer-utils.generator.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.d.ts +26 -6
- package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.js +53 -25
- package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.js.map +1 -1
- package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.d.ts +31 -6
- package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.js +52 -15
- package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.js.map +1 -1
- package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.d.ts +25 -6
- package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.d.ts +25 -6
- package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.d.ts +31 -6
- package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.js +65 -23
- package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.js.map +1 -1
- package/dist/generators/prisma/prisma-model-authorizer/prisma-model-authorizer.generator.d.ts +2 -0
- package/dist/generators/prisma/prisma-model-authorizer/prisma-model-authorizer.generator.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-model-authorizer/prisma-model-authorizer.generator.js +86 -53
- package/dist/generators/prisma/prisma-model-authorizer/prisma-model-authorizer.generator.js.map +1 -1
- package/dist/generators/prisma/prisma-model-query-filter/index.d.ts +2 -0
- package/dist/generators/prisma/prisma-model-query-filter/index.d.ts.map +1 -0
- package/dist/generators/prisma/prisma-model-query-filter/index.js +2 -0
- package/dist/generators/prisma/prisma-model-query-filter/index.js.map +1 -0
- package/dist/generators/prisma/prisma-model-query-filter/prisma-model-query-filter.generator.d.ts +60 -0
- package/dist/generators/prisma/prisma-model-query-filter/prisma-model-query-filter.generator.d.ts.map +1 -0
- package/dist/generators/prisma/prisma-model-query-filter/prisma-model-query-filter.generator.js +124 -0
- package/dist/generators/prisma/prisma-model-query-filter/prisma-model-query-filter.generator.js.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/index.d.ts +364 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/index.d.ts.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/index.js +13 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/index.js.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/template-paths.d.ts +13 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/template-paths.d.ts.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/template-paths.js +25 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/template-paths.js.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/template-renderers.d.ts +131 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/template-renderers.d.ts.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/template-renderers.js +49 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/template-renderers.js.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/ts-import-providers.d.ts +66 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/ts-import-providers.d.ts.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/ts-import-providers.js +40 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/ts-import-providers.js.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/typed-templates.d.ts +411 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/typed-templates.d.ts.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/typed-templates.js +46 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/typed-templates.js.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/index.d.ts +4 -0
- package/dist/generators/prisma/prisma-query-filter-utils/index.d.ts.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/index.js +3 -0
- package/dist/generators/prisma/prisma-query-filter-utils/index.js.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/prisma-query-filter-utils.generator.d.ts +156 -0
- package/dist/generators/prisma/prisma-query-filter-utils/prisma-query-filter-utils.generator.d.ts.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/prisma-query-filter-utils.generator.js +32 -0
- package/dist/generators/prisma/prisma-query-filter-utils/prisma-query-filter-utils.generator.js.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/templates/src/utils/query-filters.ts +209 -0
- package/dist/generators/prisma/prisma-query-filter-utils/templates/src/utils/query-helpers.ts +70 -0
- package/dist/generators/vitest/prisma-vitest/generated/index.d.ts +0 -6
- package/dist/generators/vitest/prisma-vitest/generated/index.d.ts.map +1 -1
- package/dist/generators/vitest/prisma-vitest/generated/template-renderers.d.ts.map +1 -1
- package/dist/generators/vitest/prisma-vitest/generated/template-renderers.js +0 -1
- package/dist/generators/vitest/prisma-vitest/generated/template-renderers.js.map +1 -1
- package/dist/generators/vitest/prisma-vitest/generated/typed-templates.d.ts +0 -6
- package/dist/generators/vitest/prisma-vitest/generated/typed-templates.d.ts.map +1 -1
- package/dist/generators/vitest/prisma-vitest/generated/typed-templates.js +1 -4
- package/dist/generators/vitest/prisma-vitest/generated/typed-templates.js.map +1 -1
- package/dist/generators/vitest/prisma-vitest/templates/src/tests/helpers/prisma.test-helper.ts +2 -10
- package/dist/types/service-dto-kinds.d.ts +0 -6
- package/dist/types/service-dto-kinds.d.ts.map +1 -1
- package/dist/types/service-dto-kinds.js +0 -6
- package/dist/types/service-dto-kinds.js.map +1 -1
- package/dist/writers/pothos/helpers.d.ts +1 -0
- package/dist/writers/pothos/helpers.d.ts.map +1 -1
- package/dist/writers/pothos/helpers.js +1 -0
- package/dist/writers/pothos/helpers.js.map +1 -1
- package/dist/writers/pothos/scalar-fields.d.ts +3 -1
- package/dist/writers/pothos/scalar-fields.d.ts.map +1 -1
- package/dist/writers/pothos/scalar-fields.js +1 -0
- package/dist/writers/pothos/scalar-fields.js.map +1 -1
- package/dist/writers/prisma-schema/fields.d.ts +1 -1
- package/dist/writers/prisma-schema/fields.js +2 -2
- package/dist/writers/prisma-schema/fields.js.map +1 -1
- package/package.json +8 -8
- 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,
|
|
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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"}
|
package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.d.ts
CHANGED
|
@@ -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
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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: {};
|
package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.d.ts.map
CHANGED
|
@@ -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
|
|
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
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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":"
|
|
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,
|
|
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 {
|
|
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 {
|
|
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
|
|
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
|
|
46
|
-
const {
|
|
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:
|
|
62
|
+
modelVariableName: modelVar,
|
|
51
63
|
});
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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:
|
|
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:
|
|
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,
|
|
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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"}
|
package/dist/generators/prisma/prisma-model-authorizer/prisma-model-authorizer.generator.d.ts
CHANGED
|
@@ -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>;
|
package/dist/generators/prisma/prisma-model-authorizer/prisma-model-authorizer.generator.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const
|
|
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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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
|