zenstack 0.6.0-pre.11 → 0.6.0-pre.12

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,144 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.generateProcedure = generateProcedure;
7
+ exports.generateRouterImport = void 0;
8
+ exports.generateRouterSchemaImports = generateRouterSchemaImports;
9
+ exports.getProcedureTypeByOpName = exports.getInputTypeByOpName = exports.generatetRPCImport = void 0;
10
+ exports.resolveModelsComments = resolveModelsComments;
11
+ var _uncapitalizeFirstLetter = require("./utils/uncapitalizeFirstLetter");
12
+ const generatetRPCImport = sourceFile => {
13
+ sourceFile.addImportDeclaration({
14
+ moduleSpecifier: '@trpc/server',
15
+ namespaceImport: 'trpc'
16
+ });
17
+ };
18
+ exports.generatetRPCImport = generatetRPCImport;
19
+ const generateRouterImport = (sourceFile, modelNamePlural, modelNameCamelCase) => {
20
+ sourceFile.addImportDeclaration({
21
+ moduleSpecifier: `./${modelNameCamelCase}.router`,
22
+ namedImports: [`${modelNamePlural}Router`]
23
+ });
24
+ };
25
+ exports.generateRouterImport = generateRouterImport;
26
+ function generateProcedure(writer, opType, typeName, modelName, baseOpType) {
27
+ const procType = getProcedureTypeByOpName(baseOpType);
28
+ writer.write(`
29
+ ${opType}: procedure.input(${typeName}).${procType}(({ctx, input}) => db(ctx).${(0, _uncapitalizeFirstLetter.uncapitalizeFirstLetter)(modelName)}.${opType.replace('One', '')}(input)),
30
+ `);
31
+ }
32
+ function generateRouterSchemaImports(sourceFile, name) {
33
+ sourceFile.addStatements(`import { ${name}Schema } from '../schemas/${name}.schema';`);
34
+ }
35
+ const getInputTypeByOpName = (opName, modelName) => {
36
+ let inputType;
37
+ switch (opName) {
38
+ case 'findUnique':
39
+ inputType = `${modelName}Schema.findUnique`;
40
+ break;
41
+ case 'findFirst':
42
+ inputType = `${modelName}Schema.findFirst`;
43
+ break;
44
+ case 'findMany':
45
+ inputType = `${modelName}Schema.findMany`;
46
+ break;
47
+ case 'findRaw':
48
+ inputType = `${modelName}Schema.findRawObject`;
49
+ break;
50
+ case 'createOne':
51
+ inputType = `${modelName}Schema.create`;
52
+ break;
53
+ case 'createMany':
54
+ inputType = `${modelName}Schema.createMany`;
55
+ break;
56
+ case 'deleteOne':
57
+ inputType = `${modelName}Schema.delete`;
58
+ break;
59
+ case 'updateOne':
60
+ inputType = `${modelName}Schema.update`;
61
+ break;
62
+ case 'deleteMany':
63
+ inputType = `${modelName}Schema.deleteMany`;
64
+ break;
65
+ case 'updateMany':
66
+ inputType = `${modelName}Schema.updateMany`;
67
+ break;
68
+ case 'upsertOne':
69
+ inputType = `${modelName}Schema.upsert`;
70
+ break;
71
+ case 'aggregate':
72
+ inputType = `${modelName}Schema.aggregate`;
73
+ break;
74
+ case 'aggregateRaw':
75
+ inputType = `${modelName}Schema.aggregateRawObject`;
76
+ break;
77
+ case 'groupBy':
78
+ inputType = `${modelName}Schema.groupBy`;
79
+ break;
80
+ default:
81
+ console.log('getInputTypeByOpName: ', {
82
+ opName,
83
+ modelName
84
+ });
85
+ }
86
+ return inputType;
87
+ };
88
+ exports.getInputTypeByOpName = getInputTypeByOpName;
89
+ const getProcedureTypeByOpName = opName => {
90
+ let procType;
91
+ switch (opName) {
92
+ case 'findUnique':
93
+ case 'findFirst':
94
+ case 'findMany':
95
+ case 'findRaw':
96
+ case 'aggregate':
97
+ case 'aggregateRaw':
98
+ case 'groupBy':
99
+ procType = 'query';
100
+ break;
101
+ case 'createOne':
102
+ case 'createMany':
103
+ case 'deleteOne':
104
+ case 'updateOne':
105
+ case 'deleteMany':
106
+ case 'updateMany':
107
+ case 'upsertOne':
108
+ procType = 'mutation';
109
+ break;
110
+ default:
111
+ console.log('getProcedureTypeByOpName: ', {
112
+ opName
113
+ });
114
+ }
115
+ return procType;
116
+ };
117
+ exports.getProcedureTypeByOpName = getProcedureTypeByOpName;
118
+ function resolveModelsComments(models, hiddenModels) {
119
+ const modelAttributeRegex = /(@@Gen\.)+([A-z])+(\()+(.+)+(\))+/;
120
+ const attributeNameRegex = /(?:\.)+([A-Za-z])+(?:\()+/;
121
+ const attributeArgsRegex = /(?:\()+([A-Za-z])+:+(.+)+(?:\))+/;
122
+ for (const model of models) {
123
+ if (model.documentation) {
124
+ var _model$documentation, _model$documentation$, _attribute$match, _attribute$match$, _attribute$match2, _attribute$match2$;
125
+ const attribute = (_model$documentation = model.documentation) === null || _model$documentation === void 0 ? void 0 : (_model$documentation$ = _model$documentation.match(modelAttributeRegex)) === null || _model$documentation$ === void 0 ? void 0 : _model$documentation$[0];
126
+ const attributeName = attribute === null || attribute === void 0 ? void 0 : (_attribute$match = attribute.match(attributeNameRegex)) === null || _attribute$match === void 0 ? void 0 : (_attribute$match$ = _attribute$match[0]) === null || _attribute$match$ === void 0 ? void 0 : _attribute$match$.slice(1, -1);
127
+ if (attributeName !== 'model') continue;
128
+ const rawAttributeArgs = attribute === null || attribute === void 0 ? void 0 : (_attribute$match2 = attribute.match(attributeArgsRegex)) === null || _attribute$match2 === void 0 ? void 0 : (_attribute$match2$ = _attribute$match2[0]) === null || _attribute$match2$ === void 0 ? void 0 : _attribute$match2$.slice(1, -1);
129
+ const parsedAttributeArgs = {};
130
+ if (rawAttributeArgs) {
131
+ const rawAttributeArgsParts = rawAttributeArgs.split(':').map(it => it.trim()).map(part => part.startsWith('[') ? part : part.split(',')).flat().map(it => it.trim());
132
+ for (let i = 0; i < rawAttributeArgsParts.length; i += 2) {
133
+ const key = rawAttributeArgsParts[i];
134
+ const value = rawAttributeArgsParts[i + 1];
135
+ parsedAttributeArgs[key] = JSON.parse(value);
136
+ }
137
+ }
138
+ if (parsedAttributeArgs.hide) {
139
+ hiddenModels.push(model.name);
140
+ }
141
+ }
142
+ }
143
+ }
144
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","names":["generatetRPCImport","sourceFile","addImportDeclaration","moduleSpecifier","namespaceImport","generateRouterImport","modelNamePlural","modelNameCamelCase","namedImports","generateProcedure","writer","opType","typeName","modelName","baseOpType","procType","getProcedureTypeByOpName","write","uncapitalizeFirstLetter","replace","generateRouterSchemaImports","name","addStatements","getInputTypeByOpName","opName","inputType","console","log","resolveModelsComments","models","hiddenModels","modelAttributeRegex","attributeNameRegex","attributeArgsRegex","model","documentation","attribute","match","attributeName","slice","rawAttributeArgs","parsedAttributeArgs","rawAttributeArgsParts","split","map","it","trim","part","startsWith","flat","i","length","key","value","JSON","parse","hide","push"],"sources":["../../../src/plugins/trpc/helpers.ts"],"sourcesContent":["import { DMMF } from '@prisma/generator-helper';\nimport { CodeBlockWriter, SourceFile } from 'ts-morph';\nimport { uncapitalizeFirstLetter } from './utils/uncapitalizeFirstLetter';\n\nexport const generatetRPCImport = (sourceFile: SourceFile) => {\n sourceFile.addImportDeclaration({\n moduleSpecifier: '@trpc/server',\n namespaceImport: 'trpc',\n });\n};\n\nexport const generateRouterImport = (sourceFile: SourceFile, modelNamePlural: string, modelNameCamelCase: string) => {\n sourceFile.addImportDeclaration({\n moduleSpecifier: `./${modelNameCamelCase}.router`,\n namedImports: [`${modelNamePlural}Router`],\n });\n};\n\nexport function generateProcedure(\n writer: CodeBlockWriter,\n opType: string,\n typeName: string,\n modelName: string,\n baseOpType: string\n) {\n const procType = getProcedureTypeByOpName(baseOpType);\n writer.write(`\n ${opType}: procedure.input(${typeName}).${procType}(({ctx, input}) => db(ctx).${uncapitalizeFirstLetter(\n modelName\n )}.${opType.replace('One', '')}(input)),\n `);\n}\n\nexport function generateRouterSchemaImports(sourceFile: SourceFile, name: string) {\n sourceFile.addStatements(`import { ${name}Schema } from '../schemas/${name}.schema';`);\n}\n\nexport const getInputTypeByOpName = (opName: string, modelName: string) => {\n let inputType;\n switch (opName) {\n case 'findUnique':\n inputType = `${modelName}Schema.findUnique`;\n break;\n case 'findFirst':\n inputType = `${modelName}Schema.findFirst`;\n break;\n case 'findMany':\n inputType = `${modelName}Schema.findMany`;\n break;\n case 'findRaw':\n inputType = `${modelName}Schema.findRawObject`;\n break;\n case 'createOne':\n inputType = `${modelName}Schema.create`;\n break;\n case 'createMany':\n inputType = `${modelName}Schema.createMany`;\n break;\n case 'deleteOne':\n inputType = `${modelName}Schema.delete`;\n break;\n case 'updateOne':\n inputType = `${modelName}Schema.update`;\n break;\n case 'deleteMany':\n inputType = `${modelName}Schema.deleteMany`;\n break;\n case 'updateMany':\n inputType = `${modelName}Schema.updateMany`;\n break;\n case 'upsertOne':\n inputType = `${modelName}Schema.upsert`;\n break;\n case 'aggregate':\n inputType = `${modelName}Schema.aggregate`;\n break;\n case 'aggregateRaw':\n inputType = `${modelName}Schema.aggregateRawObject`;\n break;\n case 'groupBy':\n inputType = `${modelName}Schema.groupBy`;\n break;\n default:\n console.log('getInputTypeByOpName: ', { opName, modelName });\n }\n return inputType;\n};\n\nexport const getProcedureTypeByOpName = (opName: string) => {\n let procType;\n switch (opName) {\n case 'findUnique':\n case 'findFirst':\n case 'findMany':\n case 'findRaw':\n case 'aggregate':\n case 'aggregateRaw':\n case 'groupBy':\n procType = 'query';\n break;\n case 'createOne':\n case 'createMany':\n case 'deleteOne':\n case 'updateOne':\n case 'deleteMany':\n case 'updateMany':\n case 'upsertOne':\n procType = 'mutation';\n break;\n default:\n console.log('getProcedureTypeByOpName: ', { opName });\n }\n return procType;\n};\n\nexport function resolveModelsComments(models: DMMF.Model[], hiddenModels: string[]) {\n const modelAttributeRegex = /(@@Gen\\.)+([A-z])+(\\()+(.+)+(\\))+/;\n const attributeNameRegex = /(?:\\.)+([A-Za-z])+(?:\\()+/;\n const attributeArgsRegex = /(?:\\()+([A-Za-z])+:+(.+)+(?:\\))+/;\n\n for (const model of models) {\n if (model.documentation) {\n const attribute = model.documentation?.match(modelAttributeRegex)?.[0];\n const attributeName = attribute?.match(attributeNameRegex)?.[0]?.slice(1, -1);\n if (attributeName !== 'model') continue;\n const rawAttributeArgs = attribute?.match(attributeArgsRegex)?.[0]?.slice(1, -1);\n\n const parsedAttributeArgs: Record<string, unknown> = {};\n if (rawAttributeArgs) {\n const rawAttributeArgsParts = rawAttributeArgs\n .split(':')\n .map((it) => it.trim())\n .map((part) => (part.startsWith('[') ? part : part.split(',')))\n .flat()\n .map((it) => it.trim());\n\n for (let i = 0; i < rawAttributeArgsParts.length; i += 2) {\n const key = rawAttributeArgsParts[i];\n const value = rawAttributeArgsParts[i + 1];\n parsedAttributeArgs[key] = JSON.parse(value);\n }\n }\n if (parsedAttributeArgs.hide) {\n hiddenModels.push(model.name);\n }\n }\n }\n}\n"],"mappings":"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"}
@@ -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 = "tRPC";
5
+ export default function run(model: Model, options: PluginOptions, dmmf: DMMF.Document): Promise<void>;