zenstack 0.6.0-pre.11 → 0.6.0-pre.13

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 (203) hide show
  1. package/cli/cli-error.d.ts +5 -0
  2. package/cli/cli-error.js +12 -0
  3. package/cli/cli-error.js.map +1 -0
  4. package/cli/cli-util.d.ts +18 -0
  5. package/cli/cli-util.js +168 -0
  6. package/cli/cli-util.js.map +1 -0
  7. package/cli/index.d.ts +10 -0
  8. package/cli/index.js +78 -6531
  9. package/cli/index.js.map +1 -0
  10. package/cli/plugin-runner.d.ts +14 -0
  11. package/cli/plugin-runner.js +133 -0
  12. package/cli/plugin-runner.js.map +1 -0
  13. package/global.d.js +1 -0
  14. package/global.d.js.map +1 -0
  15. package/language-server/constants.d.ts +12 -0
  16. package/language-server/constants.js +24 -0
  17. package/language-server/constants.js.map +1 -0
  18. package/language-server/main.d.ts +1 -0
  19. package/language-server/main.js +20 -6436
  20. package/language-server/main.js.map +1 -0
  21. package/language-server/types.d.ts +10 -0
  22. package/language-server/types.js +1 -0
  23. package/language-server/types.js.map +1 -0
  24. package/language-server/utils.d.ts +10 -0
  25. package/language-server/utils.js +28 -0
  26. package/language-server/utils.js.map +1 -0
  27. package/language-server/validator/attribute-validator.d.ts +9 -0
  28. package/language-server/validator/attribute-validator.js +15 -0
  29. package/language-server/validator/attribute-validator.js.map +1 -0
  30. package/language-server/validator/datamodel-validator.d.ts +16 -0
  31. package/language-server/validator/datamodel-validator.js +365 -0
  32. package/language-server/validator/datamodel-validator.js.map +1 -0
  33. package/language-server/validator/datasource-validator.d.ts +13 -0
  34. package/language-server/validator/datasource-validator.js +85 -0
  35. package/language-server/validator/datasource-validator.js.map +1 -0
  36. package/language-server/validator/enum-validator.d.ts +9 -0
  37. package/language-server/validator/enum-validator.js +18 -0
  38. package/language-server/validator/enum-validator.js.map +1 -0
  39. package/language-server/validator/expression-validator.d.ts +11 -0
  40. package/language-server/validator/expression-validator.js +40 -0
  41. package/language-server/validator/expression-validator.js.map +1 -0
  42. package/language-server/validator/schema-validator.d.ts +10 -0
  43. package/language-server/validator/schema-validator.js +35 -0
  44. package/language-server/validator/schema-validator.js.map +1 -0
  45. package/language-server/validator/utils.d.ts +24 -0
  46. package/language-server/validator/utils.js +116 -0
  47. package/language-server/validator/utils.js.map +1 -0
  48. package/language-server/validator/zmodel-validator.d.ts +21 -0
  49. package/language-server/validator/zmodel-validator.js +72 -0
  50. package/language-server/validator/zmodel-validator.js.map +1 -0
  51. package/language-server/zmodel-linker.d.ts +29 -0
  52. package/language-server/zmodel-linker.js +364 -0
  53. package/language-server/zmodel-linker.js.map +1 -0
  54. package/language-server/zmodel-module.d.ts +41 -0
  55. package/language-server/zmodel-module.js +84 -0
  56. package/language-server/zmodel-module.js.map +1 -0
  57. package/language-server/zmodel-scope.d.ts +10 -0
  58. package/language-server/zmodel-scope.js +34 -0
  59. package/language-server/zmodel-scope.js.map +1 -0
  60. package/language-server/zmodel-workspace-manager.d.ts +8 -0
  61. package/language-server/zmodel-workspace-manager.js +25 -0
  62. package/language-server/zmodel-workspace-manager.js.map +1 -0
  63. package/package.json +20 -15
  64. package/plugins/access-policy/expression-writer.d.ts +38 -0
  65. package/plugins/access-policy/expression-writer.js +323 -0
  66. package/plugins/access-policy/expression-writer.js.map +1 -0
  67. package/plugins/access-policy/index.d.ts +4 -0
  68. package/plugins/access-policy/index.js +15 -4289
  69. package/plugins/access-policy/index.js.map +1 -0
  70. package/plugins/access-policy/policy-guard-generator.d.ts +15 -0
  71. package/plugins/access-policy/policy-guard-generator.js +345 -0
  72. package/plugins/access-policy/policy-guard-generator.js.map +1 -0
  73. package/plugins/access-policy/typescript-expression-transformer.d.ts +26 -0
  74. package/plugins/access-policy/typescript-expression-transformer.js +110 -0
  75. package/plugins/access-policy/typescript-expression-transformer.js.map +1 -0
  76. package/plugins/access-policy/utils.d.ts +5 -0
  77. package/plugins/access-policy/utils.js +16 -0
  78. package/plugins/access-policy/utils.js.map +1 -0
  79. package/plugins/access-policy/zod-schema-generator.d.ts +12 -0
  80. package/plugins/access-policy/zod-schema-generator.js +174 -0
  81. package/plugins/access-policy/zod-schema-generator.js.map +1 -0
  82. package/plugins/model-meta/index.d.ts +4 -0
  83. package/plugins/model-meta/index.js +130 -0
  84. package/plugins/model-meta/index.js.map +1 -0
  85. package/plugins/plugin-utils.d.ts +16 -0
  86. package/plugins/plugin-utils.js +58 -0
  87. package/plugins/plugin-utils.js.map +1 -0
  88. package/plugins/prisma/indent-string.d.ts +4 -0
  89. package/plugins/prisma/indent-string.js +16 -0
  90. package/plugins/prisma/indent-string.js.map +1 -0
  91. package/plugins/prisma/index.d.ts +4 -0
  92. package/plugins/prisma/index.js +15 -3740
  93. package/plugins/prisma/index.js.map +1 -0
  94. package/plugins/prisma/prisma-builder.d.ts +123 -0
  95. package/plugins/prisma/prisma-builder.js +256 -0
  96. package/plugins/prisma/prisma-builder.js.map +1 -0
  97. package/plugins/prisma/schema-generator.d.ts +22 -0
  98. package/plugins/prisma/schema-generator.js +201 -0
  99. package/plugins/prisma/schema-generator.js.map +1 -0
  100. package/plugins/react-hooks/index.d.ts +4 -0
  101. package/plugins/react-hooks/index.js +14 -4332
  102. package/plugins/react-hooks/index.js.map +1 -0
  103. package/plugins/react-hooks/react-hooks-generator.d.ts +3 -0
  104. package/plugins/react-hooks/react-hooks-generator.js +333 -0
  105. package/plugins/react-hooks/react-hooks-generator.js.map +1 -0
  106. package/plugins/trpc/config.d.ts +9 -0
  107. package/plugins/trpc/config.js +12 -0
  108. package/plugins/trpc/config.js.map +1 -0
  109. package/plugins/trpc/generator.d.ts +4 -0
  110. package/plugins/trpc/generator.js +132 -0
  111. package/plugins/trpc/generator.js.map +1 -0
  112. package/plugins/trpc/helpers.d.ts +9 -0
  113. package/plugins/trpc/helpers.js +144 -0
  114. package/plugins/trpc/helpers.js.map +1 -0
  115. package/plugins/trpc/index.d.ts +5 -0
  116. package/plugins/trpc/index.js +14 -5401
  117. package/plugins/trpc/index.js.map +1 -0
  118. package/plugins/trpc/project.d.ts +2 -0
  119. package/plugins/trpc/project.js +21 -0
  120. package/plugins/trpc/project.js.map +1 -0
  121. package/plugins/trpc/types.d.ts +0 -0
  122. package/plugins/trpc/types.js +1 -0
  123. package/plugins/trpc/types.js.map +1 -0
  124. package/plugins/trpc/utils/removeDir.d.ts +1 -0
  125. package/plugins/trpc/utils/removeDir.js +22 -0
  126. package/plugins/trpc/utils/removeDir.js.map +1 -0
  127. package/plugins/trpc/utils/uncapitalizeFirstLetter.d.ts +1 -0
  128. package/plugins/trpc/utils/uncapitalizeFirstLetter.js +11 -0
  129. package/plugins/trpc/utils/uncapitalizeFirstLetter.js.map +1 -0
  130. package/plugins/zod/generator.d.ts +4 -0
  131. package/plugins/zod/generator.js +78 -0
  132. package/plugins/zod/generator.js.map +1 -0
  133. package/plugins/zod/helpers/aggregate-helpers.d.ts +5 -0
  134. package/plugins/zod/helpers/aggregate-helpers.js +77 -0
  135. package/plugins/zod/helpers/aggregate-helpers.js.map +1 -0
  136. package/plugins/zod/helpers/comments-helpers.d.ts +6 -0
  137. package/plugins/zod/helpers/comments-helpers.js +91 -0
  138. package/plugins/zod/helpers/comments-helpers.js.map +1 -0
  139. package/plugins/zod/helpers/helpers.d.ts +8 -0
  140. package/plugins/zod/helpers/helpers.js +39 -0
  141. package/plugins/zod/helpers/helpers.js.map +1 -0
  142. package/plugins/zod/helpers/include-helpers.d.ts +2 -0
  143. package/plugins/zod/helpers/include-helpers.js +94 -0
  144. package/plugins/zod/helpers/include-helpers.js.map +1 -0
  145. package/plugins/zod/helpers/index.d.ts +4 -0
  146. package/plugins/zod/helpers/index.js +50 -0
  147. package/plugins/zod/helpers/index.js.map +1 -0
  148. package/plugins/zod/helpers/model-helpers.d.ts +6 -0
  149. package/plugins/zod/helpers/model-helpers.js +50 -0
  150. package/plugins/zod/helpers/model-helpers.js.map +1 -0
  151. package/plugins/zod/helpers/modelArgs-helpers.d.ts +2 -0
  152. package/plugins/zod/helpers/modelArgs-helpers.js +62 -0
  153. package/plugins/zod/helpers/modelArgs-helpers.js.map +1 -0
  154. package/plugins/zod/helpers/mongodb-helpers.d.ts +3 -0
  155. package/plugins/zod/helpers/mongodb-helpers.js +63 -0
  156. package/plugins/zod/helpers/mongodb-helpers.js.map +1 -0
  157. package/plugins/zod/helpers/select-helpers.d.ts +2 -0
  158. package/plugins/zod/helpers/select-helpers.js +150 -0
  159. package/plugins/zod/helpers/select-helpers.js.map +1 -0
  160. package/plugins/zod/index.d.ts +5 -0
  161. package/plugins/zod/index.js +14 -4824
  162. package/plugins/zod/index.js.map +1 -0
  163. package/plugins/zod/transformer.d.ts +70 -0
  164. package/plugins/zod/transformer.js +464 -0
  165. package/plugins/zod/transformer.js.map +1 -0
  166. package/plugins/zod/types.d.ts +20 -0
  167. package/plugins/zod/types.js +1 -0
  168. package/plugins/zod/types.js.map +1 -0
  169. package/plugins/zod/utils/formatFile.d.ts +1 -0
  170. package/plugins/zod/utils/formatFile.js +35 -0
  171. package/plugins/zod/utils/formatFile.js.map +1 -0
  172. package/plugins/zod/utils/removeDir.d.ts +1 -0
  173. package/plugins/zod/utils/removeDir.js +22 -0
  174. package/plugins/zod/utils/removeDir.js.map +1 -0
  175. package/plugins/zod/utils/writeFileSafely.d.ts +1 -0
  176. package/plugins/zod/utils/writeFileSafely.js +18 -0
  177. package/plugins/zod/utils/writeFileSafely.js.map +1 -0
  178. package/res/prism-zmodel.js +2 -4
  179. package/res/stdlib.zmodel +12 -1
  180. package/telemetry.d.ts +21 -0
  181. package/telemetry.js +102 -0
  182. package/telemetry.js.map +1 -0
  183. package/types.d.ts +11 -0
  184. package/types.js +1 -0
  185. package/types.js.map +1 -0
  186. package/utils/ast-utils.d.ts +15 -0
  187. package/utils/ast-utils.js +79 -0
  188. package/utils/ast-utils.js.map +1 -0
  189. package/utils/exec-utils.d.ts +6 -0
  190. package/utils/exec-utils.js +17 -0
  191. package/utils/exec-utils.js.map +1 -0
  192. package/utils/indent-string.d.ts +4 -0
  193. package/utils/indent-string.js +16 -0
  194. package/utils/indent-string.js.map +1 -0
  195. package/utils/pkg-utils.d.ts +3 -0
  196. package/utils/pkg-utils.js +43 -0
  197. package/utils/pkg-utils.js.map +1 -0
  198. package/asset/logo-256-bg.png +0 -0
  199. package/asset/logo-dark-256.png +0 -0
  200. package/asset/logo-light-256.png +0 -0
  201. package/extension.js +0 -39
  202. package/res/package.template.json +0 -9
  203. package/res/tsconfig.template.json +0 -17
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _commentsHelpers = require("./comments-helpers");
7
+ Object.keys(_commentsHelpers).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _commentsHelpers[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _commentsHelpers[key];
14
+ }
15
+ });
16
+ });
17
+ var _helpers = require("./helpers");
18
+ Object.keys(_helpers).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _helpers[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _helpers[key];
25
+ }
26
+ });
27
+ });
28
+ var _modelHelpers = require("./model-helpers");
29
+ Object.keys(_modelHelpers).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _modelHelpers[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _modelHelpers[key];
36
+ }
37
+ });
38
+ });
39
+ var _mongodbHelpers = require("./mongodb-helpers");
40
+ Object.keys(_mongodbHelpers).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _mongodbHelpers[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _mongodbHelpers[key];
47
+ }
48
+ });
49
+ });
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/plugins/zod/helpers/index.ts"],"sourcesContent":["export * from './comments-helpers';\nexport * from './helpers';\nexport * from './model-helpers';\nexport * from './mongodb-helpers';\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
@@ -0,0 +1,6 @@
1
+ import { DMMF } from '@prisma/generator-helper';
2
+ export declare function checkModelHasModelRelation(model: DMMF.Model): boolean;
3
+ export declare function checkModelHasManyModelRelation(model: DMMF.Model): boolean;
4
+ export declare function checkIsModelRelationField(modelField: DMMF.Field): boolean;
5
+ export declare function checkIsManyModelRelationField(modelField: DMMF.Field): boolean;
6
+ export declare function findModelByName(models: DMMF.Model[], modelName: string): DMMF.Model | undefined;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.checkIsManyModelRelationField = checkIsManyModelRelationField;
7
+ exports.checkIsModelRelationField = checkIsModelRelationField;
8
+ exports.checkModelHasManyModelRelation = checkModelHasManyModelRelation;
9
+ exports.checkModelHasModelRelation = checkModelHasModelRelation;
10
+ exports.findModelByName = findModelByName;
11
+ function checkModelHasModelRelation(model) {
12
+ const {
13
+ fields: modelFields
14
+ } = model;
15
+ for (const modelField of modelFields) {
16
+ const isRelationField = checkIsModelRelationField(modelField);
17
+ if (isRelationField) {
18
+ return true;
19
+ }
20
+ }
21
+ return false;
22
+ }
23
+ function checkModelHasManyModelRelation(model) {
24
+ const {
25
+ fields: modelFields
26
+ } = model;
27
+ for (const modelField of modelFields) {
28
+ const isManyRelationField = checkIsManyModelRelationField(modelField);
29
+ if (isManyRelationField) {
30
+ return true;
31
+ }
32
+ }
33
+ return false;
34
+ }
35
+ function checkIsModelRelationField(modelField) {
36
+ const {
37
+ kind,
38
+ relationName
39
+ } = modelField;
40
+ return kind === 'object' && !!relationName;
41
+ }
42
+ function checkIsManyModelRelationField(modelField) {
43
+ return checkIsModelRelationField(modelField) && modelField.isList;
44
+ }
45
+ function findModelByName(models, modelName) {
46
+ return models.find(({
47
+ name
48
+ }) => name === modelName);
49
+ }
50
+ //# sourceMappingURL=model-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-helpers.js","names":["checkModelHasModelRelation","model","fields","modelFields","modelField","isRelationField","checkIsModelRelationField","checkModelHasManyModelRelation","isManyRelationField","checkIsManyModelRelationField","kind","relationName","isList","findModelByName","models","modelName","find","name"],"sources":["../../../../src/plugins/zod/helpers/model-helpers.ts"],"sourcesContent":["import { DMMF } from '@prisma/generator-helper';\n\nexport function checkModelHasModelRelation(model: DMMF.Model) {\n const { fields: modelFields } = model;\n for (const modelField of modelFields) {\n const isRelationField = checkIsModelRelationField(modelField);\n if (isRelationField) {\n return true;\n }\n }\n return false;\n}\n\nexport function checkModelHasManyModelRelation(model: DMMF.Model) {\n const { fields: modelFields } = model;\n for (const modelField of modelFields) {\n const isManyRelationField = checkIsManyModelRelationField(modelField);\n if (isManyRelationField) {\n return true;\n }\n }\n return false;\n}\n\nexport function checkIsModelRelationField(modelField: DMMF.Field) {\n const { kind, relationName } = modelField;\n return kind === 'object' && !!relationName;\n}\n\nexport function checkIsManyModelRelationField(modelField: DMMF.Field) {\n return checkIsModelRelationField(modelField) && modelField.isList;\n}\n\nexport function findModelByName(models: DMMF.Model[], modelName: string) {\n return models.find(({ name }) => name === modelName);\n}\n"],"mappings":";;;;;;;;;;AAEO,SAASA,0BAA0B,CAACC,KAAiB,EAAE;EAC1D,MAAM;IAAEC,MAAM,EAAEC;EAAY,CAAC,GAAGF,KAAK;EACrC,KAAK,MAAMG,UAAU,IAAID,WAAW,EAAE;IAClC,MAAME,eAAe,GAAGC,yBAAyB,CAACF,UAAU,CAAC;IAC7D,IAAIC,eAAe,EAAE;MACjB,OAAO,IAAI;IACf;EACJ;EACA,OAAO,KAAK;AAChB;AAEO,SAASE,8BAA8B,CAACN,KAAiB,EAAE;EAC9D,MAAM;IAAEC,MAAM,EAAEC;EAAY,CAAC,GAAGF,KAAK;EACrC,KAAK,MAAMG,UAAU,IAAID,WAAW,EAAE;IAClC,MAAMK,mBAAmB,GAAGC,6BAA6B,CAACL,UAAU,CAAC;IACrE,IAAII,mBAAmB,EAAE;MACrB,OAAO,IAAI;IACf;EACJ;EACA,OAAO,KAAK;AAChB;AAEO,SAASF,yBAAyB,CAACF,UAAsB,EAAE;EAC9D,MAAM;IAAEM,IAAI;IAAEC;EAAa,CAAC,GAAGP,UAAU;EACzC,OAAOM,IAAI,KAAK,QAAQ,IAAI,CAAC,CAACC,YAAY;AAC9C;AAEO,SAASF,6BAA6B,CAACL,UAAsB,EAAE;EAClE,OAAOE,yBAAyB,CAACF,UAAU,CAAC,IAAIA,UAAU,CAACQ,MAAM;AACrE;AAEO,SAASC,eAAe,CAACC,MAAoB,EAAEC,SAAiB,EAAE;EACrE,OAAOD,MAAM,CAACE,IAAI,CAAC,CAAC;IAAEC;EAAK,CAAC,KAAKA,IAAI,KAAKF,SAAS,CAAC;AACxD"}
@@ -0,0 +1,2 @@
1
+ import { DMMF } from '@prisma/generator-helper';
2
+ export declare function addMissingInputObjectTypesForModelArgs(inputObjectTypes: DMMF.InputType[], models: DMMF.Model[], isGenerateSelect: boolean, isGenerateInclude: boolean): void;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.addMissingInputObjectTypesForModelArgs = addMissingInputObjectTypesForModelArgs;
7
+ var _modelHelpers = require("./model-helpers");
8
+ function addMissingInputObjectTypesForModelArgs(inputObjectTypes, models, isGenerateSelect, isGenerateInclude) {
9
+ const modelArgsInputObjectTypes = generateModelArgsInputObjectTypes(models, isGenerateSelect, isGenerateInclude);
10
+ for (const modelArgsInputObjectType of modelArgsInputObjectTypes) {
11
+ inputObjectTypes.push(modelArgsInputObjectType);
12
+ }
13
+ }
14
+ function generateModelArgsInputObjectTypes(models, isGenerateSelect, isGenerateInclude) {
15
+ const modelArgsInputObjectTypes = [];
16
+ for (const model of models) {
17
+ const {
18
+ name: modelName
19
+ } = model;
20
+ const fields = [];
21
+ if (isGenerateSelect) {
22
+ const selectField = {
23
+ name: 'select',
24
+ isRequired: false,
25
+ isNullable: false,
26
+ inputTypes: [{
27
+ isList: false,
28
+ type: `${modelName}Select`,
29
+ location: 'inputObjectTypes',
30
+ namespace: 'prisma'
31
+ }]
32
+ };
33
+ fields.push(selectField);
34
+ }
35
+ const hasRelationToAnotherModel = (0, _modelHelpers.checkModelHasModelRelation)(model);
36
+ if (isGenerateInclude && hasRelationToAnotherModel) {
37
+ const includeField = {
38
+ name: 'include',
39
+ isRequired: false,
40
+ isNullable: false,
41
+ inputTypes: [{
42
+ isList: false,
43
+ type: `${modelName}Include`,
44
+ location: 'inputObjectTypes',
45
+ namespace: 'prisma'
46
+ }]
47
+ };
48
+ fields.push(includeField);
49
+ }
50
+ const modelArgsInputObjectType = {
51
+ name: `${modelName}Args`,
52
+ constraints: {
53
+ maxNumFields: null,
54
+ minNumFields: null
55
+ },
56
+ fields
57
+ };
58
+ modelArgsInputObjectTypes.push(modelArgsInputObjectType);
59
+ }
60
+ return modelArgsInputObjectTypes;
61
+ }
62
+ //# sourceMappingURL=modelArgs-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelArgs-helpers.js","names":["addMissingInputObjectTypesForModelArgs","inputObjectTypes","models","isGenerateSelect","isGenerateInclude","modelArgsInputObjectTypes","generateModelArgsInputObjectTypes","modelArgsInputObjectType","push","model","name","modelName","fields","selectField","isRequired","isNullable","inputTypes","isList","type","location","namespace","hasRelationToAnotherModel","checkModelHasModelRelation","includeField","constraints","maxNumFields","minNumFields"],"sources":["../../../../src/plugins/zod/helpers/modelArgs-helpers.ts"],"sourcesContent":["import { DMMF } from '@prisma/generator-helper';\nimport { checkModelHasModelRelation } from './model-helpers';\n\nexport function addMissingInputObjectTypesForModelArgs(\n inputObjectTypes: DMMF.InputType[],\n models: DMMF.Model[],\n isGenerateSelect: boolean,\n isGenerateInclude: boolean\n) {\n const modelArgsInputObjectTypes = generateModelArgsInputObjectTypes(models, isGenerateSelect, isGenerateInclude);\n\n for (const modelArgsInputObjectType of modelArgsInputObjectTypes) {\n inputObjectTypes.push(modelArgsInputObjectType);\n }\n}\nfunction generateModelArgsInputObjectTypes(\n models: DMMF.Model[],\n isGenerateSelect: boolean,\n isGenerateInclude: boolean\n) {\n const modelArgsInputObjectTypes: DMMF.InputType[] = [];\n for (const model of models) {\n const { name: modelName } = model;\n const fields: DMMF.SchemaArg[] = [];\n\n if (isGenerateSelect) {\n const selectField: DMMF.SchemaArg = {\n name: 'select',\n isRequired: false,\n isNullable: false,\n inputTypes: [\n {\n isList: false,\n type: `${modelName}Select`,\n location: 'inputObjectTypes',\n namespace: 'prisma',\n },\n ],\n };\n fields.push(selectField);\n }\n\n const hasRelationToAnotherModel = checkModelHasModelRelation(model);\n\n if (isGenerateInclude && hasRelationToAnotherModel) {\n const includeField: DMMF.SchemaArg = {\n name: 'include',\n isRequired: false,\n isNullable: false,\n inputTypes: [\n {\n isList: false,\n type: `${modelName}Include`,\n location: 'inputObjectTypes',\n namespace: 'prisma',\n },\n ],\n };\n fields.push(includeField);\n }\n\n const modelArgsInputObjectType: DMMF.InputType = {\n name: `${modelName}Args`,\n constraints: {\n maxNumFields: null,\n minNumFields: null,\n },\n fields,\n };\n modelArgsInputObjectTypes.push(modelArgsInputObjectType);\n }\n return modelArgsInputObjectTypes;\n}\n"],"mappings":";;;;;;AACA;AAEO,SAASA,sCAAsC,CAClDC,gBAAkC,EAClCC,MAAoB,EACpBC,gBAAyB,EACzBC,iBAA0B,EAC5B;EACE,MAAMC,yBAAyB,GAAGC,iCAAiC,CAACJ,MAAM,EAAEC,gBAAgB,EAAEC,iBAAiB,CAAC;EAEhH,KAAK,MAAMG,wBAAwB,IAAIF,yBAAyB,EAAE;IAC9DJ,gBAAgB,CAACO,IAAI,CAACD,wBAAwB,CAAC;EACnD;AACJ;AACA,SAASD,iCAAiC,CACtCJ,MAAoB,EACpBC,gBAAyB,EACzBC,iBAA0B,EAC5B;EACE,MAAMC,yBAA2C,GAAG,EAAE;EACtD,KAAK,MAAMI,KAAK,IAAIP,MAAM,EAAE;IACxB,MAAM;MAAEQ,IAAI,EAAEC;IAAU,CAAC,GAAGF,KAAK;IACjC,MAAMG,MAAwB,GAAG,EAAE;IAEnC,IAAIT,gBAAgB,EAAE;MAClB,MAAMU,WAA2B,GAAG;QAChCH,IAAI,EAAE,QAAQ;QACdI,UAAU,EAAE,KAAK;QACjBC,UAAU,EAAE,KAAK;QACjBC,UAAU,EAAE,CACR;UACIC,MAAM,EAAE,KAAK;UACbC,IAAI,EAAG,GAAEP,SAAU,QAAO;UAC1BQ,QAAQ,EAAE,kBAAkB;UAC5BC,SAAS,EAAE;QACf,CAAC;MAET,CAAC;MACDR,MAAM,CAACJ,IAAI,CAACK,WAAW,CAAC;IAC5B;IAEA,MAAMQ,yBAAyB,GAAG,IAAAC,wCAA0B,EAACb,KAAK,CAAC;IAEnE,IAAIL,iBAAiB,IAAIiB,yBAAyB,EAAE;MAChD,MAAME,YAA4B,GAAG;QACjCb,IAAI,EAAE,SAAS;QACfI,UAAU,EAAE,KAAK;QACjBC,UAAU,EAAE,KAAK;QACjBC,UAAU,EAAE,CACR;UACIC,MAAM,EAAE,KAAK;UACbC,IAAI,EAAG,GAAEP,SAAU,SAAQ;UAC3BQ,QAAQ,EAAE,kBAAkB;UAC5BC,SAAS,EAAE;QACf,CAAC;MAET,CAAC;MACDR,MAAM,CAACJ,IAAI,CAACe,YAAY,CAAC;IAC7B;IAEA,MAAMhB,wBAAwC,GAAG;MAC7CG,IAAI,EAAG,GAAEC,SAAU,MAAK;MACxBa,WAAW,EAAE;QACTC,YAAY,EAAE,IAAI;QAClBC,YAAY,EAAE;MAClB,CAAC;MACDd;IACJ,CAAC;IACDP,yBAAyB,CAACG,IAAI,CAACD,wBAAwB,CAAC;EAC5D;EACA,OAAOF,yBAAyB;AACpC"}
@@ -0,0 +1,3 @@
1
+ import { DMMF } from '@prisma/generator-helper';
2
+ export declare function addMissingInputObjectTypesForMongoDbRawOpsAndQueries(modelOperations: DMMF.ModelMapping[], outputObjectTypes: DMMF.OutputType[], inputObjectTypes: DMMF.InputType[]): void;
3
+ export declare const isMongodbRawOp: (name: string) => boolean;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.addMissingInputObjectTypesForMongoDbRawOpsAndQueries = addMissingInputObjectTypesForMongoDbRawOpsAndQueries;
7
+ exports.isMongodbRawOp = void 0;
8
+ var _transformer = _interopRequireDefault(require("../transformer"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function addMissingInputObjectTypesForMongoDbRawOpsAndQueries(modelOperations, outputObjectTypes, inputObjectTypes) {
11
+ const rawOpsMap = resolveMongoDbRawOperations(modelOperations);
12
+ _transformer.default.rawOpsMap = rawOpsMap ?? {};
13
+ const mongoDbRawQueryInputObjectTypes = resolveMongoDbRawQueryInputObjectTypes(outputObjectTypes);
14
+ for (const mongoDbRawQueryInputType of mongoDbRawQueryInputObjectTypes) {
15
+ inputObjectTypes.push(mongoDbRawQueryInputType);
16
+ }
17
+ }
18
+ function resolveMongoDbRawOperations(modelOperations) {
19
+ const rawOpsMap = {};
20
+ const rawOpsNames = [...new Set(modelOperations.reduce((result, current) => {
21
+ const keys = Object.keys(current);
22
+ keys === null || keys === void 0 ? void 0 : keys.forEach(key => {
23
+ if (key.includes('Raw')) {
24
+ result.push(key);
25
+ }
26
+ });
27
+ return result;
28
+ }, []))];
29
+ const modelNames = modelOperations.map(item => item.model);
30
+ rawOpsNames.forEach(opName => {
31
+ modelNames.forEach(modelName => {
32
+ const isFind = opName === 'findRaw';
33
+ const opWithModel = `${opName.replace('Raw', '')}${modelName}Raw`;
34
+ rawOpsMap[opWithModel] = isFind ? `${modelName}FindRawArgs` : `${modelName}AggregateRawArgs`;
35
+ });
36
+ });
37
+ return rawOpsMap;
38
+ }
39
+ function resolveMongoDbRawQueryInputObjectTypes(outputObjectTypes) {
40
+ const mongoDbRawQueries = getMongoDbRawQueries(outputObjectTypes);
41
+ const mongoDbRawQueryInputObjectTypes = mongoDbRawQueries.map(item => ({
42
+ name: item.name,
43
+ constraints: {
44
+ maxNumFields: null,
45
+ minNumFields: null
46
+ },
47
+ fields: item.args.map(arg => ({
48
+ name: arg.name,
49
+ isRequired: arg.isRequired,
50
+ isNullable: arg.isNullable,
51
+ inputTypes: arg.inputTypes
52
+ }))
53
+ }));
54
+ return mongoDbRawQueryInputObjectTypes;
55
+ }
56
+ function getMongoDbRawQueries(outputObjectTypes) {
57
+ const queryOutputTypes = outputObjectTypes.filter(item => item.name === 'Query');
58
+ const mongodbRawQueries = (queryOutputTypes === null || queryOutputTypes === void 0 ? void 0 : queryOutputTypes[0].fields.filter(field => field.name.includes('Raw'))) ?? [];
59
+ return mongodbRawQueries;
60
+ }
61
+ const isMongodbRawOp = name => /find([^]*?)Raw/.test(name) || /aggregate([^]*?)Raw/.test(name);
62
+ exports.isMongodbRawOp = isMongodbRawOp;
63
+ //# sourceMappingURL=mongodb-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongodb-helpers.js","names":["addMissingInputObjectTypesForMongoDbRawOpsAndQueries","modelOperations","outputObjectTypes","inputObjectTypes","rawOpsMap","resolveMongoDbRawOperations","Transformer","mongoDbRawQueryInputObjectTypes","resolveMongoDbRawQueryInputObjectTypes","mongoDbRawQueryInputType","push","rawOpsNames","Set","reduce","result","current","keys","Object","forEach","key","includes","modelNames","map","item","model","opName","modelName","isFind","opWithModel","replace","mongoDbRawQueries","getMongoDbRawQueries","name","constraints","maxNumFields","minNumFields","fields","args","arg","isRequired","isNullable","inputTypes","queryOutputTypes","filter","mongodbRawQueries","field","isMongodbRawOp","test"],"sources":["../../../../src/plugins/zod/helpers/mongodb-helpers.ts"],"sourcesContent":["import { DMMF } from '@prisma/generator-helper';\nimport Transformer from '../transformer';\n\nexport function addMissingInputObjectTypesForMongoDbRawOpsAndQueries(\n modelOperations: DMMF.ModelMapping[],\n outputObjectTypes: DMMF.OutputType[],\n inputObjectTypes: DMMF.InputType[]\n) {\n const rawOpsMap = resolveMongoDbRawOperations(modelOperations);\n Transformer.rawOpsMap = rawOpsMap ?? {};\n\n const mongoDbRawQueryInputObjectTypes = resolveMongoDbRawQueryInputObjectTypes(outputObjectTypes);\n for (const mongoDbRawQueryInputType of mongoDbRawQueryInputObjectTypes) {\n inputObjectTypes.push(mongoDbRawQueryInputType);\n }\n}\n\nfunction resolveMongoDbRawOperations(modelOperations: DMMF.ModelMapping[]) {\n const rawOpsMap: { [name: string]: string } = {};\n const rawOpsNames = [\n ...new Set(\n modelOperations.reduce<string[]>((result, current) => {\n const keys = Object.keys(current);\n keys?.forEach((key) => {\n if (key.includes('Raw')) {\n result.push(key);\n }\n });\n return result;\n }, [])\n ),\n ];\n\n const modelNames = modelOperations.map((item) => item.model);\n\n rawOpsNames.forEach((opName) => {\n modelNames.forEach((modelName) => {\n const isFind = opName === 'findRaw';\n const opWithModel = `${opName.replace('Raw', '')}${modelName}Raw`;\n rawOpsMap[opWithModel] = isFind ? `${modelName}FindRawArgs` : `${modelName}AggregateRawArgs`;\n });\n });\n\n return rawOpsMap;\n}\n\nfunction resolveMongoDbRawQueryInputObjectTypes(outputObjectTypes: DMMF.OutputType[]) {\n const mongoDbRawQueries = getMongoDbRawQueries(outputObjectTypes);\n const mongoDbRawQueryInputObjectTypes = mongoDbRawQueries.map((item) => ({\n name: item.name,\n constraints: {\n maxNumFields: null,\n minNumFields: null,\n },\n fields: item.args.map((arg) => ({\n name: arg.name,\n isRequired: arg.isRequired,\n isNullable: arg.isNullable,\n inputTypes: arg.inputTypes,\n })),\n }));\n return mongoDbRawQueryInputObjectTypes;\n}\n\nfunction getMongoDbRawQueries(outputObjectTypes: DMMF.OutputType[]) {\n const queryOutputTypes = outputObjectTypes.filter((item) => item.name === 'Query');\n\n const mongodbRawQueries = queryOutputTypes?.[0].fields.filter((field) => field.name.includes('Raw')) ?? [];\n\n return mongodbRawQueries;\n}\n\nexport const isMongodbRawOp = (name: string) => /find([^]*?)Raw/.test(name) || /aggregate([^]*?)Raw/.test(name);\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { DMMF } from '@prisma/generator-helper';
2
+ export declare function addMissingInputObjectTypesForSelect(inputObjectTypes: DMMF.InputType[], outputObjectTypes: DMMF.OutputType[], models: DMMF.Model[]): void;
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.addMissingInputObjectTypesForSelect = addMissingInputObjectTypesForSelect;
7
+ var _modelHelpers = require("./model-helpers");
8
+ function addMissingInputObjectTypesForSelect(inputObjectTypes, outputObjectTypes, models) {
9
+ // generate input object types necessary to support ModelSelect._count
10
+ const modelCountOutputTypes = getModelCountOutputTypes(outputObjectTypes);
11
+ const modelCountOutputTypeSelectInputObjectTypes = generateModelCountOutputTypeSelectInputObjectTypes(modelCountOutputTypes);
12
+ const modelCountOutputTypeArgsInputObjectTypes = generateModelCountOutputTypeArgsInputObjectTypes(modelCountOutputTypes);
13
+ const modelSelectInputObjectTypes = generateModelSelectInputObjectTypes(models);
14
+ const generatedInputObjectTypes = [modelCountOutputTypeSelectInputObjectTypes, modelCountOutputTypeArgsInputObjectTypes, modelSelectInputObjectTypes].flat();
15
+ for (const inputObjectType of generatedInputObjectTypes) {
16
+ inputObjectTypes.push(inputObjectType);
17
+ }
18
+ }
19
+ function getModelCountOutputTypes(outputObjectTypes) {
20
+ return outputObjectTypes.filter(({
21
+ name
22
+ }) => name.includes('CountOutputType'));
23
+ }
24
+ function generateModelCountOutputTypeSelectInputObjectTypes(modelCountOutputTypes) {
25
+ const modelCountOutputTypeSelectInputObjectTypes = [];
26
+ for (const modelCountOutputType of modelCountOutputTypes) {
27
+ const {
28
+ name: modelCountOutputTypeName,
29
+ fields: modelCountOutputTypeFields
30
+ } = modelCountOutputType;
31
+ const modelCountOutputTypeSelectInputObjectType = {
32
+ name: `${modelCountOutputTypeName}Select`,
33
+ constraints: {
34
+ maxNumFields: null,
35
+ minNumFields: null
36
+ },
37
+ fields: modelCountOutputTypeFields.map(({
38
+ name
39
+ }) => ({
40
+ name,
41
+ isRequired: false,
42
+ isNullable: false,
43
+ inputTypes: [{
44
+ isList: false,
45
+ type: `Boolean`,
46
+ location: 'scalar'
47
+ }]
48
+ }))
49
+ };
50
+ modelCountOutputTypeSelectInputObjectTypes.push(modelCountOutputTypeSelectInputObjectType);
51
+ }
52
+ return modelCountOutputTypeSelectInputObjectTypes;
53
+ }
54
+ function generateModelCountOutputTypeArgsInputObjectTypes(modelCountOutputTypes) {
55
+ const modelCountOutputTypeArgsInputObjectTypes = [];
56
+ for (const modelCountOutputType of modelCountOutputTypes) {
57
+ const {
58
+ name: modelCountOutputTypeName
59
+ } = modelCountOutputType;
60
+ const modelCountOutputTypeArgsInputObjectType = {
61
+ name: `${modelCountOutputTypeName}Args`,
62
+ constraints: {
63
+ maxNumFields: null,
64
+ minNumFields: null
65
+ },
66
+ fields: [{
67
+ name: 'select',
68
+ isRequired: false,
69
+ isNullable: false,
70
+ inputTypes: [{
71
+ isList: false,
72
+ type: `${modelCountOutputTypeName}Select`,
73
+ location: 'inputObjectTypes',
74
+ namespace: 'prisma'
75
+ }]
76
+ }]
77
+ };
78
+ modelCountOutputTypeArgsInputObjectTypes.push(modelCountOutputTypeArgsInputObjectType);
79
+ }
80
+ return modelCountOutputTypeArgsInputObjectTypes;
81
+ }
82
+ function generateModelSelectInputObjectTypes(models) {
83
+ const modelSelectInputObjectTypes = [];
84
+ for (const model of models) {
85
+ const {
86
+ name: modelName,
87
+ fields: modelFields
88
+ } = model;
89
+ const fields = [];
90
+ for (const modelField of modelFields) {
91
+ const {
92
+ name: modelFieldName,
93
+ isList,
94
+ type
95
+ } = modelField;
96
+ const isRelationField = (0, _modelHelpers.checkIsModelRelationField)(modelField);
97
+ const field = {
98
+ name: modelFieldName,
99
+ isRequired: false,
100
+ isNullable: false,
101
+ inputTypes: [{
102
+ isList: false,
103
+ type: 'Boolean',
104
+ location: 'scalar'
105
+ }]
106
+ };
107
+ if (isRelationField) {
108
+ const schemaArgInputType = {
109
+ isList: false,
110
+ type: isList ? `${type}FindManyArgs` : `${type}Args`,
111
+ location: 'inputObjectTypes',
112
+ namespace: 'prisma'
113
+ };
114
+ field.inputTypes.push(schemaArgInputType);
115
+ }
116
+ fields.push(field);
117
+ }
118
+ const hasManyRelationToAnotherModel = (0, _modelHelpers.checkModelHasManyModelRelation)(model);
119
+ const shouldAddCountField = hasManyRelationToAnotherModel;
120
+ if (shouldAddCountField) {
121
+ const _countField = {
122
+ name: '_count',
123
+ isRequired: false,
124
+ isNullable: false,
125
+ inputTypes: [{
126
+ isList: false,
127
+ type: 'Boolean',
128
+ location: 'scalar'
129
+ }, {
130
+ isList: false,
131
+ type: `${modelName}CountOutputTypeArgs`,
132
+ location: 'inputObjectTypes',
133
+ namespace: 'prisma'
134
+ }]
135
+ };
136
+ fields.push(_countField);
137
+ }
138
+ const modelSelectInputObjectType = {
139
+ name: `${modelName}Select`,
140
+ constraints: {
141
+ maxNumFields: null,
142
+ minNumFields: null
143
+ },
144
+ fields
145
+ };
146
+ modelSelectInputObjectTypes.push(modelSelectInputObjectType);
147
+ }
148
+ return modelSelectInputObjectTypes;
149
+ }
150
+ //# sourceMappingURL=select-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-helpers.js","names":["addMissingInputObjectTypesForSelect","inputObjectTypes","outputObjectTypes","models","modelCountOutputTypes","getModelCountOutputTypes","modelCountOutputTypeSelectInputObjectTypes","generateModelCountOutputTypeSelectInputObjectTypes","modelCountOutputTypeArgsInputObjectTypes","generateModelCountOutputTypeArgsInputObjectTypes","modelSelectInputObjectTypes","generateModelSelectInputObjectTypes","generatedInputObjectTypes","flat","inputObjectType","push","filter","name","includes","modelCountOutputType","modelCountOutputTypeName","fields","modelCountOutputTypeFields","modelCountOutputTypeSelectInputObjectType","constraints","maxNumFields","minNumFields","map","isRequired","isNullable","inputTypes","isList","type","location","modelCountOutputTypeArgsInputObjectType","namespace","model","modelName","modelFields","modelField","modelFieldName","isRelationField","checkIsModelRelationField","field","schemaArgInputType","hasManyRelationToAnotherModel","checkModelHasManyModelRelation","shouldAddCountField","_countField","modelSelectInputObjectType"],"sources":["../../../../src/plugins/zod/helpers/select-helpers.ts"],"sourcesContent":["import { DMMF } from '@prisma/generator-helper';\nimport { checkIsModelRelationField, checkModelHasManyModelRelation } from './model-helpers';\n\nexport function addMissingInputObjectTypesForSelect(\n inputObjectTypes: DMMF.InputType[],\n outputObjectTypes: DMMF.OutputType[],\n models: DMMF.Model[]\n) {\n // generate input object types necessary to support ModelSelect._count\n const modelCountOutputTypes = getModelCountOutputTypes(outputObjectTypes);\n const modelCountOutputTypeSelectInputObjectTypes =\n generateModelCountOutputTypeSelectInputObjectTypes(modelCountOutputTypes);\n const modelCountOutputTypeArgsInputObjectTypes =\n generateModelCountOutputTypeArgsInputObjectTypes(modelCountOutputTypes);\n\n const modelSelectInputObjectTypes = generateModelSelectInputObjectTypes(models);\n\n const generatedInputObjectTypes = [\n modelCountOutputTypeSelectInputObjectTypes,\n modelCountOutputTypeArgsInputObjectTypes,\n modelSelectInputObjectTypes,\n ].flat();\n\n for (const inputObjectType of generatedInputObjectTypes) {\n inputObjectTypes.push(inputObjectType);\n }\n}\n\nfunction getModelCountOutputTypes(outputObjectTypes: DMMF.OutputType[]) {\n return outputObjectTypes.filter(({ name }) => name.includes('CountOutputType'));\n}\n\nfunction generateModelCountOutputTypeSelectInputObjectTypes(modelCountOutputTypes: DMMF.OutputType[]) {\n const modelCountOutputTypeSelectInputObjectTypes: DMMF.InputType[] = [];\n for (const modelCountOutputType of modelCountOutputTypes) {\n const { name: modelCountOutputTypeName, fields: modelCountOutputTypeFields } = modelCountOutputType;\n const modelCountOutputTypeSelectInputObjectType: DMMF.InputType = {\n name: `${modelCountOutputTypeName}Select`,\n constraints: {\n maxNumFields: null,\n minNumFields: null,\n },\n fields: modelCountOutputTypeFields.map(({ name }) => ({\n name,\n isRequired: false,\n isNullable: false,\n inputTypes: [\n {\n isList: false,\n type: `Boolean`,\n location: 'scalar',\n },\n ],\n })),\n };\n modelCountOutputTypeSelectInputObjectTypes.push(modelCountOutputTypeSelectInputObjectType);\n }\n return modelCountOutputTypeSelectInputObjectTypes;\n}\n\nfunction generateModelCountOutputTypeArgsInputObjectTypes(modelCountOutputTypes: DMMF.OutputType[]) {\n const modelCountOutputTypeArgsInputObjectTypes: DMMF.InputType[] = [];\n for (const modelCountOutputType of modelCountOutputTypes) {\n const { name: modelCountOutputTypeName } = modelCountOutputType;\n const modelCountOutputTypeArgsInputObjectType: DMMF.InputType = {\n name: `${modelCountOutputTypeName}Args`,\n constraints: {\n maxNumFields: null,\n minNumFields: null,\n },\n fields: [\n {\n name: 'select',\n isRequired: false,\n isNullable: false,\n inputTypes: [\n {\n isList: false,\n type: `${modelCountOutputTypeName}Select`,\n location: 'inputObjectTypes',\n namespace: 'prisma',\n },\n ],\n },\n ],\n };\n modelCountOutputTypeArgsInputObjectTypes.push(modelCountOutputTypeArgsInputObjectType);\n }\n return modelCountOutputTypeArgsInputObjectTypes;\n}\n\nfunction generateModelSelectInputObjectTypes(models: DMMF.Model[]) {\n const modelSelectInputObjectTypes: DMMF.InputType[] = [];\n for (const model of models) {\n const { name: modelName, fields: modelFields } = model;\n const fields: DMMF.SchemaArg[] = [];\n\n for (const modelField of modelFields) {\n const { name: modelFieldName, isList, type } = modelField;\n\n const isRelationField = checkIsModelRelationField(modelField);\n\n const field: DMMF.SchemaArg = {\n name: modelFieldName,\n isRequired: false,\n isNullable: false,\n inputTypes: [{ isList: false, type: 'Boolean', location: 'scalar' }],\n };\n\n if (isRelationField) {\n const schemaArgInputType: DMMF.SchemaArgInputType = {\n isList: false,\n type: isList ? `${type}FindManyArgs` : `${type}Args`,\n location: 'inputObjectTypes',\n namespace: 'prisma',\n };\n field.inputTypes.push(schemaArgInputType);\n }\n\n fields.push(field);\n }\n\n const hasManyRelationToAnotherModel = checkModelHasManyModelRelation(model);\n\n const shouldAddCountField = hasManyRelationToAnotherModel;\n if (shouldAddCountField) {\n const _countField: DMMF.SchemaArg = {\n name: '_count',\n isRequired: false,\n isNullable: false,\n inputTypes: [\n { isList: false, type: 'Boolean', location: 'scalar' },\n {\n isList: false,\n type: `${modelName}CountOutputTypeArgs`,\n location: 'inputObjectTypes',\n namespace: 'prisma',\n },\n ],\n };\n fields.push(_countField);\n }\n\n const modelSelectInputObjectType: DMMF.InputType = {\n name: `${modelName}Select`,\n constraints: {\n maxNumFields: null,\n minNumFields: null,\n },\n fields,\n };\n modelSelectInputObjectTypes.push(modelSelectInputObjectType);\n }\n return modelSelectInputObjectTypes;\n}\n"],"mappings":";;;;;;AACA;AAEO,SAASA,mCAAmC,CAC/CC,gBAAkC,EAClCC,iBAAoC,EACpCC,MAAoB,EACtB;EACE;EACA,MAAMC,qBAAqB,GAAGC,wBAAwB,CAACH,iBAAiB,CAAC;EACzE,MAAMI,0CAA0C,GAC5CC,kDAAkD,CAACH,qBAAqB,CAAC;EAC7E,MAAMI,wCAAwC,GAC1CC,gDAAgD,CAACL,qBAAqB,CAAC;EAE3E,MAAMM,2BAA2B,GAAGC,mCAAmC,CAACR,MAAM,CAAC;EAE/E,MAAMS,yBAAyB,GAAG,CAC9BN,0CAA0C,EAC1CE,wCAAwC,EACxCE,2BAA2B,CAC9B,CAACG,IAAI,EAAE;EAER,KAAK,MAAMC,eAAe,IAAIF,yBAAyB,EAAE;IACrDX,gBAAgB,CAACc,IAAI,CAACD,eAAe,CAAC;EAC1C;AACJ;AAEA,SAAST,wBAAwB,CAACH,iBAAoC,EAAE;EACpE,OAAOA,iBAAiB,CAACc,MAAM,CAAC,CAAC;IAAEC;EAAK,CAAC,KAAKA,IAAI,CAACC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AACnF;AAEA,SAASX,kDAAkD,CAACH,qBAAwC,EAAE;EAClG,MAAME,0CAA4D,GAAG,EAAE;EACvE,KAAK,MAAMa,oBAAoB,IAAIf,qBAAqB,EAAE;IACtD,MAAM;MAAEa,IAAI,EAAEG,wBAAwB;MAAEC,MAAM,EAAEC;IAA2B,CAAC,GAAGH,oBAAoB;IACnG,MAAMI,yCAAyD,GAAG;MAC9DN,IAAI,EAAG,GAAEG,wBAAyB,QAAO;MACzCI,WAAW,EAAE;QACTC,YAAY,EAAE,IAAI;QAClBC,YAAY,EAAE;MAClB,CAAC;MACDL,MAAM,EAAEC,0BAA0B,CAACK,GAAG,CAAC,CAAC;QAAEV;MAAK,CAAC,MAAM;QAClDA,IAAI;QACJW,UAAU,EAAE,KAAK;QACjBC,UAAU,EAAE,KAAK;QACjBC,UAAU,EAAE,CACR;UACIC,MAAM,EAAE,KAAK;UACbC,IAAI,EAAG,SAAQ;UACfC,QAAQ,EAAE;QACd,CAAC;MAET,CAAC,CAAC;IACN,CAAC;IACD3B,0CAA0C,CAACS,IAAI,CAACQ,yCAAyC,CAAC;EAC9F;EACA,OAAOjB,0CAA0C;AACrD;AAEA,SAASG,gDAAgD,CAACL,qBAAwC,EAAE;EAChG,MAAMI,wCAA0D,GAAG,EAAE;EACrE,KAAK,MAAMW,oBAAoB,IAAIf,qBAAqB,EAAE;IACtD,MAAM;MAAEa,IAAI,EAAEG;IAAyB,CAAC,GAAGD,oBAAoB;IAC/D,MAAMe,uCAAuD,GAAG;MAC5DjB,IAAI,EAAG,GAAEG,wBAAyB,MAAK;MACvCI,WAAW,EAAE;QACTC,YAAY,EAAE,IAAI;QAClBC,YAAY,EAAE;MAClB,CAAC;MACDL,MAAM,EAAE,CACJ;QACIJ,IAAI,EAAE,QAAQ;QACdW,UAAU,EAAE,KAAK;QACjBC,UAAU,EAAE,KAAK;QACjBC,UAAU,EAAE,CACR;UACIC,MAAM,EAAE,KAAK;UACbC,IAAI,EAAG,GAAEZ,wBAAyB,QAAO;UACzCa,QAAQ,EAAE,kBAAkB;UAC5BE,SAAS,EAAE;QACf,CAAC;MAET,CAAC;IAET,CAAC;IACD3B,wCAAwC,CAACO,IAAI,CAACmB,uCAAuC,CAAC;EAC1F;EACA,OAAO1B,wCAAwC;AACnD;AAEA,SAASG,mCAAmC,CAACR,MAAoB,EAAE;EAC/D,MAAMO,2BAA6C,GAAG,EAAE;EACxD,KAAK,MAAM0B,KAAK,IAAIjC,MAAM,EAAE;IACxB,MAAM;MAAEc,IAAI,EAAEoB,SAAS;MAAEhB,MAAM,EAAEiB;IAAY,CAAC,GAAGF,KAAK;IACtD,MAAMf,MAAwB,GAAG,EAAE;IAEnC,KAAK,MAAMkB,UAAU,IAAID,WAAW,EAAE;MAClC,MAAM;QAAErB,IAAI,EAAEuB,cAAc;QAAET,MAAM;QAAEC;MAAK,CAAC,GAAGO,UAAU;MAEzD,MAAME,eAAe,GAAG,IAAAC,uCAAyB,EAACH,UAAU,CAAC;MAE7D,MAAMI,KAAqB,GAAG;QAC1B1B,IAAI,EAAEuB,cAAc;QACpBZ,UAAU,EAAE,KAAK;QACjBC,UAAU,EAAE,KAAK;QACjBC,UAAU,EAAE,CAAC;UAAEC,MAAM,EAAE,KAAK;UAAEC,IAAI,EAAE,SAAS;UAAEC,QAAQ,EAAE;QAAS,CAAC;MACvE,CAAC;MAED,IAAIQ,eAAe,EAAE;QACjB,MAAMG,kBAA2C,GAAG;UAChDb,MAAM,EAAE,KAAK;UACbC,IAAI,EAAED,MAAM,GAAI,GAAEC,IAAK,cAAa,GAAI,GAAEA,IAAK,MAAK;UACpDC,QAAQ,EAAE,kBAAkB;UAC5BE,SAAS,EAAE;QACf,CAAC;QACDQ,KAAK,CAACb,UAAU,CAACf,IAAI,CAAC6B,kBAAkB,CAAC;MAC7C;MAEAvB,MAAM,CAACN,IAAI,CAAC4B,KAAK,CAAC;IACtB;IAEA,MAAME,6BAA6B,GAAG,IAAAC,4CAA8B,EAACV,KAAK,CAAC;IAE3E,MAAMW,mBAAmB,GAAGF,6BAA6B;IACzD,IAAIE,mBAAmB,EAAE;MACrB,MAAMC,WAA2B,GAAG;QAChC/B,IAAI,EAAE,QAAQ;QACdW,UAAU,EAAE,KAAK;QACjBC,UAAU,EAAE,KAAK;QACjBC,UAAU,EAAE,CACR;UAAEC,MAAM,EAAE,KAAK;UAAEC,IAAI,EAAE,SAAS;UAAEC,QAAQ,EAAE;QAAS,CAAC,EACtD;UACIF,MAAM,EAAE,KAAK;UACbC,IAAI,EAAG,GAAEK,SAAU,qBAAoB;UACvCJ,QAAQ,EAAE,kBAAkB;UAC5BE,SAAS,EAAE;QACf,CAAC;MAET,CAAC;MACDd,MAAM,CAACN,IAAI,CAACiC,WAAW,CAAC;IAC5B;IAEA,MAAMC,0BAA0C,GAAG;MAC/ChC,IAAI,EAAG,GAAEoB,SAAU,QAAO;MAC1Bb,WAAW,EAAE;QACTC,YAAY,EAAE,IAAI;QAClBC,YAAY,EAAE;MAClB,CAAC;MACDL;IACJ,CAAC;IACDX,2BAA2B,CAACK,IAAI,CAACkC,0BAA0B,CAAC;EAChE;EACA,OAAOvC,2BAA2B;AACtC"}
@@ -0,0 +1,5 @@
1
+ import { DMMF } from '@prisma/generator-helper';
2
+ import { PluginOptions } from '@zenstackhq/sdk';
3
+ import { Model } from '@zenstackhq/sdk/ast';
4
+ export declare const name = "Zod";
5
+ export default function run(model: Model, options: PluginOptions, dmmf: DMMF.Document): Promise<void>;