@rawan-temo/prisma-zod-generator 3.3.1-config-coercion.0

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 (1780) hide show
  1. package/.editorconfig +9 -0
  2. package/.env.example +22 -0
  3. package/.github/CODEOWNERS +7 -0
  4. package/.github/DISCUSSION_TEMPLATE/general.yml +39 -0
  5. package/.github/FUNDING.yml +1 -0
  6. package/.github/ISSUE_TEMPLATE/bug_report.yml +90 -0
  7. package/.github/ISSUE_TEMPLATE/config.yml +8 -0
  8. package/.github/ISSUE_TEMPLATE/feature_request.yml +93 -0
  9. package/.github/PULL_REQUEST_TEMPLATE.md +36 -0
  10. package/.github/workflows/README.md +97 -0
  11. package/.github/workflows/ci.yml +270 -0
  12. package/.github/workflows/docs.yml +98 -0
  13. package/.github/workflows/semantic-release.yml +209 -0
  14. package/.gitmodules +4 -0
  15. package/.husky/commit-msg +44 -0
  16. package/.husky/post-checkout +2 -0
  17. package/.husky/post-merge +2 -0
  18. package/.husky/pre-push +24 -0
  19. package/.nvmrc +1 -0
  20. package/.prettierignore +19 -0
  21. package/.prettierrc +10 -0
  22. package/.releaserc.json +106 -0
  23. package/AGENTS.md +119 -0
  24. package/CHANGELOG.md +1730 -0
  25. package/CLAUDE.md +121 -0
  26. package/CONTRIBUTING.md +279 -0
  27. package/DOCKER.md +84 -0
  28. package/LICENSE +21 -0
  29. package/LICENSE-PRO.md +246 -0
  30. package/README.md +244 -0
  31. package/SECURITY.md +34 -0
  32. package/app/generated/browser.ts +39 -0
  33. package/app/generated/client.ts +61 -0
  34. package/app/generated/commonInputTypes.ts +457 -0
  35. package/app/generated/enums.ts +29 -0
  36. package/app/generated/internal/class.ts +234 -0
  37. package/app/generated/internal/prismaNamespace.ts +1170 -0
  38. package/app/generated/internal/prismaNamespaceBrowser.ts +159 -0
  39. package/app/generated/models/Profile.ts +1395 -0
  40. package/app/generated/models/Project.ts +1488 -0
  41. package/app/generated/models/Task.ts +1643 -0
  42. package/app/generated/models/User.ts +2021 -0
  43. package/app/generated/models.ts +15 -0
  44. package/docker-compose.yml +93 -0
  45. package/docs/assets/diagrams/diagram-01-23b43096d1.svg +1 -0
  46. package/eslint.config.mjs +99 -0
  47. package/lib/cli/license-check.d.ts +6 -0
  48. package/lib/cli/license-check.js +60 -0
  49. package/lib/cli/license-check.js.map +1 -0
  50. package/lib/cli/pzg-pro-generator.d.ts +59 -0
  51. package/lib/cli/pzg-pro-generator.js +431 -0
  52. package/lib/cli/pzg-pro-generator.js.map +1 -0
  53. package/lib/cli/pzg-pro.d.ts +18 -0
  54. package/lib/cli/pzg-pro.js +111 -0
  55. package/lib/cli/pzg-pro.js.map +1 -0
  56. package/lib/config/defaults.d.ts +83 -0
  57. package/lib/config/defaults.js +406 -0
  58. package/lib/config/defaults.js.map +1 -0
  59. package/lib/config/generator-options.d.ts +104 -0
  60. package/lib/config/generator-options.js +353 -0
  61. package/lib/config/generator-options.js.map +1 -0
  62. package/lib/config/parser.d.ts +386 -0
  63. package/lib/config/parser.js +264 -0
  64. package/lib/config/parser.js.map +1 -0
  65. package/lib/config/schema.d.ts +94 -0
  66. package/lib/config/schema.js +963 -0
  67. package/lib/config/schema.js.map +1 -0
  68. package/lib/config/typed-json.d.ts +132 -0
  69. package/lib/config/typed-json.js +121 -0
  70. package/lib/config/typed-json.js.map +1 -0
  71. package/lib/config/validator.d.ts +79 -0
  72. package/lib/config/validator.js +370 -0
  73. package/lib/config/validator.js.map +1 -0
  74. package/lib/generator.d.ts +5 -0
  75. package/lib/generator.js +70 -0
  76. package/lib/generator.js.map +1 -0
  77. package/lib/generators/model.d.ts +572 -0
  78. package/lib/generators/model.js +2577 -0
  79. package/lib/generators/model.js.map +1 -0
  80. package/lib/generators/results.d.ts +328 -0
  81. package/lib/generators/results.js +814 -0
  82. package/lib/generators/results.js.map +1 -0
  83. package/lib/generators/typed-field-update-operations.d.ts +89 -0
  84. package/lib/generators/typed-field-update-operations.js +185 -0
  85. package/lib/generators/typed-field-update-operations.js.map +1 -0
  86. package/lib/generators/typed-json-namespace.d.ts +124 -0
  87. package/lib/generators/typed-json-namespace.js +294 -0
  88. package/lib/generators/typed-json-namespace.js.map +1 -0
  89. package/lib/helpers/aggregate-helpers.d.ts +11 -0
  90. package/lib/helpers/aggregate-helpers.js +82 -0
  91. package/lib/helpers/aggregate-helpers.js.map +1 -0
  92. package/lib/helpers/comments-helpers.d.ts +6 -0
  93. package/lib/helpers/comments-helpers.js +98 -0
  94. package/lib/helpers/comments-helpers.js.map +1 -0
  95. package/lib/helpers/decimal-helpers.d.ts +41 -0
  96. package/lib/helpers/decimal-helpers.js +115 -0
  97. package/lib/helpers/decimal-helpers.js.map +1 -0
  98. package/lib/helpers/helpers.d.ts +12 -0
  99. package/lib/helpers/helpers.js +85 -0
  100. package/lib/helpers/helpers.js.map +1 -0
  101. package/lib/helpers/include-helpers.d.ts +6 -0
  102. package/lib/helpers/include-helpers.js +110 -0
  103. package/lib/helpers/include-helpers.js.map +1 -0
  104. package/lib/helpers/index.d.ts +7 -0
  105. package/lib/helpers/index.js +24 -0
  106. package/lib/helpers/index.js.map +1 -0
  107. package/lib/helpers/json-helpers.d.ts +18 -0
  108. package/lib/helpers/json-helpers.js +50 -0
  109. package/lib/helpers/json-helpers.js.map +1 -0
  110. package/lib/helpers/model-helpers.d.ts +41 -0
  111. package/lib/helpers/model-helpers.js +155 -0
  112. package/lib/helpers/model-helpers.js.map +1 -0
  113. package/lib/helpers/modelArgs-helpers.d.ts +2 -0
  114. package/lib/helpers/modelArgs-helpers.js +63 -0
  115. package/lib/helpers/modelArgs-helpers.js.map +1 -0
  116. package/lib/helpers/mongodb-helpers.d.ts +7 -0
  117. package/lib/helpers/mongodb-helpers.js +91 -0
  118. package/lib/helpers/mongodb-helpers.js.map +1 -0
  119. package/lib/helpers/select-helpers.d.ts +2 -0
  120. package/lib/helpers/select-helpers.js +231 -0
  121. package/lib/helpers/select-helpers.js.map +1 -0
  122. package/lib/helpers/whereUniqueInput-helpers.d.ts +2 -0
  123. package/lib/helpers/whereUniqueInput-helpers.js +44 -0
  124. package/lib/helpers/whereUniqueInput-helpers.js.map +1 -0
  125. package/lib/helpers/zod-integration.d.ts +82 -0
  126. package/lib/helpers/zod-integration.js +262 -0
  127. package/lib/helpers/zod-integration.js.map +1 -0
  128. package/lib/index.d.ts +1 -0
  129. package/lib/index.js +12 -0
  130. package/lib/index.js.map +1 -0
  131. package/lib/license.d.ts +56 -0
  132. package/lib/license.js +498 -0
  133. package/lib/license.js.map +1 -0
  134. package/lib/parsers/zod-comments.d.ts +230 -0
  135. package/lib/parsers/zod-comments.js +2723 -0
  136. package/lib/parsers/zod-comments.js.map +1 -0
  137. package/lib/prisma-generator.d.ts +20 -0
  138. package/lib/prisma-generator.js +2661 -0
  139. package/lib/prisma-generator.js.map +1 -0
  140. package/lib/transformer.d.ts +678 -0
  141. package/lib/transformer.js +4436 -0
  142. package/lib/transformer.js.map +1 -0
  143. package/lib/typed-json/annotation-parser.d.ts +60 -0
  144. package/lib/typed-json/annotation-parser.js +200 -0
  145. package/lib/typed-json/annotation-parser.js.map +1 -0
  146. package/lib/typed-json/emission.d.ts +115 -0
  147. package/lib/typed-json/emission.js +231 -0
  148. package/lib/typed-json/emission.js.map +1 -0
  149. package/lib/typed-json/index.d.ts +29 -0
  150. package/lib/typed-json/index.js +46 -0
  151. package/lib/typed-json/index.js.map +1 -0
  152. package/lib/typed-json/resolver.d.ts +112 -0
  153. package/lib/typed-json/resolver.js +238 -0
  154. package/lib/typed-json/resolver.js.map +1 -0
  155. package/lib/typed-json/ts-type-to-zod.d.ts +58 -0
  156. package/lib/typed-json/ts-type-to-zod.js +640 -0
  157. package/lib/typed-json/ts-type-to-zod.js.map +1 -0
  158. package/lib/types/safety.d.ts +85 -0
  159. package/lib/types/safety.js +6 -0
  160. package/lib/types/safety.js.map +1 -0
  161. package/lib/types/variants.d.ts +134 -0
  162. package/lib/types/variants.js +27 -0
  163. package/lib/types/variants.js.map +1 -0
  164. package/lib/types.d.ts +13 -0
  165. package/lib/types.js +3 -0
  166. package/lib/types.js.map +1 -0
  167. package/lib/utils/businessSecurity.d.ts +48 -0
  168. package/lib/utils/businessSecurity.js +129 -0
  169. package/lib/utils/businessSecurity.js.map +1 -0
  170. package/lib/utils/circular-dependency-detector.d.ts +42 -0
  171. package/lib/utils/circular-dependency-detector.js +175 -0
  172. package/lib/utils/circular-dependency-detector.js.map +1 -0
  173. package/lib/utils/coercion.d.ts +37 -0
  174. package/lib/utils/coercion.js +81 -0
  175. package/lib/utils/coercion.js.map +1 -0
  176. package/lib/utils/dosProtection.d.ts +24 -0
  177. package/lib/utils/dosProtection.js +32 -0
  178. package/lib/utils/dosProtection.js.map +1 -0
  179. package/lib/utils/errorHandling.d.ts +23 -0
  180. package/lib/utils/errorHandling.js +79 -0
  181. package/lib/utils/errorHandling.js.map +1 -0
  182. package/lib/utils/formatFile.d.ts +19 -0
  183. package/lib/utils/formatFile.js +80 -0
  184. package/lib/utils/formatFile.js.map +1 -0
  185. package/lib/utils/logger.d.ts +8 -0
  186. package/lib/utils/logger.js +39 -0
  187. package/lib/utils/logger.js.map +1 -0
  188. package/lib/utils/naming-resolver.d.ts +38 -0
  189. package/lib/utils/naming-resolver.js +216 -0
  190. package/lib/utils/naming-resolver.js.map +1 -0
  191. package/lib/utils/prismaImport.d.ts +1 -0
  192. package/lib/utils/prismaImport.js +13 -0
  193. package/lib/utils/prismaImport.js.map +1 -0
  194. package/lib/utils/safeOutputManagement.d.ts +20 -0
  195. package/lib/utils/safeOutputManagement.js +442 -0
  196. package/lib/utils/safeOutputManagement.js.map +1 -0
  197. package/lib/utils/safetyConfigResolver.d.ts +17 -0
  198. package/lib/utils/safetyConfigResolver.js +254 -0
  199. package/lib/utils/safetyConfigResolver.js.map +1 -0
  200. package/lib/utils/singleFileAggregator.d.ts +5 -0
  201. package/lib/utils/singleFileAggregator.js +403 -0
  202. package/lib/utils/singleFileAggregator.js.map +1 -0
  203. package/lib/utils/strict-mode-resolver.d.ts +78 -0
  204. package/lib/utils/strict-mode-resolver.js +230 -0
  205. package/lib/utils/strict-mode-resolver.js.map +1 -0
  206. package/lib/utils/writeFileSafely.d.ts +1 -0
  207. package/lib/utils/writeFileSafely.js +110 -0
  208. package/lib/utils/writeFileSafely.js.map +1 -0
  209. package/lib/utils/writeIndexFile.d.ts +2 -0
  210. package/lib/utils/writeIndexFile.js +113 -0
  211. package/lib/utils/writeIndexFile.js.map +1 -0
  212. package/llms.txt +12720 -0
  213. package/package/package.json +152 -0
  214. package/package.json +151 -0
  215. package/package.sh +98 -0
  216. package/prisma/schema.prisma +160 -0
  217. package/prisma/utils/multi-provider-test-runner.ts +791 -0
  218. package/prisma/utils/provider-config.ts +547 -0
  219. package/prisma/zod-generator.config.json +40 -0
  220. package/prisma.config.ts +15 -0
  221. package/recipes/.gitkeep +1 -0
  222. package/recipes/README.md +44 -0
  223. package/recipes/api-result-schemas/README.md +12 -0
  224. package/recipes/api-result-schemas/schema.prisma +6 -0
  225. package/recipes/api-result-schemas/zod-generator.config.json +10 -0
  226. package/recipes/circular-dependency-exclusion/README.md +71 -0
  227. package/recipes/circular-dependency-exclusion/schema.prisma +95 -0
  228. package/recipes/circular-dependency-exclusion/zod-generator.config.json +28 -0
  229. package/recipes/crud-only/README.md +24 -0
  230. package/recipes/crud-only/schema.prisma +31 -0
  231. package/recipes/crud-only/zod-generator.config.json +11 -0
  232. package/recipes/granular-per-model/README.md +12 -0
  233. package/recipes/granular-per-model/schema.prisma +6 -0
  234. package/recipes/granular-per-model/zod-generator.config.json +17 -0
  235. package/recipes/hide-fields/README.md +12 -0
  236. package/recipes/hide-fields/schema.prisma +6 -0
  237. package/recipes/hide-fields/zod-generator.config.json +19 -0
  238. package/recipes/input-variant-only/README.md +25 -0
  239. package/recipes/input-variant-only/schema.prisma +30 -0
  240. package/recipes/input-variant-only/zod-generator.config.json +16 -0
  241. package/recipes/json-friendly-datetime/README.md +56 -0
  242. package/recipes/json-friendly-datetime/schema.prisma +38 -0
  243. package/recipes/json-friendly-datetime/zod-generator.config.json +18 -0
  244. package/recipes/minimal-crud/README.md +12 -0
  245. package/recipes/minimal-crud/schema.prisma +7 -0
  246. package/recipes/minimal-crud/zod-generator.config.json +9 -0
  247. package/recipes/models-only/README.md +12 -0
  248. package/recipes/models-only/schema.prisma +6 -0
  249. package/recipes/models-only/zod-generator.config.json +11 -0
  250. package/recipes/optional-field-behavior/README.md +42 -0
  251. package/recipes/optional-field-behavior/nullable.config.json +7 -0
  252. package/recipes/optional-field-behavior/optional-strict.config.json +7 -0
  253. package/recipes/optional-field-behavior/schema.prisma +49 -0
  254. package/recipes/optional-field-behavior/zod-generator.config.json +7 -0
  255. package/recipes/pure-models-lean/README.md +84 -0
  256. package/recipes/pure-models-lean/schema.prisma +22 -0
  257. package/recipes/pure-models-lean/zod-generator.config.json +6 -0
  258. package/recipes/result-variant-only/README.md +25 -0
  259. package/recipes/result-variant-only/schema.prisma +29 -0
  260. package/recipes/result-variant-only/zod-generator.config.json +16 -0
  261. package/recipes/single-file/README.md +12 -0
  262. package/recipes/single-file/schema.prisma +8 -0
  263. package/recipes/single-file/zod-generator.config.json +12 -0
  264. package/recipes/trpc-optimized/schema.prisma +9 -0
  265. package/recipes/trpc-optimized/zod-generator.config.json +14 -0
  266. package/recipes/zod-imports/README.md +19 -0
  267. package/recipes/zod-imports/zod-generator.auto.json +3 -0
  268. package/recipes/zod-imports/zod-generator.v3.json +3 -0
  269. package/recipes/zod-imports/zod-generator.v4.json +3 -0
  270. package/scripts/agent-banner.js +37 -0
  271. package/scripts/clean-test-envs.js +102 -0
  272. package/scripts/generate-jsonschema.ts +14 -0
  273. package/scripts/generate-llms-txt.mjs +400 -0
  274. package/scripts/obfuscate-pro.js +171 -0
  275. package/scripts/postinstall.js +19 -0
  276. package/scripts/render-mermaid.ts +174 -0
  277. package/scripts/tree-shake.js +131 -0
  278. package/scripts/verify-checksums.js +169 -0
  279. package/scripts/verify-package-consumer.mjs +198 -0
  280. package/src/cli/license-check.ts +66 -0
  281. package/src/cli/pzg-pro-generator.ts +672 -0
  282. package/src/cli/pzg-pro.ts +119 -0
  283. package/src/config/defaults.ts +508 -0
  284. package/src/config/generator-options.ts +522 -0
  285. package/src/config/parser.ts +721 -0
  286. package/src/config/schema.ts +1046 -0
  287. package/src/config/typed-json.ts +219 -0
  288. package/src/config/validator.ts +469 -0
  289. package/src/generator.ts +43 -0
  290. package/src/generators/model.ts +3486 -0
  291. package/src/generators/results.ts +1045 -0
  292. package/src/generators/typed-field-update-operations.ts +250 -0
  293. package/src/generators/typed-json-namespace.ts +413 -0
  294. package/src/helpers/aggregate-helpers.ts +94 -0
  295. package/src/helpers/comments-helpers.ts +120 -0
  296. package/src/helpers/decimal-helpers.ts +136 -0
  297. package/src/helpers/helpers.ts +116 -0
  298. package/src/helpers/include-helpers.ts +140 -0
  299. package/src/helpers/index.ts +7 -0
  300. package/src/helpers/json-helpers.ts +46 -0
  301. package/src/helpers/model-helpers.ts +152 -0
  302. package/src/helpers/modelArgs-helpers.ts +79 -0
  303. package/src/helpers/mongodb-helpers.ts +108 -0
  304. package/src/helpers/select-helpers.ts +286 -0
  305. package/src/helpers/whereUniqueInput-helpers.ts +41 -0
  306. package/src/helpers/zod-integration.ts +375 -0
  307. package/src/index.ts +10 -0
  308. package/src/license.ts +634 -0
  309. package/src/parsers/zod-comments.ts +3181 -0
  310. package/src/prisma-generator.ts +3254 -0
  311. package/src/transformer.ts +5717 -0
  312. package/src/typed-json/annotation-parser.ts +252 -0
  313. package/src/typed-json/emission.ts +239 -0
  314. package/src/typed-json/index.ts +69 -0
  315. package/src/typed-json/resolver.ts +329 -0
  316. package/src/typed-json/ts-type-to-zod.ts +715 -0
  317. package/src/types/prisma-internals-augment.d.ts +17 -0
  318. package/src/types/safety.ts +102 -0
  319. package/src/types/variants.ts +193 -0
  320. package/src/types.ts +13 -0
  321. package/src/utils/businessSecurity.ts +163 -0
  322. package/src/utils/circular-dependency-detector.ts +218 -0
  323. package/src/utils/dosProtection.ts +29 -0
  324. package/src/utils/errorHandling.ts +85 -0
  325. package/src/utils/formatFile.ts +77 -0
  326. package/src/utils/logger.ts +35 -0
  327. package/src/utils/naming-resolver.ts +294 -0
  328. package/src/utils/prismaImport.ts +7 -0
  329. package/src/utils/safeOutputManagement.ts +538 -0
  330. package/src/utils/safetyConfigResolver.ts +296 -0
  331. package/src/utils/singleFileAggregator.ts +450 -0
  332. package/src/utils/strict-mode-resolver.ts +287 -0
  333. package/src/utils/writeFileSafely.ts +113 -0
  334. package/src/utils/writeIndexFile.ts +71 -0
  335. package/test-report.json +8536 -0
  336. package/tests/README.md +226 -0
  337. package/tests/__snapshots__/typed-json-corpus-conformance.test.ts.snap +34 -0
  338. package/tests/__snapshots__/typed-json-pjtg-corpus.test.ts.snap +56 -0
  339. package/tests/aggregate-groupby.test.ts +345 -0
  340. package/tests/aggregate-result-shape.test.ts +258 -0
  341. package/tests/array-fields.test.ts +718 -0
  342. package/tests/business-security-gate.test.ts +163 -0
  343. package/tests/circular-dependency-exclusion.test.ts +734 -0
  344. package/tests/cli-commands.test.ts +134 -0
  345. package/tests/compat/pjtg/UPSTREAM-LICENSE +21 -0
  346. package/tests/compat/pjtg/schemas/any.prisma +19 -0
  347. package/tests/compat/pjtg/schemas/array.prisma +19 -0
  348. package/tests/compat/pjtg/schemas/cockroach.prisma +35 -0
  349. package/tests/compat/pjtg/schemas/extensions.prisma +21 -0
  350. package/tests/compat/pjtg/schemas/literal.prisma +26 -0
  351. package/tests/compat/pjtg/schemas/mongo.prisma +49 -0
  352. package/tests/compat/pjtg/schemas/mssql.prisma +25 -0
  353. package/tests/compat/pjtg/schemas/multiple-clients.prisma +31 -0
  354. package/tests/compat/pjtg/schemas/mysql.prisma +35 -0
  355. package/tests/compat/pjtg/schemas/normal-prisma-client.prisma +40 -0
  356. package/tests/compat/pjtg/schemas/normal.prisma +36 -0
  357. package/tests/compat/pjtg/schemas/nullable.prisma +29 -0
  358. package/tests/compat/pjtg/schemas/number.prisma +26 -0
  359. package/tests/compat/pjtg/schemas/skip.prisma +27 -0
  360. package/tests/compat/pjtg/schemas/sqlite.prisma +25 -0
  361. package/tests/compat/pjtg/schemas/string.prisma +29 -0
  362. package/tests/compat/pjtg/schemas/unknown.prisma +22 -0
  363. package/tests/compat/pjtg/schemas/use-type.prisma +26 -0
  364. package/tests/compat/pjtg/types/any.test-d.ts +12 -0
  365. package/tests/compat/pjtg/types/array.test-d.ts +29 -0
  366. package/tests/compat/pjtg/types/cockroach.test-d.ts +73 -0
  367. package/tests/compat/pjtg/types/extensions.test-d.ts +47 -0
  368. package/tests/compat/pjtg/types/literal.test-d.ts +107 -0
  369. package/tests/compat/pjtg/types/mongo.test-d.ts +170 -0
  370. package/tests/compat/pjtg/types/mssql.test-d.ts +22 -0
  371. package/tests/compat/pjtg/types/multiple-clients.test-d.ts +148 -0
  372. package/tests/compat/pjtg/types/mysql.test-d.ts +73 -0
  373. package/tests/compat/pjtg/types/normal-prisma-client.test-d.ts +120 -0
  374. package/tests/compat/pjtg/types/normal.test-d.ts +295 -0
  375. package/tests/compat/pjtg/types/nullable.test-d.ts +60 -0
  376. package/tests/compat/pjtg/types/number.test-d.ts +227 -0
  377. package/tests/compat/pjtg/types/skip.test-d.ts +27 -0
  378. package/tests/compat/pjtg/types/sqlite.test-d.ts +22 -0
  379. package/tests/compat/pjtg/types/string.test-d.ts +143 -0
  380. package/tests/compat/pjtg/types/unknown.test-d.ts +25 -0
  381. package/tests/compat/pjtg/types/use-type.test-d.ts +117 -0
  382. package/tests/compound-unique-key-collision.test.ts +277 -0
  383. package/tests/comprehensive-schema-coverage.test.ts +403 -0
  384. package/tests/config-schema-completeness.test.ts +94 -0
  385. package/tests/config.test.ts +372 -0
  386. package/tests/count-output-type-select-where.test.ts +112 -0
  387. package/tests/custom-prisma-client-output.test.ts +170 -0
  388. package/tests/debug-issue-304.test.ts +44 -0
  389. package/tests/decimal-input-schemas.test.ts +498 -0
  390. package/tests/decimal-support.test.ts +582 -0
  391. package/tests/emit-controls.test.ts +240 -0
  392. package/tests/emitted-json-helpers.test.ts +132 -0
  393. package/tests/enum-array-zod-annotations.test.ts +66 -0
  394. package/tests/environment-cleanup.test.ts +40 -0
  395. package/tests/error-handling.test.ts +128 -0
  396. package/tests/field-exclusion.test.ts +1074 -0
  397. package/tests/filtering.test.ts +919 -0
  398. package/tests/generated-output-compiles.test.ts +177 -0
  399. package/tests/generated-schema-runtime.test.ts +185 -0
  400. package/tests/generated-schema.test.ts +59 -0
  401. package/tests/generator-options.test.ts +122 -0
  402. package/tests/groupby-count-literal.test.ts +38 -0
  403. package/tests/groupby-result-shape.test.ts +149 -0
  404. package/tests/helpers/global-setup.ts +117 -0
  405. package/tests/helpers/index.ts +94 -0
  406. package/tests/helpers/mock-generators.ts +896 -0
  407. package/tests/helpers/prisma-generate.ts +81 -0
  408. package/tests/helpers/test-utils.ts +580 -0
  409. package/tests/helpers/user-post-objects-fixture.ts +90 -0
  410. package/tests/integration-basic.test.ts +310 -0
  411. package/tests/integration.test.ts +1234 -0
  412. package/tests/invalid-zod-annotations.test.ts +78 -0
  413. package/tests/issue-118-output-directory.test.ts +188 -0
  414. package/tests/issue-119-regression.test.ts +193 -0
  415. package/tests/issue-193-enum-imports-custom-variants.test.ts +79 -0
  416. package/tests/issue-194-zod-custom-use-chained.test.ts +71 -0
  417. package/tests/issue-196-json-helper-import-path.test.ts +64 -0
  418. package/tests/issue-225-meta-describe.test.ts +114 -0
  419. package/tests/issue-227-single-file-imports.test.ts +325 -0
  420. package/tests/issue-227-zod-annotations.test.ts +366 -0
  421. package/tests/issue-233-zod-v4-string-formats.test.ts +600 -0
  422. package/tests/issue-304-custom-naming-imports.test.ts +163 -0
  423. package/tests/issue-335-single-file-custom-imports.test.ts +104 -0
  424. package/tests/issue-364-input-json-value-type.test.ts +73 -0
  425. package/tests/issue-367-decimal-client-safe.test.ts +148 -0
  426. package/tests/issue-368-variant-datetime-strategy.test.ts +143 -0
  427. package/tests/issue-370-custom-zod-import-path.test.ts +129 -0
  428. package/tests/issue-375-shadcn-form-compat.test.ts +104 -0
  429. package/tests/issue-376-result-relation-schemas.test.ts +308 -0
  430. package/tests/issue-377-zod-v4-runtime-recursion.test.ts +111 -0
  431. package/tests/issue-378-unused-prisma-imports.test.ts +199 -0
  432. package/tests/issue-382-raw-suffix-model.test.ts +121 -0
  433. package/tests/issue-386-typed-json-fields.test.ts +137 -0
  434. package/tests/issue-387-select-relation-args.test.ts +182 -0
  435. package/tests/issue-390-nodenext-import-extensions.test.ts +93 -0
  436. package/tests/issue-395-result-decimal-mode.test.ts +136 -0
  437. package/tests/issue-396-global-exclusions-array.test.ts +93 -0
  438. package/tests/json-config-output-precedence.test.ts +75 -0
  439. package/tests/json-schema-compatibility.test.ts +972 -0
  440. package/tests/license-validation.test.ts +110 -0
  441. package/tests/manifest-path-containment.test.ts +102 -0
  442. package/tests/minimal-mode.test.ts +812 -0
  443. package/tests/mongodb-composite-types.test.ts +108 -0
  444. package/tests/mongodb-schema-coverage.test.ts +403 -0
  445. package/tests/multi-provider/README.md +240 -0
  446. package/tests/multi-provider/multi-provider.test.ts +241 -0
  447. package/tests/multi-provider/provider-test-suite.ts +451 -0
  448. package/tests/multi-provider/schemas/mongodb/generated/.prisma-zod-generator-manifest.json +266 -0
  449. package/tests/multi-provider/schemas/mongodb/generated/helpers/json-helpers.ts +28 -0
  450. package/tests/multi-provider/schemas/mongodb/generated/schemas/aggregateMongoPost.schema.ts +12 -0
  451. package/tests/multi-provider/schemas/mongodb/generated/schemas/aggregateMongoProfile.schema.ts +12 -0
  452. package/tests/multi-provider/schemas/mongodb/generated/schemas/aggregateMongoUser.schema.ts +12 -0
  453. package/tests/multi-provider/schemas/mongodb/generated/schemas/countMongoPost.schema.ts +10 -0
  454. package/tests/multi-provider/schemas/mongodb/generated/schemas/countMongoProfile.schema.ts +10 -0
  455. package/tests/multi-provider/schemas/mongodb/generated/schemas/countMongoUser.schema.ts +10 -0
  456. package/tests/multi-provider/schemas/mongodb/generated/schemas/createManyMongoPost.schema.ts +7 -0
  457. package/tests/multi-provider/schemas/mongodb/generated/schemas/createManyMongoProfile.schema.ts +7 -0
  458. package/tests/multi-provider/schemas/mongodb/generated/schemas/createManyMongoUser.schema.ts +7 -0
  459. package/tests/multi-provider/schemas/mongodb/generated/schemas/createOneMongoPost.schema.ts +10 -0
  460. package/tests/multi-provider/schemas/mongodb/generated/schemas/createOneMongoProfile.schema.ts +10 -0
  461. package/tests/multi-provider/schemas/mongodb/generated/schemas/createOneMongoUser.schema.ts +10 -0
  462. package/tests/multi-provider/schemas/mongodb/generated/schemas/deleteManyMongoPost.schema.ts +7 -0
  463. package/tests/multi-provider/schemas/mongodb/generated/schemas/deleteManyMongoProfile.schema.ts +7 -0
  464. package/tests/multi-provider/schemas/mongodb/generated/schemas/deleteManyMongoUser.schema.ts +7 -0
  465. package/tests/multi-provider/schemas/mongodb/generated/schemas/deleteOneMongoPost.schema.ts +9 -0
  466. package/tests/multi-provider/schemas/mongodb/generated/schemas/deleteOneMongoProfile.schema.ts +9 -0
  467. package/tests/multi-provider/schemas/mongodb/generated/schemas/deleteOneMongoUser.schema.ts +9 -0
  468. package/tests/multi-provider/schemas/mongodb/generated/schemas/enums/MongoPostScalarFieldEnum.schema.ts +5 -0
  469. package/tests/multi-provider/schemas/mongodb/generated/schemas/enums/MongoProfileScalarFieldEnum.schema.ts +5 -0
  470. package/tests/multi-provider/schemas/mongodb/generated/schemas/enums/MongoUserScalarFieldEnum.schema.ts +5 -0
  471. package/tests/multi-provider/schemas/mongodb/generated/schemas/enums/QueryMode.schema.ts +5 -0
  472. package/tests/multi-provider/schemas/mongodb/generated/schemas/enums/SortOrder.schema.ts +5 -0
  473. package/tests/multi-provider/schemas/mongodb/generated/schemas/findFirstMongoPost.schema.ts +35 -0
  474. package/tests/multi-provider/schemas/mongodb/generated/schemas/findFirstMongoProfile.schema.ts +29 -0
  475. package/tests/multi-provider/schemas/mongodb/generated/schemas/findFirstMongoUser.schema.ts +35 -0
  476. package/tests/multi-provider/schemas/mongodb/generated/schemas/findFirstOrThrowMongoPost.schema.ts +35 -0
  477. package/tests/multi-provider/schemas/mongodb/generated/schemas/findFirstOrThrowMongoProfile.schema.ts +29 -0
  478. package/tests/multi-provider/schemas/mongodb/generated/schemas/findFirstOrThrowMongoUser.schema.ts +35 -0
  479. package/tests/multi-provider/schemas/mongodb/generated/schemas/findManyMongoPost.schema.ts +35 -0
  480. package/tests/multi-provider/schemas/mongodb/generated/schemas/findManyMongoProfile.schema.ts +29 -0
  481. package/tests/multi-provider/schemas/mongodb/generated/schemas/findManyMongoUser.schema.ts +35 -0
  482. package/tests/multi-provider/schemas/mongodb/generated/schemas/findUniqueMongoPost.schema.ts +9 -0
  483. package/tests/multi-provider/schemas/mongodb/generated/schemas/findUniqueMongoProfile.schema.ts +9 -0
  484. package/tests/multi-provider/schemas/mongodb/generated/schemas/findUniqueMongoUser.schema.ts +9 -0
  485. package/tests/multi-provider/schemas/mongodb/generated/schemas/findUniqueOrThrowMongoPost.schema.ts +9 -0
  486. package/tests/multi-provider/schemas/mongodb/generated/schemas/findUniqueOrThrowMongoProfile.schema.ts +9 -0
  487. package/tests/multi-provider/schemas/mongodb/generated/schemas/findUniqueOrThrowMongoUser.schema.ts +9 -0
  488. package/tests/multi-provider/schemas/mongodb/generated/schemas/groupByMongoPost.schema.ts +13 -0
  489. package/tests/multi-provider/schemas/mongodb/generated/schemas/groupByMongoProfile.schema.ts +13 -0
  490. package/tests/multi-provider/schemas/mongodb/generated/schemas/groupByMongoUser.schema.ts +13 -0
  491. package/tests/multi-provider/schemas/mongodb/generated/schemas/index.ts +104 -0
  492. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/BoolFieldUpdateOperationsInput.schema.ts +9 -0
  493. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/BoolFilter.schema.ts +10 -0
  494. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/BoolWithAggregatesFilter.schema.ts +15 -0
  495. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/DateTimeFieldUpdateOperationsInput.schema.ts +9 -0
  496. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/DateTimeFilter.schema.ts +16 -0
  497. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/DateTimeWithAggregatesFilter.schema.ts +21 -0
  498. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostArgs.schema.ts +10 -0
  499. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostCountAggregateInput.schema.ts +15 -0
  500. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostCountOrderByAggregateInput.schema.ts +14 -0
  501. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostCreateInput.schema.ts +14 -0
  502. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostCreateManyAuthorInput.schema.ts +13 -0
  503. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostCreateManyAuthorInputEnvelope.schema.ts +9 -0
  504. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostCreateManyInput.schema.ts +14 -0
  505. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostCreateNestedManyWithoutAuthorInput.schema.ts +16 -0
  506. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostCreateOrConnectWithoutAuthorInput.schema.ts +12 -0
  507. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostCreateWithoutAuthorInput.schema.ts +13 -0
  508. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostInclude.schema.ts +9 -0
  509. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostListRelationFilter.schema.ts +11 -0
  510. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostMaxAggregateInput.schema.ts +14 -0
  511. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostMaxOrderByAggregateInput.schema.ts +14 -0
  512. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostMinAggregateInput.schema.ts +14 -0
  513. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostMinOrderByAggregateInput.schema.ts +14 -0
  514. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostOrderByRelationAggregateInput.schema.ts +9 -0
  515. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostOrderByWithAggregationInput.schema.ts +20 -0
  516. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostOrderByWithRelationInput.schema.ts +16 -0
  517. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostScalarWhereInput.schema.ts +20 -0
  518. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostScalarWhereWithAggregatesInput.schema.ts +20 -0
  519. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostSelect.schema.ts +15 -0
  520. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostUncheckedCreateInput.schema.ts +14 -0
  521. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostUncheckedCreateNestedManyWithoutAuthorInput.schema.ts +16 -0
  522. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostUncheckedCreateWithoutAuthorInput.schema.ts +13 -0
  523. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostUncheckedUpdateInput.schema.ts +16 -0
  524. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostUncheckedUpdateManyInput.schema.ts +16 -0
  525. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostUncheckedUpdateManyWithoutAuthorInput.schema.ts +15 -0
  526. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostUncheckedUpdateManyWithoutAuthorNestedInput.schema.ts +27 -0
  527. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostUncheckedUpdateWithoutAuthorInput.schema.ts +15 -0
  528. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostUpdateInput.schema.ts +17 -0
  529. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostUpdateManyMutationInput.schema.ts +15 -0
  530. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostUpdateManyWithWhereWithoutAuthorInput.schema.ts +12 -0
  531. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostUpdateManyWithoutAuthorNestedInput.schema.ts +27 -0
  532. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostUpdateWithWhereUniqueWithoutAuthorInput.schema.ts +12 -0
  533. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostUpdateWithoutAuthorInput.schema.ts +15 -0
  534. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostUpsertWithWhereUniqueWithoutAuthorInput.schema.ts +15 -0
  535. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostWhereInput.schema.ts +23 -0
  536. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoPostWhereUniqueInput.schema.ts +9 -0
  537. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileArgs.schema.ts +10 -0
  538. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileCountAggregateInput.schema.ts +12 -0
  539. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileCountOrderByAggregateInput.schema.ts +11 -0
  540. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileCreateInput.schema.ts +11 -0
  541. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileCreateManyInput.schema.ts +11 -0
  542. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileCreateNestedOneWithoutUserInput.schema.ts +14 -0
  543. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileCreateOrConnectWithoutUserInput.schema.ts +12 -0
  544. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileCreateWithoutUserInput.schema.ts +10 -0
  545. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileInclude.schema.ts +9 -0
  546. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileMaxAggregateInput.schema.ts +11 -0
  547. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileMaxOrderByAggregateInput.schema.ts +11 -0
  548. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileMinAggregateInput.schema.ts +11 -0
  549. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileMinOrderByAggregateInput.schema.ts +11 -0
  550. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileNullableScalarRelationFilter.schema.ts +10 -0
  551. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileOrderByWithAggregationInput.schema.ts +17 -0
  552. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileOrderByWithRelationInput.schema.ts +13 -0
  553. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileScalarWhereWithAggregatesInput.schema.ts +15 -0
  554. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileSelect.schema.ts +12 -0
  555. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileUncheckedCreateInput.schema.ts +11 -0
  556. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileUncheckedCreateNestedOneWithoutUserInput.schema.ts +14 -0
  557. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileUncheckedCreateWithoutUserInput.schema.ts +10 -0
  558. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileUncheckedUpdateInput.schema.ts +11 -0
  559. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileUncheckedUpdateManyInput.schema.ts +11 -0
  560. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileUncheckedUpdateOneWithoutUserNestedInput.schema.ts +23 -0
  561. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileUncheckedUpdateWithoutUserInput.schema.ts +9 -0
  562. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileUpdateInput.schema.ts +11 -0
  563. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileUpdateManyMutationInput.schema.ts +9 -0
  564. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileUpdateOneWithoutUserNestedInput.schema.ts +23 -0
  565. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileUpdateToOneWithWhereWithoutUserInput.schema.ts +12 -0
  566. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileUpdateWithoutUserInput.schema.ts +9 -0
  567. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileUpsertWithoutUserInput.schema.ts +15 -0
  568. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileWhereInput.schema.ts +18 -0
  569. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoProfileWhereUniqueInput.schema.ts +10 -0
  570. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserArgs.schema.ts +10 -0
  571. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserCountAggregateInput.schema.ts +12 -0
  572. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserCountOrderByAggregateInput.schema.ts +11 -0
  573. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserCountOutputTypeArgs.schema.ts +8 -0
  574. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserCountOutputTypeCountPostsArgs.schema.ts +8 -0
  575. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserCountOutputTypeSelect.schema.ts +9 -0
  576. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserCreateInput.schema.ts +14 -0
  577. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserCreateManyInput.schema.ts +11 -0
  578. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserCreateNestedOneWithoutPostsInput.schema.ts +14 -0
  579. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserCreateNestedOneWithoutProfileInput.schema.ts +14 -0
  580. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserCreateOrConnectWithoutPostsInput.schema.ts +12 -0
  581. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserCreateOrConnectWithoutProfileInput.schema.ts +12 -0
  582. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserCreateWithoutPostsInput.schema.ts +12 -0
  583. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserCreateWithoutProfileInput.schema.ts +12 -0
  584. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserInclude.schema.ts +13 -0
  585. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserMaxAggregateInput.schema.ts +11 -0
  586. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserMaxOrderByAggregateInput.schema.ts +11 -0
  587. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserMinAggregateInput.schema.ts +11 -0
  588. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserMinOrderByAggregateInput.schema.ts +11 -0
  589. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserOrderByWithAggregationInput.schema.ts +17 -0
  590. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserOrderByWithRelationInput.schema.ts +15 -0
  591. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserScalarRelationFilter.schema.ts +10 -0
  592. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserScalarWhereWithAggregatesInput.schema.ts +15 -0
  593. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserSelect.schema.ts +16 -0
  594. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserUncheckedCreateInput.schema.ts +14 -0
  595. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserUncheckedCreateWithoutPostsInput.schema.ts +12 -0
  596. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserUncheckedCreateWithoutProfileInput.schema.ts +12 -0
  597. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserUncheckedUpdateInput.schema.ts +15 -0
  598. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserUncheckedUpdateManyInput.schema.ts +11 -0
  599. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserUncheckedUpdateWithoutPostsInput.schema.ts +13 -0
  600. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserUncheckedUpdateWithoutProfileInput.schema.ts +13 -0
  601. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserUpdateInput.schema.ts +15 -0
  602. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserUpdateManyMutationInput.schema.ts +11 -0
  603. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserUpdateOneRequiredWithoutPostsNestedInput.schema.ts +20 -0
  604. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserUpdateOneRequiredWithoutProfileNestedInput.schema.ts +20 -0
  605. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserUpdateToOneWithWhereWithoutPostsInput.schema.ts +12 -0
  606. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserUpdateToOneWithWhereWithoutProfileInput.schema.ts +12 -0
  607. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserUpdateWithoutPostsInput.schema.ts +13 -0
  608. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserUpdateWithoutProfileInput.schema.ts +13 -0
  609. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserUpsertWithoutPostsInput.schema.ts +15 -0
  610. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserUpsertWithoutProfileInput.schema.ts +15 -0
  611. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserWhereInput.schema.ts +20 -0
  612. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/MongoUserWhereUniqueInput.schema.ts +10 -0
  613. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/NestedBoolFilter.schema.ts +10 -0
  614. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/NestedBoolWithAggregatesFilter.schema.ts +14 -0
  615. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/NestedDateTimeFilter.schema.ts +16 -0
  616. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/NestedDateTimeWithAggregatesFilter.schema.ts +20 -0
  617. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/NestedIntFilter.schema.ts +16 -0
  618. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/NestedIntNullableFilter.schema.ts +17 -0
  619. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/NestedStringFilter.schema.ts +19 -0
  620. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/NestedStringNullableFilter.schema.ts +20 -0
  621. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/NestedStringNullableWithAggregatesFilter.schema.ts +24 -0
  622. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/NestedStringWithAggregatesFilter.schema.ts +23 -0
  623. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/NullableStringFieldUpdateOperationsInput.schema.ts +10 -0
  624. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/StringFieldUpdateOperationsInput.schema.ts +9 -0
  625. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/StringFilter.schema.ts +21 -0
  626. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/StringNullableFilter.schema.ts +22 -0
  627. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/StringNullableWithAggregatesFilter.schema.ts +27 -0
  628. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/StringWithAggregatesFilter.schema.ts +26 -0
  629. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/aggregateMongoPostRaw.schema.ts +11 -0
  630. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/aggregateMongoProfileRaw.schema.ts +11 -0
  631. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/aggregateMongoUserRaw.schema.ts +11 -0
  632. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/findMongoPostRaw.schema.ts +11 -0
  633. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/findMongoProfileRaw.schema.ts +11 -0
  634. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/findMongoUserRaw.schema.ts +11 -0
  635. package/tests/multi-provider/schemas/mongodb/generated/schemas/objects/index.ts +148 -0
  636. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoPostAggregateResult.schema.ts +26 -0
  637. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoPostCountResult.schema.ts +2 -0
  638. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoPostCreateManyResult.schema.ts +4 -0
  639. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoPostCreateResult.schema.ts +10 -0
  640. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoPostDeleteManyResult.schema.ts +4 -0
  641. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoPostDeleteResult.schema.ts +10 -0
  642. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoPostFindFirstResult.schema.ts +10 -0
  643. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoPostFindManyResult.schema.ts +20 -0
  644. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoPostFindUniqueResult.schema.ts +10 -0
  645. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoPostGroupByResult.schema.ts +34 -0
  646. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoPostUpdateManyResult.schema.ts +4 -0
  647. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoPostUpdateResult.schema.ts +10 -0
  648. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoPostUpsertResult.schema.ts +10 -0
  649. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoProfileAggregateResult.schema.ts +17 -0
  650. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoProfileCountResult.schema.ts +2 -0
  651. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoProfileCreateManyResult.schema.ts +4 -0
  652. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoProfileCreateResult.schema.ts +7 -0
  653. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoProfileDeleteManyResult.schema.ts +4 -0
  654. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoProfileDeleteResult.schema.ts +7 -0
  655. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoProfileFindFirstResult.schema.ts +7 -0
  656. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoProfileFindManyResult.schema.ts +17 -0
  657. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoProfileFindUniqueResult.schema.ts +7 -0
  658. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoProfileGroupByResult.schema.ts +22 -0
  659. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoProfileUpdateManyResult.schema.ts +4 -0
  660. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoProfileUpdateResult.schema.ts +7 -0
  661. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoProfileUpsertResult.schema.ts +7 -0
  662. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoUserAggregateResult.schema.ts +17 -0
  663. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoUserCountResult.schema.ts +2 -0
  664. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoUserCreateManyResult.schema.ts +4 -0
  665. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoUserCreateResult.schema.ts +8 -0
  666. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoUserDeleteManyResult.schema.ts +4 -0
  667. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoUserDeleteResult.schema.ts +8 -0
  668. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoUserFindFirstResult.schema.ts +8 -0
  669. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoUserFindManyResult.schema.ts +18 -0
  670. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoUserFindUniqueResult.schema.ts +8 -0
  671. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoUserGroupByResult.schema.ts +22 -0
  672. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoUserUpdateManyResult.schema.ts +4 -0
  673. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoUserUpdateResult.schema.ts +8 -0
  674. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/MongoUserUpsertResult.schema.ts +8 -0
  675. package/tests/multi-provider/schemas/mongodb/generated/schemas/results/index.ts +39 -0
  676. package/tests/multi-provider/schemas/mongodb/generated/schemas/updateManyMongoPost.schema.ts +8 -0
  677. package/tests/multi-provider/schemas/mongodb/generated/schemas/updateManyMongoProfile.schema.ts +8 -0
  678. package/tests/multi-provider/schemas/mongodb/generated/schemas/updateManyMongoUser.schema.ts +8 -0
  679. package/tests/multi-provider/schemas/mongodb/generated/schemas/updateOneMongoPost.schema.ts +11 -0
  680. package/tests/multi-provider/schemas/mongodb/generated/schemas/updateOneMongoProfile.schema.ts +11 -0
  681. package/tests/multi-provider/schemas/mongodb/generated/schemas/updateOneMongoUser.schema.ts +11 -0
  682. package/tests/multi-provider/schemas/mongodb/generated/schemas/upsertOneMongoPost.schema.ts +13 -0
  683. package/tests/multi-provider/schemas/mongodb/generated/schemas/upsertOneMongoProfile.schema.ts +13 -0
  684. package/tests/multi-provider/schemas/mongodb/generated/schemas/upsertOneMongoUser.schema.ts +13 -0
  685. package/tests/multi-provider/schemas/mongodb/generated/schemas/variants/index.ts +8 -0
  686. package/tests/multi-provider/schemas/mongodb/generated/schemas/variants/input/MongoPost.input.ts +13 -0
  687. package/tests/multi-provider/schemas/mongodb/generated/schemas/variants/input/MongoProfile.input.ts +10 -0
  688. package/tests/multi-provider/schemas/mongodb/generated/schemas/variants/input/MongoUser.input.ts +11 -0
  689. package/tests/multi-provider/schemas/mongodb/generated/schemas/variants/input/index.ts +8 -0
  690. package/tests/multi-provider/schemas/mongodb/generated/schemas/variants/pure/MongoPost.pure.ts +13 -0
  691. package/tests/multi-provider/schemas/mongodb/generated/schemas/variants/pure/MongoProfile.pure.ts +10 -0
  692. package/tests/multi-provider/schemas/mongodb/generated/schemas/variants/pure/MongoUser.pure.ts +11 -0
  693. package/tests/multi-provider/schemas/mongodb/generated/schemas/variants/pure/index.ts +8 -0
  694. package/tests/multi-provider/schemas/mongodb/generated/schemas/variants/result/MongoPost.result.ts +13 -0
  695. package/tests/multi-provider/schemas/mongodb/generated/schemas/variants/result/MongoProfile.result.ts +10 -0
  696. package/tests/multi-provider/schemas/mongodb/generated/schemas/variants/result/MongoUser.result.ts +11 -0
  697. package/tests/multi-provider/schemas/mongodb/generated/schemas/variants/result/index.ts +8 -0
  698. package/tests/multi-provider/schemas/mongodb/prisma.config.mjs +8 -0
  699. package/tests/multi-provider/schemas/mongodb/schema.prisma +38 -0
  700. package/tests/multi-provider/schemas/mysql/generated/.prisma-zod-generator-manifest.json +210 -0
  701. package/tests/multi-provider/schemas/mysql/generated/schemas/aggregateMySQLPost.schema.ts +14 -0
  702. package/tests/multi-provider/schemas/mysql/generated/schemas/aggregateMySQLUser.schema.ts +14 -0
  703. package/tests/multi-provider/schemas/mysql/generated/schemas/countMySQLPost.schema.ts +10 -0
  704. package/tests/multi-provider/schemas/mysql/generated/schemas/countMySQLUser.schema.ts +10 -0
  705. package/tests/multi-provider/schemas/mysql/generated/schemas/createManyMySQLPost.schema.ts +7 -0
  706. package/tests/multi-provider/schemas/mysql/generated/schemas/createManyMySQLUser.schema.ts +7 -0
  707. package/tests/multi-provider/schemas/mysql/generated/schemas/createOneMySQLPost.schema.ts +10 -0
  708. package/tests/multi-provider/schemas/mysql/generated/schemas/createOneMySQLUser.schema.ts +10 -0
  709. package/tests/multi-provider/schemas/mysql/generated/schemas/deleteManyMySQLPost.schema.ts +7 -0
  710. package/tests/multi-provider/schemas/mysql/generated/schemas/deleteManyMySQLUser.schema.ts +7 -0
  711. package/tests/multi-provider/schemas/mysql/generated/schemas/deleteOneMySQLPost.schema.ts +9 -0
  712. package/tests/multi-provider/schemas/mysql/generated/schemas/deleteOneMySQLUser.schema.ts +9 -0
  713. package/tests/multi-provider/schemas/mysql/generated/schemas/enums/MySQLPostOrderByRelevanceFieldEnum.schema.ts +5 -0
  714. package/tests/multi-provider/schemas/mysql/generated/schemas/enums/MySQLPostScalarFieldEnum.schema.ts +5 -0
  715. package/tests/multi-provider/schemas/mysql/generated/schemas/enums/MySQLUserOrderByRelevanceFieldEnum.schema.ts +5 -0
  716. package/tests/multi-provider/schemas/mysql/generated/schemas/enums/MySQLUserScalarFieldEnum.schema.ts +5 -0
  717. package/tests/multi-provider/schemas/mysql/generated/schemas/enums/NullsOrder.schema.ts +5 -0
  718. package/tests/multi-provider/schemas/mysql/generated/schemas/enums/SortOrder.schema.ts +5 -0
  719. package/tests/multi-provider/schemas/mysql/generated/schemas/enums/TransactionIsolationLevel.schema.ts +5 -0
  720. package/tests/multi-provider/schemas/mysql/generated/schemas/findFirstMySQLPost.schema.ts +35 -0
  721. package/tests/multi-provider/schemas/mysql/generated/schemas/findFirstMySQLUser.schema.ts +32 -0
  722. package/tests/multi-provider/schemas/mysql/generated/schemas/findFirstOrThrowMySQLPost.schema.ts +35 -0
  723. package/tests/multi-provider/schemas/mysql/generated/schemas/findFirstOrThrowMySQLUser.schema.ts +32 -0
  724. package/tests/multi-provider/schemas/mysql/generated/schemas/findManyMySQLPost.schema.ts +35 -0
  725. package/tests/multi-provider/schemas/mysql/generated/schemas/findManyMySQLUser.schema.ts +32 -0
  726. package/tests/multi-provider/schemas/mysql/generated/schemas/findUniqueMySQLPost.schema.ts +9 -0
  727. package/tests/multi-provider/schemas/mysql/generated/schemas/findUniqueMySQLUser.schema.ts +9 -0
  728. package/tests/multi-provider/schemas/mysql/generated/schemas/findUniqueOrThrowMySQLPost.schema.ts +9 -0
  729. package/tests/multi-provider/schemas/mysql/generated/schemas/findUniqueOrThrowMySQLUser.schema.ts +9 -0
  730. package/tests/multi-provider/schemas/mysql/generated/schemas/groupByMySQLPost.schema.ts +15 -0
  731. package/tests/multi-provider/schemas/mysql/generated/schemas/groupByMySQLUser.schema.ts +15 -0
  732. package/tests/multi-provider/schemas/mysql/generated/schemas/index.ts +75 -0
  733. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/BoolFieldUpdateOperationsInput.schema.ts +9 -0
  734. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/BoolFilter.schema.ts +10 -0
  735. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/BoolWithAggregatesFilter.schema.ts +15 -0
  736. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/DateTimeFieldUpdateOperationsInput.schema.ts +9 -0
  737. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/DateTimeFilter.schema.ts +16 -0
  738. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/DateTimeWithAggregatesFilter.schema.ts +21 -0
  739. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/IntFieldUpdateOperationsInput.schema.ts +13 -0
  740. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/IntFilter.schema.ts +16 -0
  741. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/IntNullableFilter.schema.ts +16 -0
  742. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/IntNullableWithAggregatesFilter.schema.ts +23 -0
  743. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/IntWithAggregatesFilter.schema.ts +23 -0
  744. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostArgs.schema.ts +10 -0
  745. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostAvgAggregateInput.schema.ts +10 -0
  746. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostAvgOrderByAggregateInput.schema.ts +10 -0
  747. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostCountAggregateInput.schema.ts +15 -0
  748. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostCountOrderByAggregateInput.schema.ts +14 -0
  749. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostCreateInput.schema.ts +13 -0
  750. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostCreateManyAuthorInput.schema.ts +13 -0
  751. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostCreateManyAuthorInputEnvelope.schema.ts +10 -0
  752. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostCreateManyInput.schema.ts +14 -0
  753. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostCreateNestedManyWithoutAuthorInput.schema.ts +16 -0
  754. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostCreateOrConnectWithoutAuthorInput.schema.ts +12 -0
  755. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostCreateWithoutAuthorInput.schema.ts +12 -0
  756. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostInclude.schema.ts +9 -0
  757. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostListRelationFilter.schema.ts +11 -0
  758. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostMaxAggregateInput.schema.ts +14 -0
  759. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostMaxOrderByAggregateInput.schema.ts +14 -0
  760. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostMinAggregateInput.schema.ts +14 -0
  761. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostMinOrderByAggregateInput.schema.ts +14 -0
  762. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostOrderByRelationAggregateInput.schema.ts +9 -0
  763. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostOrderByRelevanceInput.schema.ts +12 -0
  764. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostOrderByWithAggregationInput.schema.ts +25 -0
  765. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostOrderByWithRelationInput.schema.ts +19 -0
  766. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostScalarWhereInput.schema.ts +22 -0
  767. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostScalarWhereWithAggregatesInput.schema.ts +22 -0
  768. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostSelect.schema.ts +15 -0
  769. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostSumAggregateInput.schema.ts +10 -0
  770. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostSumOrderByAggregateInput.schema.ts +10 -0
  771. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostUncheckedCreateInput.schema.ts +14 -0
  772. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostUncheckedCreateNestedManyWithoutAuthorInput.schema.ts +16 -0
  773. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostUncheckedCreateWithoutAuthorInput.schema.ts +13 -0
  774. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostUncheckedUpdateInput.schema.ts +19 -0
  775. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostUncheckedUpdateManyInput.schema.ts +19 -0
  776. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostUncheckedUpdateManyWithoutAuthorInput.schema.ts +17 -0
  777. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostUncheckedUpdateManyWithoutAuthorNestedInput.schema.ts +27 -0
  778. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostUncheckedUpdateWithoutAuthorInput.schema.ts +17 -0
  779. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostUpdateInput.schema.ts +17 -0
  780. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostUpdateManyMutationInput.schema.ts +15 -0
  781. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostUpdateManyWithWhereWithoutAuthorInput.schema.ts +12 -0
  782. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostUpdateManyWithoutAuthorNestedInput.schema.ts +27 -0
  783. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostUpdateWithWhereUniqueWithoutAuthorInput.schema.ts +12 -0
  784. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostUpdateWithoutAuthorInput.schema.ts +15 -0
  785. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostUpsertWithWhereUniqueWithoutAuthorInput.schema.ts +15 -0
  786. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostWhereInput.schema.ts +25 -0
  787. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLPostWhereUniqueInput.schema.ts +9 -0
  788. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserArgs.schema.ts +10 -0
  789. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserAvgAggregateInput.schema.ts +9 -0
  790. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserAvgOrderByAggregateInput.schema.ts +9 -0
  791. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserCountAggregateInput.schema.ts +12 -0
  792. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserCountOrderByAggregateInput.schema.ts +11 -0
  793. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserCountOutputTypeArgs.schema.ts +8 -0
  794. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserCountOutputTypeCountPostsArgs.schema.ts +8 -0
  795. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserCountOutputTypeSelect.schema.ts +9 -0
  796. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserCreateInput.schema.ts +11 -0
  797. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserCreateManyInput.schema.ts +11 -0
  798. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserCreateNestedOneWithoutPostsInput.schema.ts +14 -0
  799. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserCreateOrConnectWithoutPostsInput.schema.ts +12 -0
  800. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserCreateWithoutPostsInput.schema.ts +10 -0
  801. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserInclude.schema.ts +11 -0
  802. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserMaxAggregateInput.schema.ts +11 -0
  803. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserMaxOrderByAggregateInput.schema.ts +11 -0
  804. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserMinAggregateInput.schema.ts +11 -0
  805. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserMinOrderByAggregateInput.schema.ts +11 -0
  806. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserNullableScalarRelationFilter.schema.ts +10 -0
  807. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserOrderByRelevanceInput.schema.ts +12 -0
  808. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserOrderByWithAggregationInput.schema.ts +22 -0
  809. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserOrderByWithRelationInput.schema.ts +16 -0
  810. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserScalarWhereWithAggregatesInput.schema.ts +16 -0
  811. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserSelect.schema.ts +14 -0
  812. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserSumAggregateInput.schema.ts +9 -0
  813. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserSumOrderByAggregateInput.schema.ts +9 -0
  814. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserUncheckedCreateInput.schema.ts +12 -0
  815. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserUncheckedCreateWithoutPostsInput.schema.ts +11 -0
  816. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserUncheckedUpdateInput.schema.ts +15 -0
  817. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserUncheckedUpdateManyInput.schema.ts +13 -0
  818. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserUncheckedUpdateWithoutPostsInput.schema.ts +13 -0
  819. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserUpdateInput.schema.ts +13 -0
  820. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserUpdateManyMutationInput.schema.ts +11 -0
  821. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserUpdateOneWithoutPostsNestedInput.schema.ts +23 -0
  822. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserUpdateToOneWithWhereWithoutPostsInput.schema.ts +12 -0
  823. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserUpdateWithoutPostsInput.schema.ts +11 -0
  824. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserUpsertWithoutPostsInput.schema.ts +15 -0
  825. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserWhereInput.schema.ts +18 -0
  826. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/MySQLUserWhereUniqueInput.schema.ts +10 -0
  827. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/NestedBoolFilter.schema.ts +10 -0
  828. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/NestedBoolWithAggregatesFilter.schema.ts +14 -0
  829. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/NestedDateTimeFilter.schema.ts +16 -0
  830. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/NestedDateTimeWithAggregatesFilter.schema.ts +20 -0
  831. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/NestedFloatFilter.schema.ts +16 -0
  832. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/NestedFloatNullableFilter.schema.ts +16 -0
  833. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/NestedIntFilter.schema.ts +16 -0
  834. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/NestedIntNullableFilter.schema.ts +16 -0
  835. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/NestedIntNullableWithAggregatesFilter.schema.ts +22 -0
  836. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/NestedIntWithAggregatesFilter.schema.ts +22 -0
  837. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/NestedStringFilter.schema.ts +20 -0
  838. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/NestedStringNullableFilter.schema.ts +20 -0
  839. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/NestedStringNullableWithAggregatesFilter.schema.ts +24 -0
  840. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/NestedStringWithAggregatesFilter.schema.ts +24 -0
  841. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/NullableIntFieldUpdateOperationsInput.schema.ts +13 -0
  842. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/NullableStringFieldUpdateOperationsInput.schema.ts +9 -0
  843. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/SortOrderInput.schema.ts +11 -0
  844. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/StringFieldUpdateOperationsInput.schema.ts +9 -0
  845. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/StringFilter.schema.ts +20 -0
  846. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/StringNullableFilter.schema.ts +20 -0
  847. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/StringNullableWithAggregatesFilter.schema.ts +25 -0
  848. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/StringWithAggregatesFilter.schema.ts +25 -0
  849. package/tests/multi-provider/schemas/mysql/generated/schemas/objects/index.ts +121 -0
  850. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLPostAggregateResult.schema.ts +34 -0
  851. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLPostCountResult.schema.ts +2 -0
  852. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLPostCreateManyResult.schema.ts +4 -0
  853. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLPostCreateResult.schema.ts +10 -0
  854. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLPostDeleteManyResult.schema.ts +4 -0
  855. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLPostDeleteResult.schema.ts +10 -0
  856. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLPostFindFirstResult.schema.ts +10 -0
  857. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLPostFindManyResult.schema.ts +20 -0
  858. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLPostFindUniqueResult.schema.ts +10 -0
  859. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLPostGroupByResult.schema.ts +42 -0
  860. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLPostUpdateManyResult.schema.ts +4 -0
  861. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLPostUpdateResult.schema.ts +10 -0
  862. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLPostUpsertResult.schema.ts +10 -0
  863. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLUserAggregateResult.schema.ts +23 -0
  864. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLUserCountResult.schema.ts +2 -0
  865. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLUserCreateManyResult.schema.ts +4 -0
  866. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLUserCreateResult.schema.ts +7 -0
  867. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLUserDeleteManyResult.schema.ts +4 -0
  868. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLUserDeleteResult.schema.ts +7 -0
  869. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLUserFindFirstResult.schema.ts +7 -0
  870. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLUserFindManyResult.schema.ts +17 -0
  871. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLUserFindUniqueResult.schema.ts +7 -0
  872. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLUserGroupByResult.schema.ts +28 -0
  873. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLUserUpdateManyResult.schema.ts +4 -0
  874. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLUserUpdateResult.schema.ts +7 -0
  875. package/tests/multi-provider/schemas/mysql/generated/schemas/results/MySQLUserUpsertResult.schema.ts +7 -0
  876. package/tests/multi-provider/schemas/mysql/generated/schemas/results/index.ts +26 -0
  877. package/tests/multi-provider/schemas/mysql/generated/schemas/updateManyMySQLPost.schema.ts +8 -0
  878. package/tests/multi-provider/schemas/mysql/generated/schemas/updateManyMySQLUser.schema.ts +8 -0
  879. package/tests/multi-provider/schemas/mysql/generated/schemas/updateOneMySQLPost.schema.ts +11 -0
  880. package/tests/multi-provider/schemas/mysql/generated/schemas/updateOneMySQLUser.schema.ts +11 -0
  881. package/tests/multi-provider/schemas/mysql/generated/schemas/upsertOneMySQLPost.schema.ts +13 -0
  882. package/tests/multi-provider/schemas/mysql/generated/schemas/upsertOneMySQLUser.schema.ts +13 -0
  883. package/tests/multi-provider/schemas/mysql/generated/schemas/variants/index.ts +8 -0
  884. package/tests/multi-provider/schemas/mysql/generated/schemas/variants/input/MySQLPost.input.ts +13 -0
  885. package/tests/multi-provider/schemas/mysql/generated/schemas/variants/input/MySQLUser.input.ts +10 -0
  886. package/tests/multi-provider/schemas/mysql/generated/schemas/variants/input/index.ts +7 -0
  887. package/tests/multi-provider/schemas/mysql/generated/schemas/variants/pure/MySQLPost.pure.ts +13 -0
  888. package/tests/multi-provider/schemas/mysql/generated/schemas/variants/pure/MySQLUser.pure.ts +10 -0
  889. package/tests/multi-provider/schemas/mysql/generated/schemas/variants/pure/index.ts +7 -0
  890. package/tests/multi-provider/schemas/mysql/generated/schemas/variants/result/MySQLPost.result.ts +13 -0
  891. package/tests/multi-provider/schemas/mysql/generated/schemas/variants/result/MySQLUser.result.ts +10 -0
  892. package/tests/multi-provider/schemas/mysql/generated/schemas/variants/result/index.ts +7 -0
  893. package/tests/multi-provider/schemas/mysql/prisma.config.mjs +8 -0
  894. package/tests/multi-provider/schemas/mysql/schema.prisma +30 -0
  895. package/tests/multi-provider/schemas/postgresql/generated/.prisma-zod-generator-manifest.json +319 -0
  896. package/tests/multi-provider/schemas/postgresql/generated/helpers/json-helpers.ts +28 -0
  897. package/tests/multi-provider/schemas/postgresql/generated/schemas/aggregatePostgreSQLPost.schema.ts +14 -0
  898. package/tests/multi-provider/schemas/postgresql/generated/schemas/aggregatePostgreSQLProfile.schema.ts +14 -0
  899. package/tests/multi-provider/schemas/postgresql/generated/schemas/aggregatePostgreSQLUser.schema.ts +14 -0
  900. package/tests/multi-provider/schemas/postgresql/generated/schemas/countPostgreSQLPost.schema.ts +10 -0
  901. package/tests/multi-provider/schemas/postgresql/generated/schemas/countPostgreSQLProfile.schema.ts +10 -0
  902. package/tests/multi-provider/schemas/postgresql/generated/schemas/countPostgreSQLUser.schema.ts +10 -0
  903. package/tests/multi-provider/schemas/postgresql/generated/schemas/createManyAndReturnPostgreSQLPost.schema.ts +8 -0
  904. package/tests/multi-provider/schemas/postgresql/generated/schemas/createManyAndReturnPostgreSQLProfile.schema.ts +8 -0
  905. package/tests/multi-provider/schemas/postgresql/generated/schemas/createManyAndReturnPostgreSQLUser.schema.ts +8 -0
  906. package/tests/multi-provider/schemas/postgresql/generated/schemas/createManyPostgreSQLPost.schema.ts +7 -0
  907. package/tests/multi-provider/schemas/postgresql/generated/schemas/createManyPostgreSQLProfile.schema.ts +7 -0
  908. package/tests/multi-provider/schemas/postgresql/generated/schemas/createManyPostgreSQLUser.schema.ts +7 -0
  909. package/tests/multi-provider/schemas/postgresql/generated/schemas/createOnePostgreSQLPost.schema.ts +10 -0
  910. package/tests/multi-provider/schemas/postgresql/generated/schemas/createOnePostgreSQLProfile.schema.ts +10 -0
  911. package/tests/multi-provider/schemas/postgresql/generated/schemas/createOnePostgreSQLUser.schema.ts +10 -0
  912. package/tests/multi-provider/schemas/postgresql/generated/schemas/deleteManyPostgreSQLPost.schema.ts +7 -0
  913. package/tests/multi-provider/schemas/postgresql/generated/schemas/deleteManyPostgreSQLProfile.schema.ts +7 -0
  914. package/tests/multi-provider/schemas/postgresql/generated/schemas/deleteManyPostgreSQLUser.schema.ts +7 -0
  915. package/tests/multi-provider/schemas/postgresql/generated/schemas/deleteOnePostgreSQLPost.schema.ts +9 -0
  916. package/tests/multi-provider/schemas/postgresql/generated/schemas/deleteOnePostgreSQLProfile.schema.ts +9 -0
  917. package/tests/multi-provider/schemas/postgresql/generated/schemas/deleteOnePostgreSQLUser.schema.ts +9 -0
  918. package/tests/multi-provider/schemas/postgresql/generated/schemas/enums/JsonNullValueFilter.schema.ts +5 -0
  919. package/tests/multi-provider/schemas/postgresql/generated/schemas/enums/NullableJsonNullValueInput.schema.ts +5 -0
  920. package/tests/multi-provider/schemas/postgresql/generated/schemas/enums/NullsOrder.schema.ts +5 -0
  921. package/tests/multi-provider/schemas/postgresql/generated/schemas/enums/PostgreSQLPostScalarFieldEnum.schema.ts +5 -0
  922. package/tests/multi-provider/schemas/postgresql/generated/schemas/enums/PostgreSQLProfileScalarFieldEnum.schema.ts +5 -0
  923. package/tests/multi-provider/schemas/postgresql/generated/schemas/enums/PostgreSQLUserRole.schema.ts +5 -0
  924. package/tests/multi-provider/schemas/postgresql/generated/schemas/enums/PostgreSQLUserScalarFieldEnum.schema.ts +5 -0
  925. package/tests/multi-provider/schemas/postgresql/generated/schemas/enums/QueryMode.schema.ts +5 -0
  926. package/tests/multi-provider/schemas/postgresql/generated/schemas/enums/SortOrder.schema.ts +5 -0
  927. package/tests/multi-provider/schemas/postgresql/generated/schemas/enums/TransactionIsolationLevel.schema.ts +5 -0
  928. package/tests/multi-provider/schemas/postgresql/generated/schemas/findFirstOrThrowPostgreSQLPost.schema.ts +43 -0
  929. package/tests/multi-provider/schemas/postgresql/generated/schemas/findFirstOrThrowPostgreSQLProfile.schema.ts +29 -0
  930. package/tests/multi-provider/schemas/postgresql/generated/schemas/findFirstOrThrowPostgreSQLUser.schema.ts +41 -0
  931. package/tests/multi-provider/schemas/postgresql/generated/schemas/findFirstPostgreSQLPost.schema.ts +43 -0
  932. package/tests/multi-provider/schemas/postgresql/generated/schemas/findFirstPostgreSQLProfile.schema.ts +29 -0
  933. package/tests/multi-provider/schemas/postgresql/generated/schemas/findFirstPostgreSQLUser.schema.ts +41 -0
  934. package/tests/multi-provider/schemas/postgresql/generated/schemas/findManyPostgreSQLPost.schema.ts +43 -0
  935. package/tests/multi-provider/schemas/postgresql/generated/schemas/findManyPostgreSQLProfile.schema.ts +29 -0
  936. package/tests/multi-provider/schemas/postgresql/generated/schemas/findManyPostgreSQLUser.schema.ts +41 -0
  937. package/tests/multi-provider/schemas/postgresql/generated/schemas/findUniqueOrThrowPostgreSQLPost.schema.ts +9 -0
  938. package/tests/multi-provider/schemas/postgresql/generated/schemas/findUniqueOrThrowPostgreSQLProfile.schema.ts +9 -0
  939. package/tests/multi-provider/schemas/postgresql/generated/schemas/findUniqueOrThrowPostgreSQLUser.schema.ts +9 -0
  940. package/tests/multi-provider/schemas/postgresql/generated/schemas/findUniquePostgreSQLPost.schema.ts +9 -0
  941. package/tests/multi-provider/schemas/postgresql/generated/schemas/findUniquePostgreSQLProfile.schema.ts +9 -0
  942. package/tests/multi-provider/schemas/postgresql/generated/schemas/findUniquePostgreSQLUser.schema.ts +9 -0
  943. package/tests/multi-provider/schemas/postgresql/generated/schemas/groupByPostgreSQLPost.schema.ts +15 -0
  944. package/tests/multi-provider/schemas/postgresql/generated/schemas/groupByPostgreSQLProfile.schema.ts +15 -0
  945. package/tests/multi-provider/schemas/postgresql/generated/schemas/groupByPostgreSQLUser.schema.ts +15 -0
  946. package/tests/multi-provider/schemas/postgresql/generated/schemas/index.ts +115 -0
  947. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/BigIntFieldUpdateOperationsInput.schema.ts +13 -0
  948. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/BigIntFilter.schema.ts +16 -0
  949. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/BigIntWithAggregatesFilter.schema.ts +24 -0
  950. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/BoolFieldUpdateOperationsInput.schema.ts +9 -0
  951. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/BoolFilter.schema.ts +10 -0
  952. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/BoolWithAggregatesFilter.schema.ts +15 -0
  953. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/BytesNullableFilter.schema.ts +12 -0
  954. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/BytesNullableWithAggregatesFilter.schema.ts +17 -0
  955. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/DateTimeFieldUpdateOperationsInput.schema.ts +9 -0
  956. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/DateTimeFilter.schema.ts +16 -0
  957. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/DateTimeWithAggregatesFilter.schema.ts +21 -0
  958. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/EnumPostgreSQLUserRoleNullableFilter.schema.ts +13 -0
  959. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/EnumPostgreSQLUserRoleNullableWithAggregatesFilter.schema.ts +18 -0
  960. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/IntFieldUpdateOperationsInput.schema.ts +13 -0
  961. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/IntFilter.schema.ts +16 -0
  962. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/IntNullableFilter.schema.ts +16 -0
  963. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/IntNullableListFilter.schema.ts +13 -0
  964. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/IntNullableWithAggregatesFilter.schema.ts +23 -0
  965. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/IntWithAggregatesFilter.schema.ts +23 -0
  966. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/JsonNullableFilter.schema.ts +24 -0
  967. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/JsonNullableWithAggregatesFilter.schema.ts +29 -0
  968. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NestedBigIntFilter.schema.ts +16 -0
  969. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NestedBigIntWithAggregatesFilter.schema.ts +23 -0
  970. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NestedBoolFilter.schema.ts +10 -0
  971. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NestedBoolWithAggregatesFilter.schema.ts +14 -0
  972. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NestedBytesNullableFilter.schema.ts +12 -0
  973. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NestedBytesNullableWithAggregatesFilter.schema.ts +16 -0
  974. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NestedDateTimeFilter.schema.ts +16 -0
  975. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NestedDateTimeWithAggregatesFilter.schema.ts +20 -0
  976. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NestedEnumPostgreSQLUserRoleNullableFilter.schema.ts +12 -0
  977. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NestedEnumPostgreSQLUserRoleNullableWithAggregatesFilter.schema.ts +17 -0
  978. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NestedFloatFilter.schema.ts +16 -0
  979. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NestedFloatNullableFilter.schema.ts +16 -0
  980. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NestedIntFilter.schema.ts +16 -0
  981. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NestedIntNullableFilter.schema.ts +16 -0
  982. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NestedIntNullableWithAggregatesFilter.schema.ts +22 -0
  983. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NestedIntWithAggregatesFilter.schema.ts +22 -0
  984. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NestedJsonNullableFilter.schema.ts +24 -0
  985. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NestedStringFilter.schema.ts +19 -0
  986. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NestedStringNullableFilter.schema.ts +19 -0
  987. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NestedStringNullableWithAggregatesFilter.schema.ts +23 -0
  988. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NestedStringWithAggregatesFilter.schema.ts +23 -0
  989. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NullableBytesFieldUpdateOperationsInput.schema.ts +9 -0
  990. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NullableEnumPostgreSQLUserRoleFieldUpdateOperationsInput.schema.ts +9 -0
  991. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NullableIntFieldUpdateOperationsInput.schema.ts +13 -0
  992. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/NullableStringFieldUpdateOperationsInput.schema.ts +9 -0
  993. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostArgs.schema.ts +10 -0
  994. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostAvgAggregateInput.schema.ts +11 -0
  995. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostAvgOrderByAggregateInput.schema.ts +11 -0
  996. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostCountAggregateInput.schema.ts +19 -0
  997. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostCountOrderByAggregateInput.schema.ts +18 -0
  998. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostCreateInput.schema.ts +19 -0
  999. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostCreateManyAuthorInput.schema.ts +19 -0
  1000. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostCreateManyAuthorInputEnvelope.schema.ts +10 -0
  1001. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostCreateManyInput.schema.ts +20 -0
  1002. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostCreateNestedManyWithoutAuthorInput.schema.ts +16 -0
  1003. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostCreateOrConnectWithoutAuthorInput.schema.ts +12 -0
  1004. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostCreateWithoutAuthorInput.schema.ts +18 -0
  1005. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostInclude.schema.ts +9 -0
  1006. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostListRelationFilter.schema.ts +11 -0
  1007. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostMaxAggregateInput.schema.ts +17 -0
  1008. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostMaxOrderByAggregateInput.schema.ts +17 -0
  1009. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostMinAggregateInput.schema.ts +17 -0
  1010. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostMinOrderByAggregateInput.schema.ts +17 -0
  1011. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostOrderByRelationAggregateInput.schema.ts +9 -0
  1012. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostOrderByWithAggregationInput.schema.ts +29 -0
  1013. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostOrderByWithRelationInput.schema.ts +21 -0
  1014. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostScalarWhereInput.schema.ts +29 -0
  1015. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostScalarWhereWithAggregatesInput.schema.ts +29 -0
  1016. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostSelect.schema.ts +19 -0
  1017. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostSumAggregateInput.schema.ts +11 -0
  1018. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostSumOrderByAggregateInput.schema.ts +11 -0
  1019. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostUncheckedCreateInput.schema.ts +19 -0
  1020. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostUncheckedCreateNestedManyWithoutAuthorInput.schema.ts +16 -0
  1021. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostUncheckedCreateWithoutAuthorInput.schema.ts +19 -0
  1022. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostUncheckedUpdateInput.schema.ts +28 -0
  1023. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostUncheckedUpdateManyInput.schema.ts +28 -0
  1024. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostUncheckedUpdateManyWithoutAuthorInput.schema.ts +26 -0
  1025. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostUncheckedUpdateManyWithoutAuthorNestedInput.schema.ts +27 -0
  1026. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostUncheckedUpdateWithoutAuthorInput.schema.ts +26 -0
  1027. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostUpdateInput.schema.ts +26 -0
  1028. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostUpdateManyMutationInput.schema.ts +24 -0
  1029. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostUpdateManyWithWhereWithoutAuthorInput.schema.ts +12 -0
  1030. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostUpdateManyWithoutAuthorNestedInput.schema.ts +27 -0
  1031. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostUpdateWithWhereUniqueWithoutAuthorInput.schema.ts +12 -0
  1032. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostUpdateWithoutAuthorInput.schema.ts +24 -0
  1033. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostUpsertWithWhereUniqueWithoutAuthorInput.schema.ts +15 -0
  1034. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostWhereInput.schema.ts +32 -0
  1035. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLPostWhereUniqueInput.schema.ts +9 -0
  1036. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileArgs.schema.ts +10 -0
  1037. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileAvgAggregateInput.schema.ts +10 -0
  1038. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileAvgOrderByAggregateInput.schema.ts +10 -0
  1039. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileCountAggregateInput.schema.ts +12 -0
  1040. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileCountOrderByAggregateInput.schema.ts +11 -0
  1041. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileCreateInput.schema.ts +10 -0
  1042. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileCreateManyInput.schema.ts +11 -0
  1043. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileCreateNestedOneWithoutUserInput.schema.ts +14 -0
  1044. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileCreateOrConnectWithoutUserInput.schema.ts +12 -0
  1045. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileCreateWithoutUserInput.schema.ts +9 -0
  1046. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileInclude.schema.ts +9 -0
  1047. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileMaxAggregateInput.schema.ts +11 -0
  1048. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileMaxOrderByAggregateInput.schema.ts +11 -0
  1049. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileMinAggregateInput.schema.ts +11 -0
  1050. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileMinOrderByAggregateInput.schema.ts +11 -0
  1051. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileNullableScalarRelationFilter.schema.ts +10 -0
  1052. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileOrderByWithAggregationInput.schema.ts +22 -0
  1053. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileOrderByWithRelationInput.schema.ts +14 -0
  1054. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileScalarWhereWithAggregatesInput.schema.ts +15 -0
  1055. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileSelect.schema.ts +12 -0
  1056. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileSumAggregateInput.schema.ts +10 -0
  1057. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileSumOrderByAggregateInput.schema.ts +10 -0
  1058. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileUncheckedCreateInput.schema.ts +11 -0
  1059. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileUncheckedCreateNestedOneWithoutUserInput.schema.ts +14 -0
  1060. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileUncheckedCreateWithoutUserInput.schema.ts +10 -0
  1061. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileUncheckedUpdateInput.schema.ts +12 -0
  1062. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileUncheckedUpdateManyInput.schema.ts +12 -0
  1063. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileUncheckedUpdateOneWithoutUserNestedInput.schema.ts +23 -0
  1064. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileUncheckedUpdateWithoutUserInput.schema.ts +11 -0
  1065. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileUpdateInput.schema.ts +11 -0
  1066. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileUpdateManyMutationInput.schema.ts +9 -0
  1067. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileUpdateOneWithoutUserNestedInput.schema.ts +23 -0
  1068. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileUpdateToOneWithWhereWithoutUserInput.schema.ts +12 -0
  1069. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileUpdateWithoutUserInput.schema.ts +9 -0
  1070. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileUpsertWithoutUserInput.schema.ts +15 -0
  1071. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileWhereInput.schema.ts +18 -0
  1072. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLProfileWhereUniqueInput.schema.ts +10 -0
  1073. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserArgs.schema.ts +10 -0
  1074. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserAvgAggregateInput.schema.ts +10 -0
  1075. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserAvgOrderByAggregateInput.schema.ts +10 -0
  1076. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserCountAggregateInput.schema.ts +15 -0
  1077. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserCountOrderByAggregateInput.schema.ts +14 -0
  1078. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserCountOutputTypeArgs.schema.ts +8 -0
  1079. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserCountOutputTypeCountPostsArgs.schema.ts +8 -0
  1080. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserCountOutputTypeSelect.schema.ts +9 -0
  1081. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserCreateInput.schema.ts +19 -0
  1082. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserCreateManyInput.schema.ts +16 -0
  1083. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserCreateNestedOneWithoutPostsInput.schema.ts +14 -0
  1084. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserCreateNestedOneWithoutProfileInput.schema.ts +14 -0
  1085. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserCreateOrConnectWithoutPostsInput.schema.ts +12 -0
  1086. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserCreateOrConnectWithoutProfileInput.schema.ts +12 -0
  1087. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserCreateWithoutPostsInput.schema.ts +17 -0
  1088. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserCreateWithoutProfileInput.schema.ts +17 -0
  1089. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserCreatescoresInput.schema.ts +9 -0
  1090. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserCreatetagsInput.schema.ts +9 -0
  1091. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserInclude.schema.ts +13 -0
  1092. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserMaxAggregateInput.schema.ts +12 -0
  1093. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserMaxOrderByAggregateInput.schema.ts +12 -0
  1094. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserMinAggregateInput.schema.ts +12 -0
  1095. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserMinOrderByAggregateInput.schema.ts +12 -0
  1096. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserNullableScalarRelationFilter.schema.ts +10 -0
  1097. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserOrderByWithAggregationInput.schema.ts +25 -0
  1098. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserOrderByWithRelationInput.schema.ts +19 -0
  1099. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserScalarRelationFilter.schema.ts +10 -0
  1100. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserScalarWhereWithAggregatesInput.schema.ts +23 -0
  1101. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserSelect.schema.ts +19 -0
  1102. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserSumAggregateInput.schema.ts +10 -0
  1103. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserSumOrderByAggregateInput.schema.ts +10 -0
  1104. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserUncheckedCreateInput.schema.ts +20 -0
  1105. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserUncheckedCreateWithoutPostsInput.schema.ts +18 -0
  1106. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserUncheckedCreateWithoutProfileInput.schema.ts +18 -0
  1107. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserUncheckedUpdateInput.schema.ts +24 -0
  1108. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserUncheckedUpdateManyInput.schema.ts +20 -0
  1109. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserUncheckedUpdateWithoutPostsInput.schema.ts +22 -0
  1110. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserUncheckedUpdateWithoutProfileInput.schema.ts +22 -0
  1111. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserUpdateInput.schema.ts +22 -0
  1112. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserUpdateManyMutationInput.schema.ts +18 -0
  1113. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserUpdateOneRequiredWithoutProfileNestedInput.schema.ts +20 -0
  1114. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserUpdateOneWithoutPostsNestedInput.schema.ts +23 -0
  1115. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserUpdateToOneWithWhereWithoutPostsInput.schema.ts +12 -0
  1116. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserUpdateToOneWithWhereWithoutProfileInput.schema.ts +12 -0
  1117. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserUpdateWithoutPostsInput.schema.ts +20 -0
  1118. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserUpdateWithoutProfileInput.schema.ts +20 -0
  1119. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserUpdatescoresInput.schema.ts +10 -0
  1120. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserUpdatetagsInput.schema.ts +10 -0
  1121. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserUpsertWithoutPostsInput.schema.ts +15 -0
  1122. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserUpsertWithoutProfileInput.schema.ts +15 -0
  1123. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserWhereInput.schema.ts +28 -0
  1124. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/PostgreSQLUserWhereUniqueInput.schema.ts +10 -0
  1125. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/SortOrderInput.schema.ts +11 -0
  1126. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/StringFieldUpdateOperationsInput.schema.ts +9 -0
  1127. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/StringFilter.schema.ts +21 -0
  1128. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/StringNullableFilter.schema.ts +21 -0
  1129. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/StringNullableListFilter.schema.ts +13 -0
  1130. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/StringNullableWithAggregatesFilter.schema.ts +26 -0
  1131. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/StringWithAggregatesFilter.schema.ts +26 -0
  1132. package/tests/multi-provider/schemas/postgresql/generated/schemas/objects/index.ts +190 -0
  1133. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLPostAggregateResult.schema.ts +46 -0
  1134. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLPostCountResult.schema.ts +2 -0
  1135. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLPostCreateManyResult.schema.ts +4 -0
  1136. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLPostCreateResult.schema.ts +14 -0
  1137. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLPostDeleteManyResult.schema.ts +4 -0
  1138. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLPostDeleteResult.schema.ts +14 -0
  1139. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLPostFindFirstResult.schema.ts +14 -0
  1140. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLPostFindManyResult.schema.ts +24 -0
  1141. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLPostFindUniqueResult.schema.ts +14 -0
  1142. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLPostGroupByResult.schema.ts +58 -0
  1143. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLPostUpdateManyResult.schema.ts +4 -0
  1144. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLPostUpdateResult.schema.ts +14 -0
  1145. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLPostUpsertResult.schema.ts +14 -0
  1146. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLProfileAggregateResult.schema.ts +25 -0
  1147. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLProfileCountResult.schema.ts +2 -0
  1148. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLProfileCreateManyResult.schema.ts +4 -0
  1149. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLProfileCreateResult.schema.ts +7 -0
  1150. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLProfileDeleteManyResult.schema.ts +4 -0
  1151. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLProfileDeleteResult.schema.ts +7 -0
  1152. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLProfileFindFirstResult.schema.ts +7 -0
  1153. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLProfileFindManyResult.schema.ts +17 -0
  1154. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLProfileFindUniqueResult.schema.ts +7 -0
  1155. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLProfileGroupByResult.schema.ts +30 -0
  1156. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLProfileUpdateManyResult.schema.ts +4 -0
  1157. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLProfileUpdateResult.schema.ts +7 -0
  1158. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLProfileUpsertResult.schema.ts +7 -0
  1159. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLUserAggregateResult.schema.ts +30 -0
  1160. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLUserCountResult.schema.ts +2 -0
  1161. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLUserCreateManyResult.schema.ts +4 -0
  1162. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLUserCreateResult.schema.ts +11 -0
  1163. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLUserDeleteManyResult.schema.ts +4 -0
  1164. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLUserDeleteResult.schema.ts +11 -0
  1165. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLUserFindFirstResult.schema.ts +11 -0
  1166. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLUserFindManyResult.schema.ts +21 -0
  1167. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLUserFindUniqueResult.schema.ts +11 -0
  1168. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLUserGroupByResult.schema.ts +38 -0
  1169. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLUserUpdateManyResult.schema.ts +4 -0
  1170. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLUserUpdateResult.schema.ts +11 -0
  1171. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/PostgreSQLUserUpsertResult.schema.ts +11 -0
  1172. package/tests/multi-provider/schemas/postgresql/generated/schemas/results/index.ts +39 -0
  1173. package/tests/multi-provider/schemas/postgresql/generated/schemas/updateManyAndReturnPostgreSQLPost.schema.ts +9 -0
  1174. package/tests/multi-provider/schemas/postgresql/generated/schemas/updateManyAndReturnPostgreSQLProfile.schema.ts +9 -0
  1175. package/tests/multi-provider/schemas/postgresql/generated/schemas/updateManyAndReturnPostgreSQLUser.schema.ts +9 -0
  1176. package/tests/multi-provider/schemas/postgresql/generated/schemas/updateManyPostgreSQLPost.schema.ts +8 -0
  1177. package/tests/multi-provider/schemas/postgresql/generated/schemas/updateManyPostgreSQLProfile.schema.ts +8 -0
  1178. package/tests/multi-provider/schemas/postgresql/generated/schemas/updateManyPostgreSQLUser.schema.ts +8 -0
  1179. package/tests/multi-provider/schemas/postgresql/generated/schemas/updateOnePostgreSQLPost.schema.ts +11 -0
  1180. package/tests/multi-provider/schemas/postgresql/generated/schemas/updateOnePostgreSQLProfile.schema.ts +11 -0
  1181. package/tests/multi-provider/schemas/postgresql/generated/schemas/updateOnePostgreSQLUser.schema.ts +11 -0
  1182. package/tests/multi-provider/schemas/postgresql/generated/schemas/upsertOnePostgreSQLPost.schema.ts +13 -0
  1183. package/tests/multi-provider/schemas/postgresql/generated/schemas/upsertOnePostgreSQLProfile.schema.ts +13 -0
  1184. package/tests/multi-provider/schemas/postgresql/generated/schemas/upsertOnePostgreSQLUser.schema.ts +13 -0
  1185. package/tests/multi-provider/schemas/postgresql/generated/schemas/variants/index.ts +8 -0
  1186. package/tests/multi-provider/schemas/postgresql/generated/schemas/variants/input/PostgreSQLPost.input.ts +17 -0
  1187. package/tests/multi-provider/schemas/postgresql/generated/schemas/variants/input/PostgreSQLProfile.input.ts +10 -0
  1188. package/tests/multi-provider/schemas/postgresql/generated/schemas/variants/input/PostgreSQLUser.input.ts +15 -0
  1189. package/tests/multi-provider/schemas/postgresql/generated/schemas/variants/input/index.ts +8 -0
  1190. package/tests/multi-provider/schemas/postgresql/generated/schemas/variants/pure/PostgreSQLPost.pure.ts +17 -0
  1191. package/tests/multi-provider/schemas/postgresql/generated/schemas/variants/pure/PostgreSQLProfile.pure.ts +10 -0
  1192. package/tests/multi-provider/schemas/postgresql/generated/schemas/variants/pure/PostgreSQLUser.pure.ts +15 -0
  1193. package/tests/multi-provider/schemas/postgresql/generated/schemas/variants/pure/index.ts +8 -0
  1194. package/tests/multi-provider/schemas/postgresql/generated/schemas/variants/result/PostgreSQLPost.result.ts +17 -0
  1195. package/tests/multi-provider/schemas/postgresql/generated/schemas/variants/result/PostgreSQLProfile.result.ts +10 -0
  1196. package/tests/multi-provider/schemas/postgresql/generated/schemas/variants/result/PostgreSQLUser.result.ts +15 -0
  1197. package/tests/multi-provider/schemas/postgresql/generated/schemas/variants/result/index.ts +8 -0
  1198. package/tests/multi-provider/schemas/postgresql/prisma.config.mjs +8 -0
  1199. package/tests/multi-provider/schemas/postgresql/schema.prisma +50 -0
  1200. package/tests/multi-provider/schemas/sqlite/generated/.prisma-zod-generator-manifest.json +206 -0
  1201. package/tests/multi-provider/schemas/sqlite/generated/schemas/aggregateSQLitePost.schema.ts +14 -0
  1202. package/tests/multi-provider/schemas/sqlite/generated/schemas/aggregateSQLiteUser.schema.ts +14 -0
  1203. package/tests/multi-provider/schemas/sqlite/generated/schemas/countSQLitePost.schema.ts +10 -0
  1204. package/tests/multi-provider/schemas/sqlite/generated/schemas/countSQLiteUser.schema.ts +10 -0
  1205. package/tests/multi-provider/schemas/sqlite/generated/schemas/createManySQLitePost.schema.ts +7 -0
  1206. package/tests/multi-provider/schemas/sqlite/generated/schemas/createManySQLiteUser.schema.ts +7 -0
  1207. package/tests/multi-provider/schemas/sqlite/generated/schemas/createOneSQLitePost.schema.ts +10 -0
  1208. package/tests/multi-provider/schemas/sqlite/generated/schemas/createOneSQLiteUser.schema.ts +10 -0
  1209. package/tests/multi-provider/schemas/sqlite/generated/schemas/deleteManySQLitePost.schema.ts +7 -0
  1210. package/tests/multi-provider/schemas/sqlite/generated/schemas/deleteManySQLiteUser.schema.ts +7 -0
  1211. package/tests/multi-provider/schemas/sqlite/generated/schemas/deleteOneSQLitePost.schema.ts +9 -0
  1212. package/tests/multi-provider/schemas/sqlite/generated/schemas/deleteOneSQLiteUser.schema.ts +9 -0
  1213. package/tests/multi-provider/schemas/sqlite/generated/schemas/enums/NullsOrder.schema.ts +5 -0
  1214. package/tests/multi-provider/schemas/sqlite/generated/schemas/enums/SQLitePostScalarFieldEnum.schema.ts +5 -0
  1215. package/tests/multi-provider/schemas/sqlite/generated/schemas/enums/SQLiteUserScalarFieldEnum.schema.ts +5 -0
  1216. package/tests/multi-provider/schemas/sqlite/generated/schemas/enums/SortOrder.schema.ts +5 -0
  1217. package/tests/multi-provider/schemas/sqlite/generated/schemas/enums/TransactionIsolationLevel.schema.ts +5 -0
  1218. package/tests/multi-provider/schemas/sqlite/generated/schemas/findFirstOrThrowSQLitePost.schema.ts +35 -0
  1219. package/tests/multi-provider/schemas/sqlite/generated/schemas/findFirstOrThrowSQLiteUser.schema.ts +32 -0
  1220. package/tests/multi-provider/schemas/sqlite/generated/schemas/findFirstSQLitePost.schema.ts +35 -0
  1221. package/tests/multi-provider/schemas/sqlite/generated/schemas/findFirstSQLiteUser.schema.ts +32 -0
  1222. package/tests/multi-provider/schemas/sqlite/generated/schemas/findManySQLitePost.schema.ts +35 -0
  1223. package/tests/multi-provider/schemas/sqlite/generated/schemas/findManySQLiteUser.schema.ts +32 -0
  1224. package/tests/multi-provider/schemas/sqlite/generated/schemas/findUniqueOrThrowSQLitePost.schema.ts +9 -0
  1225. package/tests/multi-provider/schemas/sqlite/generated/schemas/findUniqueOrThrowSQLiteUser.schema.ts +9 -0
  1226. package/tests/multi-provider/schemas/sqlite/generated/schemas/findUniqueSQLitePost.schema.ts +9 -0
  1227. package/tests/multi-provider/schemas/sqlite/generated/schemas/findUniqueSQLiteUser.schema.ts +9 -0
  1228. package/tests/multi-provider/schemas/sqlite/generated/schemas/groupBySQLitePost.schema.ts +15 -0
  1229. package/tests/multi-provider/schemas/sqlite/generated/schemas/groupBySQLiteUser.schema.ts +15 -0
  1230. package/tests/multi-provider/schemas/sqlite/generated/schemas/index.ts +73 -0
  1231. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/BoolFieldUpdateOperationsInput.schema.ts +9 -0
  1232. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/BoolFilter.schema.ts +10 -0
  1233. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/BoolWithAggregatesFilter.schema.ts +15 -0
  1234. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/DateTimeFieldUpdateOperationsInput.schema.ts +9 -0
  1235. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/DateTimeFilter.schema.ts +16 -0
  1236. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/DateTimeWithAggregatesFilter.schema.ts +21 -0
  1237. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/IntFieldUpdateOperationsInput.schema.ts +13 -0
  1238. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/IntFilter.schema.ts +16 -0
  1239. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/IntNullableFilter.schema.ts +16 -0
  1240. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/IntNullableWithAggregatesFilter.schema.ts +23 -0
  1241. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/IntWithAggregatesFilter.schema.ts +23 -0
  1242. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/NestedBoolFilter.schema.ts +10 -0
  1243. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/NestedBoolWithAggregatesFilter.schema.ts +14 -0
  1244. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/NestedDateTimeFilter.schema.ts +16 -0
  1245. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/NestedDateTimeWithAggregatesFilter.schema.ts +20 -0
  1246. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/NestedFloatFilter.schema.ts +16 -0
  1247. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/NestedFloatNullableFilter.schema.ts +16 -0
  1248. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/NestedIntFilter.schema.ts +16 -0
  1249. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/NestedIntNullableFilter.schema.ts +16 -0
  1250. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/NestedIntNullableWithAggregatesFilter.schema.ts +22 -0
  1251. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/NestedIntWithAggregatesFilter.schema.ts +22 -0
  1252. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/NestedStringFilter.schema.ts +19 -0
  1253. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/NestedStringNullableFilter.schema.ts +19 -0
  1254. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/NestedStringNullableWithAggregatesFilter.schema.ts +23 -0
  1255. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/NestedStringWithAggregatesFilter.schema.ts +23 -0
  1256. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/NullableIntFieldUpdateOperationsInput.schema.ts +13 -0
  1257. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/NullableStringFieldUpdateOperationsInput.schema.ts +9 -0
  1258. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostArgs.schema.ts +10 -0
  1259. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostAvgAggregateInput.schema.ts +10 -0
  1260. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostAvgOrderByAggregateInput.schema.ts +10 -0
  1261. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostCountAggregateInput.schema.ts +15 -0
  1262. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostCountOrderByAggregateInput.schema.ts +14 -0
  1263. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostCreateInput.schema.ts +13 -0
  1264. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostCreateManyAuthorInput.schema.ts +13 -0
  1265. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostCreateManyAuthorInputEnvelope.schema.ts +9 -0
  1266. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostCreateManyInput.schema.ts +14 -0
  1267. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostCreateNestedManyWithoutAuthorInput.schema.ts +16 -0
  1268. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostCreateOrConnectWithoutAuthorInput.schema.ts +12 -0
  1269. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostCreateWithoutAuthorInput.schema.ts +12 -0
  1270. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostInclude.schema.ts +9 -0
  1271. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostListRelationFilter.schema.ts +11 -0
  1272. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostMaxAggregateInput.schema.ts +14 -0
  1273. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostMaxOrderByAggregateInput.schema.ts +14 -0
  1274. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostMinAggregateInput.schema.ts +14 -0
  1275. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostMinOrderByAggregateInput.schema.ts +14 -0
  1276. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostOrderByRelationAggregateInput.schema.ts +9 -0
  1277. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostOrderByWithAggregationInput.schema.ts +25 -0
  1278. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostOrderByWithRelationInput.schema.ts +17 -0
  1279. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostScalarWhereInput.schema.ts +22 -0
  1280. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostScalarWhereWithAggregatesInput.schema.ts +22 -0
  1281. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostSelect.schema.ts +15 -0
  1282. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostSumAggregateInput.schema.ts +10 -0
  1283. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostSumOrderByAggregateInput.schema.ts +10 -0
  1284. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostUncheckedCreateInput.schema.ts +14 -0
  1285. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostUncheckedCreateNestedManyWithoutAuthorInput.schema.ts +16 -0
  1286. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostUncheckedCreateWithoutAuthorInput.schema.ts +13 -0
  1287. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostUncheckedUpdateInput.schema.ts +19 -0
  1288. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostUncheckedUpdateManyInput.schema.ts +19 -0
  1289. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostUncheckedUpdateManyWithoutAuthorInput.schema.ts +17 -0
  1290. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostUncheckedUpdateManyWithoutAuthorNestedInput.schema.ts +27 -0
  1291. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostUncheckedUpdateWithoutAuthorInput.schema.ts +17 -0
  1292. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostUpdateInput.schema.ts +17 -0
  1293. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostUpdateManyMutationInput.schema.ts +15 -0
  1294. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostUpdateManyWithWhereWithoutAuthorInput.schema.ts +12 -0
  1295. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostUpdateManyWithoutAuthorNestedInput.schema.ts +27 -0
  1296. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostUpdateWithWhereUniqueWithoutAuthorInput.schema.ts +12 -0
  1297. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostUpdateWithoutAuthorInput.schema.ts +15 -0
  1298. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostUpsertWithWhereUniqueWithoutAuthorInput.schema.ts +15 -0
  1299. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostWhereInput.schema.ts +25 -0
  1300. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLitePostWhereUniqueInput.schema.ts +9 -0
  1301. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserArgs.schema.ts +10 -0
  1302. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserAvgAggregateInput.schema.ts +9 -0
  1303. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserAvgOrderByAggregateInput.schema.ts +9 -0
  1304. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserCountAggregateInput.schema.ts +12 -0
  1305. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserCountOrderByAggregateInput.schema.ts +11 -0
  1306. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserCountOutputTypeArgs.schema.ts +8 -0
  1307. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserCountOutputTypeCountPostsArgs.schema.ts +8 -0
  1308. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserCountOutputTypeSelect.schema.ts +9 -0
  1309. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserCreateInput.schema.ts +11 -0
  1310. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserCreateManyInput.schema.ts +11 -0
  1311. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserCreateNestedOneWithoutPostsInput.schema.ts +14 -0
  1312. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserCreateOrConnectWithoutPostsInput.schema.ts +12 -0
  1313. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserCreateWithoutPostsInput.schema.ts +10 -0
  1314. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserInclude.schema.ts +11 -0
  1315. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserMaxAggregateInput.schema.ts +11 -0
  1316. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserMaxOrderByAggregateInput.schema.ts +11 -0
  1317. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserMinAggregateInput.schema.ts +11 -0
  1318. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserMinOrderByAggregateInput.schema.ts +11 -0
  1319. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserNullableScalarRelationFilter.schema.ts +10 -0
  1320. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserOrderByWithAggregationInput.schema.ts +22 -0
  1321. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserOrderByWithRelationInput.schema.ts +14 -0
  1322. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserScalarWhereWithAggregatesInput.schema.ts +16 -0
  1323. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserSelect.schema.ts +14 -0
  1324. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserSumAggregateInput.schema.ts +9 -0
  1325. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserSumOrderByAggregateInput.schema.ts +9 -0
  1326. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserUncheckedCreateInput.schema.ts +12 -0
  1327. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserUncheckedCreateWithoutPostsInput.schema.ts +11 -0
  1328. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserUncheckedUpdateInput.schema.ts +15 -0
  1329. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserUncheckedUpdateManyInput.schema.ts +13 -0
  1330. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserUncheckedUpdateWithoutPostsInput.schema.ts +13 -0
  1331. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserUpdateInput.schema.ts +13 -0
  1332. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserUpdateManyMutationInput.schema.ts +11 -0
  1333. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserUpdateOneWithoutPostsNestedInput.schema.ts +23 -0
  1334. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserUpdateToOneWithWhereWithoutPostsInput.schema.ts +12 -0
  1335. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserUpdateWithoutPostsInput.schema.ts +11 -0
  1336. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserUpsertWithoutPostsInput.schema.ts +15 -0
  1337. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserWhereInput.schema.ts +18 -0
  1338. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SQLiteUserWhereUniqueInput.schema.ts +10 -0
  1339. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/SortOrderInput.schema.ts +11 -0
  1340. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/StringFieldUpdateOperationsInput.schema.ts +9 -0
  1341. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/StringFilter.schema.ts +19 -0
  1342. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/StringNullableFilter.schema.ts +19 -0
  1343. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/StringNullableWithAggregatesFilter.schema.ts +24 -0
  1344. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/StringWithAggregatesFilter.schema.ts +24 -0
  1345. package/tests/multi-provider/schemas/sqlite/generated/schemas/objects/index.ts +119 -0
  1346. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLitePostAggregateResult.schema.ts +34 -0
  1347. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLitePostCountResult.schema.ts +2 -0
  1348. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLitePostCreateManyResult.schema.ts +4 -0
  1349. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLitePostCreateResult.schema.ts +10 -0
  1350. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLitePostDeleteManyResult.schema.ts +4 -0
  1351. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLitePostDeleteResult.schema.ts +10 -0
  1352. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLitePostFindFirstResult.schema.ts +10 -0
  1353. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLitePostFindManyResult.schema.ts +20 -0
  1354. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLitePostFindUniqueResult.schema.ts +10 -0
  1355. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLitePostGroupByResult.schema.ts +42 -0
  1356. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLitePostUpdateManyResult.schema.ts +4 -0
  1357. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLitePostUpdateResult.schema.ts +10 -0
  1358. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLitePostUpsertResult.schema.ts +10 -0
  1359. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLiteUserAggregateResult.schema.ts +23 -0
  1360. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLiteUserCountResult.schema.ts +2 -0
  1361. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLiteUserCreateManyResult.schema.ts +4 -0
  1362. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLiteUserCreateResult.schema.ts +7 -0
  1363. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLiteUserDeleteManyResult.schema.ts +4 -0
  1364. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLiteUserDeleteResult.schema.ts +7 -0
  1365. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLiteUserFindFirstResult.schema.ts +7 -0
  1366. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLiteUserFindManyResult.schema.ts +17 -0
  1367. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLiteUserFindUniqueResult.schema.ts +7 -0
  1368. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLiteUserGroupByResult.schema.ts +28 -0
  1369. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLiteUserUpdateManyResult.schema.ts +4 -0
  1370. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLiteUserUpdateResult.schema.ts +7 -0
  1371. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/SQLiteUserUpsertResult.schema.ts +7 -0
  1372. package/tests/multi-provider/schemas/sqlite/generated/schemas/results/index.ts +26 -0
  1373. package/tests/multi-provider/schemas/sqlite/generated/schemas/updateManySQLitePost.schema.ts +8 -0
  1374. package/tests/multi-provider/schemas/sqlite/generated/schemas/updateManySQLiteUser.schema.ts +8 -0
  1375. package/tests/multi-provider/schemas/sqlite/generated/schemas/updateOneSQLitePost.schema.ts +11 -0
  1376. package/tests/multi-provider/schemas/sqlite/generated/schemas/updateOneSQLiteUser.schema.ts +11 -0
  1377. package/tests/multi-provider/schemas/sqlite/generated/schemas/upsertOneSQLitePost.schema.ts +13 -0
  1378. package/tests/multi-provider/schemas/sqlite/generated/schemas/upsertOneSQLiteUser.schema.ts +13 -0
  1379. package/tests/multi-provider/schemas/sqlite/generated/schemas/variants/index.ts +8 -0
  1380. package/tests/multi-provider/schemas/sqlite/generated/schemas/variants/input/SQLitePost.input.ts +13 -0
  1381. package/tests/multi-provider/schemas/sqlite/generated/schemas/variants/input/SQLiteUser.input.ts +10 -0
  1382. package/tests/multi-provider/schemas/sqlite/generated/schemas/variants/input/index.ts +7 -0
  1383. package/tests/multi-provider/schemas/sqlite/generated/schemas/variants/pure/SQLitePost.pure.ts +13 -0
  1384. package/tests/multi-provider/schemas/sqlite/generated/schemas/variants/pure/SQLiteUser.pure.ts +10 -0
  1385. package/tests/multi-provider/schemas/sqlite/generated/schemas/variants/pure/index.ts +7 -0
  1386. package/tests/multi-provider/schemas/sqlite/generated/schemas/variants/result/SQLitePost.result.ts +13 -0
  1387. package/tests/multi-provider/schemas/sqlite/generated/schemas/variants/result/SQLiteUser.result.ts +10 -0
  1388. package/tests/multi-provider/schemas/sqlite/generated/schemas/variants/result/index.ts +7 -0
  1389. package/tests/multi-provider/schemas/sqlite/prisma.config.mjs +8 -0
  1390. package/tests/multi-provider/schemas/sqlite/schema.prisma +30 -0
  1391. package/tests/multi-provider/schemas/sqlserver/generated/.prisma-zod-generator-manifest.json +206 -0
  1392. package/tests/multi-provider/schemas/sqlserver/generated/schemas/aggregateSQLServerPost.schema.ts +14 -0
  1393. package/tests/multi-provider/schemas/sqlserver/generated/schemas/aggregateSQLServerUser.schema.ts +14 -0
  1394. package/tests/multi-provider/schemas/sqlserver/generated/schemas/countSQLServerPost.schema.ts +10 -0
  1395. package/tests/multi-provider/schemas/sqlserver/generated/schemas/countSQLServerUser.schema.ts +10 -0
  1396. package/tests/multi-provider/schemas/sqlserver/generated/schemas/createManySQLServerPost.schema.ts +7 -0
  1397. package/tests/multi-provider/schemas/sqlserver/generated/schemas/createManySQLServerUser.schema.ts +7 -0
  1398. package/tests/multi-provider/schemas/sqlserver/generated/schemas/createOneSQLServerPost.schema.ts +10 -0
  1399. package/tests/multi-provider/schemas/sqlserver/generated/schemas/createOneSQLServerUser.schema.ts +10 -0
  1400. package/tests/multi-provider/schemas/sqlserver/generated/schemas/deleteManySQLServerPost.schema.ts +7 -0
  1401. package/tests/multi-provider/schemas/sqlserver/generated/schemas/deleteManySQLServerUser.schema.ts +7 -0
  1402. package/tests/multi-provider/schemas/sqlserver/generated/schemas/deleteOneSQLServerPost.schema.ts +9 -0
  1403. package/tests/multi-provider/schemas/sqlserver/generated/schemas/deleteOneSQLServerUser.schema.ts +9 -0
  1404. package/tests/multi-provider/schemas/sqlserver/generated/schemas/enums/NullsOrder.schema.ts +5 -0
  1405. package/tests/multi-provider/schemas/sqlserver/generated/schemas/enums/SQLServerPostScalarFieldEnum.schema.ts +5 -0
  1406. package/tests/multi-provider/schemas/sqlserver/generated/schemas/enums/SQLServerUserScalarFieldEnum.schema.ts +5 -0
  1407. package/tests/multi-provider/schemas/sqlserver/generated/schemas/enums/SortOrder.schema.ts +5 -0
  1408. package/tests/multi-provider/schemas/sqlserver/generated/schemas/enums/TransactionIsolationLevel.schema.ts +5 -0
  1409. package/tests/multi-provider/schemas/sqlserver/generated/schemas/findFirstOrThrowSQLServerPost.schema.ts +35 -0
  1410. package/tests/multi-provider/schemas/sqlserver/generated/schemas/findFirstOrThrowSQLServerUser.schema.ts +32 -0
  1411. package/tests/multi-provider/schemas/sqlserver/generated/schemas/findFirstSQLServerPost.schema.ts +35 -0
  1412. package/tests/multi-provider/schemas/sqlserver/generated/schemas/findFirstSQLServerUser.schema.ts +32 -0
  1413. package/tests/multi-provider/schemas/sqlserver/generated/schemas/findManySQLServerPost.schema.ts +35 -0
  1414. package/tests/multi-provider/schemas/sqlserver/generated/schemas/findManySQLServerUser.schema.ts +32 -0
  1415. package/tests/multi-provider/schemas/sqlserver/generated/schemas/findUniqueOrThrowSQLServerPost.schema.ts +9 -0
  1416. package/tests/multi-provider/schemas/sqlserver/generated/schemas/findUniqueOrThrowSQLServerUser.schema.ts +9 -0
  1417. package/tests/multi-provider/schemas/sqlserver/generated/schemas/findUniqueSQLServerPost.schema.ts +9 -0
  1418. package/tests/multi-provider/schemas/sqlserver/generated/schemas/findUniqueSQLServerUser.schema.ts +9 -0
  1419. package/tests/multi-provider/schemas/sqlserver/generated/schemas/groupBySQLServerPost.schema.ts +15 -0
  1420. package/tests/multi-provider/schemas/sqlserver/generated/schemas/groupBySQLServerUser.schema.ts +15 -0
  1421. package/tests/multi-provider/schemas/sqlserver/generated/schemas/index.ts +73 -0
  1422. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/BoolFieldUpdateOperationsInput.schema.ts +9 -0
  1423. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/BoolFilter.schema.ts +10 -0
  1424. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/BoolWithAggregatesFilter.schema.ts +15 -0
  1425. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/DateTimeFieldUpdateOperationsInput.schema.ts +9 -0
  1426. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/DateTimeFilter.schema.ts +16 -0
  1427. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/DateTimeWithAggregatesFilter.schema.ts +21 -0
  1428. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/IntFieldUpdateOperationsInput.schema.ts +13 -0
  1429. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/IntFilter.schema.ts +16 -0
  1430. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/IntNullableFilter.schema.ts +16 -0
  1431. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/IntNullableWithAggregatesFilter.schema.ts +23 -0
  1432. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/IntWithAggregatesFilter.schema.ts +23 -0
  1433. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/NestedBoolFilter.schema.ts +10 -0
  1434. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/NestedBoolWithAggregatesFilter.schema.ts +14 -0
  1435. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/NestedDateTimeFilter.schema.ts +16 -0
  1436. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/NestedDateTimeWithAggregatesFilter.schema.ts +20 -0
  1437. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/NestedFloatFilter.schema.ts +16 -0
  1438. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/NestedFloatNullableFilter.schema.ts +16 -0
  1439. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/NestedIntFilter.schema.ts +16 -0
  1440. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/NestedIntNullableFilter.schema.ts +16 -0
  1441. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/NestedIntNullableWithAggregatesFilter.schema.ts +22 -0
  1442. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/NestedIntWithAggregatesFilter.schema.ts +22 -0
  1443. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/NestedStringFilter.schema.ts +19 -0
  1444. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/NestedStringNullableFilter.schema.ts +19 -0
  1445. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/NestedStringNullableWithAggregatesFilter.schema.ts +23 -0
  1446. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/NestedStringWithAggregatesFilter.schema.ts +23 -0
  1447. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/NullableIntFieldUpdateOperationsInput.schema.ts +13 -0
  1448. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/NullableStringFieldUpdateOperationsInput.schema.ts +9 -0
  1449. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostArgs.schema.ts +10 -0
  1450. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostAvgAggregateInput.schema.ts +10 -0
  1451. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostAvgOrderByAggregateInput.schema.ts +10 -0
  1452. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostCountAggregateInput.schema.ts +15 -0
  1453. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostCountOrderByAggregateInput.schema.ts +14 -0
  1454. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostCreateInput.schema.ts +13 -0
  1455. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostCreateManyAuthorInput.schema.ts +12 -0
  1456. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostCreateManyAuthorInputEnvelope.schema.ts +9 -0
  1457. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostCreateManyInput.schema.ts +13 -0
  1458. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostCreateNestedManyWithoutAuthorInput.schema.ts +16 -0
  1459. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostCreateOrConnectWithoutAuthorInput.schema.ts +12 -0
  1460. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostCreateWithoutAuthorInput.schema.ts +12 -0
  1461. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostInclude.schema.ts +9 -0
  1462. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostListRelationFilter.schema.ts +11 -0
  1463. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostMaxAggregateInput.schema.ts +14 -0
  1464. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostMaxOrderByAggregateInput.schema.ts +14 -0
  1465. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostMinAggregateInput.schema.ts +14 -0
  1466. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostMinOrderByAggregateInput.schema.ts +14 -0
  1467. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostOrderByRelationAggregateInput.schema.ts +9 -0
  1468. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostOrderByWithAggregationInput.schema.ts +25 -0
  1469. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostOrderByWithRelationInput.schema.ts +17 -0
  1470. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostScalarWhereInput.schema.ts +22 -0
  1471. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostScalarWhereWithAggregatesInput.schema.ts +22 -0
  1472. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostSelect.schema.ts +15 -0
  1473. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostSumAggregateInput.schema.ts +10 -0
  1474. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostSumOrderByAggregateInput.schema.ts +10 -0
  1475. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostUncheckedCreateInput.schema.ts +14 -0
  1476. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostUncheckedCreateNestedManyWithoutAuthorInput.schema.ts +16 -0
  1477. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostUncheckedCreateWithoutAuthorInput.schema.ts +13 -0
  1478. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostUncheckedUpdateInput.schema.ts +19 -0
  1479. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostUncheckedUpdateManyInput.schema.ts +19 -0
  1480. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostUncheckedUpdateManyWithoutAuthorInput.schema.ts +17 -0
  1481. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostUncheckedUpdateManyWithoutAuthorNestedInput.schema.ts +27 -0
  1482. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostUncheckedUpdateWithoutAuthorInput.schema.ts +17 -0
  1483. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostUpdateInput.schema.ts +17 -0
  1484. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostUpdateManyMutationInput.schema.ts +15 -0
  1485. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostUpdateManyWithWhereWithoutAuthorInput.schema.ts +12 -0
  1486. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostUpdateManyWithoutAuthorNestedInput.schema.ts +27 -0
  1487. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostUpdateWithWhereUniqueWithoutAuthorInput.schema.ts +12 -0
  1488. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostUpdateWithoutAuthorInput.schema.ts +15 -0
  1489. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostUpsertWithWhereUniqueWithoutAuthorInput.schema.ts +15 -0
  1490. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostWhereInput.schema.ts +25 -0
  1491. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerPostWhereUniqueInput.schema.ts +9 -0
  1492. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserArgs.schema.ts +10 -0
  1493. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserAvgAggregateInput.schema.ts +9 -0
  1494. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserAvgOrderByAggregateInput.schema.ts +9 -0
  1495. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserCountAggregateInput.schema.ts +12 -0
  1496. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserCountOrderByAggregateInput.schema.ts +11 -0
  1497. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserCountOutputTypeArgs.schema.ts +8 -0
  1498. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserCountOutputTypeCountPostsArgs.schema.ts +8 -0
  1499. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserCountOutputTypeSelect.schema.ts +9 -0
  1500. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserCreateInput.schema.ts +11 -0
  1501. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserCreateManyInput.schema.ts +10 -0
  1502. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserCreateNestedOneWithoutPostsInput.schema.ts +14 -0
  1503. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserCreateOrConnectWithoutPostsInput.schema.ts +12 -0
  1504. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserCreateWithoutPostsInput.schema.ts +10 -0
  1505. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserInclude.schema.ts +11 -0
  1506. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserMaxAggregateInput.schema.ts +11 -0
  1507. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserMaxOrderByAggregateInput.schema.ts +11 -0
  1508. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserMinAggregateInput.schema.ts +11 -0
  1509. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserMinOrderByAggregateInput.schema.ts +11 -0
  1510. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserNullableScalarRelationFilter.schema.ts +10 -0
  1511. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserOrderByWithAggregationInput.schema.ts +22 -0
  1512. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserOrderByWithRelationInput.schema.ts +14 -0
  1513. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserScalarWhereWithAggregatesInput.schema.ts +16 -0
  1514. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserSelect.schema.ts +14 -0
  1515. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserSumAggregateInput.schema.ts +9 -0
  1516. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserSumOrderByAggregateInput.schema.ts +9 -0
  1517. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserUncheckedCreateInput.schema.ts +12 -0
  1518. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserUncheckedCreateWithoutPostsInput.schema.ts +11 -0
  1519. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserUncheckedUpdateInput.schema.ts +15 -0
  1520. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserUncheckedUpdateManyInput.schema.ts +13 -0
  1521. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserUncheckedUpdateWithoutPostsInput.schema.ts +13 -0
  1522. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserUpdateInput.schema.ts +13 -0
  1523. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserUpdateManyMutationInput.schema.ts +11 -0
  1524. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserUpdateOneWithoutPostsNestedInput.schema.ts +23 -0
  1525. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserUpdateToOneWithWhereWithoutPostsInput.schema.ts +12 -0
  1526. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserUpdateWithoutPostsInput.schema.ts +11 -0
  1527. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserUpsertWithoutPostsInput.schema.ts +15 -0
  1528. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserWhereInput.schema.ts +18 -0
  1529. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SQLServerUserWhereUniqueInput.schema.ts +10 -0
  1530. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/SortOrderInput.schema.ts +11 -0
  1531. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/StringFieldUpdateOperationsInput.schema.ts +9 -0
  1532. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/StringFilter.schema.ts +19 -0
  1533. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/StringNullableFilter.schema.ts +19 -0
  1534. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/StringNullableWithAggregatesFilter.schema.ts +24 -0
  1535. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/StringWithAggregatesFilter.schema.ts +24 -0
  1536. package/tests/multi-provider/schemas/sqlserver/generated/schemas/objects/index.ts +119 -0
  1537. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerPostAggregateResult.schema.ts +34 -0
  1538. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerPostCountResult.schema.ts +2 -0
  1539. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerPostCreateManyResult.schema.ts +4 -0
  1540. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerPostCreateResult.schema.ts +10 -0
  1541. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerPostDeleteManyResult.schema.ts +4 -0
  1542. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerPostDeleteResult.schema.ts +10 -0
  1543. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerPostFindFirstResult.schema.ts +10 -0
  1544. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerPostFindManyResult.schema.ts +20 -0
  1545. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerPostFindUniqueResult.schema.ts +10 -0
  1546. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerPostGroupByResult.schema.ts +42 -0
  1547. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerPostUpdateManyResult.schema.ts +4 -0
  1548. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerPostUpdateResult.schema.ts +10 -0
  1549. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerPostUpsertResult.schema.ts +10 -0
  1550. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerUserAggregateResult.schema.ts +23 -0
  1551. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerUserCountResult.schema.ts +2 -0
  1552. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerUserCreateManyResult.schema.ts +4 -0
  1553. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerUserCreateResult.schema.ts +7 -0
  1554. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerUserDeleteManyResult.schema.ts +4 -0
  1555. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerUserDeleteResult.schema.ts +7 -0
  1556. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerUserFindFirstResult.schema.ts +7 -0
  1557. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerUserFindManyResult.schema.ts +17 -0
  1558. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerUserFindUniqueResult.schema.ts +7 -0
  1559. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerUserGroupByResult.schema.ts +28 -0
  1560. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerUserUpdateManyResult.schema.ts +4 -0
  1561. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerUserUpdateResult.schema.ts +7 -0
  1562. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/SQLServerUserUpsertResult.schema.ts +7 -0
  1563. package/tests/multi-provider/schemas/sqlserver/generated/schemas/results/index.ts +26 -0
  1564. package/tests/multi-provider/schemas/sqlserver/generated/schemas/updateManySQLServerPost.schema.ts +8 -0
  1565. package/tests/multi-provider/schemas/sqlserver/generated/schemas/updateManySQLServerUser.schema.ts +8 -0
  1566. package/tests/multi-provider/schemas/sqlserver/generated/schemas/updateOneSQLServerPost.schema.ts +11 -0
  1567. package/tests/multi-provider/schemas/sqlserver/generated/schemas/updateOneSQLServerUser.schema.ts +11 -0
  1568. package/tests/multi-provider/schemas/sqlserver/generated/schemas/upsertOneSQLServerPost.schema.ts +13 -0
  1569. package/tests/multi-provider/schemas/sqlserver/generated/schemas/upsertOneSQLServerUser.schema.ts +13 -0
  1570. package/tests/multi-provider/schemas/sqlserver/generated/schemas/variants/index.ts +8 -0
  1571. package/tests/multi-provider/schemas/sqlserver/generated/schemas/variants/input/SQLServerPost.input.ts +13 -0
  1572. package/tests/multi-provider/schemas/sqlserver/generated/schemas/variants/input/SQLServerUser.input.ts +10 -0
  1573. package/tests/multi-provider/schemas/sqlserver/generated/schemas/variants/input/index.ts +7 -0
  1574. package/tests/multi-provider/schemas/sqlserver/generated/schemas/variants/pure/SQLServerPost.pure.ts +13 -0
  1575. package/tests/multi-provider/schemas/sqlserver/generated/schemas/variants/pure/SQLServerUser.pure.ts +10 -0
  1576. package/tests/multi-provider/schemas/sqlserver/generated/schemas/variants/pure/index.ts +7 -0
  1577. package/tests/multi-provider/schemas/sqlserver/generated/schemas/variants/result/SQLServerPost.result.ts +13 -0
  1578. package/tests/multi-provider/schemas/sqlserver/generated/schemas/variants/result/SQLServerUser.result.ts +10 -0
  1579. package/tests/multi-provider/schemas/sqlserver/generated/schemas/variants/result/index.ts +7 -0
  1580. package/tests/multi-provider/schemas/sqlserver/prisma.config.mjs +8 -0
  1581. package/tests/multi-provider/schemas/sqlserver/schema.prisma +30 -0
  1582. package/tests/naming-customization.test.ts +598 -0
  1583. package/tests/naming-presets-and-emit-controls.test.ts +222 -0
  1584. package/tests/non-ts-artifact-writes.test.ts +87 -0
  1585. package/tests/operation-exclusion.test.ts +587 -0
  1586. package/tests/optional-nullable-behavior.test.ts +140 -0
  1587. package/tests/orderby-zod-annotations.test.ts +201 -0
  1588. package/tests/parse-custom-imports.test.ts +64 -0
  1589. package/tests/prettier-config-resolution.test.ts +74 -0
  1590. package/tests/prisma-client-esm-config.test.ts +879 -0
  1591. package/tests/prisma-client-full-matrix.test.ts +139 -0
  1592. package/tests/prisma-client-path-override.test.ts +136 -0
  1593. package/tests/prisma-client-preview-options.test.ts +135 -0
  1594. package/tests/pro-api-docs-options.test.ts +390 -0
  1595. package/tests/pro-api-docs-path-consistency.test.ts +127 -0
  1596. package/tests/pro-cli-plumbing.test.ts +145 -0
  1597. package/tests/pro-config-parsing.test.ts +146 -0
  1598. package/tests/pro-contract-testing.test.ts +330 -0
  1599. package/tests/pro-data-factories.test.ts +266 -0
  1600. package/tests/pro-dev-bypass.test.ts +79 -0
  1601. package/tests/pro-drift-guard-cli.test.ts +158 -0
  1602. package/tests/pro-drift-guard-report.test.ts +286 -0
  1603. package/tests/pro-emitted-output-compiles.test.ts +290 -0
  1604. package/tests/pro-form-ux-libraries.test.ts +499 -0
  1605. package/tests/pro-license-messaging.test.ts +71 -0
  1606. package/tests/pro-model-filtering.test.ts +132 -0
  1607. package/tests/pro-multi-tenant.test.ts +296 -0
  1608. package/tests/pro-option-validation.test.ts +568 -0
  1609. package/tests/pro-performance-pack.test.ts +709 -0
  1610. package/tests/pro-policies.test.ts +620 -0
  1611. package/tests/pro-postgres-rls.test.ts +262 -0
  1612. package/tests/pro-sdk-publisher.test.ts +570 -0
  1613. package/tests/pro-server-actions.test.ts +355 -0
  1614. package/tests/pro-ui-output-compiles.test.ts +285 -0
  1615. package/tests/pure-models-lean-and-datetime.test.ts +149 -0
  1616. package/tests/pure-models-zod-v4-recursion.test.ts +76 -0
  1617. package/tests/pure-models.test.ts +1877 -0
  1618. package/tests/pzg-skip-env-var.test.ts +89 -0
  1619. package/tests/recipes.test.ts +62 -0
  1620. package/tests/result-nullable-columns.test.ts +180 -0
  1621. package/tests/result-schemas.test.ts +992 -0
  1622. package/tests/safe-output-smart-cleanup.test.ts +105 -0
  1623. package/tests/safety-config-resolver.test.ts +130 -0
  1624. package/tests/schema-test-utils.ts +280 -0
  1625. package/tests/schema-variants.test.ts +1708 -0
  1626. package/tests/select-substring-zod-annotations.test.ts +180 -0
  1627. package/tests/single-file-aggregator.test.ts +128 -0
  1628. package/tests/single-file-mode.test.ts +309 -0
  1629. package/tests/single-file-zod-versions.test.ts +221 -0
  1630. package/tests/snake-case-aggregate-fix.test.ts +486 -0
  1631. package/tests/strict-mode.test.ts +602 -0
  1632. package/tests/transformer-max-constraint.test.ts +25 -0
  1633. package/tests/tsconfig.test.json +26 -0
  1634. package/tests/typecheck-fixtures/README.md +40 -0
  1635. package/tests/typecheck-fixtures/package.json +31 -0
  1636. package/tests/typecheck-fixtures/pnpm-lock.yaml +5114 -0
  1637. package/tests/typed-json-annotation-parser.test.ts +188 -0
  1638. package/tests/typed-json-config.test.ts +252 -0
  1639. package/tests/typed-json-corpus-conformance.test.ts +1871 -0
  1640. package/tests/typed-json-emission.test.ts +801 -0
  1641. package/tests/typed-json-inner-optionality.test.ts +337 -0
  1642. package/tests/typed-json-list-wrappers.test.ts +334 -0
  1643. package/tests/typed-json-namespace.test.ts +633 -0
  1644. package/tests/typed-json-pjtg-corpus.test.ts +530 -0
  1645. package/tests/typed-json-resolver.test.ts +403 -0
  1646. package/tests/typed-json-results.test.ts +564 -0
  1647. package/tests/typed-json-top-level-optionality.test.ts +364 -0
  1648. package/tests/typed-json-ts-type-to-zod.test.ts +469 -0
  1649. package/tests/typed-json-update-operations-collision.test.ts +177 -0
  1650. package/tests/typed-json-update-operations-compile.test.ts +138 -0
  1651. package/tests/typed-json-update-operations.test.ts +314 -0
  1652. package/tests/typed-json-variants.test.ts +248 -0
  1653. package/tests/typescript-inference-lazy-relations.test.ts +142 -0
  1654. package/tests/unchecked-model-name-collision.test.ts +128 -0
  1655. package/tests/upsell-banner.test.ts +203 -0
  1656. package/tests/upstream-mongodb-raw-ops.test.ts +50 -0
  1657. package/tests/variant-input-result-enum.test.ts +62 -0
  1658. package/tests/variant-pure-enum.test.ts +48 -0
  1659. package/tests/write-failures-are-not-swallowed.test.ts +37 -0
  1660. package/tests/zod-coerce-validators.test.ts +103 -0
  1661. package/tests/zod-comments.test.ts +3415 -0
  1662. package/tests/zod-custom-use-more.test.ts +90 -0
  1663. package/tests/zod-custom-use.test.ts +51 -0
  1664. package/tests/zod-imports.test.ts +71 -0
  1665. package/tsconfig.json +25 -0
  1666. package/vitest.config.ts +91 -0
  1667. package/website/README.md +30 -0
  1668. package/website/docs/changelog.md +15 -0
  1669. package/website/docs/config/datetime-strategy.md +281 -0
  1670. package/website/docs/config/dual-exports.md +85 -0
  1671. package/website/docs/config/emission-controls.md +19 -0
  1672. package/website/docs/config/file-layout.md +28 -0
  1673. package/website/docs/config/filtering.md +66 -0
  1674. package/website/docs/config/json-schema-compatibility.md +450 -0
  1675. package/website/docs/config/modes.md +48 -0
  1676. package/website/docs/config/naming.md +177 -0
  1677. package/website/docs/config/optional-fields.md +193 -0
  1678. package/website/docs/config/precedence.md +68 -0
  1679. package/website/docs/config/schema-json.md +68 -0
  1680. package/website/docs/config/strict-mode.md +503 -0
  1681. package/website/docs/config/variants.md +98 -0
  1682. package/website/docs/contributing.md +63 -0
  1683. package/website/docs/features/api-docs.md +187 -0
  1684. package/website/docs/features/contracts.md +152 -0
  1685. package/website/docs/features/factories.md +161 -0
  1686. package/website/docs/features/forms.md +241 -0
  1687. package/website/docs/features/guard.md +86 -0
  1688. package/website/docs/features/multi-tenant.md +158 -0
  1689. package/website/docs/features/overview.md +292 -0
  1690. package/website/docs/features/performance.md +176 -0
  1691. package/website/docs/features/policies.md +287 -0
  1692. package/website/docs/features/postgres-rls.md +198 -0
  1693. package/website/docs/features/sdk.md +211 -0
  1694. package/website/docs/features/server-actions.md +164 -0
  1695. package/website/docs/integrations/overview.md +30 -0
  1696. package/website/docs/integrations/prisma-json-types-generator.md +408 -0
  1697. package/website/docs/intro/concepts.md +61 -0
  1698. package/website/docs/intro/quick-start.md +142 -0
  1699. package/website/docs/intro/what-is.md +97 -0
  1700. package/website/docs/performance.md +49 -0
  1701. package/website/docs/pipeline/mongodb.md +195 -0
  1702. package/website/docs/pipeline/objects-crud.md +35 -0
  1703. package/website/docs/pipeline/pure-models.md +30 -0
  1704. package/website/docs/pipeline/result-schemas.md +199 -0
  1705. package/website/docs/pipeline/select-include.md +192 -0
  1706. package/website/docs/pipeline/single-file.md +25 -0
  1707. package/website/docs/pipeline/special-types.md +129 -0
  1708. package/website/docs/pipeline/zod-comments.md +926 -0
  1709. package/website/docs/recipes/circular-dependency-exclusion.md +151 -0
  1710. package/website/docs/recipes/crud-only.md +31 -0
  1711. package/website/docs/recipes/flexible-api-validation.md +244 -0
  1712. package/website/docs/recipes/granular-per-model.md +37 -0
  1713. package/website/docs/recipes/hide-fields.md +58 -0
  1714. package/website/docs/recipes/input-only.md +59 -0
  1715. package/website/docs/recipes/json-friendly-datetime.md +94 -0
  1716. package/website/docs/recipes/minimal-crud.md +61 -0
  1717. package/website/docs/recipes/models-only.md +38 -0
  1718. package/website/docs/recipes/nodenext-imports.md +62 -0
  1719. package/website/docs/recipes/optional-field-control.md +175 -0
  1720. package/website/docs/recipes/pure-models-lean.md +48 -0
  1721. package/website/docs/recipes/result-only.md +53 -0
  1722. package/website/docs/recipes/safety-custom-configuration.md +351 -0
  1723. package/website/docs/recipes/safety-disable-completely.md +113 -0
  1724. package/website/docs/recipes/safety-force-dangerous-path.md +247 -0
  1725. package/website/docs/recipes/safety-project-migration.md +341 -0
  1726. package/website/docs/recipes/single-file.md +38 -0
  1727. package/website/docs/recipes/trpc-optimized.md +45 -0
  1728. package/website/docs/recipes/zod-import-targets.md +71 -0
  1729. package/website/docs/reference/bytes-json.md +57 -0
  1730. package/website/docs/reference/config-options.md +259 -0
  1731. package/website/docs/reference/default-values.md +176 -0
  1732. package/website/docs/reference/faq.md +98 -0
  1733. package/website/docs/reference/logging-debug.md +59 -0
  1734. package/website/docs/reference/naming-preset-map.md +15 -0
  1735. package/website/docs/reference/pro-cli.md +517 -0
  1736. package/website/docs/reference/safety-system.md +571 -0
  1737. package/website/docs/reference/troubleshooting.md +470 -0
  1738. package/website/docs/reference/where-unique-input.md +57 -0
  1739. package/website/docs/upgrade/pro-migration.md +701 -0
  1740. package/website/docs/upgrade/v3-breaking-changes.md +117 -0
  1741. package/website/docs/upgrade-guide.md +44 -0
  1742. package/website/docs/usage-patterns.md +43 -0
  1743. package/website/docusaurus.config.ts +132 -0
  1744. package/website/package.json +34 -0
  1745. package/website/pnpm-lock.yaml +11207 -0
  1746. package/website/scripts/build-metrics.js +109 -0
  1747. package/website/sidebars.ts +130 -0
  1748. package/website/src/components/FreeTierBanner.module.css +130 -0
  1749. package/website/src/components/FreeTierBanner.tsx +40 -0
  1750. package/website/src/components/Icons.tsx +31 -0
  1751. package/website/src/components/PricingCard.module.css +141 -0
  1752. package/website/src/components/PricingCard.tsx +68 -0
  1753. package/website/src/css/custom.css +940 -0
  1754. package/website/src/data/metrics.json +6 -0
  1755. package/website/src/pages/index.tsx +719 -0
  1756. package/website/src/pages/pricing.module.css +377 -0
  1757. package/website/src/pages/pricing.tsx +604 -0
  1758. package/website/static/img/brand/apple-icon-180.png +0 -0
  1759. package/website/static/img/brand/favicon-16x16.png +0 -0
  1760. package/website/static/img/brand/favicon-24x24.png +0 -0
  1761. package/website/static/img/brand/favicon-32x32.png +0 -0
  1762. package/website/static/img/brand/favicon.ico +0 -0
  1763. package/website/static/img/brand/icon-1024.png +0 -0
  1764. package/website/static/img/brand/icon-128.png +0 -0
  1765. package/website/static/img/brand/icon-16.png +0 -0
  1766. package/website/static/img/brand/icon-180.png +0 -0
  1767. package/website/static/img/brand/icon-192.png +0 -0
  1768. package/website/static/img/brand/icon-24.png +0 -0
  1769. package/website/static/img/brand/icon-256.png +0 -0
  1770. package/website/static/img/brand/icon-32.png +0 -0
  1771. package/website/static/img/brand/icon-48.png +0 -0
  1772. package/website/static/img/brand/icon-512.png +0 -0
  1773. package/website/static/img/brand/icon-64.png +0 -0
  1774. package/website/static/img/brand/icon-96.png +0 -0
  1775. package/website/static/img/brand/icon-manifest.json +25 -0
  1776. package/website/static/img/brand/icon-master.png +0 -0
  1777. package/website/static/img/brand/pwa-icon-192.png +0 -0
  1778. package/website/static/img/brand/pwa-icon-512.png +0 -0
  1779. package/website/static/img/brand/pzg-icon-512.png +0 -0
  1780. package/website/static/img/tiers.png +0 -0
@@ -0,0 +1,3181 @@
1
+ /**
2
+ * Zod Comment Parser
3
+ *
4
+ * Parses @zod validation annotations from Prisma schema field comments
5
+ * to generate enhanced Zod validation schemas.
6
+ */
7
+
8
+ import { DMMF } from '@prisma/generator-helper';
9
+ import { logger } from '../utils/logger';
10
+
11
+ /**
12
+ * Interface for field comment context including metadata for error reporting
13
+ */
14
+ export interface FieldCommentContext {
15
+ modelName: string;
16
+ fieldName: string;
17
+ fieldType: string;
18
+ comment: string;
19
+ isOptional: boolean;
20
+ isList: boolean;
21
+ }
22
+
23
+ /**
24
+ * Interface for extracted field comments with processing status
25
+ */
26
+ export interface ExtractedFieldComment {
27
+ context: FieldCommentContext;
28
+ normalizedComment: string;
29
+ hasZodAnnotations: boolean;
30
+ extractionErrors: string[];
31
+ }
32
+
33
+ /**
34
+ * Interface for custom import statements
35
+ */
36
+ export interface CustomImport {
37
+ importStatement: string;
38
+ source: string; // The module being imported from
39
+ importedItems: string[]; // Names/aliases being imported
40
+ isDefault: boolean;
41
+ isNamespace: boolean;
42
+ isTypeOnly: boolean; // Whether this is a type-only import (import type)
43
+ originalStatement: string; // Original import string for debugging
44
+ }
45
+
46
+ /**
47
+ * Interface for custom imports parsing result
48
+ */
49
+ export interface CustomImportsParseResult {
50
+ imports: CustomImport[];
51
+ customSchema?: string;
52
+ parseErrors: string[];
53
+ isValid: boolean;
54
+ }
55
+
56
+ /**
57
+ * Interface for model comment context including metadata for error reporting
58
+ */
59
+ export interface ModelCommentContext {
60
+ modelName: string;
61
+ comment: string;
62
+ }
63
+
64
+ /**
65
+ * Extract comments from Prisma DMMF model fields
66
+ *
67
+ * This function processes Prisma model field definitions and extracts
68
+ * comment data with proper normalization and context for downstream parsing.
69
+ *
70
+ * @param models - Array of Prisma DMMF models
71
+ * @returns Array of extracted field comments with context
72
+ */
73
+ export function extractFieldComments(models: DMMF.Model[]): ExtractedFieldComment[] {
74
+ const extractedComments: ExtractedFieldComment[] = [];
75
+
76
+ for (const model of models) {
77
+ for (const field of model.fields) {
78
+ const comment = field.documentation || '';
79
+
80
+ // Skip fields without comments
81
+ if (!comment.trim()) {
82
+ continue;
83
+ }
84
+
85
+ try {
86
+ const context: FieldCommentContext = {
87
+ modelName: model.name,
88
+ fieldName: field.name,
89
+ fieldType: field.type,
90
+ comment: comment,
91
+ isOptional: !field.isRequired,
92
+ isList: field.isList,
93
+ };
94
+
95
+ const extractedComment = extractFieldComment(context);
96
+ extractedComments.push(extractedComment);
97
+ } catch (error) {
98
+ // Add error handling for individual field processing failures
99
+ extractedComments.push({
100
+ context: {
101
+ modelName: model.name,
102
+ fieldName: field.name,
103
+ fieldType: field.type,
104
+ comment: comment,
105
+ isOptional: !field.isRequired,
106
+ isList: field.isList,
107
+ },
108
+ normalizedComment: '',
109
+ hasZodAnnotations: false,
110
+ extractionErrors: [
111
+ `Failed to extract comment: ${error instanceof Error ? error.message : String(error)}`,
112
+ ],
113
+ });
114
+ }
115
+ }
116
+ }
117
+
118
+ return extractedComments;
119
+ }
120
+
121
+ /**
122
+ * Extract and normalize a single field comment
123
+ *
124
+ * @param context - Field context with comment and metadata
125
+ * @returns Extracted comment with processing information
126
+ */
127
+ export function extractFieldComment(context: FieldCommentContext): ExtractedFieldComment {
128
+ const errors: string[] = [];
129
+
130
+ try {
131
+ // Normalize whitespace and handle multi-line comments
132
+ const normalizedComment = normalizeComment(context.comment);
133
+
134
+ // Check if comment contains @zod annotations
135
+ const hasZodAnnotations = detectZodAnnotations(normalizedComment);
136
+
137
+ // Validate comment structure
138
+ const structureErrors = validateCommentStructure(normalizedComment, context);
139
+ errors.push(...structureErrors);
140
+
141
+ return {
142
+ context,
143
+ normalizedComment,
144
+ hasZodAnnotations,
145
+ extractionErrors: errors,
146
+ };
147
+ } catch (error) {
148
+ errors.push(
149
+ `Comment extraction failed: ${error instanceof Error ? error.message : String(error)}`,
150
+ );
151
+
152
+ return {
153
+ context,
154
+ normalizedComment: '',
155
+ hasZodAnnotations: false,
156
+ extractionErrors: errors,
157
+ };
158
+ }
159
+ }
160
+
161
+ /**
162
+ * Normalize comment content for consistent processing
163
+ *
164
+ * Handles multi-line comments, whitespace normalization, and ensures
165
+ * consistent format for downstream parsing.
166
+ *
167
+ * @param comment - Raw comment from Prisma field
168
+ * @returns Normalized comment string
169
+ */
170
+ export function normalizeComment(comment: string): string {
171
+ if (!comment || typeof comment !== 'string') {
172
+ return '';
173
+ }
174
+
175
+ // Handle multi-line comments by preserving @zod annotations on separate lines
176
+ const lines = comment.split(/\r?\n/).map((line) => line.trim());
177
+
178
+ // Remove empty lines and normalize whitespace
179
+ const normalizedLines = lines
180
+ .filter((line) => line.length > 0)
181
+ .map((line) => line.replace(/\s+/g, ' ').trim());
182
+
183
+ return normalizedLines.join(' ');
184
+ }
185
+
186
+ /**
187
+ * Detect if comment contains @zod validation annotations
188
+ *
189
+ * Performs a quick check to determine if the comment contains
190
+ * any @zod annotations before more expensive parsing operations.
191
+ *
192
+ * @param comment - Normalized comment string
193
+ * @returns True if @zod annotations are detected
194
+ */
195
+ export function detectZodAnnotations(comment: string): boolean {
196
+ if (!comment) {
197
+ return false;
198
+ }
199
+
200
+ // Look for @zod patterns (case-insensitive) - allow optional whitespace between @zod and .
201
+ const zodPattern = /@zod\s*\./i;
202
+ return zodPattern.test(comment);
203
+ }
204
+
205
+ /**
206
+ * Validate comment structure and detect potential issues
207
+ *
208
+ * Performs structural validation to catch common comment formatting
209
+ * issues that could cause parsing problems later.
210
+ *
211
+ * @param comment - Normalized comment string
212
+ * @param context - Field context for error reporting
213
+ * @returns Array of validation errors
214
+ */
215
+ export function validateCommentStructure(comment: string, context: FieldCommentContext): string[] {
216
+ const errors: string[] = [];
217
+
218
+ if (!comment) {
219
+ return errors; // Empty comments are valid
220
+ }
221
+
222
+ // Check for unmatched parentheses in @zod annotations
223
+ if (detectZodAnnotations(comment)) {
224
+ const parenthesesErrors = validateParentheses(comment, context);
225
+ errors.push(...parenthesesErrors);
226
+
227
+ // Check for malformed @zod syntax
228
+ const syntaxErrors = validateZodSyntax(comment, context);
229
+ errors.push(...syntaxErrors);
230
+ }
231
+
232
+ return errors;
233
+ }
234
+
235
+ /**
236
+ * Validate parentheses matching in comments
237
+ *
238
+ * @param comment - Comment to validate
239
+ * @param context - Field context for error reporting
240
+ * @returns Array of parentheses validation errors
241
+ */
242
+ function validateParentheses(comment: string, context: FieldCommentContext): string[] {
243
+ const errors: string[] = [];
244
+ let parenCount = 0;
245
+
246
+ for (let i = 0; i < comment.length; i++) {
247
+ const char = comment[i];
248
+ if (char === '(') {
249
+ parenCount++;
250
+ } else if (char === ')') {
251
+ parenCount--;
252
+ if (parenCount < 0) {
253
+ errors.push(
254
+ `${context.modelName}.${context.fieldName}: Unmatched closing parenthesis at position ${i}`,
255
+ );
256
+ break;
257
+ }
258
+ }
259
+ }
260
+
261
+ if (parenCount > 0) {
262
+ errors.push(
263
+ `${context.modelName}.${context.fieldName}: ${parenCount} unmatched opening parenthesis(es)`,
264
+ );
265
+ }
266
+
267
+ return errors;
268
+ }
269
+
270
+ /**
271
+ * Extract @zod annotations from comment with proper nested parentheses handling
272
+ *
273
+ * @param comment - Comment string
274
+ * @returns Array of annotation strings
275
+ */
276
+ function extractZodAnnotations(comment: string): string[] {
277
+ const annotations: string[] = [];
278
+ const zodRegex = /@zod\s*\./gi;
279
+ let match;
280
+
281
+ while ((match = zodRegex.exec(comment)) !== null) {
282
+ const startIndex = match.index!;
283
+ // Find the method name
284
+ let currentIndex = startIndex + match[0].length;
285
+
286
+ // Skip whitespace
287
+ while (currentIndex < comment.length && /\s/.test(comment[currentIndex])) {
288
+ currentIndex++;
289
+ }
290
+
291
+ // Extract method name
292
+ const methodStart = currentIndex;
293
+ while (currentIndex < comment.length && /[a-zA-Z0-9_]/.test(comment[currentIndex])) {
294
+ currentIndex++;
295
+ }
296
+
297
+ if (currentIndex === methodStart) continue; // No method name found
298
+
299
+ // Skip whitespace
300
+ while (currentIndex < comment.length && /\s/.test(comment[currentIndex])) {
301
+ currentIndex++;
302
+ }
303
+
304
+ // Optional generic args after method name (e.g., <"UserId">)
305
+ if (currentIndex < comment.length && comment[currentIndex] === '<') {
306
+ const genericRes = parseGenericArgs(comment, currentIndex);
307
+ if (genericRes) {
308
+ currentIndex = genericRes.nextIndex;
309
+ // Skip whitespace after generics
310
+ while (currentIndex < comment.length && /\s/.test(comment[currentIndex])) {
311
+ currentIndex++;
312
+ }
313
+ }
314
+ }
315
+
316
+ // Check if there are parameters
317
+ if (currentIndex < comment.length && comment[currentIndex] === '(') {
318
+ // Find the matching closing parenthesis with proper nesting
319
+ let depth = 0;
320
+ let inString = false;
321
+ let stringChar = '';
322
+
323
+ while (currentIndex < comment.length) {
324
+ const char = comment[currentIndex];
325
+
326
+ if (!inString && (char === '"' || char === "'")) {
327
+ inString = true;
328
+ stringChar = char;
329
+ } else if (inString && char === stringChar && comment[currentIndex - 1] !== '\\') {
330
+ inString = false;
331
+ stringChar = '';
332
+ } else if (!inString) {
333
+ if (char === '(') {
334
+ depth++;
335
+ } else if (char === ')') {
336
+ depth--;
337
+ if (depth === 0) {
338
+ currentIndex++; // Include the closing parenthesis
339
+ break;
340
+ }
341
+ }
342
+ }
343
+ currentIndex++;
344
+ }
345
+
346
+ if (depth === 0) {
347
+ annotations.push(comment.substring(startIndex, currentIndex));
348
+ }
349
+ } else {
350
+ // No parameters, just method name (and possible generics)
351
+ annotations.push(comment.substring(startIndex, currentIndex));
352
+ }
353
+ }
354
+
355
+ return annotations;
356
+ }
357
+
358
+ /**
359
+ * Parse @zod annotations with proper nested parentheses support
360
+ *
361
+ * @param comment - Comment string
362
+ * @param context - Field context
363
+ * @returns Parse result with annotations and errors
364
+ */
365
+ function parseZodAnnotationsWithNestedParentheses(
366
+ comment: string,
367
+ context: FieldCommentContext,
368
+ ): ZodAnnotationParseResult {
369
+ const result: ZodAnnotationParseResult = {
370
+ annotations: [],
371
+ parseErrors: [],
372
+ isValid: true,
373
+ };
374
+
375
+ const annotationStrings = extractZodAnnotations(comment);
376
+
377
+ for (const annotationStr of annotationStrings) {
378
+ try {
379
+ const methodMatch = annotationStr.match(/@zod\s*\.([a-zA-Z_][a-zA-Z0-9_]*)/i);
380
+ if (!methodMatch) continue;
381
+
382
+ const methodName = methodMatch[1];
383
+ // Scan after method token for optional generics before params
384
+ const methodToken = methodMatch[0];
385
+ const methodTokenIndex = annotationStr.indexOf(methodToken);
386
+ let scanIndex = methodTokenIndex + methodToken.length;
387
+ while (scanIndex < annotationStr.length && /\s/.test(annotationStr[scanIndex])) scanIndex++;
388
+ let genericArgs = '';
389
+ if (annotationStr[scanIndex] === '<') {
390
+ const genericRes = parseGenericArgs(annotationStr, scanIndex);
391
+ if (genericRes) {
392
+ genericArgs = genericRes.segment;
393
+ scanIndex = genericRes.nextIndex;
394
+ while (scanIndex < annotationStr.length && /\s/.test(annotationStr[scanIndex]))
395
+ scanIndex++;
396
+ }
397
+ }
398
+
399
+ const paramStart = annotationStr.indexOf('(', scanIndex);
400
+
401
+ if (paramStart !== -1) {
402
+ const paramEnd = annotationStr.lastIndexOf(')');
403
+ if (paramEnd !== -1) {
404
+ const parameterString = annotationStr.substring(paramStart, paramEnd + 1);
405
+ const fakeMatch = [
406
+ annotationStr,
407
+ methodName,
408
+ parameterString,
409
+ ] as unknown as RegExpExecArray;
410
+ fakeMatch.index = 0;
411
+
412
+ const annotation = parseZodAnnotation(fakeMatch, context, genericArgs);
413
+ result.annotations.push(annotation);
414
+ }
415
+ } else {
416
+ const fakeMatch = [annotationStr, methodName, ''] as unknown as RegExpExecArray;
417
+ fakeMatch.index = 0;
418
+
419
+ const annotation = parseZodAnnotation(fakeMatch, context, genericArgs);
420
+ result.annotations.push(annotation);
421
+ }
422
+ } catch (error) {
423
+ const errorMessage = `Failed to parse @zod annotation "${annotationStr}": ${
424
+ error instanceof Error ? error.message : String(error)
425
+ }`;
426
+ result.parseErrors.push(errorMessage);
427
+ result.isValid = false;
428
+ }
429
+ }
430
+
431
+ return result;
432
+ }
433
+
434
+ /**
435
+ * Validate basic @zod annotation syntax
436
+ *
437
+ * @param comment - Comment to validate
438
+ * @param context - Field context for error reporting
439
+ * @returns Array of syntax validation errors
440
+ */
441
+ function validateZodSyntax(comment: string, context: FieldCommentContext): string[] {
442
+ const errors: string[] = [];
443
+
444
+ // Look for @zod annotations and validate basic structure - allow optional whitespace
445
+ const zodMatches = extractZodAnnotations(comment);
446
+
447
+ if (zodMatches) {
448
+ zodMatches.forEach((match, _index) => {
449
+ // Check for common syntax issues
450
+ if (match.includes('..')) {
451
+ errors.push(
452
+ `${context.modelName}.${context.fieldName}: Invalid double dots in @zod annotation: ${match}`,
453
+ );
454
+ }
455
+
456
+ if (match.includes('@zod.()')) {
457
+ errors.push(
458
+ `${context.modelName}.${context.fieldName}: Empty method name in @zod annotation: ${match}`,
459
+ );
460
+ }
461
+ });
462
+ }
463
+
464
+ return errors;
465
+ }
466
+
467
+ /**
468
+ * Interface for parsed @zod annotation
469
+ */
470
+ export interface ParsedZodAnnotation {
471
+ method: string;
472
+ parameters: unknown[];
473
+ rawMatch: string;
474
+ position: number;
475
+ /** Optional generic type arguments captured after the method name, e.g., `<"UserId">` */
476
+ genericArgs?: string;
477
+ }
478
+
479
+ /**
480
+ * Interface for @zod annotation parsing result
481
+ */
482
+ export interface ZodAnnotationParseResult {
483
+ annotations: ParsedZodAnnotation[];
484
+ parseErrors: string[];
485
+ isValid: boolean;
486
+ }
487
+
488
+ /**
489
+ * Parse @zod annotations from normalized comment text
490
+ *
491
+ * Extracts and parses all @zod annotations including method names,
492
+ * parameters, and handles complex chaining scenarios.
493
+ *
494
+ * @param comment - Normalized comment string
495
+ * @param context - Field context for error reporting
496
+ * @returns Parse result with annotations and errors
497
+ */
498
+ export function parseZodAnnotations(
499
+ comment: string,
500
+ context: FieldCommentContext,
501
+ ): ZodAnnotationParseResult {
502
+ const result: ZodAnnotationParseResult = {
503
+ annotations: [],
504
+ parseErrors: [],
505
+ isValid: true,
506
+ };
507
+
508
+ if (!comment || !detectZodAnnotations(comment)) {
509
+ return result;
510
+ }
511
+
512
+ try {
513
+ // Check if we have multiple method calls (chained) by counting dots after @zod
514
+ const methodCount = (comment.match(/\.([a-zA-Z_][a-zA-Z0-9_]*)/g) || []).length;
515
+ const hasChainedAnnotations = methodCount > 1;
516
+
517
+ if (hasChainedAnnotations) {
518
+ // Handle chained @zod annotations (e.g., @zod.min(1).max(100))
519
+ const chainedAnnotations = parseChainedZodAnnotations(comment, context);
520
+ result.annotations.push(...chainedAnnotations.annotations);
521
+ result.parseErrors.push(...chainedAnnotations.parseErrors);
522
+
523
+ if (chainedAnnotations.parseErrors.length > 0) {
524
+ result.isValid = false;
525
+ }
526
+ } else {
527
+ // Handle simple @zod annotations with proper nested parentheses support
528
+ const annotations = parseZodAnnotationsWithNestedParentheses(comment, context);
529
+ result.annotations.push(...annotations.annotations);
530
+ result.parseErrors.push(...annotations.parseErrors);
531
+ if (annotations.parseErrors.length > 0) {
532
+ result.isValid = false;
533
+ }
534
+ }
535
+
536
+ // Drop bare base-type tokens (e.g. the leading `.string()` in
537
+ // `@zod.string().min(1)`): they are no-ops in the emitted chain, and
538
+ // passing them through validation rejects the whole comment (issue #374).
539
+ // 'date' is intentionally absent: @zod.date() is a registered format method.
540
+ const BASE_TYPE_TOKENS = new Set(['string', 'number', 'boolean', 'bigint']);
541
+ result.annotations = result.annotations.filter(
542
+ (a) => !(BASE_TYPE_TOKENS.has(a.method) && (!a.parameters || a.parameters.length === 0)),
543
+ );
544
+
545
+ // Validate and filter the parsed annotations
546
+ if (result.annotations.length > 0) {
547
+ const validAnnotations: ParsedZodAnnotation[] = [];
548
+ const validationErrors: string[] = [];
549
+
550
+ for (const annotation of result.annotations) {
551
+ try {
552
+ validateZodMethod(annotation, context);
553
+ validAnnotations.push(annotation);
554
+ } catch (error) {
555
+ validationErrors.push(
556
+ `${context.modelName}.${context.fieldName}: ${error instanceof Error ? error.message : String(error)}`,
557
+ );
558
+ // Continue processing other annotations instead of failing completely
559
+ }
560
+ }
561
+
562
+ // Only fail if no annotations are valid
563
+ if (validAnnotations.length === 0 && validationErrors.length > 0) {
564
+ result.parseErrors.push(...validationErrors);
565
+ result.isValid = false;
566
+ } else {
567
+ result.annotations = validAnnotations;
568
+ // Log validation errors but don't fail if we have some valid annotations
569
+ if (validationErrors.length > 0) {
570
+ logger.warn('Some @zod annotations were invalid and filtered out:', validationErrors);
571
+ }
572
+ }
573
+ }
574
+ } catch (error) {
575
+ result.parseErrors.push(
576
+ `General parsing error: ${error instanceof Error ? error.message : String(error)}`,
577
+ );
578
+ result.isValid = false;
579
+ }
580
+
581
+ return result;
582
+ }
583
+
584
+ /**
585
+ * Parse a single @zod annotation match
586
+ *
587
+ * @param match - Regex match result
588
+ * @param context - Field context for error reporting
589
+ * @returns Parsed annotation object
590
+ */
591
+ function parseZodAnnotation(
592
+ match: RegExpExecArray,
593
+ context: FieldCommentContext,
594
+ genericArgs = '',
595
+ ): ParsedZodAnnotation {
596
+ const [fullMatch, methodName, parameterString] = match;
597
+ const position = match.index || 0;
598
+
599
+ // Parse parameters if present
600
+ let parameters: unknown[] = [];
601
+ if (parameterString && parameterString.trim() !== '()') {
602
+ try {
603
+ parameters = parseZodParameters(parameterString, context, methodName);
604
+ } catch (error) {
605
+ throw new Error(
606
+ `Invalid parameters in ${methodName}: ${error instanceof Error ? error.message : String(error)}`,
607
+ );
608
+ }
609
+ }
610
+
611
+ return {
612
+ method: methodName,
613
+ parameters,
614
+ rawMatch: fullMatch,
615
+ position,
616
+ genericArgs: genericArgs || undefined,
617
+ };
618
+ }
619
+
620
+ /**
621
+ * Parse chained @zod annotations like @zod.min(1).max(100)
622
+ *
623
+ * @param comment - Comment string
624
+ * @param context - Field context
625
+ * @returns Parse result for chained annotations
626
+ */
627
+ function parseChainedZodAnnotations(
628
+ comment: string,
629
+ context: FieldCommentContext,
630
+ ): ZodAnnotationParseResult {
631
+ const result: ZodAnnotationParseResult = {
632
+ annotations: [],
633
+ parseErrors: [],
634
+ isValid: true,
635
+ };
636
+
637
+ try {
638
+ // Find the @zod annotation start
639
+ const zodIndex = comment.indexOf('@zod');
640
+ if (zodIndex === -1) {
641
+ return result;
642
+ }
643
+
644
+ // Extract the entire @zod chain starting from @zod
645
+ const zodChain = comment.slice(zodIndex);
646
+
647
+ // Use the improved parseMethodChain function to handle the entire chain
648
+ const chainedMethods = parseMethodChain(zodChain, context);
649
+ result.annotations.push(...chainedMethods);
650
+ } catch (error) {
651
+ result.parseErrors.push(
652
+ `Failed to parse chained annotation: ${error instanceof Error ? error.message : String(error)}`,
653
+ );
654
+ result.isValid = false;
655
+ }
656
+
657
+ return result;
658
+ }
659
+
660
+ /**
661
+ * Parse a method chain like .min(1).max(100)
662
+ *
663
+ * @param chainString - The chained method string
664
+ * @param context - Field context
665
+ * @returns Array of parsed annotations
666
+ */
667
+ function parseMethodChain(
668
+ chainString: string,
669
+ context: FieldCommentContext,
670
+ ): ParsedZodAnnotation[] {
671
+ const annotations: ParsedZodAnnotation[] = [];
672
+
673
+ // Parse method calls manually to handle nested parentheses properly
674
+ let i = 0;
675
+ while (i < chainString.length) {
676
+ // Find next method call starting with a dot
677
+ const dotIndex = chainString.indexOf('.', i);
678
+ if (dotIndex === -1) break;
679
+
680
+ // Extract method name
681
+ const methodStart = dotIndex + 1;
682
+ let methodEnd = methodStart;
683
+ while (methodEnd < chainString.length && /[a-zA-Z0-9_]/.test(chainString[methodEnd])) {
684
+ methodEnd++;
685
+ }
686
+
687
+ if (methodEnd === methodStart) {
688
+ i = dotIndex + 1;
689
+ continue;
690
+ }
691
+
692
+ const methodName = chainString.slice(methodStart, methodEnd);
693
+
694
+ // Skip whitespace
695
+ while (methodEnd < chainString.length && /\s/.test(chainString[methodEnd])) {
696
+ methodEnd++;
697
+ }
698
+
699
+ // Optional generic arguments after method name
700
+ let iAfterName = methodEnd;
701
+ while (iAfterName < chainString.length && /\s/.test(chainString[iAfterName])) {
702
+ iAfterName++;
703
+ }
704
+ let genericArgs = '';
705
+ if (iAfterName < chainString.length && chainString[iAfterName] === '<') {
706
+ const genRes = parseGenericArgs(chainString, iAfterName);
707
+ if (genRes) {
708
+ genericArgs = genRes.segment;
709
+ iAfterName = genRes.nextIndex;
710
+ while (iAfterName < chainString.length && /\s/.test(chainString[iAfterName])) {
711
+ iAfterName++;
712
+ }
713
+ }
714
+ }
715
+
716
+ // Check for parameter list
717
+ let parameterString = '';
718
+ if (iAfterName < chainString.length && chainString[iAfterName] === '(') {
719
+ // Find matching closing parenthesis, handling nested parentheses
720
+ let parenCount = 1;
721
+ const paramStart = iAfterName + 1;
722
+ let paramEnd = paramStart;
723
+
724
+ while (paramEnd < chainString.length && parenCount > 0) {
725
+ const char = chainString[paramEnd];
726
+ if (char === '(') {
727
+ parenCount++;
728
+ } else if (char === ')') {
729
+ parenCount--;
730
+ }
731
+ paramEnd++;
732
+ }
733
+
734
+ if (parenCount === 0) {
735
+ parameterString = chainString.slice(iAfterName, paramEnd);
736
+ i = paramEnd;
737
+ } else {
738
+ throw new Error(`Unmatched parentheses in method ${methodName}`);
739
+ }
740
+ } else {
741
+ // No parameters
742
+ parameterString = '()';
743
+ i = iAfterName;
744
+ }
745
+
746
+ // Parse parameters
747
+ let parameters: unknown[] = [];
748
+ if (parameterString && parameterString.trim() !== '()') {
749
+ try {
750
+ parameters = parseZodParameters(parameterString, context, methodName);
751
+ } catch (error) {
752
+ throw new Error(
753
+ `Invalid parameters in chained method ${methodName}: ${error instanceof Error ? error.message : String(error)}`,
754
+ );
755
+ }
756
+ }
757
+
758
+ annotations.push({
759
+ method: methodName,
760
+ parameters,
761
+ rawMatch: `.${methodName}${genericArgs}${parameterString}`,
762
+ position: dotIndex,
763
+ genericArgs: genericArgs || undefined,
764
+ });
765
+ }
766
+
767
+ return annotations;
768
+ }
769
+
770
+ /**
771
+ * Parse parameter string from @zod annotation
772
+ *
773
+ * Handles various parameter types: numbers, strings, booleans, arrays, objects
774
+ *
775
+ * @param parameterString - Parameter string including parentheses
776
+ * @param context - Field context for error reporting
777
+ * @param methodName - Method name for error context
778
+ * @returns Array of parsed parameters
779
+ */
780
+ function parseZodParameters(
781
+ parameterString: string,
782
+ context: FieldCommentContext,
783
+ methodName: string,
784
+ ): unknown[] {
785
+ // Remove outer parentheses
786
+ const innerParams = parameterString.slice(1, -1).trim();
787
+
788
+ if (!innerParams) {
789
+ return [];
790
+ }
791
+
792
+ try {
793
+ // Handle simple cases first
794
+ if (isSimpleParameter(innerParams)) {
795
+ return [parseSimpleParameter(innerParams)];
796
+ }
797
+
798
+ // Handle multiple parameters - split by commas not inside quotes or nested structures
799
+ const paramParts = splitParameters(innerParams);
800
+ return paramParts.map((part) => parseSimpleParameter(part.trim()));
801
+ } catch (error) {
802
+ throw new Error(
803
+ `Failed to parse parameters "${innerParams}" for ${methodName}: ${error instanceof Error ? error.message : String(error)}`,
804
+ );
805
+ }
806
+ }
807
+
808
+ /**
809
+ * Check if parameter string is a simple single parameter
810
+ *
811
+ * @param paramString - Parameter string
812
+ * @returns True if simple parameter
813
+ */
814
+ function isSimpleParameter(paramString: string): boolean {
815
+ const trimmed = paramString.trim();
816
+
817
+ // Check if it contains unquoted commas (indicating multiple parameters)
818
+ let inQuotes = false;
819
+ let quoteChar = '';
820
+ let bracketDepth = 0;
821
+
822
+ for (let i = 0; i < trimmed.length; i++) {
823
+ const char = trimmed[i];
824
+
825
+ if (!inQuotes && (char === '"' || char === "'")) {
826
+ inQuotes = true;
827
+ quoteChar = char;
828
+ } else if (inQuotes && char === quoteChar && trimmed[i - 1] !== '\\') {
829
+ inQuotes = false;
830
+ quoteChar = '';
831
+ } else if (!inQuotes) {
832
+ if (char === '[' || char === '{' || char === '(') {
833
+ bracketDepth++;
834
+ } else if (char === ']' || char === '}' || char === ')') {
835
+ bracketDepth--;
836
+ } else if (char === ',' && bracketDepth === 0) {
837
+ return false; // Multiple parameters
838
+ }
839
+ }
840
+ }
841
+
842
+ return true;
843
+ }
844
+
845
+ /**
846
+ * Parse generic arguments starting at the given index (which must point to '<').
847
+ * Handles nested angle brackets and quoted strings.
848
+ * Returns the captured segment and the index immediately after it.
849
+ */
850
+ function parseGenericArgs(
851
+ source: string,
852
+ startIndex: number,
853
+ ): { segment: string; nextIndex: number } | null {
854
+ if (source[startIndex] !== '<') return null;
855
+ let i = startIndex;
856
+ let depth = 0;
857
+ let inString = false;
858
+ let stringChar = '';
859
+ while (i < source.length) {
860
+ const char = source[i];
861
+ if (!inString && (char === '"' || char === "'")) {
862
+ inString = true;
863
+ stringChar = char;
864
+ } else if (inString && char === stringChar && source[i - 1] !== '\\') {
865
+ inString = false;
866
+ stringChar = '';
867
+ } else if (!inString) {
868
+ if (char === '<') {
869
+ depth++;
870
+ } else if (char === '>') {
871
+ depth--;
872
+ if (depth === 0) {
873
+ const segment = source.slice(startIndex, i + 1);
874
+ return { segment, nextIndex: i + 1 };
875
+ }
876
+ }
877
+ }
878
+ i++;
879
+ }
880
+ return null;
881
+ }
882
+
883
+ /**
884
+ * Split parameter string by commas, respecting quotes and nested structures
885
+ *
886
+ * @param paramString - Parameter string
887
+ * @returns Array of parameter parts
888
+ */
889
+ function splitParameters(paramString: string): string[] {
890
+ const parts: string[] = [];
891
+ let current = '';
892
+ let inQuotes = false;
893
+ let quoteChar = '';
894
+ let bracketDepth = 0;
895
+
896
+ for (let i = 0; i < paramString.length; i++) {
897
+ const char = paramString[i];
898
+
899
+ if (!inQuotes && (char === '"' || char === "'")) {
900
+ inQuotes = true;
901
+ quoteChar = char;
902
+ current += char;
903
+ } else if (inQuotes && char === quoteChar && paramString[i - 1] !== '\\') {
904
+ inQuotes = false;
905
+ quoteChar = '';
906
+ current += char;
907
+ } else if (!inQuotes) {
908
+ if (char === '[' || char === '{' || char === '(') {
909
+ bracketDepth++;
910
+ current += char;
911
+ } else if (char === ']' || char === '}' || char === ')') {
912
+ bracketDepth--;
913
+ current += char;
914
+ } else if (char === ',' && bracketDepth === 0) {
915
+ parts.push(current);
916
+ current = '';
917
+ } else {
918
+ current += char;
919
+ }
920
+ } else {
921
+ current += char;
922
+ }
923
+ }
924
+
925
+ if (current) {
926
+ parts.push(current);
927
+ }
928
+
929
+ return parts;
930
+ }
931
+
932
+ /**
933
+ * Parse a single parameter value
934
+ *
935
+ * @param paramValue - Parameter string value
936
+ * @returns Parsed parameter value
937
+ */
938
+ function parseSimpleParameter(paramValue: string): unknown {
939
+ const trimmed = paramValue.trim();
940
+
941
+ if (!trimmed) {
942
+ throw new Error('Empty parameter value');
943
+ }
944
+
945
+ // Boolean values
946
+ if (trimmed === 'true') return true;
947
+ if (trimmed === 'false') return false;
948
+
949
+ // Null and undefined
950
+ if (trimmed === 'null') return null;
951
+ if (trimmed === 'undefined') return undefined;
952
+
953
+ // Numbers (integers and floats)
954
+ if (/^-?\d+$/.test(trimmed)) {
955
+ return parseInt(trimmed, 10);
956
+ }
957
+ if (/^-?\d*\.\d+$/.test(trimmed)) {
958
+ return parseFloat(trimmed);
959
+ }
960
+
961
+ // Quoted strings
962
+ if (
963
+ (trimmed.startsWith('"') && trimmed.endsWith('"')) ||
964
+ (trimmed.startsWith("'") && trimmed.endsWith("'"))
965
+ ) {
966
+ return trimmed.slice(1, -1);
967
+ }
968
+
969
+ // Regular expressions
970
+ if (trimmed.startsWith('/') && trimmed.match(/\/[gimuy]*$/)) {
971
+ try {
972
+ const lastSlash = trimmed.lastIndexOf('/');
973
+ const pattern = trimmed.slice(1, lastSlash);
974
+ const flags = trimmed.slice(lastSlash + 1);
975
+ return new RegExp(pattern, flags);
976
+ } catch {
977
+ throw new Error(`Invalid regex: ${trimmed}`);
978
+ }
979
+ }
980
+
981
+ // Arrays (basic support)
982
+ if (trimmed.startsWith('[') && trimmed.endsWith(']')) {
983
+ try {
984
+ return JSON.parse(trimmed);
985
+ } catch {
986
+ throw new Error(`Invalid array: ${trimmed}`);
987
+ }
988
+ }
989
+
990
+ // Objects (JavaScript object literal support)
991
+ if (trimmed.startsWith('{') && trimmed.endsWith('}')) {
992
+ try {
993
+ // First try standard JSON parsing for simple cases
994
+ return JSON.parse(trimmed);
995
+ } catch {
996
+ // For complex JavaScript object literals, return as-is as a special marker
997
+ // This will be handled specially in formatParameters to preserve JavaScript expressions
998
+ return { __js_object_literal__: trimmed };
999
+ }
1000
+ }
1001
+
1002
+ // Complex expressions (like new Date(), function calls, etc.)
1003
+ if (trimmed.includes('(') && trimmed.includes(')')) {
1004
+ // Pass through complex expressions as-is for evaluation at runtime
1005
+ return trimmed;
1006
+ }
1007
+
1008
+ // Unquoted strings (identifiers, etc.)
1009
+ if (/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(trimmed)) {
1010
+ return trimmed;
1011
+ }
1012
+
1013
+ // If we can't parse it, pass it through as a raw string
1014
+ // This allows complex expressions to be used in the generated code
1015
+ return trimmed;
1016
+ }
1017
+
1018
+ /**
1019
+ * Validate parsed @zod annotations for semantic correctness
1020
+ *
1021
+ * @param annotations - Array of parsed annotations
1022
+ * @param context - Field context
1023
+ * @returns Array of validation errors
1024
+ */
1025
+ export function validateZodAnnotations(
1026
+ annotations: ParsedZodAnnotation[],
1027
+ context: FieldCommentContext,
1028
+ ): string[] {
1029
+ const errors: string[] = [];
1030
+
1031
+ for (const annotation of annotations) {
1032
+ try {
1033
+ validateZodMethod(annotation, context);
1034
+ } catch (error) {
1035
+ errors.push(
1036
+ `${context.modelName}.${context.fieldName}: ${error instanceof Error ? error.message : String(error)}`,
1037
+ );
1038
+ }
1039
+ }
1040
+
1041
+ return errors;
1042
+ }
1043
+
1044
+ /**
1045
+ * Validate a single @zod method annotation
1046
+ *
1047
+ * @param annotation - Parsed annotation
1048
+ * @param context - Field context
1049
+ */
1050
+ function validateZodMethod(annotation: ParsedZodAnnotation, context: FieldCommentContext): void {
1051
+ const { method, parameters } = annotation;
1052
+
1053
+ // Common string validation methods
1054
+ const stringMethods = [
1055
+ 'min',
1056
+ 'max',
1057
+ 'length',
1058
+ 'email',
1059
+ 'url',
1060
+ 'uuid',
1061
+ 'regex',
1062
+ 'includes',
1063
+ 'startsWith',
1064
+ 'endsWith',
1065
+ 'trim',
1066
+ 'toLowerCase',
1067
+ 'toUpperCase',
1068
+ 'datetime',
1069
+ 'ip',
1070
+ 'cidr',
1071
+ 'date',
1072
+ 'time',
1073
+ 'duration',
1074
+ 'normalize',
1075
+ 'uppercase',
1076
+ 'lowercase',
1077
+ // New Zod v4 string format methods - Issue #233
1078
+ 'httpUrl',
1079
+ 'hostname',
1080
+ 'guid',
1081
+ 'nanoid',
1082
+ 'cuid',
1083
+ 'cuid2',
1084
+ 'ulid',
1085
+ 'base64',
1086
+ 'base64url',
1087
+ 'hex',
1088
+ 'jwt',
1089
+ 'hash',
1090
+ 'ipv4',
1091
+ 'ipv6',
1092
+ 'cidrv4',
1093
+ 'cidrv6',
1094
+ 'emoji',
1095
+ 'isoDate',
1096
+ 'isoTime',
1097
+ 'isoDatetime',
1098
+ 'isoDuration',
1099
+ ];
1100
+
1101
+ // Common number validation methods
1102
+ const numberMethods = [
1103
+ 'min',
1104
+ 'max',
1105
+ 'int',
1106
+ 'positive',
1107
+ 'negative',
1108
+ 'nonnegative',
1109
+ 'nonpositive',
1110
+ 'finite',
1111
+ 'multipleOf',
1112
+ 'step',
1113
+ 'gt',
1114
+ 'gte',
1115
+ 'lt',
1116
+ 'lte',
1117
+ ];
1118
+
1119
+ // Common array validation methods
1120
+ const arrayMethods = ['min', 'max', 'length', 'nonempty'];
1121
+
1122
+ // Methods that require parameters
1123
+ const requiresParams = [
1124
+ 'min',
1125
+ 'max',
1126
+ 'length',
1127
+ 'regex',
1128
+ 'includes',
1129
+ 'startsWith',
1130
+ 'endsWith',
1131
+ 'enum',
1132
+ 'default',
1133
+ 'refine',
1134
+ 'transform',
1135
+ 'multipleOf',
1136
+ 'step',
1137
+ 'gt',
1138
+ 'gte',
1139
+ 'lt',
1140
+ 'lte',
1141
+ 'catch',
1142
+ 'pipe',
1143
+ // New methods that require parameters - Issue #233
1144
+ 'hash', // hash requires algorithm parameter like "sha256"
1145
+ 'custom', // custom requires object/array schema parameter
1146
+ ];
1147
+
1148
+ // Methods that don't allow parameters
1149
+ const noParams = [
1150
+ 'nonempty',
1151
+ 'trim',
1152
+ 'toLowerCase',
1153
+ 'toUpperCase',
1154
+ 'uppercase',
1155
+ 'lowercase',
1156
+ 'brand',
1157
+ 'readonly',
1158
+ 'coerce',
1159
+ ];
1160
+
1161
+ // Methods that accept optional parameters (format validation methods)
1162
+ const optionalParams = [
1163
+ // Existing string format methods
1164
+ 'email',
1165
+ 'url',
1166
+ 'uuid',
1167
+ 'datetime',
1168
+ 'ip',
1169
+ 'cidr',
1170
+ 'date',
1171
+ 'time',
1172
+ 'duration',
1173
+ 'normalize',
1174
+ // New Zod v4 string format methods - Issue #233
1175
+ 'httpUrl',
1176
+ 'hostname',
1177
+ 'guid',
1178
+ 'nanoid',
1179
+ 'cuid',
1180
+ 'cuid2',
1181
+ 'ulid',
1182
+ 'base64',
1183
+ 'base64url',
1184
+ 'hex',
1185
+ 'jwt',
1186
+ 'ipv4',
1187
+ 'ipv6',
1188
+ 'cidrv4',
1189
+ 'cidrv6',
1190
+ 'emoji',
1191
+ 'isoDate',
1192
+ 'isoTime',
1193
+ 'isoDatetime',
1194
+ 'isoDuration',
1195
+ ];
1196
+
1197
+ // Methods that accept optional error message parameter
1198
+ const optionalErrorMessage = [
1199
+ 'int',
1200
+ 'positive',
1201
+ 'negative',
1202
+ 'nonnegative',
1203
+ 'nonpositive',
1204
+ 'finite',
1205
+ ];
1206
+
1207
+ // Additional known methods not covered above
1208
+ //
1209
+ // This list and getValidationMethodConfig()'s table below are two separate,
1210
+ // hand-maintained sources of truth for "is this a real @zod method" - a name
1211
+ // missing from *either* one silently drops the annotation with no error, since a
1212
+ // field with at least one other valid annotation never trips isValid:false. Adding
1213
+ // a method means updating both; coerce was missed here the first time for exactly
1214
+ // that reason.
1215
+ const additionalMethods = [
1216
+ 'default',
1217
+ 'optional',
1218
+ 'nullable',
1219
+ 'nullish',
1220
+ 'refine',
1221
+ 'transform',
1222
+ 'enum',
1223
+ 'object',
1224
+ 'array',
1225
+ 'record',
1226
+ 'json',
1227
+ 'catch',
1228
+ 'pipe',
1229
+ 'brand',
1230
+ 'readonly',
1231
+ 'coerce',
1232
+ // Schema metadata (issue #225/#371): describe works on v3 and v4;
1233
+ // meta is v4-only and is version-mapped during emission.
1234
+ 'describe',
1235
+ 'meta',
1236
+ ];
1237
+
1238
+ // Check if method is known
1239
+ const allKnownMethods = [
1240
+ ...new Set([
1241
+ ...stringMethods,
1242
+ ...numberMethods,
1243
+ ...arrayMethods,
1244
+ ...additionalMethods,
1245
+ ...optionalErrorMessage,
1246
+ ...optionalParams,
1247
+ ...requiresParams, // Add methods that require parameters
1248
+ ]),
1249
+ ];
1250
+ if (!allKnownMethods.includes(method)) {
1251
+ throw new Error(`Unknown @zod method: ${method} - this method is not supported`);
1252
+ }
1253
+
1254
+ // Validate parameter requirements
1255
+ if (requiresParams.includes(method) && parameters.length === 0) {
1256
+ throw new Error(`Method ${method} requires parameters`);
1257
+ }
1258
+
1259
+ if (noParams.includes(method) && parameters.length > 0) {
1260
+ throw new Error(`Method ${method} does not accept parameters`);
1261
+ }
1262
+
1263
+ // Validate optional parameter methods (string format methods)
1264
+ if (optionalParams.includes(method) && parameters.length > 1) {
1265
+ throw new Error(`Method ${method} accepts at most one parameter`);
1266
+ }
1267
+
1268
+ // Validate optional error message methods
1269
+ if (optionalErrorMessage.includes(method) && parameters.length > 1) {
1270
+ throw new Error(`Method ${method} accepts at most one parameter (error message)`);
1271
+ }
1272
+
1273
+ if (
1274
+ optionalErrorMessage.includes(method) &&
1275
+ parameters.length === 1 &&
1276
+ !isErrorMessageParam(parameters[0])
1277
+ ) {
1278
+ throw new Error(`Method ${method} error message parameter must be a string or params object`);
1279
+ }
1280
+
1281
+ // Type-specific validations based on field type
1282
+ if (context.fieldType === 'String') {
1283
+ validateStringMethodParameters(method, parameters);
1284
+ } else if (context.fieldType === 'Int' || context.fieldType === 'Float') {
1285
+ validateNumberMethodParameters(method, parameters);
1286
+ }
1287
+ }
1288
+
1289
+ /**
1290
+ * Accept both error-message shapes Zod supports: the string shorthand and the
1291
+ * params object form (`{ message: "..." }` / `{ error: "..." }`). Object-form
1292
+ * arguments arrive either JSON-parsed or as `{ __js_object_literal__ }` markers.
1293
+ */
1294
+ function isErrorMessageParam(param: unknown): boolean {
1295
+ return (
1296
+ typeof param === 'string' ||
1297
+ (typeof param === 'object' &&
1298
+ param !== null &&
1299
+ !Array.isArray(param) &&
1300
+ !(param instanceof RegExp))
1301
+ );
1302
+ }
1303
+
1304
+ /**
1305
+ * Validate parameters for string validation methods
1306
+ *
1307
+ * @param method - Validation method name
1308
+ * @param parameters - Method parameters
1309
+ */
1310
+ function validateStringMethodParameters(method: string, parameters: unknown[]): void {
1311
+ switch (method) {
1312
+ case 'min':
1313
+ case 'max':
1314
+ case 'length':
1315
+ // Allow 1 parameter (number) or 2 parameters (number + error message)
1316
+ if (
1317
+ parameters.length < 1 ||
1318
+ parameters.length > 2 ||
1319
+ typeof parameters[0] !== 'number' ||
1320
+ parameters[0] < 0 ||
1321
+ (parameters.length === 2 && !isErrorMessageParam(parameters[1]))
1322
+ ) {
1323
+ throw new Error(
1324
+ `${method} requires a non-negative number parameter and optional error message (string or params object)`,
1325
+ );
1326
+ }
1327
+ break;
1328
+
1329
+ case 'regex':
1330
+ if (parameters.length < 1 || parameters.length > 2) {
1331
+ throw new Error(`regex requires 1-2 parameters (RegExp/string, optional error message)`);
1332
+ }
1333
+ if (!(parameters[0] instanceof RegExp || typeof parameters[0] === 'string')) {
1334
+ throw new Error(`regex first parameter must be a RegExp or string`);
1335
+ }
1336
+ if (parameters.length === 2 && typeof parameters[1] !== 'string') {
1337
+ throw new Error(`regex second parameter (error message) must be a string`);
1338
+ }
1339
+ break;
1340
+
1341
+ case 'includes':
1342
+ case 'startsWith':
1343
+ case 'endsWith':
1344
+ if (parameters.length !== 1 || typeof parameters[0] !== 'string') {
1345
+ throw new Error(`${method} requires a string parameter`);
1346
+ }
1347
+ break;
1348
+
1349
+ case 'hash':
1350
+ if (parameters.length !== 1 || typeof parameters[0] !== 'string') {
1351
+ throw new Error(`hash requires a single string algorithm parameter (e.g., 'sha256')`);
1352
+ }
1353
+ break;
1354
+ }
1355
+ }
1356
+
1357
+ /**
1358
+ * Validate parameters for number validation methods
1359
+ *
1360
+ * @param method - Validation method name
1361
+ * @param parameters - Method parameters
1362
+ */
1363
+ function validateNumberMethodParameters(method: string, parameters: unknown[]): void {
1364
+ switch (method) {
1365
+ case 'min':
1366
+ case 'max':
1367
+ // Allow 1 parameter (number) or 2 parameters (number + error message)
1368
+ if (
1369
+ parameters.length < 1 ||
1370
+ parameters.length > 2 ||
1371
+ typeof parameters[0] !== 'number' ||
1372
+ (parameters.length === 2 && !isErrorMessageParam(parameters[1]))
1373
+ ) {
1374
+ throw new Error(`${method} requires a number parameter and optional error message`);
1375
+ }
1376
+ break;
1377
+
1378
+ case 'positive':
1379
+ case 'negative':
1380
+ case 'int':
1381
+ case 'finite':
1382
+ // Allow 0 parameters or 1 parameter (error message)
1383
+ if (
1384
+ parameters.length > 1 ||
1385
+ (parameters.length === 1 && !isErrorMessageParam(parameters[0]))
1386
+ ) {
1387
+ throw new Error(`${method} accepts optional error message parameter`);
1388
+ }
1389
+ break;
1390
+
1391
+ case 'multipleOf':
1392
+ case 'step':
1393
+ // Allow 1 parameter (number) or 2 parameters (number + error message)
1394
+ if (
1395
+ parameters.length < 1 ||
1396
+ parameters.length > 2 ||
1397
+ typeof parameters[0] !== 'number' ||
1398
+ (parameters.length === 2 && !isErrorMessageParam(parameters[1]))
1399
+ ) {
1400
+ throw new Error(`${method} requires a number parameter and optional error message`);
1401
+ }
1402
+ break;
1403
+ }
1404
+ }
1405
+
1406
+ /**
1407
+ * Interface for Zod schema generation result
1408
+ */
1409
+ export interface ZodSchemaGenerationResult {
1410
+ schemaChain: string;
1411
+ imports: Set<string>;
1412
+ errors: string[];
1413
+ isValid: boolean;
1414
+ }
1415
+
1416
+ /**
1417
+ * Interface for validation method mapping configuration
1418
+ */
1419
+ export interface ValidationMethodConfig {
1420
+ methodName: string;
1421
+ zodMethod: string;
1422
+ parameterCount: number | 'variable';
1423
+ requiresImport?: string;
1424
+ fieldTypeCompatibility?: string[];
1425
+ }
1426
+
1427
+ /**
1428
+ * Map parsed @zod annotations to Zod schema method calls
1429
+ *
1430
+ * Converts parsed annotations into actual Zod validation method chains
1431
+ * that can be used in generated schema code.
1432
+ *
1433
+ * @param annotations - Array of parsed annotations
1434
+ * @param context - Field context for validation
1435
+ * @param zodVersion - Zod version target ('v3', 'v4', or 'auto')
1436
+ * @returns Schema generation result with method chain and imports
1437
+ */
1438
+ export function mapAnnotationsToZodSchema(
1439
+ annotations: ParsedZodAnnotation[],
1440
+ context: FieldCommentContext,
1441
+ zodVersion: 'auto' | 'v3' | 'v4' = 'auto',
1442
+ ): ZodSchemaGenerationResult {
1443
+ const result: ZodSchemaGenerationResult = {
1444
+ schemaChain: '',
1445
+ imports: new Set<string>(),
1446
+ errors: [],
1447
+ isValid: true,
1448
+ };
1449
+
1450
+ if (annotations.length === 0) {
1451
+ return result;
1452
+ }
1453
+
1454
+ try {
1455
+ const methodCalls: string[] = [];
1456
+ const methodResults: MethodMappingResult[] = [];
1457
+
1458
+ for (const annotation of annotations) {
1459
+ try {
1460
+ const methodResult = mapAnnotationToZodMethod(annotation, context, zodVersion);
1461
+ // Skip empty fallbacks (e.g., v3 for v4-only base methods)
1462
+ if (methodResult.methodCall) {
1463
+ methodCalls.push(methodResult.methodCall);
1464
+ }
1465
+ methodResults.push(methodResult);
1466
+
1467
+ // Add any required imports
1468
+ if (methodResult.requiredImport) {
1469
+ result.imports.add(methodResult.requiredImport);
1470
+ }
1471
+ } catch (error) {
1472
+ result.errors.push(
1473
+ `Failed to map ${annotation.method}: ${error instanceof Error ? error.message : String(error)}`,
1474
+ );
1475
+ result.isValid = false;
1476
+ }
1477
+ }
1478
+
1479
+ // Join all method calls into a chain
1480
+ if (methodCalls.length > 0) {
1481
+ // Check if we have a base replacement method (like z.email() in v4)
1482
+ const baseReplacements = methodResults.filter((result) => result.isBaseReplacement);
1483
+ const regularReplacements = methodCalls.filter(
1484
+ (call) =>
1485
+ call &&
1486
+ !call.startsWith('.') &&
1487
+ !methodResults.find((r) => r.methodCall === call)?.isBaseReplacement,
1488
+ );
1489
+ const chainMethods = methodCalls.filter((call) => call.startsWith('.'));
1490
+
1491
+ if (baseReplacements.length > 0) {
1492
+ // Handle base replacement (like z.email() in v4) with chaining
1493
+ if (baseReplacements.length > 1) {
1494
+ result.errors.push(
1495
+ 'Multiple base replacement methods detected - only one allowed per field',
1496
+ );
1497
+ result.isValid = false;
1498
+ } else {
1499
+ result.schemaChain = baseReplacements[0].methodCall + chainMethods.join('');
1500
+ }
1501
+ } else if (regularReplacements.length > 0) {
1502
+ // Handle regular replacement methods (json, enum)
1503
+ const chainMethods = methodCalls.filter((call) => call.startsWith('.'));
1504
+
1505
+ if (regularReplacements.length > 1) {
1506
+ result.errors.push('Multiple replacement methods detected - only one allowed per field');
1507
+ result.isValid = false;
1508
+ } else {
1509
+ // Use the replacement method as base, then chain any additional methods
1510
+ result.schemaChain = regularReplacements[0] + chainMethods.join('');
1511
+ }
1512
+ } else {
1513
+ // All are chaining methods, join normally
1514
+ result.schemaChain = methodCalls.join('');
1515
+ }
1516
+ }
1517
+ } catch (error) {
1518
+ result.errors.push(
1519
+ `Schema generation failed: ${error instanceof Error ? error.message : String(error)}`,
1520
+ );
1521
+ result.isValid = false;
1522
+ }
1523
+
1524
+ return result;
1525
+ }
1526
+
1527
+ /**
1528
+ * Interface for single method mapping result
1529
+ */
1530
+ interface MethodMappingResult {
1531
+ methodCall: string;
1532
+ requiredImport?: string;
1533
+ isBaseReplacement?: boolean;
1534
+ }
1535
+
1536
+ /**
1537
+ * Resolve the target Zod version for syntax generation
1538
+ *
1539
+ * @param zodVersion - Version specification ('auto', 'v3', or 'v4')
1540
+ * @returns Resolved version ('v3' or 'v4')
1541
+ */
1542
+ function resolveZodVersion(zodVersion: 'auto' | 'v3' | 'v4'): 'v3' | 'v4' {
1543
+ if (zodVersion === 'v3' || zodVersion === 'v4') {
1544
+ return zodVersion;
1545
+ }
1546
+
1547
+ // Auto-detect Zod version
1548
+ try {
1549
+ // Try to detect Zod version by loading zod package.json
1550
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
1551
+ const zodPackage = require('zod/package.json');
1552
+ const version = zodPackage.version;
1553
+
1554
+ if (version) {
1555
+ const majorVersion = parseInt(version.split('.')[0], 10);
1556
+ return majorVersion >= 4 ? 'v4' : 'v3';
1557
+ }
1558
+ } catch {
1559
+ // If we can't load zod package.json, try alternative detection
1560
+ try {
1561
+ // Try to detect by checking if z.email() method exists as standalone
1562
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
1563
+ const zod = require('zod');
1564
+ if (typeof zod.z?.email === 'function') {
1565
+ return 'v4';
1566
+ }
1567
+ } catch {
1568
+ // Ignore inner detection errors
1569
+ }
1570
+ }
1571
+
1572
+ // Fallback to v3 if detection fails
1573
+ logger.warn('Failed to detect Zod version, defaulting to v3 syntax');
1574
+ return 'v3';
1575
+ }
1576
+
1577
+ /**
1578
+ * Map a single annotation to a Zod method call
1579
+ *
1580
+ * @param annotation - Parsed annotation
1581
+ * @param context - Field context
1582
+ * @param zodVersion - Zod version target for version-specific handling
1583
+ * @returns Method mapping result
1584
+ */
1585
+ /**
1586
+ * Map .meta({...}) parameters to a .describe(...) call for Zod v3, which has
1587
+ * no .meta(). Returns null when no description key can be extracted.
1588
+ */
1589
+ function metaParamsToDescribeCall(parameters: unknown[]): string | null {
1590
+ const p = parameters[0];
1591
+ if (!p || typeof p !== 'object') return null;
1592
+ if ('__js_object_literal__' in (p as Record<string, unknown>)) {
1593
+ const literal = (p as { __js_object_literal__: string }).__js_object_literal__;
1594
+ const m = literal.match(/\bdescription\s*:\s*("(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/);
1595
+ return m ? `.describe(${m[1]})` : null;
1596
+ }
1597
+ const description = (p as { description?: unknown }).description;
1598
+ return typeof description === 'string' ? `.describe(${JSON.stringify(description)})` : null;
1599
+ }
1600
+
1601
+ function mapAnnotationToZodMethod(
1602
+ annotation: ParsedZodAnnotation,
1603
+ context: FieldCommentContext,
1604
+ zodVersion: 'auto' | 'v3' | 'v4' = 'auto',
1605
+ ): MethodMappingResult {
1606
+ const { method, parameters } = annotation;
1607
+
1608
+ // Schema metadata (issues #225/#371). describe exists on v3 and v4; meta is
1609
+ // v4-only and downgrades to .describe(description) on v3.
1610
+ if (method === 'describe') {
1611
+ return { methodCall: `.describe(${formatParameters(parameters)})` };
1612
+ }
1613
+ if (method === 'meta') {
1614
+ if (resolveZodVersion(zodVersion) === 'v4') {
1615
+ return { methodCall: `.meta(${formatParameters(parameters)})` };
1616
+ }
1617
+ const describeCall = metaParamsToDescribeCall(parameters);
1618
+ if (describeCall) {
1619
+ return { methodCall: describeCall };
1620
+ }
1621
+ logger.warn(
1622
+ `@zod.meta() requires Zod v4; dropped for ${context.modelName}.${context.fieldName} (no description key to map to .describe)`,
1623
+ );
1624
+ return { methodCall: '' };
1625
+ }
1626
+
1627
+ // Get method configuration. For list fields, validations like .min/.max/.length should
1628
+ // target the array wrapper rather than the element type, so treat the effective
1629
+ // field type as 'Array' for compatibility checks.
1630
+ const effectiveFieldType = context.isList ? 'Array' : context.fieldType;
1631
+ const methodConfig = getValidationMethodConfig(method, effectiveFieldType);
1632
+
1633
+ if (!methodConfig) {
1634
+ // Unknown method - pass through as-is with warning
1635
+ logger.warn(`Unknown @zod method: ${method} - generating as-is`);
1636
+ return {
1637
+ methodCall: `.${method}(${formatParameters(parameters)})`,
1638
+ };
1639
+ }
1640
+
1641
+ // Validate field type compatibility
1642
+ if (
1643
+ methodConfig.fieldTypeCompatibility &&
1644
+ !methodConfig.fieldTypeCompatibility.includes(effectiveFieldType)
1645
+ ) {
1646
+ throw new Error(
1647
+ `Method ${method} is not compatible with field type ${effectiveFieldType}. Compatible types: ${methodConfig.fieldTypeCompatibility.join(', ')}`,
1648
+ );
1649
+ }
1650
+
1651
+ // Validate parameter count
1652
+ if (methodConfig.parameterCount !== 'variable') {
1653
+ if (parameters.length !== methodConfig.parameterCount) {
1654
+ throw new Error(
1655
+ `Method ${method} expects ${methodConfig.parameterCount} parameters, got ${parameters.length}`,
1656
+ );
1657
+ }
1658
+ }
1659
+
1660
+ // Handle special cases that replace the base type rather than chain
1661
+ if (method === 'json') {
1662
+ // z.json() replaces the base type entirely
1663
+ return {
1664
+ methodCall: 'z.json()',
1665
+ requiredImport: methodConfig.requiresImport,
1666
+ };
1667
+ }
1668
+
1669
+ if (method === 'enum') {
1670
+ // z.enum() replaces the base type entirely
1671
+ const formattedParams = formatParameters(parameters);
1672
+ return {
1673
+ methodCall: `z.enum(${formattedParams})`,
1674
+ requiredImport: methodConfig.requiresImport,
1675
+ };
1676
+ }
1677
+
1678
+ if (method === 'coerce') {
1679
+ // Zod has no `.coerce()` chain method — coercion only exists as a constructor
1680
+ // variant (z.coerce.number(), never z.number().coerce()) — so this replaces the
1681
+ // base type rather than appending to it, the same way json/enum do above.
1682
+ // fieldTypeCompatibility already narrowed context.fieldType to one of these four.
1683
+ const coerceExpr =
1684
+ context.fieldType === 'Int'
1685
+ ? 'z.coerce.number().int()' // preserves the .int() an uncoerced Int field gets
1686
+ : context.fieldType === 'BigInt'
1687
+ ? 'z.coerce.bigint()'
1688
+ : context.fieldType === 'Boolean'
1689
+ ? 'z.coerce.boolean()'
1690
+ : 'z.coerce.number()'; // Float
1691
+ return { methodCall: coerceExpr };
1692
+ }
1693
+
1694
+ if (method === 'custom') {
1695
+ if (parameters.length === 0) {
1696
+ throw new Error('Method custom requires parameters');
1697
+ }
1698
+
1699
+ const [schemaCandidate] = parameters;
1700
+
1701
+ if (
1702
+ schemaCandidate &&
1703
+ typeof schemaCandidate === 'object' &&
1704
+ !('__js_object_literal__' in (schemaCandidate as Record<string, unknown>))
1705
+ ) {
1706
+ const zodSchema = inferZodTypeFromValue(schemaCandidate);
1707
+ return {
1708
+ methodCall: zodSchema,
1709
+ requiredImport: methodConfig.requiresImport,
1710
+ isBaseReplacement: true,
1711
+ };
1712
+ }
1713
+
1714
+ if (typeof schemaCandidate === 'string') {
1715
+ try {
1716
+ const zodSchema = inferZodTypeFromValue(JSON.parse(schemaCandidate));
1717
+ return {
1718
+ methodCall: zodSchema,
1719
+ requiredImport: methodConfig.requiresImport,
1720
+ isBaseReplacement: true,
1721
+ };
1722
+ } catch {
1723
+ // Fall through; formatParameters will handle non-JSON literals.
1724
+ }
1725
+ }
1726
+
1727
+ const formattedParams = formatParameters(parameters);
1728
+ return {
1729
+ methodCall: `z.object(${formattedParams})`,
1730
+ requiredImport: methodConfig.requiresImport,
1731
+ isBaseReplacement: true,
1732
+ };
1733
+ }
1734
+
1735
+ // Handle new Zod v4 string format methods - Issue #233
1736
+ const newStringFormatMethods = [
1737
+ 'email',
1738
+ 'url',
1739
+ 'uuid',
1740
+ 'httpUrl',
1741
+ 'hostname',
1742
+ 'guid',
1743
+ 'nanoid',
1744
+ 'cuid',
1745
+ 'cuid2',
1746
+ 'ulid',
1747
+ 'base64',
1748
+ 'base64url',
1749
+ 'hex',
1750
+ 'jwt',
1751
+ 'ipv4',
1752
+ 'ipv6',
1753
+ 'cidrv4',
1754
+ 'cidrv6',
1755
+ 'emoji',
1756
+ // Note: 'regex' is not included because z.regex() is not a valid method
1757
+ // regex should use z.string().regex() syntax instead
1758
+ 'isoDate',
1759
+ 'isoTime',
1760
+ 'isoDatetime',
1761
+ 'isoDuration',
1762
+ ];
1763
+
1764
+ if (newStringFormatMethods.includes(method)) {
1765
+ const resolvedVersion = resolveZodVersion(zodVersion);
1766
+
1767
+ if (resolvedVersion === 'v4') {
1768
+ // In Zod v4, prefer base types like z.httpUrl(), z.base64(), etc.
1769
+ // Don't chain unnecessarily!
1770
+ const formattedParams = formatV4StringFormatParameters(method, parameters);
1771
+
1772
+ // Special handling for ISO methods which use z.iso.xxx() syntax
1773
+ const isoMethods = ['isoDate', 'isoTime', 'isoDatetime', 'isoDuration'];
1774
+ let methodCall: string;
1775
+ if (isoMethods.includes(method)) {
1776
+ const isoMethodMap: Record<string, string> = {
1777
+ isoDate: 'z.iso.date',
1778
+ isoTime: 'z.iso.time',
1779
+ isoDatetime: 'z.iso.datetime',
1780
+ isoDuration: 'z.iso.duration',
1781
+ };
1782
+ methodCall = formattedParams
1783
+ ? `${isoMethodMap[method]}(${formattedParams})`
1784
+ : `${isoMethodMap[method]}()`;
1785
+ } else {
1786
+ methodCall = formattedParams ? `z.${method}(${formattedParams})` : `z.${method}()`;
1787
+ }
1788
+
1789
+ return {
1790
+ methodCall,
1791
+ requiredImport: methodConfig.requiresImport,
1792
+ isBaseReplacement: true,
1793
+ };
1794
+ }
1795
+ // For v3, fallback to z.string() since these methods likely don't exist
1796
+ logger.warn(
1797
+ `[zod-comments] Method ${method} not supported in Zod v3; falling back to z.string()`,
1798
+ );
1799
+ return {
1800
+ methodCall: '', // Will result in base z.string() only
1801
+ requiredImport: methodConfig.requiresImport,
1802
+ };
1803
+ }
1804
+
1805
+ // Handle hash method with parameter (special case)
1806
+ if (method === 'hash') {
1807
+ const resolvedVersion = resolveZodVersion(zodVersion);
1808
+
1809
+ if (resolvedVersion === 'v4') {
1810
+ // In Zod v4, z.hash(algorithm) is a base type
1811
+ const formattedParams = formatParameters(parameters);
1812
+ return {
1813
+ methodCall: `z.hash(${formattedParams})`,
1814
+ requiredImport: methodConfig.requiresImport,
1815
+ isBaseReplacement: true,
1816
+ };
1817
+ }
1818
+ // For v3, fallback to z.string() since hash() likely doesn't exist
1819
+ logger.warn(`[zod-comments] Method hash not supported in Zod v3; falling back to z.string()`);
1820
+ return {
1821
+ methodCall: '', // Will result in base z.string() only
1822
+ requiredImport: methodConfig.requiresImport,
1823
+ };
1824
+ }
1825
+
1826
+ // Generate the method call for regular chaining methods
1827
+ const formattedParams = formatParameters(parameters);
1828
+ const methodCall = `.${methodConfig.zodMethod}${annotation.genericArgs ?? ''}(${formattedParams})`;
1829
+
1830
+ return {
1831
+ methodCall,
1832
+ requiredImport: methodConfig.requiresImport,
1833
+ };
1834
+ }
1835
+
1836
+ /**
1837
+ * Get validation method configuration
1838
+ *
1839
+ * @param methodName - Name of the validation method
1840
+ * @param fieldType - Field type for compatibility checking
1841
+ * @returns Method configuration or null if unknown
1842
+ */
1843
+ function getValidationMethodConfig(
1844
+ methodName: string,
1845
+ fieldType?: string,
1846
+ ): ValidationMethodConfig | null {
1847
+ const configs: ValidationMethodConfig[] = [
1848
+ // String validation methods
1849
+ {
1850
+ methodName: 'min',
1851
+ zodMethod: 'min',
1852
+ parameterCount: 'variable',
1853
+ fieldTypeCompatibility: ['String'],
1854
+ },
1855
+ {
1856
+ methodName: 'max',
1857
+ zodMethod: 'max',
1858
+ parameterCount: 'variable',
1859
+ fieldTypeCompatibility: ['String'],
1860
+ },
1861
+ {
1862
+ methodName: 'length',
1863
+ zodMethod: 'length',
1864
+ parameterCount: 'variable',
1865
+ fieldTypeCompatibility: ['String'],
1866
+ },
1867
+ {
1868
+ methodName: 'email',
1869
+ zodMethod: 'email',
1870
+ parameterCount: 'variable', // 0 or 1 parameter
1871
+ fieldTypeCompatibility: ['String'],
1872
+ },
1873
+ {
1874
+ methodName: 'url',
1875
+ zodMethod: 'url',
1876
+ parameterCount: 'variable',
1877
+ fieldTypeCompatibility: ['String'],
1878
+ },
1879
+ {
1880
+ methodName: 'uuid',
1881
+ zodMethod: 'uuid',
1882
+ parameterCount: 'variable', // 0 or 1 parameter
1883
+ fieldTypeCompatibility: ['String'],
1884
+ },
1885
+ {
1886
+ methodName: 'regex',
1887
+ zodMethod: 'regex',
1888
+ parameterCount: 'variable',
1889
+ fieldTypeCompatibility: ['String'],
1890
+ },
1891
+ {
1892
+ methodName: 'includes',
1893
+ zodMethod: 'includes',
1894
+ parameterCount: 1,
1895
+ fieldTypeCompatibility: ['String'],
1896
+ },
1897
+ {
1898
+ methodName: 'startsWith',
1899
+ zodMethod: 'startsWith',
1900
+ parameterCount: 1,
1901
+ fieldTypeCompatibility: ['String'],
1902
+ },
1903
+ {
1904
+ methodName: 'endsWith',
1905
+ zodMethod: 'endsWith',
1906
+ parameterCount: 1,
1907
+ fieldTypeCompatibility: ['String'],
1908
+ },
1909
+ {
1910
+ methodName: 'trim',
1911
+ zodMethod: 'trim',
1912
+ parameterCount: 0,
1913
+ fieldTypeCompatibility: ['String'],
1914
+ },
1915
+ {
1916
+ methodName: 'toLowerCase',
1917
+ zodMethod: 'toLowerCase',
1918
+ parameterCount: 0,
1919
+ fieldTypeCompatibility: ['String'],
1920
+ },
1921
+ {
1922
+ methodName: 'toUpperCase',
1923
+ zodMethod: 'toUpperCase',
1924
+ parameterCount: 0,
1925
+ fieldTypeCompatibility: ['String'],
1926
+ },
1927
+ {
1928
+ methodName: 'ip',
1929
+ zodMethod: 'ip',
1930
+ parameterCount: 'variable',
1931
+ fieldTypeCompatibility: ['String'],
1932
+ },
1933
+ {
1934
+ methodName: 'cidr',
1935
+ zodMethod: 'cidr',
1936
+ parameterCount: 'variable',
1937
+ fieldTypeCompatibility: ['String'],
1938
+ },
1939
+ {
1940
+ methodName: 'date',
1941
+ zodMethod: 'date',
1942
+ parameterCount: 'variable',
1943
+ fieldTypeCompatibility: ['String'],
1944
+ },
1945
+ {
1946
+ methodName: 'time',
1947
+ zodMethod: 'time',
1948
+ parameterCount: 'variable',
1949
+ fieldTypeCompatibility: ['String'],
1950
+ },
1951
+ {
1952
+ methodName: 'duration',
1953
+ zodMethod: 'duration',
1954
+ parameterCount: 'variable',
1955
+ fieldTypeCompatibility: ['String'],
1956
+ },
1957
+ {
1958
+ methodName: 'normalize',
1959
+ zodMethod: 'normalize',
1960
+ parameterCount: 'variable',
1961
+ fieldTypeCompatibility: ['String'],
1962
+ },
1963
+ {
1964
+ methodName: 'uppercase',
1965
+ zodMethod: 'uppercase',
1966
+ parameterCount: 0,
1967
+ fieldTypeCompatibility: ['String'],
1968
+ },
1969
+ {
1970
+ methodName: 'lowercase',
1971
+ zodMethod: 'lowercase',
1972
+ parameterCount: 0,
1973
+ fieldTypeCompatibility: ['String'],
1974
+ },
1975
+
1976
+ // Number validation methods
1977
+ {
1978
+ methodName: 'min',
1979
+ zodMethod: 'min',
1980
+ parameterCount: 'variable',
1981
+ fieldTypeCompatibility: ['Int', 'Float', 'BigInt'],
1982
+ },
1983
+ {
1984
+ methodName: 'max',
1985
+ zodMethod: 'max',
1986
+ parameterCount: 'variable',
1987
+ fieldTypeCompatibility: ['Int', 'Float', 'BigInt'],
1988
+ },
1989
+ {
1990
+ methodName: 'int',
1991
+ zodMethod: 'int',
1992
+ parameterCount: 0,
1993
+ fieldTypeCompatibility: ['Int', 'Float'],
1994
+ },
1995
+ {
1996
+ methodName: 'positive',
1997
+ zodMethod: 'positive',
1998
+ parameterCount: 'variable',
1999
+ fieldTypeCompatibility: ['Int', 'Float', 'BigInt'],
2000
+ },
2001
+ {
2002
+ methodName: 'negative',
2003
+ zodMethod: 'negative',
2004
+ parameterCount: 0,
2005
+ fieldTypeCompatibility: ['Int', 'Float', 'BigInt'],
2006
+ },
2007
+ {
2008
+ methodName: 'nonnegative',
2009
+ zodMethod: 'nonnegative',
2010
+ parameterCount: 0,
2011
+ fieldTypeCompatibility: ['Int', 'Float', 'BigInt'],
2012
+ },
2013
+ {
2014
+ methodName: 'nonpositive',
2015
+ zodMethod: 'nonpositive',
2016
+ parameterCount: 0,
2017
+ fieldTypeCompatibility: ['Int', 'Float', 'BigInt'],
2018
+ },
2019
+ {
2020
+ methodName: 'finite',
2021
+ zodMethod: 'finite',
2022
+ parameterCount: 0,
2023
+ fieldTypeCompatibility: ['Float'],
2024
+ },
2025
+ {
2026
+ methodName: 'safe',
2027
+ zodMethod: 'safe',
2028
+ parameterCount: 0,
2029
+ fieldTypeCompatibility: ['Int', 'Float'],
2030
+ },
2031
+ {
2032
+ methodName: 'multipleOf',
2033
+ zodMethod: 'multipleOf',
2034
+ parameterCount: 'variable',
2035
+ fieldTypeCompatibility: ['Int', 'Float'],
2036
+ },
2037
+ {
2038
+ methodName: 'gt',
2039
+ zodMethod: 'gt',
2040
+ parameterCount: 'variable',
2041
+ fieldTypeCompatibility: ['Int', 'Float', 'BigInt'],
2042
+ },
2043
+ {
2044
+ methodName: 'gte',
2045
+ zodMethod: 'gte',
2046
+ parameterCount: 'variable',
2047
+ fieldTypeCompatibility: ['Int', 'Float', 'BigInt'],
2048
+ },
2049
+ {
2050
+ methodName: 'lt',
2051
+ zodMethod: 'lt',
2052
+ parameterCount: 'variable',
2053
+ fieldTypeCompatibility: ['Int', 'Float', 'BigInt'],
2054
+ },
2055
+ {
2056
+ methodName: 'lte',
2057
+ zodMethod: 'lte',
2058
+ parameterCount: 'variable',
2059
+ fieldTypeCompatibility: ['Int', 'Float', 'BigInt'],
2060
+ },
2061
+ {
2062
+ methodName: 'step',
2063
+ zodMethod: 'multipleOf',
2064
+ parameterCount: 'variable',
2065
+ fieldTypeCompatibility: ['Int', 'Float'],
2066
+ },
2067
+
2068
+ // Array validation methods
2069
+ // Array validation methods accept an optional error message parameter in Zod
2070
+ {
2071
+ methodName: 'min',
2072
+ zodMethod: 'min',
2073
+ parameterCount: 'variable',
2074
+ fieldTypeCompatibility: ['Array'],
2075
+ },
2076
+ {
2077
+ methodName: 'max',
2078
+ zodMethod: 'max',
2079
+ parameterCount: 'variable',
2080
+ fieldTypeCompatibility: ['Array'],
2081
+ },
2082
+ {
2083
+ methodName: 'length',
2084
+ zodMethod: 'length',
2085
+ parameterCount: 'variable',
2086
+ fieldTypeCompatibility: ['Array'],
2087
+ },
2088
+ {
2089
+ methodName: 'nonempty',
2090
+ zodMethod: 'nonempty',
2091
+ parameterCount: 'variable',
2092
+ fieldTypeCompatibility: ['Array'],
2093
+ },
2094
+
2095
+ // Date validation methods
2096
+ {
2097
+ methodName: 'min',
2098
+ zodMethod: 'min',
2099
+ parameterCount: 1,
2100
+ fieldTypeCompatibility: ['DateTime'],
2101
+ },
2102
+ {
2103
+ methodName: 'max',
2104
+ zodMethod: 'max',
2105
+ parameterCount: 1,
2106
+ fieldTypeCompatibility: ['DateTime'],
2107
+ },
2108
+
2109
+ // Custom validation methods
2110
+ { methodName: 'refine', zodMethod: 'refine', parameterCount: 'variable' },
2111
+ { methodName: 'transform', zodMethod: 'transform', parameterCount: 1 },
2112
+ { methodName: 'optional', zodMethod: 'optional', parameterCount: 0 },
2113
+ { methodName: 'nullable', zodMethod: 'nullable', parameterCount: 0 },
2114
+ { methodName: 'nullish', zodMethod: 'nullish', parameterCount: 0 },
2115
+ { methodName: 'default', zodMethod: 'default', parameterCount: 1 },
2116
+ {
2117
+ methodName: 'enum',
2118
+ zodMethod: 'enum',
2119
+ parameterCount: 1,
2120
+ fieldTypeCompatibility: ['String'],
2121
+ },
2122
+ {
2123
+ methodName: 'datetime',
2124
+ zodMethod: 'datetime',
2125
+ parameterCount: 'variable',
2126
+ fieldTypeCompatibility: ['String'],
2127
+ },
2128
+ { methodName: 'object', zodMethod: 'object', parameterCount: 0 },
2129
+ { methodName: 'array', zodMethod: 'array', parameterCount: 'variable' },
2130
+ {
2131
+ methodName: 'json',
2132
+ zodMethod: 'json',
2133
+ parameterCount: 0,
2134
+ fieldTypeCompatibility: ['Json'],
2135
+ },
2136
+ {
2137
+ methodName: 'coerce',
2138
+ zodMethod: 'coerce',
2139
+ parameterCount: 0,
2140
+ // DateTime already has its own generator-level dateTimeStrategy:'coerce'; String
2141
+ // coercion (z.coerce.string()) stringifies arbitrary input, a different and much
2142
+ // rarer need than #237's ask (a numeric HTML form value coming in as a string).
2143
+ // Deliberately excludes 'Array': effectiveFieldType becomes 'Array' for list
2144
+ // fields, so `Int[]` with @zod.coerce() is rejected by the same
2145
+ // fieldTypeCompatibility check every other validator goes through, rather than
2146
+ // silently doing nothing.
2147
+ fieldTypeCompatibility: ['Int', 'Float', 'BigInt', 'Boolean'],
2148
+ },
2149
+ { methodName: 'catch', zodMethod: 'catch', parameterCount: 1 },
2150
+ { methodName: 'pipe', zodMethod: 'pipe', parameterCount: 1 },
2151
+ { methodName: 'brand', zodMethod: 'brand', parameterCount: 0 },
2152
+ { methodName: 'readonly', zodMethod: 'readonly', parameterCount: 0 },
2153
+
2154
+ // New Zod v4 string format methods - Issue #233
2155
+ // Network/URL validation methods
2156
+ {
2157
+ methodName: 'httpUrl',
2158
+ zodMethod: 'httpUrl',
2159
+ parameterCount: 'variable',
2160
+ fieldTypeCompatibility: ['String'],
2161
+ },
2162
+ {
2163
+ methodName: 'hostname',
2164
+ zodMethod: 'hostname',
2165
+ parameterCount: 'variable',
2166
+ fieldTypeCompatibility: ['String'],
2167
+ },
2168
+
2169
+ // Identifier validation methods
2170
+ {
2171
+ methodName: 'guid',
2172
+ zodMethod: 'guid',
2173
+ parameterCount: 'variable',
2174
+ fieldTypeCompatibility: ['String'],
2175
+ },
2176
+ {
2177
+ methodName: 'nanoid',
2178
+ zodMethod: 'nanoid',
2179
+ parameterCount: 'variable',
2180
+ fieldTypeCompatibility: ['String'],
2181
+ },
2182
+ {
2183
+ methodName: 'cuid',
2184
+ zodMethod: 'cuid',
2185
+ parameterCount: 'variable',
2186
+ fieldTypeCompatibility: ['String'],
2187
+ },
2188
+ {
2189
+ methodName: 'cuid2',
2190
+ zodMethod: 'cuid2',
2191
+ parameterCount: 'variable',
2192
+ fieldTypeCompatibility: ['String'],
2193
+ },
2194
+ {
2195
+ methodName: 'ulid',
2196
+ zodMethod: 'ulid',
2197
+ parameterCount: 'variable',
2198
+ fieldTypeCompatibility: ['String'],
2199
+ },
2200
+
2201
+ // Encoding validation methods
2202
+ {
2203
+ methodName: 'base64',
2204
+ zodMethod: 'base64',
2205
+ parameterCount: 'variable',
2206
+ fieldTypeCompatibility: ['String'],
2207
+ },
2208
+ {
2209
+ methodName: 'base64url',
2210
+ zodMethod: 'base64url',
2211
+ parameterCount: 'variable',
2212
+ fieldTypeCompatibility: ['String'],
2213
+ },
2214
+ {
2215
+ methodName: 'hex',
2216
+ zodMethod: 'hex',
2217
+ parameterCount: 'variable',
2218
+ fieldTypeCompatibility: ['String'],
2219
+ },
2220
+
2221
+ // Security/Crypto validation methods
2222
+ {
2223
+ methodName: 'jwt',
2224
+ zodMethod: 'jwt',
2225
+ parameterCount: 'variable',
2226
+ fieldTypeCompatibility: ['String'],
2227
+ },
2228
+ {
2229
+ methodName: 'hash',
2230
+ zodMethod: 'hash',
2231
+ parameterCount: 1, // Takes algorithm parameter like "sha256"
2232
+ fieldTypeCompatibility: ['String'],
2233
+ },
2234
+
2235
+ // Network validation methods
2236
+ {
2237
+ methodName: 'ipv4',
2238
+ zodMethod: 'ipv4',
2239
+ parameterCount: 'variable',
2240
+ fieldTypeCompatibility: ['String'],
2241
+ },
2242
+ {
2243
+ methodName: 'ipv6',
2244
+ zodMethod: 'ipv6',
2245
+ parameterCount: 'variable',
2246
+ fieldTypeCompatibility: ['String'],
2247
+ },
2248
+ {
2249
+ methodName: 'cidrv4',
2250
+ zodMethod: 'cidrv4',
2251
+ parameterCount: 'variable',
2252
+ fieldTypeCompatibility: ['String'],
2253
+ },
2254
+ {
2255
+ methodName: 'cidrv6',
2256
+ zodMethod: 'cidrv6',
2257
+ parameterCount: 'variable',
2258
+ fieldTypeCompatibility: ['String'],
2259
+ },
2260
+
2261
+ // Character validation methods
2262
+ {
2263
+ methodName: 'emoji',
2264
+ zodMethod: 'emoji',
2265
+ parameterCount: 'variable',
2266
+ fieldTypeCompatibility: ['String'],
2267
+ },
2268
+
2269
+ // ISO date/time validation methods
2270
+ {
2271
+ methodName: 'isoDate',
2272
+ zodMethod: 'iso.date',
2273
+ parameterCount: 'variable',
2274
+ fieldTypeCompatibility: ['String'],
2275
+ },
2276
+ {
2277
+ methodName: 'isoTime',
2278
+ zodMethod: 'iso.time',
2279
+ parameterCount: 'variable',
2280
+ fieldTypeCompatibility: ['String'],
2281
+ },
2282
+ {
2283
+ methodName: 'isoDatetime',
2284
+ zodMethod: 'iso.datetime',
2285
+ parameterCount: 'variable',
2286
+ fieldTypeCompatibility: ['String'],
2287
+ },
2288
+ {
2289
+ methodName: 'isoDuration',
2290
+ zodMethod: 'iso.duration',
2291
+ parameterCount: 'variable',
2292
+ fieldTypeCompatibility: ['String'],
2293
+ },
2294
+
2295
+ // Custom schema method - replaces base type entirely
2296
+ {
2297
+ methodName: 'custom',
2298
+ zodMethod: 'object', // This will be overridden in special handling
2299
+ parameterCount: 1,
2300
+ fieldTypeCompatibility: ['Json'], // Only works with Json fields
2301
+ },
2302
+
2303
+ // Note: Removed 'string', 'number', 'boolean' method configs as they duplicate base types
2304
+ ];
2305
+
2306
+ // If field type is provided, find the config that matches both method name and field type
2307
+ if (fieldType) {
2308
+ const compatibleConfigs = configs.filter(
2309
+ (config) =>
2310
+ config.methodName === methodName &&
2311
+ (!config.fieldTypeCompatibility || config.fieldTypeCompatibility.includes(fieldType)),
2312
+ );
2313
+
2314
+ if (compatibleConfigs.length > 0) {
2315
+ return compatibleConfigs[0];
2316
+ }
2317
+ }
2318
+
2319
+ // Fallback to first match by method name only
2320
+ return configs.find((config) => config.methodName === methodName) || null;
2321
+ }
2322
+
2323
+ /**
2324
+ * Format parameters for Zod method calls
2325
+ *
2326
+ * @param parameters - Array of parameter values
2327
+ * @returns Formatted parameter string
2328
+ */
2329
+ function formatParameters(parameters: unknown[]): string {
2330
+ if (parameters.length === 0) {
2331
+ return '';
2332
+ }
2333
+
2334
+ return parameters.map((param) => formatSingleParameter(param)).join(', ');
2335
+ }
2336
+
2337
+ /**
2338
+ * Format parameters specifically for Zod v4 string format methods
2339
+ * These methods expect either string error messages or validation parameter objects
2340
+ *
2341
+ * From the Zod v4 API: all string format methods expect `string | core.$ZodCheck{Method}Params`
2342
+ * These are validation parameters, not configuration parameters
2343
+ *
2344
+ * @param method - The method name (nanoid, jwt, base64, etc.)
2345
+ * @param parameters - Array of parameters to format
2346
+ * @returns Formatted parameter string or empty string
2347
+ */
2348
+ function formatV4StringFormatParameters(_method: string, parameters: any[] | undefined): string {
2349
+ if (!parameters || parameters.length === 0) {
2350
+ return '';
2351
+ }
2352
+
2353
+ const firstParam = parameters[0];
2354
+
2355
+ // For numeric/boolean parameters, preserve them as-is to maintain user intent
2356
+ // Even if they result in invalid TypeScript, let the user fix their annotations
2357
+ if (typeof firstParam === 'number' || typeof firstParam === 'boolean') {
2358
+ return formatParameters(parameters);
2359
+ }
2360
+
2361
+ // For string parameters, format them normally as error messages
2362
+ if (typeof firstParam === 'string') {
2363
+ return formatSingleParameter(firstParam);
2364
+ }
2365
+
2366
+ // For other types (objects, arrays), format normally
2367
+ return formatParameters(parameters);
2368
+ }
2369
+
2370
+ /**
2371
+ * Format a single parameter for Zod method calls
2372
+ *
2373
+ * @param param - Parameter value
2374
+ * @returns Formatted parameter string
2375
+ */
2376
+ function formatSingleParameter(param: unknown): string {
2377
+ if (param === null) {
2378
+ return 'null';
2379
+ }
2380
+
2381
+ if (param === undefined) {
2382
+ return 'undefined';
2383
+ }
2384
+
2385
+ if (typeof param === 'string') {
2386
+ // Check if it's a complex expression that shouldn't be quoted
2387
+ // Complex expressions include: new Date(), RegExp(), function calls,
2388
+ // arrow functions (value => ... or (value) => ...), async arrows, or dotted calls like z.string()
2389
+ const isDottedOrCtorCall = /^(new\s+\w+\(|RegExp\(|[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*)*\()/;
2390
+ const isFunctionKeyword = /^\s*function\b/;
2391
+ const isArrowFunction = /^\s*(?:async\s+)?(?:\([^)]*\)|[A-Za-z_$][\w$]*)\s*=>/;
2392
+ if (
2393
+ isDottedOrCtorCall.test(param) ||
2394
+ isFunctionKeyword.test(param) ||
2395
+ isArrowFunction.test(param)
2396
+ ) {
2397
+ return param; // Return complex/functional expressions as-is
2398
+ }
2399
+ // Prefer double quotes for URL-like strings (e.g., https://) to match snapshots
2400
+ if (/^https?:\/\//i.test(param)) {
2401
+ const escapedDq = param.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
2402
+ return `"${escapedDq}"`;
2403
+ }
2404
+ // Default: single quotes for plain strings (error messages, enum values, etc.)
2405
+ const escapedSq = param.replace(/\\/g, '\\\\').replace(/'/g, "\\'");
2406
+ return `'${escapedSq}'`;
2407
+ }
2408
+
2409
+ if (typeof param === 'number' || typeof param === 'boolean') {
2410
+ return String(param);
2411
+ }
2412
+
2413
+ if (param instanceof RegExp) {
2414
+ return param.toString();
2415
+ }
2416
+
2417
+ if (Array.isArray(param)) {
2418
+ return `[${param.map(formatSingleParameter).join(', ')}]`;
2419
+ }
2420
+
2421
+ if (typeof param === 'object') {
2422
+ // Handle special JavaScript object literal marker
2423
+ if (param && typeof param === 'object' && '__js_object_literal__' in param) {
2424
+ // Return the raw JavaScript object literal without quotes
2425
+ return (param as { __js_object_literal__: string }).__js_object_literal__;
2426
+ }
2427
+ return JSON.stringify(param);
2428
+ }
2429
+
2430
+ // Fallback for unknown types
2431
+ return String(param);
2432
+ }
2433
+
2434
+ /**
2435
+ * Generate complete Zod schema with base type and validations
2436
+ *
2437
+ * @param baseType - Base Zod type (e.g., 'z.string()', 'z.number()')
2438
+ * @param annotations - Parsed annotations
2439
+ * @param context - Field context
2440
+ * @returns Complete schema generation result
2441
+ */
2442
+ export function generateCompleteZodSchema(
2443
+ baseType: string,
2444
+ annotations: ParsedZodAnnotation[],
2445
+ context: FieldCommentContext,
2446
+ zodVersion: 'auto' | 'v3' | 'v4' = 'auto',
2447
+ ): ZodSchemaGenerationResult {
2448
+ const validationResult = mapAnnotationsToZodSchema(annotations, context, zodVersion);
2449
+
2450
+ if (!validationResult.isValid) {
2451
+ return validationResult;
2452
+ }
2453
+
2454
+ // Combine base type with validation chain
2455
+ let schemaChain = validationResult.schemaChain;
2456
+
2457
+ // Check if the schema chain is a replacement method (doesn't start with dot)
2458
+ const hasChain = schemaChain.length > 0;
2459
+ const isReplacementSchema = hasChain && !schemaChain.startsWith('.');
2460
+
2461
+ let fullSchema: string;
2462
+ if (!hasChain) {
2463
+ // No validations to apply; return base type untouched
2464
+ fullSchema = baseType;
2465
+ } else if (isReplacementSchema) {
2466
+ // For replacement schemas (json, enum), use them directly instead of concatenating
2467
+ fullSchema = schemaChain;
2468
+ } else {
2469
+ // Remove redundant .optional() calls if base type already includes .optional()
2470
+ if (baseType.includes('.optional()') && schemaChain.includes('.optional()')) {
2471
+ // Remove all .optional() calls from the chain since base type already handles optionality
2472
+ schemaChain = schemaChain.replace(/\.optional\(\)/g, '');
2473
+ }
2474
+
2475
+ // Regular concatenation for chaining methods
2476
+ fullSchema = baseType + schemaChain;
2477
+ }
2478
+
2479
+ return {
2480
+ schemaChain: fullSchema,
2481
+ imports: validationResult.imports,
2482
+ errors: validationResult.errors,
2483
+ isValid: validationResult.isValid,
2484
+ };
2485
+ }
2486
+
2487
+ /**
2488
+ * Field-aware base type resolver to correctly handle enums vs relations.
2489
+ */
2490
+ export function getBaseZodTypeForField(
2491
+ field: import('@prisma/generator-helper').DMMF.Field,
2492
+ isOptionalOverride?: boolean,
2493
+ ): string {
2494
+ const isOptional =
2495
+ typeof isOptionalOverride === 'boolean' ? isOptionalOverride : !field.isRequired;
2496
+
2497
+ let baseType: string;
2498
+ switch (field.type) {
2499
+ case 'String':
2500
+ baseType = 'z.string()';
2501
+ break;
2502
+ case 'Int':
2503
+ baseType = 'z.number().int()';
2504
+ break;
2505
+ case 'Float':
2506
+ baseType = 'z.number()';
2507
+ break;
2508
+ case 'Boolean':
2509
+ baseType = 'z.boolean()';
2510
+ break;
2511
+ case 'DateTime':
2512
+ baseType = 'z.date()';
2513
+ break;
2514
+ case 'BigInt':
2515
+ baseType = 'z.bigint()';
2516
+ break;
2517
+ case 'Decimal':
2518
+ baseType = 'z.number()';
2519
+ break;
2520
+ case 'Json':
2521
+ baseType = 'z.unknown()';
2522
+ break;
2523
+ case 'Bytes':
2524
+ baseType = 'z.instanceof(Uint8Array)';
2525
+ break;
2526
+ default:
2527
+ if (field.kind === 'enum') {
2528
+ baseType = `${String(field.type)}Schema`;
2529
+ } else {
2530
+ baseType = 'z.unknown()';
2531
+ }
2532
+ break;
2533
+ }
2534
+
2535
+ if (field.isList) {
2536
+ baseType = `z.array(${baseType})`;
2537
+ }
2538
+ if (isOptional) {
2539
+ baseType = `${baseType}.optional()`;
2540
+ }
2541
+ return baseType;
2542
+ }
2543
+
2544
+ /**
2545
+ * Get required imports for Zod schema generation
2546
+ *
2547
+ * @param fieldType - Prisma field type
2548
+ * @param customImports - Additional imports from validation methods
2549
+ * @returns Set of import statements
2550
+ */
2551
+ export function getRequiredImports(
2552
+ fieldType: string,
2553
+ customImports: Set<string> = new Set(),
2554
+ ): Set<string> {
2555
+ const imports = new Set<string>(customImports);
2556
+
2557
+ // Always need zod
2558
+ imports.add('z');
2559
+
2560
+ // Special imports for certain types
2561
+ switch (fieldType) {
2562
+ case 'Bytes':
2563
+ // Uint8Array is built-in, no import needed
2564
+ break;
2565
+ case 'DateTime':
2566
+ // Date is built-in, no import needed
2567
+ break;
2568
+ default:
2569
+ // Check if it's an enum type (would need enum import)
2570
+ if (!['String', 'Int', 'Float', 'Boolean', 'BigInt', 'Decimal', 'Json'].includes(fieldType)) {
2571
+ // This is likely an enum or model type - might need custom import
2572
+ imports.add(`${fieldType} // Enum import may be needed`);
2573
+ }
2574
+ break;
2575
+ }
2576
+
2577
+ return imports;
2578
+ }
2579
+
2580
+ /**
2581
+ * Convert a JavaScript object to a Zod object schema string
2582
+ */
2583
+ function convertObjectToZodSchema(obj: any): string {
2584
+ const properties: string[] = [];
2585
+
2586
+ for (const [key, value] of Object.entries(obj)) {
2587
+ const zodType = inferZodTypeFromValue(value);
2588
+ properties.push(`${JSON.stringify(key)}: ${zodType}`);
2589
+ }
2590
+
2591
+ return `{ ${properties.join(', ')} }`;
2592
+ }
2593
+
2594
+ /**
2595
+ * Infer Zod type from a JavaScript value
2596
+ */
2597
+ function inferZodTypeFromValue(value: any): string {
2598
+ if (typeof value === 'string') {
2599
+ return `z.string()`;
2600
+ } else if (typeof value === 'number') {
2601
+ return Number.isInteger(value) ? `z.number().int()` : `z.number()`;
2602
+ } else if (typeof value === 'boolean') {
2603
+ return `z.boolean()`;
2604
+ } else if (Array.isArray(value)) {
2605
+ if (value.length === 0) {
2606
+ return `z.array(z.unknown())`;
2607
+ }
2608
+ const firstElementType = inferZodTypeFromValue(value[0]);
2609
+ return `z.array(${firstElementType})`;
2610
+ } else if (value && typeof value === 'object') {
2611
+ return `z.object(${convertObjectToZodSchema(value)})`;
2612
+ } else if (value === null) {
2613
+ return `z.null()`;
2614
+ } else {
2615
+ return `z.unknown()`;
2616
+ }
2617
+ }
2618
+
2619
+ /**
2620
+ * Detect if comment contains @zod.import annotations
2621
+ *
2622
+ * @param comment - Normalized comment string
2623
+ * @returns True if @zod.import annotations are detected
2624
+ */
2625
+ export function detectCustomImports(comment: string): boolean {
2626
+ if (!comment) {
2627
+ return false;
2628
+ }
2629
+
2630
+ // Look for @zod.import patterns (case-insensitive)
2631
+ const importPattern = /@zod\s*\.\s*import\s*\(/i;
2632
+ return importPattern.test(comment);
2633
+ }
2634
+
2635
+ /**
2636
+ * Parse custom imports from a comment string
2637
+ *
2638
+ * Supports both model-level and field-level imports:
2639
+ * - @zod.import(["import { myFunction } from 'mypackage'"])
2640
+ * - @zod.import(["import myFunction from 'mypackage'"])
2641
+ * - @zod.import(["import * as myModule from 'mypackage'"])
2642
+ *
2643
+ * @param comment - Comment string to parse
2644
+ * @param context - Context for error reporting (model or field)
2645
+ * @returns Custom imports parsing result
2646
+ */
2647
+ export function parseCustomImports(
2648
+ comment: string,
2649
+ context: ModelCommentContext | FieldCommentContext,
2650
+ ): CustomImportsParseResult {
2651
+ const result: CustomImportsParseResult = {
2652
+ imports: [],
2653
+ parseErrors: [],
2654
+ isValid: true,
2655
+ customSchema: undefined,
2656
+ };
2657
+
2658
+ if (!comment || !detectCustomImports(comment)) {
2659
+ return result;
2660
+ }
2661
+
2662
+ try {
2663
+ // Simpler approach: find @zod.import patterns and check for .custom.use after
2664
+ const importPattern = /@zod\s*\.\s*import\s*\(([^)]+(?:\([^)]*\)[^)]*)*)\)/gi;
2665
+ let match;
2666
+
2667
+ while ((match = importPattern.exec(comment)) !== null) {
2668
+ const importArrayString = match[1].trim();
2669
+ const endOfImport = match.index + match[0].length;
2670
+ const afterImport = comment.substring(endOfImport);
2671
+
2672
+ // Look for validation methods after the import - support both field and model level
2673
+ let customSchemaString: string | null = null;
2674
+
2675
+ // Field-level: .custom.use(...)
2676
+ const customUseMatch = afterImport.match(/^\s*\.\s*custom\s*\.\s*use\s*\(/);
2677
+ if (customUseMatch) {
2678
+ const startPos = customUseMatch.index! + customUseMatch[0].length;
2679
+ const endPos = findBalancedParentheses(afterImport, startPos);
2680
+ if (endPos !== -1) {
2681
+ customSchemaString = afterImport.substring(startPos, endPos).trim();
2682
+ }
2683
+ }
2684
+
2685
+ // Model-level: .refine(...), .transform(...), etc.
2686
+ if (!customSchemaString) {
2687
+ const modelValidationMatch = afterImport.match(
2688
+ /^\s*\.\s*(refine|transform|superRefine|pipe)\s*\(/,
2689
+ );
2690
+ if (modelValidationMatch) {
2691
+ const method = modelValidationMatch[1];
2692
+ const startPos = modelValidationMatch.index! + modelValidationMatch[0].length;
2693
+ const endPos = findBalancedParentheses(afterImport, startPos);
2694
+ if (endPos !== -1) {
2695
+ const validationArgs = afterImport.substring(startPos, endPos).trim();
2696
+ customSchemaString = `${method}(${validationArgs})`;
2697
+ }
2698
+ }
2699
+ }
2700
+
2701
+ try {
2702
+ // Parse the import array - it should be a JSON array of strings
2703
+ const importStatements = parseImportArray(importArrayString, context);
2704
+
2705
+ // Process each import statement
2706
+ for (const importStatement of importStatements) {
2707
+ const customImport = parseImportStatement(importStatement, context);
2708
+ if (customImport) {
2709
+ result.imports.push(customImport);
2710
+ }
2711
+ }
2712
+
2713
+ // Store the custom schema if present
2714
+ if (customSchemaString) {
2715
+ result.customSchema = customSchemaString;
2716
+ }
2717
+ } catch (error) {
2718
+ const contextStr =
2719
+ 'fieldName' in context
2720
+ ? `${context.modelName}.${context.fieldName}`
2721
+ : `${context.modelName}`;
2722
+
2723
+ result.parseErrors.push(
2724
+ `${contextStr}: Failed to parse import array: ${error instanceof Error ? error.message : String(error)}`,
2725
+ );
2726
+ result.isValid = false;
2727
+ }
2728
+ }
2729
+
2730
+ // Deduplicate imports by import statement
2731
+ result.imports = deduplicateImports(result.imports);
2732
+ } catch (error) {
2733
+ const contextStr =
2734
+ 'fieldName' in context ? `${context.modelName}.${context.fieldName}` : `${context.modelName}`;
2735
+
2736
+ result.parseErrors.push(
2737
+ `${contextStr}: Failed to parse custom imports: ${error instanceof Error ? error.message : String(error)}`,
2738
+ );
2739
+ result.isValid = false;
2740
+ }
2741
+
2742
+ return result;
2743
+ }
2744
+
2745
+ /**
2746
+ * Parse import array string into individual import statements
2747
+ *
2748
+ * @param importArrayString - String representation of import array
2749
+ * @param context - Context for error reporting
2750
+ * @returns Array of import statement strings
2751
+ */
2752
+ function parseImportArray(
2753
+ importArrayString: string,
2754
+ _context: ModelCommentContext | FieldCommentContext,
2755
+ ): string[] {
2756
+ const trimmedInput = importArrayString.trim();
2757
+
2758
+ if (!trimmedInput) {
2759
+ return [];
2760
+ }
2761
+
2762
+ const statementsFromJson = parseImportArrayJson(trimmedInput);
2763
+ if (statementsFromJson.length > 0) {
2764
+ return statementsFromJson;
2765
+ }
2766
+
2767
+ const fallbackStatements = extractImportStatements(trimmedInput);
2768
+ if (fallbackStatements.length > 0) {
2769
+ return fallbackStatements;
2770
+ }
2771
+
2772
+ throw new Error(
2773
+ `Invalid import array format. Expected JSON array of strings, got: ${importArrayString}`,
2774
+ );
2775
+ }
2776
+
2777
+ function extractImportStatements(segment: string): string[] {
2778
+ const cleanedSegment = stripWrappingQuotes(segment);
2779
+
2780
+ if (!cleanedSegment) {
2781
+ return [];
2782
+ }
2783
+
2784
+ const statements: string[] = [];
2785
+ const importRegex = /import\s+(?:type\s+)?[\s\S]*?from\s+['"`][^'"`]+['"`](?:\s*;)?/g;
2786
+ let match: RegExpExecArray | null;
2787
+
2788
+ while ((match = importRegex.exec(cleanedSegment)) !== null) {
2789
+ const statement = match[0].trim();
2790
+ if (statement) {
2791
+ statements.push(statement);
2792
+ }
2793
+ }
2794
+
2795
+ if (!statements.length && cleanedSegment.startsWith('import')) {
2796
+ statements.push(cleanedSegment);
2797
+ }
2798
+
2799
+ return statements;
2800
+ }
2801
+
2802
+ function stripWrappingQuotes(value: string): string {
2803
+ const trimmed = value.trim();
2804
+
2805
+ if (trimmed.length >= 2) {
2806
+ const first = trimmed[0];
2807
+ const last = trimmed[trimmed.length - 1];
2808
+
2809
+ if (first === last && (first === '"' || first === "'" || first === '`')) {
2810
+ const inner = trimmed.slice(1, -1);
2811
+ return unescapeString(inner);
2812
+ }
2813
+ }
2814
+
2815
+ return trimmed;
2816
+ }
2817
+
2818
+ function unescapeString(value: string): string {
2819
+ try {
2820
+ const escaped = value.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
2821
+ return JSON.parse(`"${escaped}"`);
2822
+ } catch {
2823
+ return value;
2824
+ }
2825
+ }
2826
+
2827
+ function parseImportArrayJson(raw: string): string[] {
2828
+ try {
2829
+ const jsonText = raw.startsWith('[') ? raw : `[${raw}]`;
2830
+ const parsed = JSON.parse(jsonText);
2831
+
2832
+ if (!Array.isArray(parsed)) {
2833
+ return [];
2834
+ }
2835
+
2836
+ const statements: string[] = [];
2837
+
2838
+ for (const entry of parsed) {
2839
+ if (typeof entry !== 'string') {
2840
+ continue;
2841
+ }
2842
+
2843
+ const extracted = extractImportStatements(entry);
2844
+ statements.push(...extracted);
2845
+ }
2846
+
2847
+ return statements;
2848
+ } catch {
2849
+ return [];
2850
+ }
2851
+ }
2852
+
2853
+ /**
2854
+ * Parse a single import statement into a CustomImport object
2855
+ *
2856
+ * @param importStatement - Import statement string
2857
+ * @param context - Context for error reporting
2858
+ * @returns CustomImport object or null if invalid
2859
+ */
2860
+ function parseImportStatement(
2861
+ importStatement: string,
2862
+ context: ModelCommentContext | FieldCommentContext,
2863
+ ): CustomImport | null {
2864
+ if (!importStatement || typeof importStatement !== 'string') {
2865
+ return null;
2866
+ }
2867
+
2868
+ const trimmed = importStatement.trim();
2869
+
2870
+ // Basic validation - must start with import and include a from-clause
2871
+ if (!/^\s*import\b/.test(trimmed) || !/\bfrom\s+['"`]/.test(trimmed)) {
2872
+ const contextStr =
2873
+ 'fieldName' in context ? `${context.modelName}.${context.fieldName}` : `${context.modelName}`;
2874
+
2875
+ logger.warn(`${contextStr}: Invalid import statement format: ${trimmed}`);
2876
+ return null;
2877
+ }
2878
+
2879
+ // Detect type-only imports
2880
+ const isTypeOnly = /^\s*import\s+type\b/.test(trimmed);
2881
+ let hasValueSpecifier = false;
2882
+ let hasTypeSpecifier = isTypeOnly;
2883
+
2884
+ // Extract source module
2885
+ const fromMatch = trimmed.match(/from\s+['"`]([^'"`]+)['"`]/);
2886
+ if (!fromMatch) {
2887
+ const contextStr =
2888
+ 'fieldName' in context ? `${context.modelName}.${context.fieldName}` : `${context.modelName}`;
2889
+
2890
+ logger.warn(`${contextStr}: Could not extract source module from: ${trimmed}`);
2891
+ return null;
2892
+ }
2893
+
2894
+ const source = fromMatch[1];
2895
+
2896
+ // Extract import clause (between the import keyword and the from-clause)
2897
+ const importPrefixMatch = trimmed.match(/^\s*import\s+(?:type\s+)?/);
2898
+ const clauseStart = importPrefixMatch ? importPrefixMatch[0].length : 0;
2899
+ const fromIndex = trimmed.search(/\bfrom\s+['"`]/);
2900
+ if (fromIndex === -1 || clauseStart === 0) {
2901
+ const contextStr =
2902
+ 'fieldName' in context ? `${context.modelName}.${context.fieldName}` : `${context.modelName}`;
2903
+
2904
+ logger.warn(`${contextStr}: Could not determine import clause: ${trimmed}`);
2905
+ return null;
2906
+ }
2907
+ const importClause = trimmed.substring(clauseStart, fromIndex).trim();
2908
+
2909
+ // Determine import type(s) and extract imported items
2910
+ let isDefault = false;
2911
+ let isNamespace = false;
2912
+ const importedItems: string[] = [];
2913
+
2914
+ if (importClause.startsWith('* as ')) {
2915
+ isNamespace = true;
2916
+ const nameMatch = importClause.match(/\*\s+as\s+([A-Za-z_$][\w$]*)/);
2917
+ if (nameMatch) {
2918
+ importedItems.push(nameMatch[1]);
2919
+ }
2920
+ hasValueSpecifier = true;
2921
+ } else {
2922
+ const namedStart = importClause.indexOf('{');
2923
+ const namedEnd = importClause.lastIndexOf('}');
2924
+
2925
+ // Default portion (before named block)
2926
+ const defaultCandidate =
2927
+ namedStart > 0
2928
+ ? importClause
2929
+ .slice(0, namedStart)
2930
+ .replace(/,?\s*$/, '')
2931
+ .trim()
2932
+ : namedStart === -1
2933
+ ? importClause.trim().replace(/,?\s*$/, '')
2934
+ : '';
2935
+
2936
+ if (defaultCandidate) {
2937
+ isDefault = true;
2938
+ hasValueSpecifier = true;
2939
+ importedItems.push(defaultCandidate);
2940
+ }
2941
+
2942
+ // Named imports block
2943
+ if (namedStart !== -1 && namedEnd !== -1 && namedEnd > namedStart) {
2944
+ const namedBlock = importClause.slice(namedStart + 1, namedEnd);
2945
+ const namedItems = namedBlock
2946
+ .split(',')
2947
+ .map((item) => item.trim())
2948
+ .filter(Boolean)
2949
+ .map((item) => {
2950
+ const aliasMatch = item.match(/^([A-Za-z_$][\w$]*)\s+as\s+([A-Za-z_$][\w$]*)$/);
2951
+ if (aliasMatch) {
2952
+ hasValueSpecifier = true;
2953
+ return aliasMatch[2];
2954
+ }
2955
+
2956
+ const typeMatch = item.match(
2957
+ /^type\s+([A-Za-z_$][\w$]*)(?:\s+as\s+([A-Za-z_$][\w$]*))?$/i,
2958
+ );
2959
+ if (typeMatch) {
2960
+ hasTypeSpecifier = true;
2961
+ return typeMatch[2] ?? typeMatch[1];
2962
+ }
2963
+
2964
+ hasValueSpecifier = true;
2965
+ return item;
2966
+ });
2967
+
2968
+ importedItems.push(...namedItems);
2969
+ }
2970
+ }
2971
+
2972
+ const effectiveTypeOnly = isTypeOnly || (!hasValueSpecifier && hasTypeSpecifier);
2973
+
2974
+ return {
2975
+ importStatement: trimmed,
2976
+ source,
2977
+ importedItems,
2978
+ isDefault,
2979
+ isNamespace,
2980
+ isTypeOnly: effectiveTypeOnly,
2981
+ originalStatement: importStatement,
2982
+ };
2983
+ }
2984
+
2985
+ /**
2986
+ * Find balanced parentheses in a string starting from a given position
2987
+ *
2988
+ * @param text - Text to search in
2989
+ * @param startPos - Starting position (after opening parenthesis)
2990
+ * @returns End position of balanced parentheses or -1 if not found
2991
+ */
2992
+ export function findBalancedParentheses(text: string, startPos: number): number {
2993
+ let depth = 1;
2994
+ let pos = startPos;
2995
+ let inString = false;
2996
+ let quote = '';
2997
+
2998
+ while (pos < text.length && depth > 0) {
2999
+ const ch = text[pos];
3000
+
3001
+ if (inString) {
3002
+ if (ch === '\\') {
3003
+ pos += 2;
3004
+ continue;
3005
+ }
3006
+
3007
+ if (ch === quote) {
3008
+ inString = false;
3009
+ quote = '';
3010
+ }
3011
+
3012
+ pos++;
3013
+ continue;
3014
+ }
3015
+
3016
+ if (ch === '"' || ch === "'") {
3017
+ inString = true;
3018
+ quote = ch;
3019
+ } else if (ch === '(') {
3020
+ depth++;
3021
+ } else if (ch === ')') {
3022
+ depth--;
3023
+ if (depth === 0) {
3024
+ return pos;
3025
+ }
3026
+ }
3027
+
3028
+ pos++;
3029
+ }
3030
+
3031
+ return -1;
3032
+ }
3033
+
3034
+ /**
3035
+ * Deduplicate imports by import statement
3036
+ *
3037
+ * @param imports - Array of CustomImport objects
3038
+ * @returns Deduplicated array of CustomImport objects
3039
+ */
3040
+ function deduplicateImports(imports: CustomImport[]): CustomImport[] {
3041
+ const seen = new Set<string>();
3042
+ const deduplicated: CustomImport[] = [];
3043
+
3044
+ for (const customImport of imports) {
3045
+ if (!seen.has(customImport.importStatement)) {
3046
+ seen.add(customImport.importStatement);
3047
+ deduplicated.push(customImport);
3048
+ }
3049
+ }
3050
+
3051
+ return deduplicated;
3052
+ }
3053
+
3054
+ /**
3055
+ * Extract custom imports from model documentation
3056
+ *
3057
+ * @param model - Prisma DMMF model
3058
+ * @returns Custom imports parsing result
3059
+ */
3060
+ /**
3061
+ * Extract a bare model-level metadata chain (`/// @zod .meta({...})` or
3062
+ * `.describe("...")` without an accompanying @zod.import). Only metadata
3063
+ * methods are recognized here — behavioral chains (refine/transform) remain
3064
+ * exclusive to the import-based path. meta is version-mapped: passthrough on
3065
+ * v4, downgraded to .describe(description) or dropped on v3 (issue #225).
3066
+ */
3067
+ function extractBareModelMetadataChain(modelComment: string): string | undefined {
3068
+ const zodMatch = modelComment.match(/@zod\s*(?=\.\s*(?:meta|describe)\s*\()/);
3069
+ if (!zodMatch || zodMatch.index === undefined) return undefined;
3070
+
3071
+ let zodVersion: 'auto' | 'v3' | 'v4' = 'auto';
3072
+ try {
3073
+ // eslint-disable-next-line @typescript-eslint/no-require-imports -- lazy require to avoid circular import
3074
+ const cfg = require('../transformer').default.getGeneratorConfig?.();
3075
+ if (cfg?.zodImportTarget === 'v3' || cfg?.zodImportTarget === 'v4') {
3076
+ zodVersion = cfg.zodImportTarget;
3077
+ }
3078
+ } catch {
3079
+ /* ignore — resolveZodVersion handles 'auto' */
3080
+ }
3081
+ const isV4 = resolveZodVersion(zodVersion) === 'v4';
3082
+
3083
+ let rest = modelComment.slice(zodMatch.index + zodMatch[0].length);
3084
+ const calls: string[] = [];
3085
+
3086
+ for (;;) {
3087
+ const methodMatch = rest.match(/^\s*\.\s*(meta|describe)\s*\(/);
3088
+ if (!methodMatch) break;
3089
+ const argsStart = methodMatch[0].length;
3090
+ const argsEnd = findBalancedParentheses(rest, argsStart);
3091
+ if (argsEnd === -1) break;
3092
+ const args = rest.slice(argsStart, argsEnd).trim();
3093
+ const method = methodMatch[1];
3094
+
3095
+ if (method === 'describe') {
3096
+ calls.push(`.describe(${args})`);
3097
+ } else if (isV4) {
3098
+ calls.push(`.meta(${args})`);
3099
+ } else {
3100
+ const m = args.match(/\bdescription\s*:\s*("(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/);
3101
+ if (m) {
3102
+ calls.push(`.describe(${m[1]})`);
3103
+ } else {
3104
+ logger.warn('@zod.meta() on a model requires Zod v4; annotation dropped');
3105
+ }
3106
+ }
3107
+ rest = rest.slice(argsEnd + 1);
3108
+ }
3109
+
3110
+ return calls.length > 0 ? calls.join('') : undefined;
3111
+ }
3112
+
3113
+ export function extractModelCustomImports(model: DMMF.Model): CustomImportsParseResult {
3114
+ const modelComment = model.documentation || '';
3115
+
3116
+ if (!modelComment.trim()) {
3117
+ return {
3118
+ imports: [],
3119
+ parseErrors: [],
3120
+ isValid: true,
3121
+ customSchema: undefined,
3122
+ };
3123
+ }
3124
+
3125
+ const context: ModelCommentContext = {
3126
+ modelName: model.name,
3127
+ comment: modelComment,
3128
+ };
3129
+
3130
+ const result = parseCustomImports(modelComment, context);
3131
+
3132
+ // Bare metadata chains work without @zod.import (issue #225)
3133
+ if (!result.customSchema) {
3134
+ const metadataChain = extractBareModelMetadataChain(modelComment);
3135
+ if (metadataChain) {
3136
+ result.customSchema = metadataChain;
3137
+ }
3138
+ }
3139
+
3140
+ return result;
3141
+ }
3142
+
3143
+ /**
3144
+ * Extract custom imports from field documentation
3145
+ *
3146
+ * @param field - Prisma DMMF field
3147
+ * @param modelName - Name of the model containing the field
3148
+ * @returns Custom imports parsing result
3149
+ */
3150
+ export function extractFieldCustomImports(
3151
+ field: DMMF.Field,
3152
+ modelName: string,
3153
+ ): CustomImportsParseResult {
3154
+ const fieldComment = field.documentation || '';
3155
+
3156
+ if (!fieldComment.trim()) {
3157
+ return {
3158
+ imports: [],
3159
+ parseErrors: [],
3160
+ isValid: true,
3161
+ customSchema: undefined,
3162
+ };
3163
+ }
3164
+
3165
+ const context: FieldCommentContext = {
3166
+ modelName,
3167
+ fieldName: field.name,
3168
+ fieldType: field.type,
3169
+ comment: fieldComment,
3170
+ isOptional: !field.isRequired,
3171
+ isList: field.isList,
3172
+ };
3173
+
3174
+ return parseCustomImports(fieldComment, context);
3175
+ }
3176
+
3177
+ /*
3178
+ * getExtractionStatistics, filterZodComments, getAllExtractionErrors and getBaseZodType were
3179
+ * removed as unreachable — no caller inside or outside this module. getBaseZodTypeForField is
3180
+ * the live counterpart of the last one.
3181
+ */