@baseplate-dev/fastify-generators 0.4.2 → 0.4.3

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 (136) hide show
  1. package/dist/generators/auth/_providers/authorizer-utils-imports.d.ts +23 -0
  2. package/dist/generators/auth/_providers/authorizer-utils-imports.d.ts.map +1 -0
  3. package/dist/generators/auth/_providers/authorizer-utils-imports.js +10 -0
  4. package/dist/generators/auth/_providers/authorizer-utils-imports.js.map +1 -0
  5. package/dist/generators/auth/_providers/index.d.ts +1 -0
  6. package/dist/generators/auth/_providers/index.d.ts.map +1 -1
  7. package/dist/generators/auth/_providers/index.js +1 -0
  8. package/dist/generators/auth/_providers/index.js.map +1 -1
  9. package/dist/generators/auth/authorizer-utils-stub/authorizer-utils-stub.generator.d.ts +54 -0
  10. package/dist/generators/auth/authorizer-utils-stub/authorizer-utils-stub.generator.d.ts.map +1 -0
  11. package/dist/generators/auth/authorizer-utils-stub/authorizer-utils-stub.generator.js +34 -0
  12. package/dist/generators/auth/authorizer-utils-stub/authorizer-utils-stub.generator.js.map +1 -0
  13. package/dist/generators/auth/authorizer-utils-stub/generated/index.d.ts +78 -0
  14. package/dist/generators/auth/authorizer-utils-stub/generated/index.d.ts.map +1 -0
  15. package/dist/generators/auth/authorizer-utils-stub/generated/index.js +11 -0
  16. package/dist/generators/auth/authorizer-utils-stub/generated/index.js.map +1 -0
  17. package/dist/generators/auth/authorizer-utils-stub/generated/template-paths.d.ts +12 -0
  18. package/dist/generators/auth/authorizer-utils-stub/generated/template-paths.d.ts.map +1 -0
  19. package/dist/generators/auth/authorizer-utils-stub/generated/template-paths.js +24 -0
  20. package/dist/generators/auth/authorizer-utils-stub/generated/template-paths.js.map +1 -0
  21. package/dist/generators/auth/authorizer-utils-stub/generated/template-renderers.d.ts +36 -0
  22. package/dist/generators/auth/authorizer-utils-stub/generated/template-renderers.d.ts.map +1 -0
  23. package/dist/generators/auth/authorizer-utils-stub/generated/template-renderers.js +42 -0
  24. package/dist/generators/auth/authorizer-utils-stub/generated/template-renderers.js.map +1 -0
  25. package/dist/generators/auth/authorizer-utils-stub/generated/ts-import-providers.d.ts +17 -0
  26. package/dist/generators/auth/authorizer-utils-stub/generated/ts-import-providers.d.ts.map +1 -0
  27. package/dist/generators/auth/authorizer-utils-stub/generated/ts-import-providers.js +28 -0
  28. package/dist/generators/auth/authorizer-utils-stub/generated/ts-import-providers.js.map +1 -0
  29. package/dist/generators/auth/authorizer-utils-stub/generated/typed-templates.d.ts +47 -0
  30. package/dist/generators/auth/authorizer-utils-stub/generated/typed-templates.d.ts.map +1 -0
  31. package/dist/generators/auth/authorizer-utils-stub/generated/typed-templates.js +26 -0
  32. package/dist/generators/auth/authorizer-utils-stub/generated/typed-templates.js.map +1 -0
  33. package/dist/generators/auth/authorizer-utils-stub/index.d.ts +2 -0
  34. package/dist/generators/auth/authorizer-utils-stub/index.d.ts.map +1 -0
  35. package/dist/generators/auth/authorizer-utils-stub/index.js +2 -0
  36. package/dist/generators/auth/authorizer-utils-stub/index.js.map +1 -0
  37. package/dist/generators/auth/authorizer-utils-stub/templates/src/utils/authorizers.ts +58 -0
  38. package/dist/generators/auth/index.d.ts +1 -0
  39. package/dist/generators/auth/index.d.ts.map +1 -1
  40. package/dist/generators/auth/index.js +1 -0
  41. package/dist/generators/auth/index.js.map +1 -1
  42. package/dist/generators/core/fastify/fastify.generator.js +1 -1
  43. package/dist/generators/core/fastify/fastify.generator.js.map +1 -1
  44. package/dist/generators/pothos/pothos-auth/generated/index.d.ts +46 -19
  45. package/dist/generators/pothos/pothos-auth/generated/index.d.ts.map +1 -1
  46. package/dist/generators/pothos/pothos-auth/generated/template-renderers.d.ts +17 -9
  47. package/dist/generators/pothos/pothos-auth/generated/template-renderers.d.ts.map +1 -1
  48. package/dist/generators/pothos/pothos-auth/generated/template-renderers.js +7 -4
  49. package/dist/generators/pothos/pothos-auth/generated/template-renderers.js.map +1 -1
  50. package/dist/generators/pothos/pothos-auth/generated/typed-templates.d.ts +58 -20
  51. package/dist/generators/pothos/pothos-auth/generated/typed-templates.d.ts.map +1 -1
  52. package/dist/generators/pothos/pothos-auth/generated/typed-templates.js +7 -3
  53. package/dist/generators/pothos/pothos-auth/generated/typed-templates.js.map +1 -1
  54. package/dist/generators/pothos/pothos-auth/pothos-auth.generator.d.ts +17 -20
  55. package/dist/generators/pothos/pothos-auth/pothos-auth.generator.d.ts.map +1 -1
  56. package/dist/generators/pothos/pothos-auth/pothos-auth.generator.js +1 -5
  57. package/dist/generators/pothos/pothos-auth/pothos-auth.generator.js.map +1 -1
  58. package/dist/generators/pothos/pothos-auth/templates/src/plugins/graphql/FieldAuthorizePlugin/global-types.ts +2 -17
  59. package/dist/generators/pothos/pothos-auth/templates/src/plugins/graphql/FieldAuthorizePlugin/index.ts +9 -56
  60. package/dist/generators/pothos/pothos-auth/templates/src/plugins/graphql/FieldAuthorizePlugin/types.ts +28 -25
  61. package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.d.ts +29 -16
  62. package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.d.ts.map +1 -1
  63. package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.js +51 -28
  64. package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.js.map +1 -1
  65. package/dist/generators/prisma/data-utils/data-utils.generator.d.ts +16 -0
  66. package/dist/generators/prisma/data-utils/data-utils.generator.d.ts.map +1 -1
  67. package/dist/generators/prisma/data-utils/generated/index.d.ts +26 -0
  68. package/dist/generators/prisma/data-utils/generated/index.d.ts.map +1 -1
  69. package/dist/generators/prisma/data-utils/generated/template-renderers.d.ts +10 -0
  70. package/dist/generators/prisma/data-utils/generated/template-renderers.d.ts.map +1 -1
  71. package/dist/generators/prisma/data-utils/generated/template-renderers.js +4 -1
  72. package/dist/generators/prisma/data-utils/generated/template-renderers.js.map +1 -1
  73. package/dist/generators/prisma/data-utils/generated/ts-import-providers.d.ts +18 -0
  74. package/dist/generators/prisma/data-utils/generated/ts-import-providers.d.ts.map +1 -1
  75. package/dist/generators/prisma/data-utils/generated/ts-import-providers.js +4 -0
  76. package/dist/generators/prisma/data-utils/generated/ts-import-providers.js.map +1 -1
  77. package/dist/generators/prisma/data-utils/generated/typed-templates.d.ts +20 -0
  78. package/dist/generators/prisma/data-utils/generated/typed-templates.d.ts.map +1 -1
  79. package/dist/generators/prisma/data-utils/generated/typed-templates.js +6 -0
  80. package/dist/generators/prisma/data-utils/generated/typed-templates.js.map +1 -1
  81. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/define-operations.ts +55 -25
  82. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/field-definitions.ts +20 -3
  83. package/dist/generators/prisma/index.d.ts +1 -0
  84. package/dist/generators/prisma/index.d.ts.map +1 -1
  85. package/dist/generators/prisma/index.js +1 -0
  86. package/dist/generators/prisma/index.js.map +1 -1
  87. package/dist/generators/prisma/prisma/prisma.generator.d.ts +1 -1
  88. package/dist/generators/prisma/prisma/prisma.generator.d.ts.map +1 -1
  89. package/dist/generators/prisma/prisma/prisma.generator.js +1 -0
  90. package/dist/generators/prisma/prisma/prisma.generator.js.map +1 -1
  91. package/dist/generators/prisma/prisma/templates/package/prisma.config.ts +4 -3
  92. package/dist/generators/prisma/prisma-authorizer-utils/generated/index.d.ts +237 -0
  93. package/dist/generators/prisma/prisma-authorizer-utils/generated/index.d.ts.map +1 -0
  94. package/dist/generators/prisma/prisma-authorizer-utils/generated/index.js +11 -0
  95. package/dist/generators/prisma/prisma-authorizer-utils/generated/index.js.map +1 -0
  96. package/dist/generators/prisma/prisma-authorizer-utils/generated/template-paths.d.ts +12 -0
  97. package/dist/generators/prisma/prisma-authorizer-utils/generated/template-paths.d.ts.map +1 -0
  98. package/dist/generators/prisma/prisma-authorizer-utils/generated/template-paths.js +24 -0
  99. package/dist/generators/prisma/prisma-authorizer-utils/generated/template-paths.js.map +1 -0
  100. package/dist/generators/prisma/prisma-authorizer-utils/generated/template-renderers.d.ts +111 -0
  101. package/dist/generators/prisma/prisma-authorizer-utils/generated/template-renderers.d.ts.map +1 -0
  102. package/dist/generators/prisma/prisma-authorizer-utils/generated/template-renderers.js +48 -0
  103. package/dist/generators/prisma/prisma-authorizer-utils/generated/template-renderers.js.map +1 -0
  104. package/dist/generators/prisma/prisma-authorizer-utils/generated/ts-import-providers.d.ts +46 -0
  105. package/dist/generators/prisma/prisma-authorizer-utils/generated/ts-import-providers.d.ts.map +1 -0
  106. package/dist/generators/prisma/prisma-authorizer-utils/generated/ts-import-providers.js +40 -0
  107. package/dist/generators/prisma/prisma-authorizer-utils/generated/ts-import-providers.js.map +1 -0
  108. package/dist/generators/prisma/prisma-authorizer-utils/generated/typed-templates.d.ts +197 -0
  109. package/dist/generators/prisma/prisma-authorizer-utils/generated/typed-templates.d.ts.map +1 -0
  110. package/dist/generators/prisma/prisma-authorizer-utils/generated/typed-templates.js +33 -0
  111. package/dist/generators/prisma/prisma-authorizer-utils/generated/typed-templates.js.map +1 -0
  112. package/dist/generators/prisma/prisma-authorizer-utils/index.d.ts +4 -0
  113. package/dist/generators/prisma/prisma-authorizer-utils/index.d.ts.map +1 -0
  114. package/dist/generators/prisma/prisma-authorizer-utils/index.js +3 -0
  115. package/dist/generators/prisma/prisma-authorizer-utils/index.js.map +1 -0
  116. package/dist/generators/prisma/prisma-authorizer-utils/prisma-authorizer-utils.generator.d.ts +141 -0
  117. package/dist/generators/prisma/prisma-authorizer-utils/prisma-authorizer-utils.generator.d.ts.map +1 -0
  118. package/dist/generators/prisma/prisma-authorizer-utils/prisma-authorizer-utils.generator.js +49 -0
  119. package/dist/generators/prisma/prisma-authorizer-utils/prisma-authorizer-utils.generator.js.map +1 -0
  120. package/dist/generators/prisma/prisma-authorizer-utils/templates/src/utils/authorizers.ts +302 -0
  121. package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.d.ts +6 -0
  122. package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.d.ts.map +1 -1
  123. package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.d.ts +6 -0
  124. package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.d.ts.map +1 -1
  125. package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.d.ts +6 -0
  126. package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.d.ts.map +1 -1
  127. package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.d.ts +6 -0
  128. package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.d.ts.map +1 -1
  129. package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.d.ts +6 -0
  130. package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.d.ts.map +1 -1
  131. package/dist/generators/vitest/fastify-vitest/fastify-vitest.generator.d.ts +9 -0
  132. package/dist/generators/vitest/fastify-vitest/fastify-vitest.generator.d.ts.map +1 -1
  133. package/dist/generators/vitest/fastify-vitest/fastify-vitest.generator.js +10 -3
  134. package/dist/generators/vitest/fastify-vitest/fastify-vitest.generator.js.map +1 -1
  135. package/dist/generators/vitest/prisma-vitest/templates/src/tests/scripts/global-setup-prisma.ts +8 -6
  136. package/package.json +5 -5
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Generator for prisma/prisma-authorizer-utils
3
+ */
4
+ export declare const prismaAuthorizerUtilsGenerator: import("@baseplate-dev/sync").GeneratorBundleCreator<Record<string, never>, {
5
+ paths: import("@baseplate-dev/sync").GeneratorTask<{
6
+ prismaPrismaAuthorizerUtilsPaths: import("@baseplate-dev/sync").ProviderExport<import("./generated/template-paths.js").PrismaPrismaAuthorizerUtilsPaths>;
7
+ }, {
8
+ packageInfo: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").PackageInfoProvider>;
9
+ }, undefined>;
10
+ imports: import("@baseplate-dev/sync").GeneratorTask<{
11
+ authorizerUtilsImports: import("@baseplate-dev/sync").ProviderExport<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
12
+ checkGlobalAuthorization: {};
13
+ checkInstanceAuthorization: {};
14
+ GlobalRoleCheck: {
15
+ isTypeOnly: true;
16
+ };
17
+ InstanceRoleCheck: {
18
+ isTypeOnly: true;
19
+ };
20
+ }>>;
21
+ prismaAuthorizerUtilsImports: import("@baseplate-dev/sync").ProviderExport<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
22
+ createModelAuthorizer: {};
23
+ ModelAuthorizer: {
24
+ isTypeOnly: true;
25
+ };
26
+ ModelAuthorizerConfig: {
27
+ isTypeOnly: true;
28
+ };
29
+ }>>;
30
+ }, {
31
+ paths: import("@baseplate-dev/sync").ProviderType<import("./generated/template-paths.js").PrismaPrismaAuthorizerUtilsPaths>;
32
+ }, undefined>;
33
+ renderers: import("@baseplate-dev/sync").GeneratorTask<{
34
+ prismaPrismaAuthorizerUtilsRenderers: import("@baseplate-dev/sync").ProviderExport<import("./generated/template-renderers.js").PrismaPrismaAuthorizerUtilsRenderers>;
35
+ }, {
36
+ authRolesImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
37
+ AUTH_ROLE_CONFIG: {};
38
+ AuthRole: {
39
+ isTypeOnly: true;
40
+ };
41
+ DEFAULT_PUBLIC_ROLES: {};
42
+ DEFAULT_USER_ROLES: {};
43
+ RoleConfig: {
44
+ isTypeOnly: true;
45
+ };
46
+ }>>;
47
+ dataUtilsImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
48
+ AnyFieldDefinition: {
49
+ isTypeOnly: true;
50
+ };
51
+ AnyOperationHooks: {
52
+ isTypeOnly: true;
53
+ };
54
+ createParentModelConfig: {};
55
+ DataOperationType: {
56
+ isTypeOnly: true;
57
+ };
58
+ defineCreateOperation: {};
59
+ defineDeleteOperation: {};
60
+ defineUpdateOperation: {};
61
+ FieldContext: {
62
+ isTypeOnly: true;
63
+ };
64
+ FieldDefinition: {
65
+ isTypeOnly: true;
66
+ };
67
+ FieldTransformData: {
68
+ isTypeOnly: true;
69
+ };
70
+ FieldTransformResult: {
71
+ isTypeOnly: true;
72
+ };
73
+ GetPayload: {
74
+ isTypeOnly: true;
75
+ };
76
+ InferFieldsOutput: {
77
+ isTypeOnly: true;
78
+ };
79
+ InferInput: {
80
+ isTypeOnly: true;
81
+ };
82
+ ModelPropName: {
83
+ isTypeOnly: true;
84
+ };
85
+ nestedOneToManyField: {};
86
+ NestedOneToManyFieldConfig: {
87
+ isTypeOnly: true;
88
+ };
89
+ nestedOneToOneField: {};
90
+ NestedOneToOneFieldConfig: {
91
+ isTypeOnly: true;
92
+ };
93
+ OperationContext: {
94
+ isTypeOnly: true;
95
+ };
96
+ OperationHooks: {
97
+ isTypeOnly: true;
98
+ };
99
+ ParentModelConfig: {
100
+ isTypeOnly: true;
101
+ };
102
+ PrismaTransaction: {
103
+ isTypeOnly: true;
104
+ };
105
+ relationHelpers: {};
106
+ scalarField: {};
107
+ TransactionalOperationContext: {
108
+ isTypeOnly: true;
109
+ };
110
+ }>>;
111
+ errorHandlerServiceImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
112
+ BadRequestError: {};
113
+ ForbiddenError: {};
114
+ handleZodRequestValidationError: {};
115
+ HttpError: {};
116
+ InternalServerError: {};
117
+ logError: {};
118
+ NotFoundError: {};
119
+ UnauthorizedError: {};
120
+ }>>;
121
+ paths: import("@baseplate-dev/sync").ProviderType<import("./generated/template-paths.js").PrismaPrismaAuthorizerUtilsPaths>;
122
+ serviceContextImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
123
+ createServiceContext: {};
124
+ createSystemServiceContext: {};
125
+ createTestServiceContext: {};
126
+ ServiceContext: {
127
+ isTypeOnly: true;
128
+ };
129
+ }>>;
130
+ typescriptFile: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").TypescriptFileProvider>;
131
+ }, undefined>;
132
+ serviceContextConfig: import("@baseplate-dev/sync").GeneratorTask<any, {
133
+ serviceContextConfig: import("@baseplate-dev/sync").ProviderType<Omit<import("@baseplate-dev/utils").FieldMap<{
134
+ contextFields: import("@baseplate-dev/utils").MapContainer<string, import("#src/generators/core/service-context/index.js").ServiceContextField>;
135
+ }>, "getValues">>;
136
+ }, any>;
137
+ main: import("@baseplate-dev/sync").GeneratorTask<any, {
138
+ renderers: import("@baseplate-dev/sync").ProviderType<import("./generated/template-renderers.js").PrismaPrismaAuthorizerUtilsRenderers>;
139
+ }, any>;
140
+ }>;
141
+ //# sourceMappingURL=prisma-authorizer-utils.generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prisma-authorizer-utils.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-authorizer-utils/prisma-authorizer-utils.generator.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwCzC,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { tsCodeFragment } from '@baseplate-dev/core-generators';
2
+ import { createGenerator, createGeneratorTask } from '@baseplate-dev/sync';
3
+ import { z } from 'zod';
4
+ import { serviceContextConfigProvider } from '#src/generators/core/service-context/index.js';
5
+ import { PRISMA_PRISMA_AUTHORIZER_UTILS_GENERATED as GENERATED_TEMPLATES } from './generated/index.js';
6
+ const descriptorSchema = z.object({});
7
+ /**
8
+ * Generator for prisma/prisma-authorizer-utils
9
+ */
10
+ export const prismaAuthorizerUtilsGenerator = createGenerator({
11
+ name: 'prisma/prisma-authorizer-utils',
12
+ generatorFileUrl: import.meta.url,
13
+ descriptorSchema,
14
+ buildTasks: () => ({
15
+ paths: GENERATED_TEMPLATES.paths.task,
16
+ imports: GENERATED_TEMPLATES.imports.task,
17
+ renderers: GENERATED_TEMPLATES.renderers.task,
18
+ serviceContextConfig: createGeneratorTask({
19
+ dependencies: {
20
+ serviceContextConfig: serviceContextConfigProvider,
21
+ },
22
+ run({ serviceContextConfig }) {
23
+ serviceContextConfig.contextFields.set('authorizerCache', {
24
+ type: tsCodeFragment('Map<string, boolean>'),
25
+ setter: 'new Map<string, boolean>()',
26
+ });
27
+ serviceContextConfig.contextFields.set('authorizerModelCache', {
28
+ type: tsCodeFragment('Map<string, unknown>'),
29
+ setter: 'new Map<string, unknown>()',
30
+ });
31
+ },
32
+ }),
33
+ main: createGeneratorTask({
34
+ dependencies: {
35
+ renderers: GENERATED_TEMPLATES.renderers.provider,
36
+ },
37
+ run({ renderers }) {
38
+ return {
39
+ build: async (builder) => {
40
+ await builder.apply(renderers.mainGroup.render({
41
+ variables: {},
42
+ }));
43
+ },
44
+ };
45
+ },
46
+ }),
47
+ }),
48
+ });
49
+ //# sourceMappingURL=prisma-authorizer-utils.generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prisma-authorizer-utils.generator.js","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-authorizer-utils/prisma-authorizer-utils.generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAE7F,OAAO,EAAE,wCAAwC,IAAI,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEvG,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,eAAe,CAAC;IAC5D,IAAI,EAAE,gCAAgC;IACtC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;IACjC,gBAAgB;IAChB,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QACjB,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,IAAI;QACrC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,IAAI;QACzC,SAAS,EAAE,mBAAmB,CAAC,SAAS,CAAC,IAAI;QAC7C,oBAAoB,EAAE,mBAAmB,CAAC;YACxC,YAAY,EAAE;gBACZ,oBAAoB,EAAE,4BAA4B;aACnD;YACD,GAAG,CAAC,EAAE,oBAAoB,EAAE;gBAC1B,oBAAoB,CAAC,aAAa,CAAC,GAAG,CAAC,iBAAiB,EAAE;oBACxD,IAAI,EAAE,cAAc,CAAC,sBAAsB,CAAC;oBAC5C,MAAM,EAAE,4BAA4B;iBACrC,CAAC,CAAC;gBACH,oBAAoB,CAAC,aAAa,CAAC,GAAG,CAAC,sBAAsB,EAAE;oBAC7D,IAAI,EAAE,cAAc,CAAC,sBAAsB,CAAC;oBAC5C,MAAM,EAAE,4BAA4B;iBACrC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;QACF,IAAI,EAAE,mBAAmB,CAAC;YACxB,YAAY,EAAE;gBACZ,SAAS,EAAE,mBAAmB,CAAC,SAAS,CAAC,QAAQ;aAClD;YACD,GAAG,CAAC,EAAE,SAAS,EAAE;gBACf,OAAO;oBACL,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;wBACvB,MAAM,OAAO,CAAC,KAAK,CACjB,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC;4BACzB,SAAS,EAAE,EAAE;yBACd,CAAC,CACH,CAAC;oBACJ,CAAC;iBACF,CAAC;YACJ,CAAC;SACF,CAAC;KACH,CAAC;CACH,CAAC,CAAC"}
@@ -0,0 +1,302 @@
1
+ // @ts-nocheck
2
+
3
+ import type { AuthRole } from '%authRolesImports';
4
+ import type { GetPayload, ModelPropName } from '%dataUtilsImports';
5
+ import type { ServiceContext } from '%serviceContextImports';
6
+
7
+ import { ForbiddenError } from '%errorHandlerServiceImports';
8
+
9
+ // ============================================================================
10
+ // Role Check Types
11
+ // ============================================================================
12
+
13
+ /**
14
+ * Global role check - a string matching an AuthRole.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const adminCheck: GlobalRoleCheck = 'admin';
19
+ * ```
20
+ */
21
+ export type GlobalRoleCheck = AuthRole;
22
+
23
+ /**
24
+ * Instance role check - requires the model instance.
25
+ * Used for checking ownership or other instance-specific permissions.
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * const ownerCheck: InstanceRoleCheck<User> = (ctx, model) =>
30
+ * model.id === ctx.auth.userId;
31
+ * ```
32
+ */
33
+ export type InstanceRoleCheck<TInstance> = (
34
+ ctx: ServiceContext,
35
+ instance: TInstance,
36
+ ) => Promise<boolean> | boolean;
37
+
38
+ // ============================================================================
39
+ // Authorization Check Helpers
40
+ // ============================================================================
41
+
42
+ /**
43
+ * Checks if any global role check passes for the given context.
44
+ *
45
+ * @param ctx - Service context
46
+ * @param authorize - Array of role strings
47
+ * @throws {ForbiddenError} If no role check passes
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * checkGlobalAuthorization(ctx, ['admin', 'user']);
52
+ * ```
53
+ */
54
+ export function checkGlobalAuthorization(
55
+ ctx: ServiceContext,
56
+ authorize: AuthRole[],
57
+ ): void {
58
+ if (!ctx.auth.hasSomeRole(authorize)) {
59
+ throw new ForbiddenError('Forbidden');
60
+ }
61
+ }
62
+
63
+ /**
64
+ * Checks if any role check passes for the given context and instance.
65
+ * Global roles (strings) are checked first with hasSomeRole for efficiency.
66
+ * Instance checks (functions) are run sequentially with lazy instance loading.
67
+ *
68
+ * @param ctx - Service context
69
+ * @param instance - Instance to check against, or a function that loads it lazily
70
+ * @param authorize - Array of roles (string for global role or function for instance check)
71
+ * @throws {ForbiddenError} If no role check passes
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * // With direct instance
76
+ * await checkInstanceAuthorization(ctx, user, ['admin', userAuthorizer.roles.owner]);
77
+ *
78
+ * // With lazy loader (instance only loaded if needed)
79
+ * await checkInstanceAuthorization(ctx, () => loadUser(id), ['admin', userAuthorizer.roles.owner]);
80
+ * ```
81
+ */
82
+ export async function checkInstanceAuthorization<T>(
83
+ ctx: ServiceContext,
84
+ instance: T | (() => Promise<T>),
85
+ authorize: (InstanceRoleCheck<T> | AuthRole)[],
86
+ ): Promise<void> {
87
+ // Split into global roles (strings) and instance checks (functions)
88
+ const globalRoles = authorize.filter(
89
+ (check): check is AuthRole => typeof check === 'string',
90
+ );
91
+ const instanceChecks = authorize.filter(
92
+ (check): check is InstanceRoleCheck<T> => typeof check === 'function',
93
+ );
94
+
95
+ // Check global roles first (no instance needed)
96
+ if (globalRoles.length > 0 && ctx.auth.hasSomeRole(globalRoles)) {
97
+ return;
98
+ }
99
+
100
+ // Run instance checks sequentially with lazy loading
101
+ if (instanceChecks.length > 0) {
102
+ const resolvedInstance =
103
+ typeof instance === 'function'
104
+ ? await (instance as () => Promise<T>)()
105
+ : instance;
106
+
107
+ for (const check of instanceChecks) {
108
+ if (await check(ctx, resolvedInstance)) return;
109
+ }
110
+ }
111
+
112
+ throw new ForbiddenError('Forbidden');
113
+ }
114
+
115
+ // ============================================================================
116
+ // Model Authorizer
117
+ // ============================================================================
118
+
119
+ /**
120
+ * Configuration for creating a model authorizer.
121
+ */
122
+ export interface ModelAuthorizerConfig<
123
+ TModelName extends ModelPropName,
124
+ TRoles extends Record<string, InstanceRoleCheck<GetPayload<TModelName>>>,
125
+ > {
126
+ /** Prisma model name */
127
+ model: TModelName;
128
+
129
+ /** Field used as the primary key */
130
+ idField: keyof GetPayload<TModelName>;
131
+
132
+ /** Function to load model by ID */
133
+ getModelById: (id: string) => Promise<GetPayload<TModelName> | null>;
134
+
135
+ /** Role check functions - "who you are" relative to this resource */
136
+ roles: TRoles;
137
+ }
138
+
139
+ /**
140
+ * Model authorizer interface - a registry of role check functions.
141
+ */
142
+ export interface ModelAuthorizer<
143
+ TModelName extends ModelPropName,
144
+ TRoles extends Record<string, InstanceRoleCheck<GetPayload<TModelName>>>,
145
+ > {
146
+ /** The model name */
147
+ readonly model: TModelName;
148
+
149
+ /**
150
+ * Role check functions that can be used in authorize arrays.
151
+ * Each role is a pure function: (ctx, model) => boolean
152
+ *
153
+ * @example
154
+ * ```typescript
155
+ * authorize: ['admin', userAuthorizer.roles.owner]
156
+ * ```
157
+ */
158
+ readonly roles: Readonly<TRoles>;
159
+
160
+ /**
161
+ * Check if user has a specific role on a model.
162
+ * Results are cached per request.
163
+ */
164
+ hasRole(
165
+ ctx: ServiceContext,
166
+ model: GetPayload<TModelName>,
167
+ role: keyof TRoles,
168
+ ): Promise<boolean>;
169
+
170
+ /**
171
+ * Check if user has a specific role by model ID.
172
+ * Loads the model if not cached, then checks the role.
173
+ */
174
+ hasRoleById(
175
+ ctx: ServiceContext,
176
+ id: string,
177
+ role: keyof TRoles,
178
+ ): Promise<boolean>;
179
+ }
180
+
181
+ /**
182
+ * Creates a model authorizer - a registry of role check functions.
183
+ *
184
+ * @example
185
+ * ```typescript
186
+ * const userAuthorizer = createModelAuthorizer({
187
+ * model: 'user',
188
+ * idField: 'id',
189
+ * getModelById: (id) => prisma.user.findUnique({ where: { id } }),
190
+ * roles: {
191
+ * owner: (ctx, model) => model.id === ctx.auth.userId,
192
+ * viewer: (ctx) => ctx.auth.hasRole('user'),
193
+ * },
194
+ * });
195
+ *
196
+ * // Use in authorize arrays
197
+ * authorize: ['admin', userAuthorizer.roles.owner]
198
+ * ```
199
+ */
200
+ export function createModelAuthorizer<
201
+ TModelName extends ModelPropName,
202
+ TRoles extends Record<string, InstanceRoleCheck<GetPayload<TModelName>>>,
203
+ >(
204
+ config: ModelAuthorizerConfig<TModelName, TRoles>,
205
+ ): ModelAuthorizer<TModelName, TRoles> {
206
+ function getRoleCacheKey(id: string | number, role: keyof TRoles): string {
207
+ return `authz:${config.model}:role:${String(role)}:${String(id)}`;
208
+ }
209
+
210
+ function getModelCacheKey(id: string): string {
211
+ return `authz:${config.model}:model:${id}`;
212
+ }
213
+
214
+ function getIdFromModel(model: GetPayload<TModelName>): string | number {
215
+ const id = model[config.idField];
216
+ if (typeof id !== 'string' && typeof id !== 'number') {
217
+ throw new TypeError(
218
+ `Model ${config.model} id field ${String(config.idField)} is not a string or number`,
219
+ );
220
+ }
221
+ return id;
222
+ }
223
+
224
+ function getRoleCheck(
225
+ role: keyof TRoles,
226
+ ): InstanceRoleCheck<GetPayload<TModelName>> {
227
+ if (!(role in config.roles)) {
228
+ throw new Error(`Role ${String(role)} not found`);
229
+ }
230
+ return config.roles[role];
231
+ }
232
+
233
+ // -------------------------------------------------------------------------
234
+ // Role check implementations
235
+ // -------------------------------------------------------------------------
236
+
237
+ async function hasRoleWithModel(
238
+ ctx: ServiceContext,
239
+ model: GetPayload<TModelName>,
240
+ role: keyof TRoles,
241
+ ): Promise<boolean> {
242
+ const id = getIdFromModel(model);
243
+ const cacheKey = getRoleCacheKey(id, role);
244
+
245
+ // Check cache first
246
+ const cached = ctx.authorizerCache.get(cacheKey);
247
+ if (cached !== undefined) {
248
+ return cached;
249
+ }
250
+
251
+ // Run role check
252
+ const roleCheck = getRoleCheck(role);
253
+ const result = await Promise.resolve(roleCheck(ctx, model));
254
+
255
+ // Cache and return
256
+ ctx.authorizerCache.set(cacheKey, result);
257
+ return result;
258
+ }
259
+
260
+ async function hasRoleByIdInternal(
261
+ ctx: ServiceContext,
262
+ id: string,
263
+ role: keyof TRoles,
264
+ ): Promise<boolean> {
265
+ const cacheKey = getRoleCacheKey(id, role);
266
+
267
+ // Check role cache first
268
+ const cached = ctx.authorizerCache.get(cacheKey);
269
+ if (cached !== undefined) {
270
+ return cached;
271
+ }
272
+
273
+ // Check model cache or load model
274
+ const modelCacheKey = getModelCacheKey(id);
275
+ let model = ctx.authorizerModelCache.get(modelCacheKey) as
276
+ | GetPayload<TModelName>
277
+ | null
278
+ | undefined;
279
+
280
+ if (model === undefined) {
281
+ model = await config.getModelById(id);
282
+ // Cache model (including null for not found)
283
+ ctx.authorizerModelCache.set(modelCacheKey, model);
284
+ }
285
+
286
+ if (!model) {
287
+ // Cache negative result for missing models
288
+ ctx.authorizerCache.set(cacheKey, false);
289
+ return false;
290
+ }
291
+
292
+ // Run role check (will also cache)
293
+ return hasRoleWithModel(ctx, model, role);
294
+ }
295
+
296
+ return {
297
+ model: config.model,
298
+ roles: config.roles,
299
+ hasRole: hasRoleWithModel,
300
+ hasRoleById: hasRoleByIdInternal,
301
+ };
302
+ }
@@ -35,12 +35,18 @@ export declare const prismaDataCreateGenerator: import("@baseplate-dev/sync").Ge
35
35
  FieldTransformResult: {
36
36
  isTypeOnly: true;
37
37
  };
38
+ GetPayload: {
39
+ isTypeOnly: true;
40
+ };
38
41
  InferFieldsOutput: {
39
42
  isTypeOnly: true;
40
43
  };
41
44
  InferInput: {
42
45
  isTypeOnly: true;
43
46
  };
47
+ ModelPropName: {
48
+ isTypeOnly: true;
49
+ };
44
50
  nestedOneToManyField: {};
45
51
  NestedOneToManyFieldConfig: {
46
52
  isTypeOnly: true;
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-data-create.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-create/prisma-data-create.generator.ts"],"names":[],"mappings":"AAoCA;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgGpC,CAAC"}
1
+ {"version":3,"file":"prisma-data-create.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-create/prisma-data-create.generator.ts"],"names":[],"mappings":"AAoCA;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgGpC,CAAC"}
@@ -34,12 +34,18 @@ export declare const prismaDataDeleteGenerator: import("@baseplate-dev/sync").Ge
34
34
  FieldTransformResult: {
35
35
  isTypeOnly: true;
36
36
  };
37
+ GetPayload: {
38
+ isTypeOnly: true;
39
+ };
37
40
  InferFieldsOutput: {
38
41
  isTypeOnly: true;
39
42
  };
40
43
  InferInput: {
41
44
  isTypeOnly: true;
42
45
  };
46
+ ModelPropName: {
47
+ isTypeOnly: true;
48
+ };
43
49
  nestedOneToManyField: {};
44
50
  NestedOneToManyFieldConfig: {
45
51
  isTypeOnly: true;
@@ -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":"AA0BA;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsEpC,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":"AA0BA;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsEpC,CAAC"}
@@ -52,12 +52,18 @@ export declare const prismaDataNestedFieldGenerator: import("@baseplate-dev/sync
52
52
  FieldTransformResult: {
53
53
  isTypeOnly: true;
54
54
  };
55
+ GetPayload: {
56
+ isTypeOnly: true;
57
+ };
55
58
  InferFieldsOutput: {
56
59
  isTypeOnly: true;
57
60
  };
58
61
  InferInput: {
59
62
  isTypeOnly: true;
60
63
  };
64
+ ModelPropName: {
65
+ isTypeOnly: true;
66
+ };
61
67
  nestedOneToManyField: {};
62
68
  NestedOneToManyFieldConfig: {
63
69
  isTypeOnly: true;
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-data-nested-field.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.ts"],"names":[],"mappings":"AAgCA;;GAEG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8HzC,CAAC"}
1
+ {"version":3,"file":"prisma-data-nested-field.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.ts"],"names":[],"mappings":"AAgCA;;GAEG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8HzC,CAAC"}
@@ -74,12 +74,18 @@ export declare const prismaDataServiceGenerator: import("@baseplate-dev/sync").G
74
74
  FieldTransformResult: {
75
75
  isTypeOnly: true;
76
76
  };
77
+ GetPayload: {
78
+ isTypeOnly: true;
79
+ };
77
80
  InferFieldsOutput: {
78
81
  isTypeOnly: true;
79
82
  };
80
83
  InferInput: {
81
84
  isTypeOnly: true;
82
85
  };
86
+ ModelPropName: {
87
+ isTypeOnly: true;
88
+ };
83
89
  nestedOneToManyField: {};
84
90
  NestedOneToManyFieldConfig: {
85
91
  isTypeOnly: true;
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-data-service.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-service/prisma-data-service.generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAarE,OAAO,EAGL,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAIxE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAclG,QAAA,MAEE,8BAA8B;IAI5B,8DAA8D;;IAE9D,sDAAsD;;;;EAWzD,CAAC;AAEF,OAAO,EAAE,8BAA8B,EAAE,CAAC;AAE1C,UAAU,uBAAuB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACrC,QAAQ,EAAE,cAAc,CAAC;IACzB,YAAY,EAAE,mBAAmB,CAAC;CACnC;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,IAAI,0BAA0B,EAAE,CAAC;IAC1C,qBAAqB,IAAI,MAAM,CAAC;IAChC;;OAEG;IACH,iBAAiB,IAAI,cAAc,CAAC;IACpC,cAAc,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAAC;CACvD;AAED,eAAO,MAAM,yBAAyB,uEACgC,CAAC;AAQvE;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;YA9CnC,8DAA8D;;YAE9D,sDAAsD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4KxD,CAAC"}
1
+ {"version":3,"file":"prisma-data-service.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-service/prisma-data-service.generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAarE,OAAO,EAGL,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAIxE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAclG,QAAA,MAEE,8BAA8B;IAI5B,8DAA8D;;IAE9D,sDAAsD;;;;EAWzD,CAAC;AAEF,OAAO,EAAE,8BAA8B,EAAE,CAAC;AAE1C,UAAU,uBAAuB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACrC,QAAQ,EAAE,cAAc,CAAC;IACzB,YAAY,EAAE,mBAAmB,CAAC;CACnC;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,IAAI,0BAA0B,EAAE,CAAC;IAC1C,qBAAqB,IAAI,MAAM,CAAC;IAChC;;OAEG;IACH,iBAAiB,IAAI,cAAc,CAAC;IACpC,cAAc,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAAC;CACvD;AAED,eAAO,MAAM,yBAAyB,uEACgC,CAAC;AAQvE;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;YA9CnC,8DAA8D;;YAE9D,sDAAsD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4KxD,CAAC"}
@@ -35,12 +35,18 @@ export declare const prismaDataUpdateGenerator: import("@baseplate-dev/sync").Ge
35
35
  FieldTransformResult: {
36
36
  isTypeOnly: true;
37
37
  };
38
+ GetPayload: {
39
+ isTypeOnly: true;
40
+ };
38
41
  InferFieldsOutput: {
39
42
  isTypeOnly: true;
40
43
  };
41
44
  InferInput: {
42
45
  isTypeOnly: true;
43
46
  };
47
+ ModelPropName: {
48
+ isTypeOnly: true;
49
+ };
44
50
  nestedOneToManyField: {};
45
51
  NestedOneToManyFieldConfig: {
46
52
  isTypeOnly: true;
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-data-update.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-update/prisma-data-update.generator.ts"],"names":[],"mappings":"AAqCA;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4GpC,CAAC"}
1
+ {"version":3,"file":"prisma-data-update.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-update/prisma-data-update.generator.ts"],"names":[],"mappings":"AAqCA;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4GpC,CAAC"}
@@ -1,4 +1,13 @@
1
1
  export declare const fastifyVitestGenerator: import("@baseplate-dev/sync").GeneratorBundleCreator<Record<string, never>, {
2
2
  node: import("@baseplate-dev/sync").AnyGeneratorTask;
3
+ eslint: import("@baseplate-dev/sync").GeneratorTask<any, {
4
+ eslintConfig: import("@baseplate-dev/sync").ProviderType<Omit<import("@baseplate-dev/utils").FieldMap<{
5
+ react: import("@baseplate-dev/utils").ScalarContainer<boolean | undefined>;
6
+ eslintIgnore: import("@baseplate-dev/utils").ArrayContainer<string>;
7
+ devDependencies: import("@baseplate-dev/utils").ArrayContainer<string>;
8
+ enableVitest: import("@baseplate-dev/utils").ScalarContainer<boolean | undefined>;
9
+ tsDefaultProjectFiles: import("@baseplate-dev/utils").ArrayContainer<string>;
10
+ }>, "getValues">>;
11
+ }, any>;
3
12
  }>;
4
13
  //# sourceMappingURL=fastify-vitest.generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fastify-vitest.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/vitest/fastify-vitest/fastify-vitest.generator.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,sBAAsB;;EAejC,CAAC"}
1
+ {"version":3,"file":"fastify-vitest.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/vitest/fastify-vitest/fastify-vitest.generator.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,sBAAsB;;;;;;;;;;;EAsBjC,CAAC"}