@deterministic-code/datasources-cli 0.0.0-stage → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (945) hide show
  1. package/bin/datasources.mjs +2 -0
  2. package/dist/catalog.js +60 -0
  3. package/dist/commands.js +51 -0
  4. package/dist/detect.js +23 -0
  5. package/dist/env.js +93 -0
  6. package/dist/generate/CSharpRepositories.js +134 -0
  7. package/dist/generate/CodeGenerationProvider.js +0 -0
  8. package/dist/generate/DeterministicProvider.js +53 -0
  9. package/dist/generate/GenerateRequest.js +6 -0
  10. package/dist/generate/RepositoryModel.js +64 -0
  11. package/dist/generate/RepositoryPlan.js +172 -0
  12. package/dist/generate/RustRepositories.js +270 -0
  13. package/dist/generate/TypeScriptRepositories.js +115 -0
  14. package/dist/generate/applyGenerate.js +28 -0
  15. package/dist/generate/applyMigrations.js +28 -0
  16. package/dist/generate/loadSpec.js +48 -0
  17. package/dist/generate/migrateUp.js +76 -0
  18. package/dist/generate/providers.js +10 -0
  19. package/dist/generate/settingsFlat.js +29 -0
  20. package/dist/generate/writeEntries.js +35 -0
  21. package/dist/index.js +10 -0
  22. package/dist/installed.js +14 -0
  23. package/dist/io.js +35 -0
  24. package/dist/main.js +10 -0
  25. package/dist/migrateInit.js +11 -0
  26. package/dist/parse.js +144 -0
  27. package/dist/run.js +197 -0
  28. package/dist/setup.js +54 -0
  29. package/dist/version/applyVersion.js +51 -0
  30. package/dist/version/delta.js +114 -0
  31. package/dist/version/render.js +38 -0
  32. package/dist/wireRegister.js +104 -0
  33. package/node_modules/@deterministic-code/csharp-generators/dist/common/default-casing.js +44 -0
  34. package/node_modules/@deterministic-code/csharp-generators/dist/common/view-shape.js +78 -0
  35. package/node_modules/@deterministic-code/csharp-generators/dist/deterministic-type-converter.js +124 -0
  36. package/node_modules/@deterministic-code/csharp-generators/dist/emit.js +20 -0
  37. package/node_modules/@deterministic-code/csharp-generators/dist/generate-backend-app.js +42 -0
  38. package/node_modules/@deterministic-code/csharp-generators/dist/generate-context.js +0 -0
  39. package/node_modules/@deterministic-code/csharp-generators/dist/generate-datasource-type-validators-tests.js +170 -0
  40. package/node_modules/@deterministic-code/csharp-generators/dist/generate-datasource-types-tests.js +127 -0
  41. package/node_modules/@deterministic-code/csharp-generators/dist/generate-datasource-types.d.ts +3 -0
  42. package/node_modules/@deterministic-code/csharp-generators/dist/generate-datasource-types.js +75 -0
  43. package/node_modules/@deterministic-code/csharp-generators/dist/generate-routes-tests.js +27 -0
  44. package/node_modules/@deterministic-code/csharp-generators/dist/generate-routes.js +93 -0
  45. package/node_modules/@deterministic-code/csharp-generators/dist/generate-service-tests.js +29 -0
  46. package/node_modules/@deterministic-code/csharp-generators/dist/generate-services.js +58 -0
  47. package/node_modules/@deterministic-code/csharp-generators/dist/generate-view-type-validators-tests.js +223 -0
  48. package/node_modules/@deterministic-code/csharp-generators/dist/generate-view-type-validators.js +92 -0
  49. package/node_modules/@deterministic-code/csharp-generators/dist/generate-view-types-tests.js +138 -0
  50. package/node_modules/@deterministic-code/csharp-generators/dist/generate-view-types.d.ts +3 -0
  51. package/node_modules/@deterministic-code/csharp-generators/dist/generate-view-types.js +99 -0
  52. package/node_modules/@deterministic-code/csharp-generators/dist/import-generator.js +167 -0
  53. package/node_modules/@deterministic-code/csharp-generators/dist/resources/backend-app.js +34 -0
  54. package/node_modules/@deterministic-code/csharp-generators/dist/resources/datasource-type-validators-tests.js +12 -0
  55. package/node_modules/@deterministic-code/csharp-generators/dist/resources/datasource-type-validators.js +12 -0
  56. package/node_modules/@deterministic-code/csharp-generators/dist/resources/datasource-types-tests.js +11 -0
  57. package/node_modules/@deterministic-code/csharp-generators/dist/resources/datasource-types.js +9 -0
  58. package/node_modules/@deterministic-code/csharp-generators/dist/resources/routes-tests.js +9 -0
  59. package/node_modules/@deterministic-code/csharp-generators/dist/resources/routes.js +15 -0
  60. package/node_modules/@deterministic-code/csharp-generators/dist/resources/service-tests.js +9 -0
  61. package/node_modules/@deterministic-code/csharp-generators/dist/resources/services.js +13 -0
  62. package/node_modules/@deterministic-code/csharp-generators/dist/resources/view-type-validators-tests.js +12 -0
  63. package/node_modules/@deterministic-code/csharp-generators/dist/resources/view-type-validators.js +9 -0
  64. package/node_modules/@deterministic-code/csharp-generators/dist/resources/view-types-tests.js +11 -0
  65. package/node_modules/@deterministic-code/csharp-generators/dist/resources/view-types.js +9 -0
  66. package/node_modules/@deterministic-code/csharp-generators/dist/specification-parser.js +20 -0
  67. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-backend-app/Dockerfile.tmpl +23 -0
  68. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-backend-app/csharp/App/App.csproj.tmpl +22 -0
  69. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-backend-app/csharp/App/Program.cs.tmpl +28 -0
  70. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-backend-app/csharp/App/appsettings.Development.json.tmpl +8 -0
  71. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-backend-app/csharp/App/appsettings.json.tmpl +9 -0
  72. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-backend-app/docker-compose.yml.tmpl +17 -0
  73. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-backend-app/entrypoint.sh +7 -0
  74. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-backend-app/env.tmpl +1 -0
  75. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-backend-app/gitignore.tmpl +18 -0
  76. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-datasource-type-validators/type.cs.tmpl +14 -0
  77. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-datasource-type-validators-tests/type.tests.cs.tmpl +20 -0
  78. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-datasource-types/type.cs.tmpl +15 -0
  79. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-datasource-types-tests/type.tests.cs.tmpl +44 -0
  80. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-routes/custom-stub.cs.tmpl +5 -0
  81. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-routes/name-enrichment.cs.tmpl +49 -0
  82. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-routes/router.cs.tmpl +15 -0
  83. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-routes-tests/generic.cs.tmpl +3 -0
  84. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-service-tests/generic.cs.tmpl +3 -0
  85. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-services/custom-stub.cs.tmpl +19 -0
  86. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-services/generic.cs.tmpl +9 -0
  87. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-view-type-validators/type.cs.tmpl +17 -0
  88. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-view-type-validators-tests/type.tests.cs.tmpl +30 -0
  89. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-view-types/type.cs.tmpl +20 -0
  90. package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-view-types-tests/type.tests.cs.tmpl +60 -0
  91. package/node_modules/@deterministic-code/csharp-generators/package.json +86 -0
  92. package/node_modules/@deterministic-code/csharp-generators/src/common/default-casing.test.ts +73 -0
  93. package/node_modules/@deterministic-code/csharp-generators/src/common/default-casing.ts +79 -0
  94. package/node_modules/@deterministic-code/csharp-generators/src/common/view-shape.ts +124 -0
  95. package/node_modules/@deterministic-code/csharp-generators/src/deterministic-type-converter.ts +144 -0
  96. package/node_modules/@deterministic-code/csharp-generators/src/emit.ts +22 -0
  97. package/node_modules/@deterministic-code/csharp-generators/src/generate-backend-app.ts +52 -0
  98. package/node_modules/@deterministic-code/csharp-generators/src/generate-context.ts +1 -0
  99. package/node_modules/@deterministic-code/csharp-generators/src/generate-datasource-type-validators-tests.ts +207 -0
  100. package/node_modules/@deterministic-code/csharp-generators/src/generate-datasource-type-validators.ts +227 -0
  101. package/node_modules/@deterministic-code/csharp-generators/src/generate-datasource-types-tests.ts +143 -0
  102. package/node_modules/@deterministic-code/csharp-generators/src/generate-datasource-types.ts +86 -0
  103. package/node_modules/@deterministic-code/csharp-generators/src/generate-routes-tests.ts +29 -0
  104. package/node_modules/@deterministic-code/csharp-generators/src/generate-routes.ts +110 -0
  105. package/node_modules/@deterministic-code/csharp-generators/src/generate-service-tests.ts +31 -0
  106. package/node_modules/@deterministic-code/csharp-generators/src/generate-services.ts +69 -0
  107. package/node_modules/@deterministic-code/csharp-generators/src/generate-view-type-validators-tests.ts +277 -0
  108. package/node_modules/@deterministic-code/csharp-generators/src/generate-view-type-validators.ts +112 -0
  109. package/node_modules/@deterministic-code/csharp-generators/src/generate-view-types-tests.ts +187 -0
  110. package/node_modules/@deterministic-code/csharp-generators/src/generate-view-types.ts +118 -0
  111. package/node_modules/@deterministic-code/csharp-generators/src/import-generator.test.ts +266 -0
  112. package/node_modules/@deterministic-code/csharp-generators/src/import-generator.ts +226 -0
  113. package/node_modules/@deterministic-code/csharp-generators/src/resources/backend-app.ts +26 -0
  114. package/node_modules/@deterministic-code/csharp-generators/src/resources/datasource-type-validators-tests.ts +12 -0
  115. package/node_modules/@deterministic-code/csharp-generators/src/resources/datasource-type-validators.ts +12 -0
  116. package/node_modules/@deterministic-code/csharp-generators/src/resources/datasource-types-tests.ts +11 -0
  117. package/node_modules/@deterministic-code/csharp-generators/src/resources/datasource-types.ts +9 -0
  118. package/node_modules/@deterministic-code/csharp-generators/src/resources/routes-tests.ts +9 -0
  119. package/node_modules/@deterministic-code/csharp-generators/src/resources/routes.ts +14 -0
  120. package/node_modules/@deterministic-code/csharp-generators/src/resources/service-tests.ts +9 -0
  121. package/node_modules/@deterministic-code/csharp-generators/src/resources/services.ts +12 -0
  122. package/node_modules/@deterministic-code/csharp-generators/src/resources/view-type-validators-tests.ts +12 -0
  123. package/node_modules/@deterministic-code/csharp-generators/src/resources/view-type-validators.ts +9 -0
  124. package/node_modules/@deterministic-code/csharp-generators/src/resources/view-types-tests.ts +11 -0
  125. package/node_modules/@deterministic-code/csharp-generators/src/resources/view-types.ts +9 -0
  126. package/node_modules/@deterministic-code/csharp-generators/src/specification-parser.ts +34 -0
  127. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-backend-app/Dockerfile.tmpl +23 -0
  128. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-backend-app/csharp/App/App.csproj.tmpl +22 -0
  129. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-backend-app/csharp/App/Program.cs.tmpl +28 -0
  130. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-backend-app/csharp/App/appsettings.Development.json.tmpl +8 -0
  131. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-backend-app/csharp/App/appsettings.json.tmpl +9 -0
  132. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-backend-app/docker-compose.yml.tmpl +17 -0
  133. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-backend-app/entrypoint.sh +7 -0
  134. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-backend-app/env.tmpl +1 -0
  135. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-backend-app/gitignore.tmpl +18 -0
  136. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-datasource-type-validators/type.cs.tmpl +14 -0
  137. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-datasource-type-validators-tests/type.tests.cs.tmpl +20 -0
  138. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-datasource-types/type.cs.tmpl +15 -0
  139. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-datasource-types-tests/type.tests.cs.tmpl +44 -0
  140. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-routes/custom-stub.cs.tmpl +5 -0
  141. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-routes/name-enrichment.cs.tmpl +49 -0
  142. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-routes/router.cs.tmpl +15 -0
  143. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-routes-tests/generic.cs.tmpl +3 -0
  144. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-service-tests/generic.cs.tmpl +3 -0
  145. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-services/custom-stub.cs.tmpl +19 -0
  146. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-services/generic.cs.tmpl +9 -0
  147. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-view-type-validators/type.cs.tmpl +17 -0
  148. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-view-type-validators-tests/type.tests.cs.tmpl +30 -0
  149. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-view-types/type.cs.tmpl +20 -0
  150. package/node_modules/@deterministic-code/csharp-generators/src/templates/create-view-types-tests/type.tests.cs.tmpl +60 -0
  151. package/node_modules/@deterministic-code/csharp-generators/tsconfig.build.json +10 -0
  152. package/node_modules/@deterministic-code/datasources-code-generators/dist/generate-sql.d.ts +4 -0
  153. package/node_modules/@deterministic-code/datasources-code-generators/dist/generate-sql.js +4 -0
  154. package/node_modules/@deterministic-code/datasources-code-generators/dist/generate-stored-procedures.d.ts +4 -0
  155. package/node_modules/@deterministic-code/datasources-code-generators/dist/generate-stored-procedures.js +4 -0
  156. package/node_modules/@deterministic-code/datasources-code-generators/dist/generateSql.d.ts +1 -0
  157. package/node_modules/@deterministic-code/datasources-code-generators/dist/generateSql.js +1 -0
  158. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/converter-field.d.ts +3 -0
  159. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/converter-field.js +6 -0
  160. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/custom-migrations-source.d.ts +9 -0
  161. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/custom-migrations-source.js +71 -0
  162. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/datasource-by-fields.d.ts +3 -0
  163. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/datasource-by-fields.js +38 -0
  164. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/default-casing.d.ts +20 -0
  165. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/default-casing.js +64 -0
  166. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/generate-custom-migrations.d.ts +6 -0
  167. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/generate-custom-migrations.js +25 -0
  168. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/generate-procedures.d.ts +14 -0
  169. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/generate-procedures.js +106 -0
  170. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/generate-sql.d.ts +5 -0
  171. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/generate-sql.js +116 -0
  172. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/procedures/driver.d.ts +9 -0
  173. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/procedures/driver.js +18 -0
  174. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/procedures/helpers.d.ts +25 -0
  175. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/procedures/helpers.js +39 -0
  176. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/schema-diff.d.ts +10 -0
  177. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/schema-diff.js +136 -0
  178. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/seed-generator.d.ts +6 -0
  179. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/seed-generator.js +82 -0
  180. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/sql-dialect.d.ts +23 -0
  181. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/sql-dialect.js +58 -0
  182. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/sql-keywords.d.ts +4 -0
  183. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/sql-keywords.js +140 -0
  184. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/sql-mapping.d.ts +20 -0
  185. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/sql-mapping.js +43 -0
  186. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/sql-schema.d.ts +35 -0
  187. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/sql-schema.js +112 -0
  188. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/version-apply.d.ts +18 -0
  189. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/version-apply.js +83 -0
  190. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/version-migrations.d.ts +15 -0
  191. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/version-migrations.js +127 -0
  192. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/dialect-converters.d.ts +10 -0
  193. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/dialect-converters.js +16 -0
  194. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/generate-sql.d.ts +4 -0
  195. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/generate-sql.js +10 -0
  196. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/generate-stored-procedures.d.ts +4 -0
  197. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/generate-stored-procedures.js +10 -0
  198. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/resources/sql.d.ts +1 -0
  199. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/resources/sql.js +6 -0
  200. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/statements.d.ts +28 -0
  201. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/statements.js +81 -0
  202. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/templates/create-sql/migration-down.sql.tmpl +6 -0
  203. package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/templates/create-sql/migration-up.sql.tmpl +18 -0
  204. package/node_modules/@deterministic-code/datasources-code-generators/package.json +24 -0
  205. package/node_modules/@deterministic-code/deterministic-generators-common/README.md +22 -0
  206. package/node_modules/@deterministic-code/deterministic-generators-common/package.json +40 -0
  207. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/datasource-type-tree.ts +330 -0
  208. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/deterministic-reader.ts +63 -0
  209. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/deterministic.ts +35 -0
  210. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/dist/specification-parser.js +1290 -0
  211. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/ensure-health.ts +57 -0
  212. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/parser/compile-filter.ts +90 -0
  213. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/parser/specification-parser.ts +1057 -0
  214. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/settings.ts +49 -0
  215. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/specification-parser.ts +24 -0
  216. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/specification.ts +383 -0
  217. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/vitest.config.ts +20 -0
  218. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/yaml-node.ts +88 -0
  219. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/SpecValidator.ts +260 -0
  220. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/index.ts +12 -0
  221. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/types.ts +47 -0
  222. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/DatasourceSeedsValidator.test.ts +385 -0
  223. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/DatasourceSeedsValidator.ts +75 -0
  224. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/DatasourceValidator.ts +39 -0
  225. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/FrontendBindingsValidator.ts +11 -0
  226. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/RoutesApiValidator.test.ts +59 -0
  227. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/RoutesApiValidator.ts +18 -0
  228. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/RoutesValidator.ts +24 -0
  229. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/ServicesValidator.ts +24 -0
  230. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/TypesValidator.test.ts +140 -0
  231. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/TypesValidator.ts +31 -0
  232. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/engines.ts +7 -0
  233. package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/validator.test.ts +229 -0
  234. package/node_modules/@deterministic-code/deterministic-specifications-typescript/README.md +22 -0
  235. package/node_modules/@deterministic-code/deterministic-specifications-typescript/package.json +40 -0
  236. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/parser/datasource-type-tree.ts +330 -0
  237. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/parser/deterministic-reader.ts +63 -0
  238. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/parser/deterministic.ts +35 -0
  239. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/parser/ensure-health.ts +57 -0
  240. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/parser/parser/compile-filter.ts +90 -0
  241. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/parser/parser/specification-parser.ts +1056 -0
  242. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/parser/settings.ts +49 -0
  243. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/parser/specification-parser.ts +24 -0
  244. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/parser/specification.ts +383 -0
  245. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/parser/vitest.config.ts +20 -0
  246. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/parser/yaml-node.ts +88 -0
  247. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/SpecValidator.ts +260 -0
  248. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/index.ts +12 -0
  249. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/types.ts +47 -0
  250. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/DatasourceSeedsValidator.test.ts +385 -0
  251. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/DatasourceSeedsValidator.ts +75 -0
  252. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/DatasourceValidator.ts +39 -0
  253. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/FrontendBindingsValidator.ts +11 -0
  254. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/RoutesApiValidator.test.ts +59 -0
  255. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/RoutesApiValidator.ts +18 -0
  256. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/RoutesValidator.ts +24 -0
  257. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/ServicesValidator.ts +24 -0
  258. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/TypesValidator.test.ts +140 -0
  259. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/TypesValidator.ts +31 -0
  260. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/engines.ts +7 -0
  261. package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/validator.test.ts +229 -0
  262. package/node_modules/@deterministic-code/generators-common/README.md +10 -0
  263. package/node_modules/@deterministic-code/generators-common/dist/casing-strategy.d.ts +10 -0
  264. package/node_modules/@deterministic-code/generators-common/dist/casing-strategy.js +167 -0
  265. package/node_modules/@deterministic-code/generators-common/dist/datasource-naming.d.ts +10 -0
  266. package/node_modules/@deterministic-code/generators-common/dist/datasource-naming.js +29 -0
  267. package/node_modules/@deterministic-code/generators-common/dist/datasource-type-tree.d.ts +42 -0
  268. package/node_modules/@deterministic-code/generators-common/dist/datasource-type-tree.js +240 -0
  269. package/node_modules/@deterministic-code/generators-common/dist/default-token.d.ts +7 -0
  270. package/node_modules/@deterministic-code/generators-common/dist/default-token.js +17 -0
  271. package/node_modules/@deterministic-code/generators-common/dist/deterministic-default-value-converter.d.ts +21 -0
  272. package/node_modules/@deterministic-code/generators-common/dist/deterministic-default-value-converter.js +128 -0
  273. package/node_modules/@deterministic-code/generators-common/dist/deterministic-reader.d.ts +7 -0
  274. package/node_modules/@deterministic-code/generators-common/dist/deterministic-reader.js +47 -0
  275. package/node_modules/@deterministic-code/generators-common/dist/deterministic-type-converter.d.ts +7 -0
  276. package/node_modules/@deterministic-code/generators-common/dist/deterministic-type-converter.js +35 -0
  277. package/node_modules/@deterministic-code/generators-common/dist/fill.d.ts +1 -0
  278. package/node_modules/@deterministic-code/generators-common/dist/fill.js +7 -0
  279. package/node_modules/@deterministic-code/generators-common/dist/generate-context.d.ts +5 -0
  280. package/node_modules/@deterministic-code/generators-common/dist/generate-context.js +0 -0
  281. package/node_modules/@deterministic-code/generators-common/dist/generate-entry.d.ts +17 -0
  282. package/node_modules/@deterministic-code/generators-common/dist/generate-entry.js +25 -0
  283. package/node_modules/@deterministic-code/generators-common/dist/import-generator.d.ts +35 -0
  284. package/node_modules/@deterministic-code/generators-common/dist/import-generator.js +0 -0
  285. package/node_modules/@deterministic-code/generators-common/dist/reference-verifier.d.ts +35 -0
  286. package/node_modules/@deterministic-code/generators-common/dist/reference-verifier.js +223 -0
  287. package/node_modules/@deterministic-code/generators-common/dist/routes-api-converter.d.ts +4 -0
  288. package/node_modules/@deterministic-code/generators-common/dist/routes-api-converter.js +528 -0
  289. package/node_modules/@deterministic-code/generators-common/dist/routes-api.d.ts +57 -0
  290. package/node_modules/@deterministic-code/generators-common/dist/routes-api.js +13 -0
  291. package/node_modules/@deterministic-code/generators-common/dist/settings.d.ts +20 -0
  292. package/node_modules/@deterministic-code/generators-common/dist/settings.js +47 -0
  293. package/node_modules/@deterministic-code/generators-common/dist/spec-types.d.ts +37 -0
  294. package/node_modules/@deterministic-code/generators-common/dist/spec-types.js +162 -0
  295. package/node_modules/@deterministic-code/generators-common/package.json +95 -0
  296. package/node_modules/@deterministic-code/generators-common/src/casing-strategy.test.ts +404 -0
  297. package/node_modules/@deterministic-code/generators-common/src/casing-strategy.ts +222 -0
  298. package/node_modules/@deterministic-code/generators-common/src/datasource-naming.test.ts +232 -0
  299. package/node_modules/@deterministic-code/generators-common/src/datasource-naming.ts +53 -0
  300. package/node_modules/@deterministic-code/generators-common/src/datasource-type-tree.test.ts +406 -0
  301. package/node_modules/@deterministic-code/generators-common/src/datasource-type-tree.ts +333 -0
  302. package/node_modules/@deterministic-code/generators-common/src/default-token.ts +17 -0
  303. package/node_modules/@deterministic-code/generators-common/src/deterministic-default-value-converter.test.ts +97 -0
  304. package/node_modules/@deterministic-code/generators-common/src/deterministic-default-value-converter.ts +148 -0
  305. package/node_modules/@deterministic-code/generators-common/src/deterministic-reader.ts +63 -0
  306. package/node_modules/@deterministic-code/generators-common/src/deterministic-type-converter.test.ts +34 -0
  307. package/node_modules/@deterministic-code/generators-common/src/deterministic-type-converter.ts +35 -0
  308. package/node_modules/@deterministic-code/generators-common/src/fill.ts +6 -0
  309. package/node_modules/@deterministic-code/generators-common/src/generate-context.ts +6 -0
  310. package/node_modules/@deterministic-code/generators-common/src/generate-entry.ts +54 -0
  311. package/node_modules/@deterministic-code/generators-common/src/import-generator.ts +39 -0
  312. package/node_modules/@deterministic-code/generators-common/src/mustache-module.d.ts +9 -0
  313. package/node_modules/@deterministic-code/generators-common/src/pluralize-module.d.ts +10 -0
  314. package/node_modules/@deterministic-code/generators-common/src/reference-verifier.test.ts +257 -0
  315. package/node_modules/@deterministic-code/generators-common/src/reference-verifier.ts +294 -0
  316. package/node_modules/@deterministic-code/generators-common/src/routes-api-converter.test.ts +454 -0
  317. package/node_modules/@deterministic-code/generators-common/src/routes-api-converter.ts +715 -0
  318. package/node_modules/@deterministic-code/generators-common/src/routes-api.ts +82 -0
  319. package/node_modules/@deterministic-code/generators-common/src/settings.test.ts +154 -0
  320. package/node_modules/@deterministic-code/generators-common/src/settings.ts +80 -0
  321. package/node_modules/@deterministic-code/generators-common/src/spec-types.test.ts +156 -0
  322. package/node_modules/@deterministic-code/generators-common/src/spec-types.ts +234 -0
  323. package/node_modules/@deterministic-code/generators-common/tsconfig.build.json +20 -0
  324. package/node_modules/@deterministic-code/generators-openapi/package.json +34 -0
  325. package/node_modules/@deterministic-code/generators-openapi/src/default-casing.ts +15 -0
  326. package/node_modules/@deterministic-code/generators-openapi/src/generate-openapi-docs.ts +1 -0
  327. package/node_modules/@deterministic-code/generators-openapi/src/generate-openapi.integration.test.ts +106 -0
  328. package/node_modules/@deterministic-code/generators-openapi/src/generate-openapi.samples.test.ts +279 -0
  329. package/node_modules/@deterministic-code/generators-openapi/src/generate-openapi.ts +20 -0
  330. package/node_modules/@deterministic-code/generators-openapi/src/openapi-converter.ts +37 -0
  331. package/node_modules/@deterministic-code/generators-openapi/src/openapi-document.ts +158 -0
  332. package/node_modules/@deterministic-code/generators-openapi/src/resources/openapi.ts +9 -0
  333. package/node_modules/@deterministic-code/generators-openapi/src/samples/01-simple/datasource.yaml +5 -0
  334. package/node_modules/@deterministic-code/generators-openapi/src/samples/01-simple/routes.yaml +5 -0
  335. package/node_modules/@deterministic-code/generators-openapi/src/samples/01-simple/types.yaml +8 -0
  336. package/node_modules/@deterministic-code/generators-openapi/src/samples/02-moderate/datasource.yaml +13 -0
  337. package/node_modules/@deterministic-code/generators-openapi/src/samples/02-moderate/routes.yaml +14 -0
  338. package/node_modules/@deterministic-code/generators-openapi/src/samples/02-moderate/types.yaml +21 -0
  339. package/node_modules/@deterministic-code/generators-openapi/src/samples/03-complex/datasource.yaml +13 -0
  340. package/node_modules/@deterministic-code/generators-openapi/src/samples/03-complex/routes.yaml +15 -0
  341. package/node_modules/@deterministic-code/generators-openapi/src/samples/03-complex/types.yaml +35 -0
  342. package/node_modules/@deterministic-code/generators-openapi/src/samples/04-complex-optimistic-concurrency/datasource.yaml +16 -0
  343. package/node_modules/@deterministic-code/generators-openapi/src/samples/04-complex-optimistic-concurrency/routes.yaml +15 -0
  344. package/node_modules/@deterministic-code/generators-openapi/src/samples/04-complex-optimistic-concurrency/types.yaml +35 -0
  345. package/node_modules/@deterministic-code/generators-openapi/src/templates/create-openapi/openapi.json.tmpl +32 -0
  346. package/node_modules/@deterministic-code/generators-openapi/src/templates/create-openapi/openapi.rs.tmpl +17 -0
  347. package/node_modules/@deterministic-code/generators-openapi/src/templates/create-openapi/openapi_conformance.rs.tmpl +56 -0
  348. package/node_modules/@deterministic-code/generators-openapi/src/templates/create-openapi/operation.json.tmpl +55 -0
  349. package/node_modules/@deterministic-code/generators-openapi/tsconfig.build.json +10 -0
  350. package/node_modules/@deterministic-code/patch-merger/README.md +170 -0
  351. package/node_modules/@deterministic-code/patch-merger/package.json +33 -0
  352. package/node_modules/@deterministic-code/patch-merger/typescript/dist/index.cjs +2 -0
  353. package/node_modules/@deterministic-code/patch-merger/typescript/dist/index.cjs.map +1 -0
  354. package/node_modules/@deterministic-code/patch-merger/typescript/dist/index.d.ts +75 -0
  355. package/node_modules/@deterministic-code/patch-merger/typescript/dist/index.js +18 -0
  356. package/node_modules/@deterministic-code/patch-merger/typescript/dist/index.js.map +1 -0
  357. package/node_modules/@deterministic-code/patch-merger/typescript/dist/patch-merger-CjtjSB9r.js +631 -0
  358. package/node_modules/@deterministic-code/patch-merger/typescript/dist/patch-merger-CjtjSB9r.js.map +1 -0
  359. package/node_modules/@deterministic-code/patch-merger/typescript/dist/patch-merger-CvVbM8X5.cjs +14 -0
  360. package/node_modules/@deterministic-code/patch-merger/typescript/dist/patch-merger-CvVbM8X5.cjs.map +1 -0
  361. package/node_modules/@deterministic-code/patch-merger/typescript/dist/patch-merger.cjs +2 -0
  362. package/node_modules/@deterministic-code/patch-merger/typescript/dist/patch-merger.cjs.map +1 -0
  363. package/node_modules/@deterministic-code/patch-merger/typescript/dist/patch-merger.d.ts +53 -0
  364. package/node_modules/@deterministic-code/patch-merger/typescript/dist/patch-merger.js +8 -0
  365. package/node_modules/@deterministic-code/patch-merger/typescript/dist/patch-merger.js.map +1 -0
  366. package/node_modules/@deterministic-code/rust-generators/dist/common/default-casing.js +32 -0
  367. package/node_modules/@deterministic-code/rust-generators/dist/common/dictionary-candidate.js +4 -0
  368. package/node_modules/@deterministic-code/rust-generators/dist/common/test-samples.js +77 -0
  369. package/node_modules/@deterministic-code/rust-generators/dist/common/view-shape.js +28 -0
  370. package/node_modules/@deterministic-code/rust-generators/dist/common/view-test-fixtures.js +105 -0
  371. package/node_modules/@deterministic-code/rust-generators/dist/deterministic-type-converter.js +134 -0
  372. package/node_modules/@deterministic-code/rust-generators/dist/emit.js +20 -0
  373. package/node_modules/@deterministic-code/rust-generators/dist/generate-backend-app.js +39 -0
  374. package/node_modules/@deterministic-code/rust-generators/dist/generate-context.js +0 -0
  375. package/node_modules/@deterministic-code/rust-generators/dist/generate-datasource-type-validators-tests.js +106 -0
  376. package/node_modules/@deterministic-code/rust-generators/dist/generate-datasource-types-tests.js +60 -0
  377. package/node_modules/@deterministic-code/rust-generators/dist/generate-datasource-types.d.ts +3 -0
  378. package/node_modules/@deterministic-code/rust-generators/dist/generate-datasource-types.js +70 -0
  379. package/node_modules/@deterministic-code/rust-generators/dist/generate-openapi.js +32 -0
  380. package/node_modules/@deterministic-code/rust-generators/dist/generate-perf-e2e-tests.js +6 -0
  381. package/node_modules/@deterministic-code/rust-generators/dist/generate-perf-server.js +20 -0
  382. package/node_modules/@deterministic-code/rust-generators/dist/generate-routes-e2e-test.js +102 -0
  383. package/node_modules/@deterministic-code/rust-generators/dist/generate-routes-tests.js +118 -0
  384. package/node_modules/@deterministic-code/rust-generators/dist/generate-routes.js +329 -0
  385. package/node_modules/@deterministic-code/rust-generators/dist/generate-service-integration-tests.js +65 -0
  386. package/node_modules/@deterministic-code/rust-generators/dist/generate-service-tests.js +51 -0
  387. package/node_modules/@deterministic-code/rust-generators/dist/generate-services.js +75 -0
  388. package/node_modules/@deterministic-code/rust-generators/dist/generate-view-type-validators-tests.js +93 -0
  389. package/node_modules/@deterministic-code/rust-generators/dist/generate-view-type-validators.js +137 -0
  390. package/node_modules/@deterministic-code/rust-generators/dist/generate-view-types-tests.js +81 -0
  391. package/node_modules/@deterministic-code/rust-generators/dist/generate-view-types.d.ts +3 -0
  392. package/node_modules/@deterministic-code/rust-generators/dist/generate-view-types.js +142 -0
  393. package/node_modules/@deterministic-code/rust-generators/dist/import-generator.js +243 -0
  394. package/node_modules/@deterministic-code/rust-generators/dist/resources/backend-app.js +31 -0
  395. package/node_modules/@deterministic-code/rust-generators/dist/resources/datasource-type-validators-tests.js +12 -0
  396. package/node_modules/@deterministic-code/rust-generators/dist/resources/datasource-type-validators.js +12 -0
  397. package/node_modules/@deterministic-code/rust-generators/dist/resources/datasource-types-tests.js +11 -0
  398. package/node_modules/@deterministic-code/rust-generators/dist/resources/datasource-types.js +9 -0
  399. package/node_modules/@deterministic-code/rust-generators/dist/resources/openapi.js +13 -0
  400. package/node_modules/@deterministic-code/rust-generators/dist/resources/perf-e2e.js +8 -0
  401. package/node_modules/@deterministic-code/rust-generators/dist/resources/perf-server.js +8 -0
  402. package/node_modules/@deterministic-code/rust-generators/dist/resources/routes-e2e.js +17 -0
  403. package/node_modules/@deterministic-code/rust-generators/dist/resources/routes-tests.js +22 -0
  404. package/node_modules/@deterministic-code/rust-generators/dist/resources/routes.js +46 -0
  405. package/node_modules/@deterministic-code/rust-generators/dist/resources/service-integration-tests.js +12 -0
  406. package/node_modules/@deterministic-code/rust-generators/dist/resources/service-tests.js +9 -0
  407. package/node_modules/@deterministic-code/rust-generators/dist/resources/services.js +13 -0
  408. package/node_modules/@deterministic-code/rust-generators/dist/resources/view-type-validators-tests.js +12 -0
  409. package/node_modules/@deterministic-code/rust-generators/dist/resources/view-type-validators.js +25 -0
  410. package/node_modules/@deterministic-code/rust-generators/dist/resources/view-types-tests.js +11 -0
  411. package/node_modules/@deterministic-code/rust-generators/dist/resources/view-types.js +9 -0
  412. package/node_modules/@deterministic-code/rust-generators/dist/rust-eager-service-graph.js +6 -0
  413. package/node_modules/@deterministic-code/rust-generators/dist/specification-parser.js +20 -0
  414. package/node_modules/@deterministic-code/rust-generators/dist/struct-default.js +70 -0
  415. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-backend-app/Cargo.toml.tmpl +34 -0
  416. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-backend-app/Dockerfile.tmpl +31 -0
  417. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-backend-app/docker-compose.yml.tmpl +17 -0
  418. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-backend-app/entrypoint.sh +7 -0
  419. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-backend-app/env.tmpl +2 -0
  420. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-backend-app/gitignore.tmpl +1 -0
  421. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-backend-app/rust/chunks/README.md +1 -0
  422. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-backend-app/rust/chunks/lib.rs +2 -0
  423. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-backend-app/rust/chunks/main.rs +4 -0
  424. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-backend-app/rust/health_check_service.rs +13 -0
  425. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-datasource-type-validators/type.rs.tmpl +8 -0
  426. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-datasource-type-validators-tests/type_tests.rs.tmpl +14 -0
  427. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-datasource-types/type.rs.tmpl +22 -0
  428. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-datasource-types-tests/type_tests.rs.tmpl +39 -0
  429. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-openapi/openapi.rs.tmpl +17 -0
  430. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-openapi/openapi_conformance.rs.tmpl +56 -0
  431. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-perf-e2e/app_perf_client.rs.tmpl +541 -0
  432. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-perf-server/perf_server.rs.tmpl +3 -0
  433. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/app-wiring-body.rs.tmpl +11 -0
  434. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/app-wiring.rs.tmpl +1 -0
  435. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/by-field-merge.rs.tmpl +10 -0
  436. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/check-eager-child.rs.tmpl +14 -0
  437. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/check-optional-typed.rs.tmpl +3 -0
  438. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/check-required-typed.rs.tmpl +5 -0
  439. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/check-required.rs.tmpl +1 -0
  440. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/coerce-row.rs.tmpl +62 -0
  441. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/crud.rs.tmpl +1 -0
  442. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/readonly.rs.tmpl +1 -0
  443. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/validator-empty.rs.tmpl +1 -0
  444. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/validator.rs.tmpl +5 -0
  445. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes-e2e/app_routes_e2e.rs.tmpl +2 -0
  446. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes-e2e/crud-tests.rs.tmpl +66 -0
  447. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes-e2e/readonly-tests.rs.tmpl +33 -0
  448. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes-e2e/setup.rs.tmpl +52 -0
  449. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes-tests/by-field-get-list.rs.tmpl +15 -0
  450. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes-tests/by-field-get-unique.rs.tmpl +15 -0
  451. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes-tests/crud.rs.tmpl +9 -0
  452. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes-tests/readonly.rs.tmpl +9 -0
  453. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-service-integration-tests/generic.rs.tmpl +9 -0
  454. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-service-tests/generic.rs.tmpl +9 -0
  455. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-services/custom-stub.rs.tmpl +13 -0
  456. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-services/generic.rs.tmpl +13 -0
  457. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-view-type-validators/check-array-nullable.rs.tmpl +1 -0
  458. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-view-type-validators/check-array.rs.tmpl +1 -0
  459. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-view-type-validators/check-nullable.rs.tmpl +1 -0
  460. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-view-type-validators/check-required.rs.tmpl +1 -0
  461. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-view-type-validators/type.rs.tmpl +20 -0
  462. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-view-type-validators-tests/type_tests.rs.tmpl +14 -0
  463. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-view-types/type.rs.tmpl +35 -0
  464. package/node_modules/@deterministic-code/rust-generators/dist/templates/create-view-types-tests/type_tests.rs.tmpl +48 -0
  465. package/node_modules/@deterministic-code/rust-generators/package.json +106 -0
  466. package/node_modules/@deterministic-code/rust-generators/src/common/default-casing.test.ts +60 -0
  467. package/node_modules/@deterministic-code/rust-generators/src/common/default-casing.ts +47 -0
  468. package/node_modules/@deterministic-code/rust-generators/src/common/dictionary-candidate.ts +4 -0
  469. package/node_modules/@deterministic-code/rust-generators/src/common/test-samples.ts +82 -0
  470. package/node_modules/@deterministic-code/rust-generators/src/common/view-shape.ts +46 -0
  471. package/node_modules/@deterministic-code/rust-generators/src/common/view-test-fixtures.ts +162 -0
  472. package/node_modules/@deterministic-code/rust-generators/src/deterministic-type-converter.ts +168 -0
  473. package/node_modules/@deterministic-code/rust-generators/src/emit.ts +22 -0
  474. package/node_modules/@deterministic-code/rust-generators/src/generate-backend-app.ts +45 -0
  475. package/node_modules/@deterministic-code/rust-generators/src/generate-context.ts +1 -0
  476. package/node_modules/@deterministic-code/rust-generators/src/generate-datasource-type-validators-tests.ts +142 -0
  477. package/node_modules/@deterministic-code/rust-generators/src/generate-datasource-type-validators.ts +182 -0
  478. package/node_modules/@deterministic-code/rust-generators/src/generate-datasource-types-tests.ts +63 -0
  479. package/node_modules/@deterministic-code/rust-generators/src/generate-datasource-types.ts +84 -0
  480. package/node_modules/@deterministic-code/rust-generators/src/generate-openapi.ts +40 -0
  481. package/node_modules/@deterministic-code/rust-generators/src/generate-perf-e2e-tests.ts +7 -0
  482. package/node_modules/@deterministic-code/rust-generators/src/generate-perf-server.ts +21 -0
  483. package/node_modules/@deterministic-code/rust-generators/src/generate-routes-e2e-test.ts +117 -0
  484. package/node_modules/@deterministic-code/rust-generators/src/generate-routes-tests.ts +153 -0
  485. package/node_modules/@deterministic-code/rust-generators/src/generate-routes.ts +465 -0
  486. package/node_modules/@deterministic-code/rust-generators/src/generate-service-integration-tests.ts +84 -0
  487. package/node_modules/@deterministic-code/rust-generators/src/generate-service-tests.ts +64 -0
  488. package/node_modules/@deterministic-code/rust-generators/src/generate-services.ts +86 -0
  489. package/node_modules/@deterministic-code/rust-generators/src/generate-view-type-validators-tests.ts +105 -0
  490. package/node_modules/@deterministic-code/rust-generators/src/generate-view-type-validators.ts +154 -0
  491. package/node_modules/@deterministic-code/rust-generators/src/generate-view-types-tests.ts +92 -0
  492. package/node_modules/@deterministic-code/rust-generators/src/generate-view-types.ts +168 -0
  493. package/node_modules/@deterministic-code/rust-generators/src/import-generator.test.ts +381 -0
  494. package/node_modules/@deterministic-code/rust-generators/src/import-generator.ts +341 -0
  495. package/node_modules/@deterministic-code/rust-generators/src/resources/backend-app.ts +24 -0
  496. package/node_modules/@deterministic-code/rust-generators/src/resources/datasource-type-validators-tests.ts +12 -0
  497. package/node_modules/@deterministic-code/rust-generators/src/resources/datasource-type-validators.ts +12 -0
  498. package/node_modules/@deterministic-code/rust-generators/src/resources/datasource-types-tests.ts +11 -0
  499. package/node_modules/@deterministic-code/rust-generators/src/resources/datasource-types.ts +9 -0
  500. package/node_modules/@deterministic-code/rust-generators/src/resources/openapi.ts +12 -0
  501. package/node_modules/@deterministic-code/rust-generators/src/resources/perf-e2e.ts +6 -0
  502. package/node_modules/@deterministic-code/rust-generators/src/resources/perf-server.ts +6 -0
  503. package/node_modules/@deterministic-code/rust-generators/src/resources/routes-e2e.ts +15 -0
  504. package/node_modules/@deterministic-code/rust-generators/src/resources/routes-tests.ts +19 -0
  505. package/node_modules/@deterministic-code/rust-generators/src/resources/routes.ts +35 -0
  506. package/node_modules/@deterministic-code/rust-generators/src/resources/service-integration-tests.ts +12 -0
  507. package/node_modules/@deterministic-code/rust-generators/src/resources/service-tests.ts +9 -0
  508. package/node_modules/@deterministic-code/rust-generators/src/resources/services.ts +12 -0
  509. package/node_modules/@deterministic-code/rust-generators/src/resources/view-type-validators-tests.ts +12 -0
  510. package/node_modules/@deterministic-code/rust-generators/src/resources/view-type-validators.ts +21 -0
  511. package/node_modules/@deterministic-code/rust-generators/src/resources/view-types-tests.ts +11 -0
  512. package/node_modules/@deterministic-code/rust-generators/src/resources/view-types.ts +9 -0
  513. package/node_modules/@deterministic-code/rust-generators/src/rust-eager-service-graph.ts +4 -0
  514. package/node_modules/@deterministic-code/rust-generators/src/specification-parser.ts +34 -0
  515. package/node_modules/@deterministic-code/rust-generators/src/struct-default.ts +99 -0
  516. package/node_modules/@deterministic-code/rust-generators/src/templates/create-backend-app/Cargo.toml.tmpl +34 -0
  517. package/node_modules/@deterministic-code/rust-generators/src/templates/create-backend-app/Dockerfile.tmpl +31 -0
  518. package/node_modules/@deterministic-code/rust-generators/src/templates/create-backend-app/docker-compose.yml.tmpl +17 -0
  519. package/node_modules/@deterministic-code/rust-generators/src/templates/create-backend-app/entrypoint.sh +7 -0
  520. package/node_modules/@deterministic-code/rust-generators/src/templates/create-backend-app/env.tmpl +2 -0
  521. package/node_modules/@deterministic-code/rust-generators/src/templates/create-backend-app/gitignore.tmpl +1 -0
  522. package/node_modules/@deterministic-code/rust-generators/src/templates/create-backend-app/rust/chunks/README.md +1 -0
  523. package/node_modules/@deterministic-code/rust-generators/src/templates/create-backend-app/rust/chunks/lib.rs +2 -0
  524. package/node_modules/@deterministic-code/rust-generators/src/templates/create-backend-app/rust/chunks/main.rs +4 -0
  525. package/node_modules/@deterministic-code/rust-generators/src/templates/create-backend-app/rust/health_check_service.rs +13 -0
  526. package/node_modules/@deterministic-code/rust-generators/src/templates/create-datasource-type-validators/type.rs.tmpl +8 -0
  527. package/node_modules/@deterministic-code/rust-generators/src/templates/create-datasource-type-validators-tests/type_tests.rs.tmpl +14 -0
  528. package/node_modules/@deterministic-code/rust-generators/src/templates/create-datasource-types/type.rs.tmpl +22 -0
  529. package/node_modules/@deterministic-code/rust-generators/src/templates/create-datasource-types-tests/type_tests.rs.tmpl +39 -0
  530. package/node_modules/@deterministic-code/rust-generators/src/templates/create-openapi/openapi.rs.tmpl +17 -0
  531. package/node_modules/@deterministic-code/rust-generators/src/templates/create-openapi/openapi_conformance.rs.tmpl +56 -0
  532. package/node_modules/@deterministic-code/rust-generators/src/templates/create-perf-e2e/app_perf_client.rs.tmpl +541 -0
  533. package/node_modules/@deterministic-code/rust-generators/src/templates/create-perf-server/perf_server.rs.tmpl +3 -0
  534. package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/app-wiring-body.rs.tmpl +11 -0
  535. package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/app-wiring.rs.tmpl +1 -0
  536. package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/by-field-merge.rs.tmpl +10 -0
  537. package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/check-eager-child.rs.tmpl +14 -0
  538. package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/check-optional-typed.rs.tmpl +3 -0
  539. package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/check-required-typed.rs.tmpl +5 -0
  540. package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/check-required.rs.tmpl +1 -0
  541. package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/coerce-row.rs.tmpl +62 -0
  542. package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/crud.rs.tmpl +1 -0
  543. package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/readonly.rs.tmpl +1 -0
  544. package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/validator-empty.rs.tmpl +1 -0
  545. package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/validator.rs.tmpl +5 -0
  546. package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes-e2e/app_routes_e2e.rs.tmpl +2 -0
  547. package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes-e2e/crud-tests.rs.tmpl +66 -0
  548. package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes-e2e/readonly-tests.rs.tmpl +33 -0
  549. package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes-e2e/setup.rs.tmpl +52 -0
  550. package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes-tests/by-field-get-list.rs.tmpl +15 -0
  551. package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes-tests/by-field-get-unique.rs.tmpl +15 -0
  552. package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes-tests/crud.rs.tmpl +9 -0
  553. package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes-tests/readonly.rs.tmpl +9 -0
  554. package/node_modules/@deterministic-code/rust-generators/src/templates/create-service-integration-tests/generic.rs.tmpl +9 -0
  555. package/node_modules/@deterministic-code/rust-generators/src/templates/create-service-tests/generic.rs.tmpl +9 -0
  556. package/node_modules/@deterministic-code/rust-generators/src/templates/create-services/custom-stub.rs.tmpl +13 -0
  557. package/node_modules/@deterministic-code/rust-generators/src/templates/create-services/generic.rs.tmpl +13 -0
  558. package/node_modules/@deterministic-code/rust-generators/src/templates/create-view-type-validators/check-array-nullable.rs.tmpl +1 -0
  559. package/node_modules/@deterministic-code/rust-generators/src/templates/create-view-type-validators/check-array.rs.tmpl +1 -0
  560. package/node_modules/@deterministic-code/rust-generators/src/templates/create-view-type-validators/check-nullable.rs.tmpl +1 -0
  561. package/node_modules/@deterministic-code/rust-generators/src/templates/create-view-type-validators/check-required.rs.tmpl +1 -0
  562. package/node_modules/@deterministic-code/rust-generators/src/templates/create-view-type-validators/type.rs.tmpl +20 -0
  563. package/node_modules/@deterministic-code/rust-generators/src/templates/create-view-type-validators-tests/type_tests.rs.tmpl +14 -0
  564. package/node_modules/@deterministic-code/rust-generators/src/templates/create-view-types/type.rs.tmpl +35 -0
  565. package/node_modules/@deterministic-code/rust-generators/src/templates/create-view-types-tests/type_tests.rs.tmpl +48 -0
  566. package/node_modules/@deterministic-code/rust-generators/tsconfig.build.json +10 -0
  567. package/node_modules/@deterministic-code/typescript-generators/dist/client-binding-transport.js +15 -0
  568. package/node_modules/@deterministic-code/typescript-generators/dist/client-bindings-ir.js +186 -0
  569. package/node_modules/@deterministic-code/typescript-generators/dist/common/default-casing.js +53 -0
  570. package/node_modules/@deterministic-code/typescript-generators/dist/common/dictionary-candidate.js +4 -0
  571. package/node_modules/@deterministic-code/typescript-generators/dist/common/fake-test-data.js +88 -0
  572. package/node_modules/@deterministic-code/typescript-generators/dist/common/http-path.js +8 -0
  573. package/node_modules/@deterministic-code/typescript-generators/dist/common/type-converters/native-to-zod.js +118 -0
  574. package/node_modules/@deterministic-code/typescript-generators/dist/common/view-shape.js +30 -0
  575. package/node_modules/@deterministic-code/typescript-generators/dist/common/view-test-shape.js +238 -0
  576. package/node_modules/@deterministic-code/typescript-generators/dist/deterministic-type-converter.js +110 -0
  577. package/node_modules/@deterministic-code/typescript-generators/dist/emit-shaped-types.js +353 -0
  578. package/node_modules/@deterministic-code/typescript-generators/dist/emit.js +43 -0
  579. package/node_modules/@deterministic-code/typescript-generators/dist/frontend-bindings-routes.js +4 -0
  580. package/node_modules/@deterministic-code/typescript-generators/dist/generate-backend-app.js +105 -0
  581. package/node_modules/@deterministic-code/typescript-generators/dist/generate-client-bindings-live-tests.js +28 -0
  582. package/node_modules/@deterministic-code/typescript-generators/dist/generate-client-bindings-mock-tests.js +28 -0
  583. package/node_modules/@deterministic-code/typescript-generators/dist/generate-client-bindings.js +55 -0
  584. package/node_modules/@deterministic-code/typescript-generators/dist/generate-context.js +0 -0
  585. package/node_modules/@deterministic-code/typescript-generators/dist/generate-datasource-type-validators-tests.js +167 -0
  586. package/node_modules/@deterministic-code/typescript-generators/dist/generate-datasource-types-tests.js +83 -0
  587. package/node_modules/@deterministic-code/typescript-generators/dist/generate-datasource-types.d.ts +3 -0
  588. package/node_modules/@deterministic-code/typescript-generators/dist/generate-datasource-types.js +10 -0
  589. package/node_modules/@deterministic-code/typescript-generators/dist/generate-frontend-app.js +154 -0
  590. package/node_modules/@deterministic-code/typescript-generators/dist/generate-frontend-types-tests.js +14 -0
  591. package/node_modules/@deterministic-code/typescript-generators/dist/generate-frontend-types.js +18 -0
  592. package/node_modules/@deterministic-code/typescript-generators/dist/generate-frontend-validators-tests.js +14 -0
  593. package/node_modules/@deterministic-code/typescript-generators/dist/generate-frontend-validators.js +34 -0
  594. package/node_modules/@deterministic-code/typescript-generators/dist/generate-perf-e2e-tests.js +8 -0
  595. package/node_modules/@deterministic-code/typescript-generators/dist/generate-perf-server.js +31 -0
  596. package/node_modules/@deterministic-code/typescript-generators/dist/generate-routes-e2e-test.js +21 -0
  597. package/node_modules/@deterministic-code/typescript-generators/dist/generate-routes-tests.js +64 -0
  598. package/node_modules/@deterministic-code/typescript-generators/dist/generate-routes.js +172 -0
  599. package/node_modules/@deterministic-code/typescript-generators/dist/generate-service-integration-tests.js +282 -0
  600. package/node_modules/@deterministic-code/typescript-generators/dist/generate-service-tests.js +80 -0
  601. package/node_modules/@deterministic-code/typescript-generators/dist/generate-services.js +239 -0
  602. package/node_modules/@deterministic-code/typescript-generators/dist/generate-view-type-validators-tests.js +192 -0
  603. package/node_modules/@deterministic-code/typescript-generators/dist/generate-view-type-validators.js +308 -0
  604. package/node_modules/@deterministic-code/typescript-generators/dist/generate-view-types-tests.js +101 -0
  605. package/node_modules/@deterministic-code/typescript-generators/dist/generate-view-types.d.ts +3 -0
  606. package/node_modules/@deterministic-code/typescript-generators/dist/generate-view-types.js +5 -0
  607. package/node_modules/@deterministic-code/typescript-generators/dist/import-generator.js +241 -0
  608. package/node_modules/@deterministic-code/typescript-generators/dist/inline-inherited.js +4 -0
  609. package/node_modules/@deterministic-code/typescript-generators/dist/resources/backend-app-minimal.js +25 -0
  610. package/node_modules/@deterministic-code/typescript-generators/dist/resources/backend-app.js +43 -0
  611. package/node_modules/@deterministic-code/typescript-generators/dist/resources/client-bindings-live-tests.js +16 -0
  612. package/node_modules/@deterministic-code/typescript-generators/dist/resources/client-bindings-mock-tests.js +16 -0
  613. package/node_modules/@deterministic-code/typescript-generators/dist/resources/client-bindings.js +31 -0
  614. package/node_modules/@deterministic-code/typescript-generators/dist/resources/datasource-type-validators-tests.js +14 -0
  615. package/node_modules/@deterministic-code/typescript-generators/dist/resources/datasource-type-validators.js +16 -0
  616. package/node_modules/@deterministic-code/typescript-generators/dist/resources/datasource-types-tests.js +11 -0
  617. package/node_modules/@deterministic-code/typescript-generators/dist/resources/frontend-app-angular.js +46 -0
  618. package/node_modules/@deterministic-code/typescript-generators/dist/resources/frontend-app-next.js +37 -0
  619. package/node_modules/@deterministic-code/typescript-generators/dist/resources/frontend-app-svelte.js +43 -0
  620. package/node_modules/@deterministic-code/typescript-generators/dist/resources/frontend-app.js +37 -0
  621. package/node_modules/@deterministic-code/typescript-generators/dist/resources/frontend-validators.js +28 -0
  622. package/node_modules/@deterministic-code/typescript-generators/dist/resources/perf-e2e.js +8 -0
  623. package/node_modules/@deterministic-code/typescript-generators/dist/resources/perf-server.js +18 -0
  624. package/node_modules/@deterministic-code/typescript-generators/dist/resources/routes-e2e.js +11 -0
  625. package/node_modules/@deterministic-code/typescript-generators/dist/resources/routes-tests.js +37 -0
  626. package/node_modules/@deterministic-code/typescript-generators/dist/resources/routes.js +40 -0
  627. package/node_modules/@deterministic-code/typescript-generators/dist/resources/service-integration-tests.js +11 -0
  628. package/node_modules/@deterministic-code/typescript-generators/dist/resources/service-tests.js +9 -0
  629. package/node_modules/@deterministic-code/typescript-generators/dist/resources/services.js +15 -0
  630. package/node_modules/@deterministic-code/typescript-generators/dist/resources/shaped-types.js +13 -0
  631. package/node_modules/@deterministic-code/typescript-generators/dist/resources/view-type-validators-tests.js +14 -0
  632. package/node_modules/@deterministic-code/typescript-generators/dist/resources/view-type-validators.js +28 -0
  633. package/node_modules/@deterministic-code/typescript-generators/dist/resources/view-types-tests.js +15 -0
  634. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/Dockerfile.tmpl +19 -0
  635. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/app-boot.test.ts.tmpl +9 -0
  636. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/docker-compose.yml.tmpl +18 -0
  637. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/entrypoint.sh +7 -0
  638. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/env.tmpl +1 -0
  639. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/gitignore.tmpl +5 -0
  640. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/health-check-service.ts.tmpl +11 -0
  641. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/health.test.ts.tmpl +27 -0
  642. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/minimal/app.ts.tmpl +15 -0
  643. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/minimal/health.test.ts.tmpl +23 -0
  644. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/minimal/package.json.tmpl +14 -0
  645. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/minimal/server.ts.tmpl +20 -0
  646. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/minimal/tsconfig.json.tmpl +22 -0
  647. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/package.json.tmpl +30 -0
  648. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/tsconfig.json.tmpl +19 -0
  649. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/typescript/chunks/README.md +1 -0
  650. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/typescript/chunks/app.ts +24 -0
  651. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/typescript/chunks/server.ts +20 -0
  652. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/vitest.config.ts.tmpl +16 -0
  653. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/vitest.perf.config.ts.tmpl +28 -0
  654. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-client-bindings/axios-http.ts.tmpl +28 -0
  655. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-client-bindings/entity.ts.tmpl +13 -0
  656. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-client-bindings/fetch-http.ts.tmpl +33 -0
  657. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-client-bindings/root-index.ts.tmpl +3 -0
  658. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-client-bindings/tanstack-index.ts.tmpl +7 -0
  659. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-client-bindings/tanstack.ts.tmpl +28 -0
  660. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-client-bindings/transport-index.ts.tmpl +4 -0
  661. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-client-bindings-live-tests/http-entity.test.ts.tmpl +29 -0
  662. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-client-bindings-live-tests/tanstack-entity.test.ts.tmpl +29 -0
  663. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-client-bindings-mock-tests/http-entity.test.ts.tmpl +19 -0
  664. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-client-bindings-mock-tests/tanstack-entity.test.ts.tmpl +23 -0
  665. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-datasource-type-validators/index.ts.tmpl +5 -0
  666. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-datasource-type-validators/type.ts.tmpl +12 -0
  667. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-datasource-type-validators-tests/type.test.ts.tmpl +12 -0
  668. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-datasource-types-tests/type.test.ts.tmpl +29 -0
  669. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/Dockerfile.tmpl +9 -0
  670. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/Dockerfile.tmpl +9 -0
  671. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/angular.json.tmpl +34 -0
  672. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/docker-compose-service.yml.tmpl +6 -0
  673. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/gitignore.tmpl +4 -0
  674. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/package.json.tmpl +38 -0
  675. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/src/app/app.config.ts.tmpl +5 -0
  676. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/src/app/app.ts.tmpl +7 -0
  677. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/src/index.html.tmpl +12 -0
  678. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/src/main.ts.tmpl +6 -0
  679. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/src/styles.css.tmpl +1 -0
  680. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/tsconfig.app.json.tmpl +9 -0
  681. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/tsconfig.json.tmpl +22 -0
  682. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/docker-compose-service.yml.tmpl +6 -0
  683. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/gitignore.tmpl +3 -0
  684. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/index.html.tmpl +12 -0
  685. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/next/Dockerfile.tmpl +9 -0
  686. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/next/app/layout.tsx.tmpl +17 -0
  687. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/next/app/page.tsx.tmpl +3 -0
  688. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/next/docker-compose-service.yml.tmpl +6 -0
  689. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/next/gitignore.tmpl +3 -0
  690. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/next/next-env.d.ts.tmpl +2 -0
  691. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/next/next.config.ts.tmpl +5 -0
  692. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/next/package.json.tmpl +33 -0
  693. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/next/tsconfig.json.tmpl +20 -0
  694. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/package.json.tmpl +35 -0
  695. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/src/App.tsx.tmpl +3 -0
  696. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/src/main.tsx.tmpl +9 -0
  697. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/svelte/Dockerfile.tmpl +9 -0
  698. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/svelte/docker-compose-service.yml.tmpl +6 -0
  699. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/svelte/gitignore.tmpl +3 -0
  700. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/svelte/index.html.tmpl +12 -0
  701. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/svelte/package.json.tmpl +32 -0
  702. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/svelte/src/App.svelte.tmpl +1 -0
  703. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/svelte/src/main.ts.tmpl +4 -0
  704. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/svelte/src/vite-env.d.ts.tmpl +2 -0
  705. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/svelte/svelte.config.js.tmpl +5 -0
  706. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/svelte/tsconfig.json.tmpl +15 -0
  707. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/svelte/vite.config.ts.tmpl +10 -0
  708. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/tsconfig.json.tmpl +22 -0
  709. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/vite.config.ts.tmpl +10 -0
  710. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-validators/index.ts.tmpl +5 -0
  711. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-validators/schema-inherit.ts.tmpl +5 -0
  712. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-validators/schema-standalone.ts.tmpl +10 -0
  713. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-validators/schema-union.ts.tmpl +4 -0
  714. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-validators/type.ts.tmpl +11 -0
  715. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-migrate-scripts/setup-typescript.mjs.tmpl +89 -0
  716. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-perf-e2e/app.perf.client.test.ts.tmpl +257 -0
  717. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-perf-server/perf-server.ts.tmpl +19 -0
  718. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes/by-field-delete-list.ts.tmpl +13 -0
  719. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes/by-field-delete-unique.ts.tmpl +17 -0
  720. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes/by-field-get-list.ts.tmpl +9 -0
  721. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes/by-field-get-unique.ts.tmpl +17 -0
  722. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes/by-field-put-list.ts.tmpl +14 -0
  723. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes/by-field-put-unique.ts.tmpl +23 -0
  724. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes/crud.ts.tmpl +6 -0
  725. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes/custom-stub.ts.tmpl +13 -0
  726. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes/index.ts.tmpl +4 -0
  727. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes/readonly.ts.tmpl +6 -0
  728. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes-e2e/app.integration.test.ts.tmpl +22 -0
  729. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes-tests/by-field-delete-list.ts.tmpl +7 -0
  730. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes-tests/by-field-delete-unique.ts.tmpl +14 -0
  731. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes-tests/by-field-get-list.ts.tmpl +10 -0
  732. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes-tests/by-field-get-unique.ts.tmpl +22 -0
  733. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes-tests/by-field-put-list.ts.tmpl +7 -0
  734. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes-tests/by-field-put-unique.ts.tmpl +17 -0
  735. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes-tests/crud.test.ts.tmpl +8 -0
  736. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes-tests/mock-factory.ts.tmpl +16 -0
  737. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes-tests/readonly.test.ts.tmpl +8 -0
  738. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-service-integration-tests/generic.integration.test.ts.tmpl +109 -0
  739. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-service-tests/generic.test.ts.tmpl +65 -0
  740. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-services/custom-stub.ts.tmpl +30 -0
  741. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-services/generic.ts.tmpl +114 -0
  742. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-services/index.ts.tmpl +3 -0
  743. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-shaped-types/index.ts.tmpl +3 -0
  744. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-shaped-types/type.ts.tmpl +25 -0
  745. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-view-type-validators/index.ts.tmpl +5 -0
  746. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-view-type-validators/schema-inherit.ts.tmpl +5 -0
  747. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-view-type-validators/schema-standalone.ts.tmpl +10 -0
  748. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-view-type-validators/schema-union.ts.tmpl +4 -0
  749. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-view-type-validators/type.ts.tmpl +11 -0
  750. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-view-type-validators-tests/type.test.ts.tmpl +12 -0
  751. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-view-types-tests/field-tests.ts.tmpl +26 -0
  752. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-view-types-tests/type.test.ts.tmpl +26 -0
  753. package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-view-types-tests/value.ts.tmpl +1 -0
  754. package/node_modules/@deterministic-code/typescript-generators/package.json +133 -0
  755. package/node_modules/@deterministic-code/typescript-generators/src/client-binding-transport.ts +26 -0
  756. package/node_modules/@deterministic-code/typescript-generators/src/client-bindings-ir.ts +273 -0
  757. package/node_modules/@deterministic-code/typescript-generators/src/common/default-casing.test.ts +193 -0
  758. package/node_modules/@deterministic-code/typescript-generators/src/common/default-casing.ts +90 -0
  759. package/node_modules/@deterministic-code/typescript-generators/src/common/dictionary-candidate.ts +4 -0
  760. package/node_modules/@deterministic-code/typescript-generators/src/common/fake-test-data.ts +132 -0
  761. package/node_modules/@deterministic-code/typescript-generators/src/common/http-path.ts +12 -0
  762. package/node_modules/@deterministic-code/typescript-generators/src/common/type-converters/native-to-zod.ts +137 -0
  763. package/node_modules/@deterministic-code/typescript-generators/src/common/view-shape.ts +57 -0
  764. package/node_modules/@deterministic-code/typescript-generators/src/common/view-test-shape.ts +354 -0
  765. package/node_modules/@deterministic-code/typescript-generators/src/deterministic-type-converter.ts +134 -0
  766. package/node_modules/@deterministic-code/typescript-generators/src/emit-shaped-types.ts +541 -0
  767. package/node_modules/@deterministic-code/typescript-generators/src/emit.ts +67 -0
  768. package/node_modules/@deterministic-code/typescript-generators/src/frontend-bindings-routes.ts +3 -0
  769. package/node_modules/@deterministic-code/typescript-generators/src/generate-backend-app.ts +116 -0
  770. package/node_modules/@deterministic-code/typescript-generators/src/generate-client-bindings-live-tests.ts +29 -0
  771. package/node_modules/@deterministic-code/typescript-generators/src/generate-client-bindings-mock-tests.ts +29 -0
  772. package/node_modules/@deterministic-code/typescript-generators/src/generate-client-bindings.ts +56 -0
  773. package/node_modules/@deterministic-code/typescript-generators/src/generate-context.ts +1 -0
  774. package/node_modules/@deterministic-code/typescript-generators/src/generate-datasource-type-validators-tests.ts +203 -0
  775. package/node_modules/@deterministic-code/typescript-generators/src/generate-datasource-type-validators.ts +191 -0
  776. package/node_modules/@deterministic-code/typescript-generators/src/generate-datasource-types-tests.ts +97 -0
  777. package/node_modules/@deterministic-code/typescript-generators/src/generate-datasource-types.ts +13 -0
  778. package/node_modules/@deterministic-code/typescript-generators/src/generate-frontend-app.ts +180 -0
  779. package/node_modules/@deterministic-code/typescript-generators/src/generate-frontend-types-tests.ts +17 -0
  780. package/node_modules/@deterministic-code/typescript-generators/src/generate-frontend-types.ts +23 -0
  781. package/node_modules/@deterministic-code/typescript-generators/src/generate-frontend-validators-tests.ts +17 -0
  782. package/node_modules/@deterministic-code/typescript-generators/src/generate-frontend-validators.ts +39 -0
  783. package/node_modules/@deterministic-code/typescript-generators/src/generate-perf-e2e-tests.ts +9 -0
  784. package/node_modules/@deterministic-code/typescript-generators/src/generate-perf-server.ts +32 -0
  785. package/node_modules/@deterministic-code/typescript-generators/src/generate-routes-e2e-test.ts +22 -0
  786. package/node_modules/@deterministic-code/typescript-generators/src/generate-routes-tests.ts +75 -0
  787. package/node_modules/@deterministic-code/typescript-generators/src/generate-routes.ts +196 -0
  788. package/node_modules/@deterministic-code/typescript-generators/src/generate-service-integration-tests.ts +351 -0
  789. package/node_modules/@deterministic-code/typescript-generators/src/generate-service-tests.ts +103 -0
  790. package/node_modules/@deterministic-code/typescript-generators/src/generate-services.ts +287 -0
  791. package/node_modules/@deterministic-code/typescript-generators/src/generate-view-type-validators-tests.ts +233 -0
  792. package/node_modules/@deterministic-code/typescript-generators/src/generate-view-type-validators.ts +391 -0
  793. package/node_modules/@deterministic-code/typescript-generators/src/generate-view-types-tests.ts +124 -0
  794. package/node_modules/@deterministic-code/typescript-generators/src/generate-view-types.ts +8 -0
  795. package/node_modules/@deterministic-code/typescript-generators/src/import-generator.test.ts +432 -0
  796. package/node_modules/@deterministic-code/typescript-generators/src/import-generator.ts +346 -0
  797. package/node_modules/@deterministic-code/typescript-generators/src/inline-inherited.ts +2 -0
  798. package/node_modules/@deterministic-code/typescript-generators/src/resources/backend-app-minimal.ts +21 -0
  799. package/node_modules/@deterministic-code/typescript-generators/src/resources/backend-app.ts +32 -0
  800. package/node_modules/@deterministic-code/typescript-generators/src/resources/client-bindings-live-tests.ts +15 -0
  801. package/node_modules/@deterministic-code/typescript-generators/src/resources/client-bindings-mock-tests.ts +15 -0
  802. package/node_modules/@deterministic-code/typescript-generators/src/resources/client-bindings.ts +25 -0
  803. package/node_modules/@deterministic-code/typescript-generators/src/resources/datasource-type-validators-tests.ts +14 -0
  804. package/node_modules/@deterministic-code/typescript-generators/src/resources/datasource-type-validators.ts +15 -0
  805. package/node_modules/@deterministic-code/typescript-generators/src/resources/datasource-types-tests.ts +11 -0
  806. package/node_modules/@deterministic-code/typescript-generators/src/resources/frontend-app-angular.ts +35 -0
  807. package/node_modules/@deterministic-code/typescript-generators/src/resources/frontend-app-next.ts +29 -0
  808. package/node_modules/@deterministic-code/typescript-generators/src/resources/frontend-app-svelte.ts +33 -0
  809. package/node_modules/@deterministic-code/typescript-generators/src/resources/frontend-app.ts +29 -0
  810. package/node_modules/@deterministic-code/typescript-generators/src/resources/frontend-validators.ts +24 -0
  811. package/node_modules/@deterministic-code/typescript-generators/src/resources/perf-e2e.ts +6 -0
  812. package/node_modules/@deterministic-code/typescript-generators/src/resources/perf-server.ts +15 -0
  813. package/node_modules/@deterministic-code/typescript-generators/src/resources/routes-e2e.ts +9 -0
  814. package/node_modules/@deterministic-code/typescript-generators/src/resources/routes-tests.ts +29 -0
  815. package/node_modules/@deterministic-code/typescript-generators/src/resources/routes.ts +31 -0
  816. package/node_modules/@deterministic-code/typescript-generators/src/resources/service-integration-tests.ts +9 -0
  817. package/node_modules/@deterministic-code/typescript-generators/src/resources/service-tests.ts +9 -0
  818. package/node_modules/@deterministic-code/typescript-generators/src/resources/services.ts +13 -0
  819. package/node_modules/@deterministic-code/typescript-generators/src/resources/shaped-types.ts +12 -0
  820. package/node_modules/@deterministic-code/typescript-generators/src/resources/view-type-validators-tests.ts +14 -0
  821. package/node_modules/@deterministic-code/typescript-generators/src/resources/view-type-validators.ts +24 -0
  822. package/node_modules/@deterministic-code/typescript-generators/src/resources/view-types-tests.ts +13 -0
  823. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/Dockerfile.tmpl +19 -0
  824. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/app-boot.test.ts.tmpl +9 -0
  825. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/docker-compose.yml.tmpl +18 -0
  826. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/entrypoint.sh +7 -0
  827. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/env.tmpl +1 -0
  828. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/gitignore.tmpl +5 -0
  829. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/health-check-service.ts.tmpl +11 -0
  830. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/health.test.ts.tmpl +27 -0
  831. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/minimal/app.ts.tmpl +15 -0
  832. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/minimal/health.test.ts.tmpl +23 -0
  833. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/minimal/package.json.tmpl +14 -0
  834. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/minimal/server.ts.tmpl +20 -0
  835. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/minimal/tsconfig.json.tmpl +22 -0
  836. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/package.json.tmpl +30 -0
  837. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/tsconfig.json.tmpl +19 -0
  838. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/typescript/chunks/README.md +1 -0
  839. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/typescript/chunks/app.ts +24 -0
  840. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/typescript/chunks/server.ts +20 -0
  841. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/vitest.config.ts.tmpl +16 -0
  842. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/vitest.perf.config.ts.tmpl +28 -0
  843. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-client-bindings/axios-http.ts.tmpl +28 -0
  844. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-client-bindings/entity.ts.tmpl +13 -0
  845. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-client-bindings/fetch-http.ts.tmpl +33 -0
  846. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-client-bindings/root-index.ts.tmpl +3 -0
  847. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-client-bindings/tanstack-index.ts.tmpl +7 -0
  848. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-client-bindings/tanstack.ts.tmpl +28 -0
  849. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-client-bindings/transport-index.ts.tmpl +4 -0
  850. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-client-bindings-live-tests/http-entity.test.ts.tmpl +29 -0
  851. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-client-bindings-live-tests/tanstack-entity.test.ts.tmpl +29 -0
  852. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-client-bindings-mock-tests/http-entity.test.ts.tmpl +19 -0
  853. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-client-bindings-mock-tests/tanstack-entity.test.ts.tmpl +23 -0
  854. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-datasource-type-validators/index.ts.tmpl +5 -0
  855. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-datasource-type-validators/type.ts.tmpl +12 -0
  856. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-datasource-type-validators-tests/type.test.ts.tmpl +12 -0
  857. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-datasource-types-tests/type.test.ts.tmpl +29 -0
  858. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/Dockerfile.tmpl +9 -0
  859. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/Dockerfile.tmpl +9 -0
  860. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/angular.json.tmpl +34 -0
  861. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/docker-compose-service.yml.tmpl +6 -0
  862. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/gitignore.tmpl +4 -0
  863. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/package.json.tmpl +38 -0
  864. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/src/app/app.config.ts.tmpl +5 -0
  865. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/src/app/app.ts.tmpl +7 -0
  866. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/src/index.html.tmpl +12 -0
  867. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/src/main.ts.tmpl +6 -0
  868. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/src/styles.css.tmpl +1 -0
  869. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/tsconfig.app.json.tmpl +9 -0
  870. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/tsconfig.json.tmpl +22 -0
  871. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/docker-compose-service.yml.tmpl +6 -0
  872. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/gitignore.tmpl +3 -0
  873. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/index.html.tmpl +12 -0
  874. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/next/Dockerfile.tmpl +9 -0
  875. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/next/app/layout.tsx.tmpl +17 -0
  876. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/next/app/page.tsx.tmpl +3 -0
  877. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/next/docker-compose-service.yml.tmpl +6 -0
  878. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/next/gitignore.tmpl +3 -0
  879. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/next/next-env.d.ts.tmpl +2 -0
  880. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/next/next.config.ts.tmpl +5 -0
  881. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/next/package.json.tmpl +33 -0
  882. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/next/tsconfig.json.tmpl +20 -0
  883. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/package.json.tmpl +35 -0
  884. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/src/App.tsx.tmpl +3 -0
  885. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/src/main.tsx.tmpl +9 -0
  886. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/svelte/Dockerfile.tmpl +9 -0
  887. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/svelte/docker-compose-service.yml.tmpl +6 -0
  888. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/svelte/gitignore.tmpl +3 -0
  889. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/svelte/index.html.tmpl +12 -0
  890. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/svelte/package.json.tmpl +32 -0
  891. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/svelte/src/App.svelte.tmpl +1 -0
  892. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/svelte/src/main.ts.tmpl +4 -0
  893. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/svelte/src/vite-env.d.ts.tmpl +2 -0
  894. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/svelte/svelte.config.js.tmpl +5 -0
  895. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/svelte/tsconfig.json.tmpl +15 -0
  896. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/svelte/vite.config.ts.tmpl +10 -0
  897. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/tsconfig.json.tmpl +22 -0
  898. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/vite.config.ts.tmpl +10 -0
  899. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-validators/index.ts.tmpl +5 -0
  900. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-validators/schema-inherit.ts.tmpl +5 -0
  901. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-validators/schema-standalone.ts.tmpl +10 -0
  902. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-validators/schema-union.ts.tmpl +4 -0
  903. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-validators/type.ts.tmpl +11 -0
  904. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-migrate-scripts/setup-typescript.mjs.tmpl +89 -0
  905. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-perf-e2e/app.perf.client.test.ts.tmpl +257 -0
  906. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-perf-server/perf-server.ts.tmpl +19 -0
  907. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes/by-field-delete-list.ts.tmpl +13 -0
  908. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes/by-field-delete-unique.ts.tmpl +17 -0
  909. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes/by-field-get-list.ts.tmpl +9 -0
  910. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes/by-field-get-unique.ts.tmpl +17 -0
  911. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes/by-field-put-list.ts.tmpl +14 -0
  912. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes/by-field-put-unique.ts.tmpl +23 -0
  913. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes/crud.ts.tmpl +6 -0
  914. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes/custom-stub.ts.tmpl +13 -0
  915. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes/index.ts.tmpl +4 -0
  916. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes/readonly.ts.tmpl +6 -0
  917. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes-e2e/app.integration.test.ts.tmpl +22 -0
  918. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes-tests/by-field-delete-list.ts.tmpl +7 -0
  919. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes-tests/by-field-delete-unique.ts.tmpl +14 -0
  920. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes-tests/by-field-get-list.ts.tmpl +10 -0
  921. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes-tests/by-field-get-unique.ts.tmpl +22 -0
  922. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes-tests/by-field-put-list.ts.tmpl +7 -0
  923. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes-tests/by-field-put-unique.ts.tmpl +17 -0
  924. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes-tests/crud.test.ts.tmpl +8 -0
  925. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes-tests/mock-factory.ts.tmpl +16 -0
  926. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes-tests/readonly.test.ts.tmpl +8 -0
  927. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-service-integration-tests/generic.integration.test.ts.tmpl +109 -0
  928. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-service-tests/generic.test.ts.tmpl +65 -0
  929. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-services/custom-stub.ts.tmpl +30 -0
  930. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-services/generic.ts.tmpl +114 -0
  931. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-services/index.ts.tmpl +3 -0
  932. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-shaped-types/index.ts.tmpl +3 -0
  933. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-shaped-types/type.ts.tmpl +25 -0
  934. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-view-type-validators/index.ts.tmpl +5 -0
  935. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-view-type-validators/schema-inherit.ts.tmpl +5 -0
  936. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-view-type-validators/schema-standalone.ts.tmpl +10 -0
  937. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-view-type-validators/schema-union.ts.tmpl +4 -0
  938. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-view-type-validators/type.ts.tmpl +11 -0
  939. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-view-type-validators-tests/type.test.ts.tmpl +12 -0
  940. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-view-types-tests/field-tests.ts.tmpl +26 -0
  941. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-view-types-tests/type.test.ts.tmpl +26 -0
  942. package/node_modules/@deterministic-code/typescript-generators/src/templates/create-view-types-tests/value.ts.tmpl +1 -0
  943. package/node_modules/@deterministic-code/typescript-generators/tsconfig.build.json +10 -0
  944. package/package.json +46 -4
  945. package/README.md +0 -3
@@ -0,0 +1,1290 @@
1
+ // node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/parser/specification-parser.ts
2
+ import pluralize from "pluralize";
3
+
4
+ // node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/deterministic.ts
5
+ var Deterministic = class {
6
+ types;
7
+ expandedTypes;
8
+ datasource;
9
+ datasourceSeeds;
10
+ services;
11
+ routes;
12
+ constructor(args) {
13
+ this.types = args.types;
14
+ this.expandedTypes = args.expandedTypes;
15
+ this.datasource = args.datasource;
16
+ this.datasourceSeeds = args.datasourceSeeds;
17
+ this.services = args.services;
18
+ this.routes = args.routes;
19
+ }
20
+ };
21
+
22
+ // node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/ensure-health.ts
23
+ var HEALTH_SERVICE_NAME = "HealthCheckService";
24
+ var HEALTH_SERVICE_METHOD = "check";
25
+ var HEALTH_ROUTE_NAME = "getHealth";
26
+ var HEALTH_ROUTE_PATH = "/api/health";
27
+ var seedService = () => ({
28
+ name: HEALTH_SERVICE_NAME,
29
+ methods: [HEALTH_SERVICE_METHOD]
30
+ });
31
+ var seedRoute = () => ({
32
+ name: HEALTH_ROUTE_NAME,
33
+ path: HEALTH_ROUTE_PATH,
34
+ method: "GET",
35
+ entity: null
36
+ });
37
+ var prepend = (list, match, seed) => {
38
+ const idx = list.findIndex(match);
39
+ if (idx === 0) return [...list];
40
+ if (idx > 0) {
41
+ return [list[idx], ...list.slice(0, idx), ...list.slice(idx + 1)];
42
+ }
43
+ return [seed, ...list];
44
+ };
45
+ var ensureHealth = (deterministic) => new Deterministic({
46
+ ...deterministic,
47
+ services: {
48
+ ...deterministic.services,
49
+ customs: prepend(
50
+ deterministic.services.customs,
51
+ (s) => s.name === HEALTH_SERVICE_NAME,
52
+ seedService()
53
+ )
54
+ },
55
+ routes: {
56
+ ...deterministic.routes,
57
+ customs: prepend(
58
+ deterministic.routes.customs,
59
+ (r) => r.path === HEALTH_ROUTE_PATH,
60
+ seedRoute()
61
+ )
62
+ }
63
+ });
64
+
65
+ // node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/parser/compile-filter.ts
66
+ var ACCESSORS = /* @__PURE__ */ new Set(["type", "tag", "inherits"]);
67
+ var ALLOWED_INTERNAL = /* @__PURE__ */ new Set([
68
+ "__name",
69
+ "__tags",
70
+ "__inherits",
71
+ "includes",
72
+ "true",
73
+ "false",
74
+ "null",
75
+ "undefined",
76
+ ...ACCESSORS
77
+ ]);
78
+ var assertKnownIdents = (s, contextLabel) => {
79
+ for (const ident of s.match(/[A-Za-z_][A-Za-z0-9_]*/g) ?? []) {
80
+ if (ident.startsWith("__STR")) continue;
81
+ if (ALLOWED_INTERNAL.has(ident)) continue;
82
+ throw new Error(
83
+ `${contextLabel}: unknown identifier or syntax near "${ident}". Supported: \`type == "name"\`, \`tag == "kind"\`, \`inherits == "parent"\`, logical && / ||, parens.`
84
+ );
85
+ }
86
+ };
87
+ var compileExpr = (s, contextLabel) => {
88
+ try {
89
+ return new Function(
90
+ "__name",
91
+ "__tags",
92
+ "__inherits",
93
+ `return (${s});`
94
+ );
95
+ } catch (e) {
96
+ throw new Error(
97
+ `${contextLabel} is not a valid expression: ${e.message}`
98
+ );
99
+ }
100
+ };
101
+ var rewriteDslToJs = (input) => input.replace(/\btype\s*(==|!=)\s*(__STR\d+__)/g, (_, op, idx) => {
102
+ const jsOp = op === "==" ? "===" : "!==";
103
+ return `(__name ${jsOp} ${idx})`;
104
+ }).replace(/\btag\s*==\s*(__STR\d+__)/g, (_, idx) => `__tags.includes(${idx})`).replace(/\btag\s*!=\s*(__STR\d+__)/g, (_, idx) => `!__tags.includes(${idx})`).replace(/\binherits\s*(==|!=)\s*(__STR\d+__)/g, (_, op, idx) => {
105
+ const jsOp = op === "==" ? "===" : "!==";
106
+ return `(__inherits ${jsOp} ${idx})`;
107
+ });
108
+ var compileFilter = (filterExpr, contextLabel = "filter") => {
109
+ if (!filterExpr) return () => true;
110
+ const placeholders = [];
111
+ const withStrings = filterExpr.replace(/"[^"]*"/g, (m) => {
112
+ placeholders.push(m);
113
+ return `__STR${placeholders.length - 1}__`;
114
+ });
115
+ const rewritten = rewriteDslToJs(withStrings);
116
+ assertKnownIdents(rewritten, contextLabel);
117
+ const restored = rewritten.replace(
118
+ /__STR(\d+)__/g,
119
+ (_, idx) => placeholders[Number(idx)]
120
+ );
121
+ const fn = compileExpr(restored, contextLabel);
122
+ return (cand) => Boolean(fn(cand.name, cand.tags, cand.inherits ?? ""));
123
+ };
124
+ var compileTypesFilter = (filterExpr) => compileFilter(filterExpr, "types.filter");
125
+
126
+ // node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/specification.ts
127
+ var TYPES_YAML = "types.yaml";
128
+ var DATASOURCE_YAML = "datasource.yaml";
129
+ var DATASOURCE_SEEDS_YAML = "datasource_seeds.yaml";
130
+ var SERVICES_YAML = "services.yaml";
131
+ var ROUTES_YAML = "routes.yaml";
132
+ var PRIMITIVES = /* @__PURE__ */ new Set([
133
+ "string",
134
+ "character",
135
+ "number",
136
+ "integer",
137
+ "unsignedinteger",
138
+ "biginteger",
139
+ "unsignedbiginteger",
140
+ "smallinteger",
141
+ "unsignedsmallinteger",
142
+ "float",
143
+ "decimal",
144
+ "boolean",
145
+ "datetime",
146
+ "binary",
147
+ "uuid",
148
+ "reference"
149
+ ]);
150
+ var SET_FIELDS = [{
151
+ name: "id",
152
+ type: "integer",
153
+ kind: "primitive",
154
+ base: "integer",
155
+ isArray: false,
156
+ isMap: false,
157
+ isNullable: false
158
+ }];
159
+ var parseFieldType = (raw) => {
160
+ const isArray = raw.endsWith("[]");
161
+ const isMap2 = raw.endsWith("{}");
162
+ const base = isArray || isMap2 ? raw.slice(0, -2) : raw;
163
+ return {
164
+ kind: PRIMITIVES.has(base) ? "primitive" : "type",
165
+ base,
166
+ isArray,
167
+ isMap: isMap2
168
+ };
169
+ };
170
+ var markedIds = (type) => type.fields.filter((f) => f.isId === true).map((f) => f.name);
171
+ var hasAuthoredIdentity = (type) => type.ids !== void 0 && type.ids.length > 0 || markedIds(type).length > 0;
172
+ var identityColumns = (type) => {
173
+ if (!type) return ["id"];
174
+ if (type.ids !== void 0 && type.ids.length > 0) return [...type.ids];
175
+ const marked = markedIds(type);
176
+ return marked.length > 0 ? marked : type.inherits === "set" ? ["id"] : [];
177
+ };
178
+ var primaryKeyColumn = (_table, type) => identityColumns(type)[0] ?? "id";
179
+ var uniqueLookupFields = (type, table) => {
180
+ const out = [];
181
+ const add = (name) => {
182
+ if (out.some((e) => e.field === name)) return;
183
+ const f = type.fields.find((x) => x.name === name);
184
+ out.push({
185
+ field: name,
186
+ type: typeof f?.type === "string" ? f.type : "string",
187
+ ...typeof f?.size === "number" ? { size: f.size } : {}
188
+ });
189
+ };
190
+ for (const name of identityColumns(type)) add(name);
191
+ for (const overlay of table?.fields ?? []) if (overlay.isUnique) add(overlay.name);
192
+ for (const name of table?.uniqueIndexFields ?? []) add(name);
193
+ return out;
194
+ };
195
+ var splitDot = (value) => {
196
+ const i = value.indexOf(".");
197
+ return i === -1 ? void 0 : [value.slice(0, i), value.slice(i + 1)];
198
+ };
199
+ var identityFieldNames = (type, byName, stack = /* @__PURE__ */ new Set()) => {
200
+ if (!type) return /* @__PURE__ */ new Set();
201
+ if (stack.has(type.name)) return /* @__PURE__ */ new Set();
202
+ const local = identityColumns(type);
203
+ if (local.length > 0) return new Set(local);
204
+ if (type.inherits && type.inherits !== "dictionary") {
205
+ stack.add(type.name);
206
+ return identityFieldNames(byName.get(type.inherits), byName, stack);
207
+ }
208
+ return /* @__PURE__ */ new Set();
209
+ };
210
+ var isOwnerIdentityRef = (references, selfName, byName) => {
211
+ if (references === void 0) return false;
212
+ const parts = (Array.isArray(references) ? references : [references]).map(
213
+ (ref) => {
214
+ const split = splitDot(ref);
215
+ return split ? { type: split[0], field: split[1] } : { type: "", field: ref };
216
+ }
217
+ );
218
+ const owner = parts[0].type;
219
+ if (!owner || owner === selfName) return false;
220
+ const identity = identityFieldNames(byName.get(owner), byName);
221
+ return parts.every((p) => p.type === owner && identity.has(p.field));
222
+ };
223
+ var extractFields = (fields, extract) => {
224
+ if (!extract?.length) return fields;
225
+ const allow = /* @__PURE__ */ new Map();
226
+ for (const item of extract) {
227
+ const split = splitDot(item);
228
+ if (!split) continue;
229
+ const set = allow.get(split[0]) ?? /* @__PURE__ */ new Set();
230
+ set.add(split[1]);
231
+ allow.set(split[0], set);
232
+ }
233
+ return fields.filter((f) => {
234
+ const keep = allow.get(f.source);
235
+ return !keep || keep.has(f.name);
236
+ });
237
+ };
238
+ var renameFields = (fields, mapping) => mapping ? fields.map((f) => {
239
+ const name = mapping[`${f.source}.${f.name}`] ?? mapping[f.name];
240
+ return name !== void 0 ? { ...f, name } : f;
241
+ }) : fields;
242
+ var assertUniqueFieldNames = (fields, typeName) => {
243
+ const seen = /* @__PURE__ */ new Map();
244
+ for (const field of fields) {
245
+ const prev = seen.get(field.name);
246
+ if (prev) {
247
+ throw new Error(
248
+ `${prev.source}.${prev.original} and ${field.source}.${field.original} collide on the composed shape of ${typeName}; use mapping or remove_fields and give new names`
249
+ );
250
+ }
251
+ seen.set(field.name, field);
252
+ }
253
+ };
254
+ var keepFields = (fields, remove) => remove?.length ? fields.filter(
255
+ (f) => !remove.some((item) => {
256
+ const split = splitDot(item);
257
+ return split ? f.name === split[1] && f.source === split[0] : f.name === item;
258
+ })
259
+ ) : fields;
260
+ var expandTypes = (types) => {
261
+ const byName = new Map(types.map((t) => [t.name, t]));
262
+ const cache = /* @__PURE__ */ new Map();
263
+ const resolve = (name, stack) => {
264
+ const hit = cache.get(name);
265
+ if (hit) return hit;
266
+ if (name === "set") {
267
+ cache.set(name, SET_FIELDS);
268
+ return SET_FIELDS;
269
+ }
270
+ if (stack.has(name)) {
271
+ throw new Error(`circular inherit/union involving "${name}"`);
272
+ }
273
+ const type = byName.get(name);
274
+ if (!type) return [];
275
+ stack.add(name);
276
+ const composeSource = (source) => {
277
+ const fields = resolve(source, stack).map((f) => ({
278
+ ...f,
279
+ source,
280
+ original: f.name
281
+ }));
282
+ const srcType = byName.get(source);
283
+ return srcType?.inherits === "dictionary" ? fields.filter(
284
+ (f) => !isOwnerIdentityRef(f.references, srcType.name, byName)
285
+ ) : fields;
286
+ };
287
+ const skipSetId = type.inherits === "set" && hasAuthoredIdentity(type);
288
+ const inherited = [
289
+ ...type.inherits && !skipSetId ? composeSource(type.inherits) : [],
290
+ ...(type.union ?? []).flatMap(composeSource)
291
+ ];
292
+ stack.delete(name);
293
+ const merged = [
294
+ ...keepFields(
295
+ renameFields(extractFields(inherited, type.extract), type.mapping),
296
+ type.removeFields
297
+ ),
298
+ ...type.fields.map((f) => ({ ...f, source: name, original: f.name }))
299
+ ];
300
+ assertUniqueFieldNames(merged, name);
301
+ const result = merged.map(({ source: _s, original: _o, ...rest }) => rest);
302
+ cache.set(name, result);
303
+ return result;
304
+ };
305
+ const resolveIds = (name, stack) => {
306
+ if (stack.has(name)) return void 0;
307
+ const type = byName.get(name);
308
+ if (!type) return void 0;
309
+ if (type.ids !== void 0 && type.ids.length > 0) return type.ids;
310
+ if (type.fields.some((f) => f.isId === true)) return void 0;
311
+ if (type.inherits && type.inherits !== "set" && type.inherits !== "dictionary") {
312
+ stack.add(name);
313
+ const ids = resolveIds(type.inherits, stack);
314
+ stack.delete(name);
315
+ return ids;
316
+ }
317
+ return void 0;
318
+ };
319
+ return types.map((type) => {
320
+ const ids = type.ids ?? resolveIds(type.name, /* @__PURE__ */ new Set());
321
+ return {
322
+ ...type,
323
+ ...ids !== void 0 && ids.length > 0 ? { ids } : {},
324
+ fields: resolve(type.name, /* @__PURE__ */ new Set())
325
+ };
326
+ });
327
+ };
328
+
329
+ // node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/datasource-type-tree.ts
330
+ import { stringify } from "yaml";
331
+ var ROOT = "root";
332
+ var refTargets = (references) => (Array.isArray(references) ? references : [references]).map(
333
+ (ref) => ref.split(".")[0] || ""
334
+ );
335
+ var referencedParents = (type, typeNames) => {
336
+ const parents = [];
337
+ const seen = /* @__PURE__ */ new Set();
338
+ for (const field of type.fields) {
339
+ if (field.references === void 0) continue;
340
+ for (const parent of refTargets(field.references)) {
341
+ if (parent.length === 0 || parent === type.name || !typeNames.has(parent) || seen.has(parent)) {
342
+ continue;
343
+ }
344
+ seen.add(parent);
345
+ parents.push(parent);
346
+ }
347
+ }
348
+ return parents;
349
+ };
350
+ var addChild = (children, parent, child) => {
351
+ const list = children.get(parent);
352
+ if (list === void 0) {
353
+ children.set(parent, [child]);
354
+ return;
355
+ }
356
+ if (!list.includes(child)) list.push(child);
357
+ };
358
+ var stronglyConnected = (names, parentsOf) => {
359
+ let index = 0;
360
+ let sccCount = 0;
361
+ const indices = /* @__PURE__ */ new Map();
362
+ const lows = /* @__PURE__ */ new Map();
363
+ const stack = [];
364
+ const onStack = /* @__PURE__ */ new Set();
365
+ const sccId = /* @__PURE__ */ new Map();
366
+ const connect = (v) => {
367
+ indices.set(v, index);
368
+ lows.set(v, index);
369
+ index += 1;
370
+ stack.push(v);
371
+ onStack.add(v);
372
+ for (const w of parentsOf(v)) {
373
+ if (!indices.has(w)) {
374
+ connect(w);
375
+ const vLow = lows.get(v);
376
+ const wLow = lows.get(w);
377
+ if (vLow !== void 0 && wLow !== void 0) {
378
+ lows.set(v, Math.min(vLow, wLow));
379
+ }
380
+ } else if (onStack.has(w)) {
381
+ const vLow = lows.get(v);
382
+ const wIndex = indices.get(w);
383
+ if (vLow !== void 0 && wIndex !== void 0) {
384
+ lows.set(v, Math.min(vLow, wIndex));
385
+ }
386
+ }
387
+ }
388
+ if (lows.get(v) === indices.get(v)) {
389
+ let w;
390
+ do {
391
+ w = stack.pop();
392
+ onStack.delete(w);
393
+ sccId.set(w, sccCount);
394
+ } while (w !== v);
395
+ sccCount += 1;
396
+ }
397
+ };
398
+ for (const name of names) {
399
+ if (!indices.has(name)) connect(name);
400
+ }
401
+ return sccId;
402
+ };
403
+ var sccsWithExternalParent = (parentLists, sccId) => {
404
+ const hasExternal = /* @__PURE__ */ new Set();
405
+ for (const [name, parents] of parentLists) {
406
+ const from = sccId.get(name);
407
+ for (const parent of parents) {
408
+ const to = sccId.get(parent);
409
+ if (to !== void 0 && to !== from) hasExternal.add(from);
410
+ }
411
+ }
412
+ return hasExternal;
413
+ };
414
+ var buildNode = (children, name, path) => {
415
+ const node = {};
416
+ for (const child of children.get(name) ?? []) {
417
+ if (path.has(child)) continue;
418
+ node[child] = buildNode(children, child, /* @__PURE__ */ new Set([...path, child]));
419
+ }
420
+ return node;
421
+ };
422
+ var chosenParents = (types, multiParent) => {
423
+ const typeNames = new Set(types.map((type) => type.name));
424
+ const parentLists = /* @__PURE__ */ new Map();
425
+ for (const type of types) {
426
+ const parents = referencedParents(type, typeNames);
427
+ parentLists.set(
428
+ type.name,
429
+ multiParent === "all" ? parents : parents.slice(0, 1)
430
+ );
431
+ }
432
+ return parentLists;
433
+ };
434
+ var buildTree = (types, parentLists) => {
435
+ const names = types.map((type) => type.name);
436
+ const sccId = stronglyConnected(names, (name) => parentLists.get(name));
437
+ const hasExternalParent = sccsWithExternalParent(parentLists, sccId);
438
+ const children = /* @__PURE__ */ new Map();
439
+ for (const type of types) {
440
+ const scc = sccId.get(type.name);
441
+ const parents = parentLists.get(type.name);
442
+ if (!hasExternalParent.has(scc)) {
443
+ addChild(children, ROOT, type.name);
444
+ continue;
445
+ }
446
+ for (const parent of parents) {
447
+ addChild(children, parent, type.name);
448
+ }
449
+ }
450
+ return { [ROOT]: buildNode(children, ROOT, /* @__PURE__ */ new Set([ROOT])) };
451
+ };
452
+ var datasourceTypeTree = (types, options = {}) => buildTree(types, chosenParents(types, options.multiParent ?? "first"));
453
+ var datasourceTypeTreeFirst = (types) => datasourceTypeTree(types, { multiParent: "first" });
454
+ var datasourceTypeOrder = (types) => {
455
+ const names = [];
456
+ const walk = (node) => {
457
+ for (const [name, child] of Object.entries(node)) {
458
+ names.push(name);
459
+ walk(child);
460
+ }
461
+ };
462
+ walk(datasourceTypeTreeFirst(types)[ROOT]);
463
+ return names;
464
+ };
465
+ var compareByDatasourceTypeOrder = (types, inheritOf = () => void 0) => {
466
+ const order = datasourceTypeOrder(types);
467
+ const rank = new Map(order.map((name, i) => [name, i]));
468
+ const key = (name) => {
469
+ const direct = rank.get(name);
470
+ if (direct !== void 0) return [direct * 2, name];
471
+ const inherit = inheritOf(name);
472
+ if (inherit !== null && inherit !== void 0) {
473
+ const parent = rank.get(inherit);
474
+ if (parent !== void 0) return [parent * 2 + 1, name];
475
+ }
476
+ return [order.length * 2, name];
477
+ };
478
+ return (a, b) => {
479
+ const [ia, na] = key(a);
480
+ const [ib, nb] = key(b);
481
+ return ia - ib || na.localeCompare(nb);
482
+ };
483
+ };
484
+
485
+ // node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/yaml-node.ts
486
+ import { parse } from "yaml";
487
+ var isMap = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
488
+ var isString = (v) => typeof v === "string";
489
+ var isFiniteNumber = (v) => typeof v === "number" && Number.isFinite(v);
490
+ var isFiniteInt = (v) => isFiniteNumber(v) && Number.isInteger(v);
491
+ var isLiteral = (v) => v === null || typeof v === "string" || typeof v === "number" || typeof v === "boolean";
492
+ var yamlNode = (value, path = "$") => {
493
+ const record = isMap(value) ? value : void 0;
494
+ const at = (key) => record?.[key];
495
+ const pick = (pred) => (key) => {
496
+ const v = at(key);
497
+ return pred(v) ? v : void 0;
498
+ };
499
+ const child = (key) => yamlNode(at(key), `${path}.${key}`);
500
+ const items = () => Array.isArray(value) ? value.map((item, i) => yamlNode(item, `${path}[${i}]`)) : [];
501
+ return {
502
+ value,
503
+ path,
504
+ record,
505
+ child,
506
+ has: (key) => record !== void 0 && Object.prototype.hasOwnProperty.call(record, key),
507
+ str: pick(isString),
508
+ bool: (key) => at(key) === true,
509
+ finiteNumber: pick(isFiniteNumber),
510
+ finiteInt: pick(isFiniteInt),
511
+ literal: pick(isLiteral),
512
+ strings: (key) => {
513
+ const v = at(key);
514
+ return Array.isArray(v) ? v.filter(isString) : [];
515
+ },
516
+ items,
517
+ namedItems: () => items().flatMap((item) => {
518
+ const [name, body] = Object.entries(item.record ?? {})[0] ?? [];
519
+ return name === void 0 ? [] : [{ name, node: yamlNode(body, `${item.path}.${name}`) }];
520
+ }),
521
+ namedList: (key) => child(key).namedItems()
522
+ };
523
+ };
524
+ var YamlNode = Object.assign(yamlNode, {
525
+ fromYaml: (text, path = "$") => yamlNode(parse(text), path)
526
+ });
527
+
528
+ // node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/parser/specification-parser.ts
529
+ var isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
530
+ var SHORTHAND_VERB_RE = /^(get|put|delete)_/i;
531
+ var VERB_TO_METHODS = {
532
+ get: ["GET"],
533
+ put: ["PUT"],
534
+ delete: ["DELETE"]
535
+ };
536
+ var specName = (raw) => raw.replace(/-/g, "_");
537
+ var shorthandField = (raw) => specName(raw).replace(/([a-z0-9])([A-Z])/g, "$1_$2").toLowerCase();
538
+ var specPlural = (name) => {
539
+ const parts = specName(name).split("_");
540
+ parts[parts.length - 1] = pluralize.plural(parts[parts.length - 1]);
541
+ return parts.join("_");
542
+ };
543
+ var inheritsChain = (name, typeByName) => {
544
+ const chain = [];
545
+ const seen = /* @__PURE__ */ new Set([name]);
546
+ let current = typeByName.get(name)?.inherits;
547
+ while (current !== void 0) {
548
+ if (current === "set" || current === "dictionary") break;
549
+ if (seen.has(current)) break;
550
+ seen.add(current);
551
+ chain.push(current);
552
+ current = typeByName.get(current)?.inherits;
553
+ }
554
+ return chain;
555
+ };
556
+ var parseSeedKey = (rowKey) => {
557
+ const m = /^id(\d+)$/.exec(rowKey);
558
+ if (!m) {
559
+ throw new Error(
560
+ `Invalid seed row key "${rowKey}": expected pattern /^id\\d+$/`
561
+ );
562
+ }
563
+ return Number(m[1]);
564
+ };
565
+ var seedCells = (node) => {
566
+ const rec = node.record;
567
+ if (rec === void 0) return {};
568
+ const out = {};
569
+ for (const key of Object.keys(rec)) {
570
+ const value = node.literal(key);
571
+ if (value !== void 0) out[key] = value;
572
+ }
573
+ return out;
574
+ };
575
+ var typeKind = (node) => {
576
+ if (node.str("inherits") !== void 0) return "inherit";
577
+ if (Array.isArray(node.child("union").value)) return "union";
578
+ return "shaped";
579
+ };
580
+ var mappingOf = (node) => {
581
+ const rec = node.child("mapping").record;
582
+ if (!rec) return void 0;
583
+ const out = {};
584
+ for (const [k, v] of Object.entries(rec)) {
585
+ if (typeof v === "string") out[k] = v;
586
+ }
587
+ return Object.keys(out).length > 0 ? out : void 0;
588
+ };
589
+ var referencesOf = (node) => {
590
+ const raw = node.child("references").value;
591
+ if (typeof raw === "string") return raw;
592
+ if (Array.isArray(raw) && raw.length === 2 && raw.every((v) => typeof v === "string")) {
593
+ return [raw[0], raw[1]];
594
+ }
595
+ return void 0;
596
+ };
597
+ var sizeOf = (node) => {
598
+ const raw = node.child("size").value;
599
+ if (raw === "unlimited") return "unlimited";
600
+ if (typeof raw === "number" && Number.isFinite(raw)) return raw;
601
+ if (Array.isArray(raw) && raw.length === 2 && raw.every((v) => typeof v === "number")) {
602
+ return [raw[0], raw[1]];
603
+ }
604
+ return void 0;
605
+ };
606
+ var DeterministicParser = (reader) => {
607
+ const parser = new Parser(reader);
608
+ return {
609
+ parse: (settings, opts) => parser.parse(settings, opts)
610
+ };
611
+ };
612
+ var Parser = class {
613
+ #reader;
614
+ constructor(reader) {
615
+ this.#reader = reader;
616
+ }
617
+ async parse(settings, opts) {
618
+ const reader = this.#reader;
619
+ const serviceClassName = opts?.serviceClassName ?? ((entity) => entity);
620
+ const [hasTypes, hasDs, hasSeeds, hasServices, hasRoutes] = await Promise.all([
621
+ reader.exists(TYPES_YAML),
622
+ reader.exists(DATASOURCE_YAML),
623
+ reader.exists(DATASOURCE_SEEDS_YAML),
624
+ reader.exists(SERVICES_YAML),
625
+ reader.exists(ROUTES_YAML)
626
+ ]);
627
+ const [typesYaml, datasourceYaml, seedsYaml, servicesYaml, routesYaml] = await Promise.all([
628
+ hasTypes ? reader.read(TYPES_YAML) : Promise.resolve(void 0),
629
+ hasDs ? reader.read(DATASOURCE_YAML) : Promise.resolve(void 0),
630
+ hasSeeds ? reader.read(DATASOURCE_SEEDS_YAML) : Promise.resolve(void 0),
631
+ hasServices ? reader.read(SERVICES_YAML) : Promise.resolve(void 0),
632
+ hasRoutes ? reader.read(ROUTES_YAML) : Promise.resolve(void 0)
633
+ ]);
634
+ const types = typesYaml !== void 0 ? this.#parseTypes(typesYaml) : [];
635
+ const expandedTypes = expandTypes(types);
636
+ const datasource = datasourceYaml !== void 0 ? this.#parseDatasource(datasourceYaml, expandedTypes) : [];
637
+ const seeds = seedsYaml !== void 0 ? this.#parseDatasourceSeeds(seedsYaml) : /* @__PURE__ */ new Map();
638
+ const services = servicesYaml !== void 0 ? this.#parseServices({
639
+ servicesYaml,
640
+ types: expandedTypes,
641
+ datasource,
642
+ routesYaml,
643
+ serviceClassName
644
+ }) : { generics: [], customs: [] };
645
+ const routes = routesYaml !== void 0 ? this.#parseRoutes({
646
+ routesYaml,
647
+ types: expandedTypes,
648
+ datasource
649
+ }) : {
650
+ candidates: [],
651
+ customs: [],
652
+ nested: [],
653
+ childrenOnly: /* @__PURE__ */ new Set(),
654
+ datasource
655
+ };
656
+ return ensureHealth(
657
+ new Deterministic({
658
+ types,
659
+ expandedTypes,
660
+ datasource,
661
+ datasourceSeeds: seeds,
662
+ services,
663
+ routes
664
+ })
665
+ );
666
+ }
667
+ #parseTypes(yaml) {
668
+ return YamlNode.fromYaml(yaml).namedList("types").map(({ name, node }) => {
669
+ const kind = typeKind(node);
670
+ const mapping = mappingOf(node);
671
+ const extract = node.strings("extract");
672
+ const removeFields = node.strings("remove_fields");
673
+ const ids = node.strings("ids");
674
+ return {
675
+ name,
676
+ tags: node.strings("tags"),
677
+ kind,
678
+ ...node.str("inherits") !== void 0 ? { inherits: node.str("inherits") } : {},
679
+ ...Array.isArray(node.child("union").value) ? { union: node.strings("union") } : {},
680
+ ...mapping ? { mapping } : {},
681
+ ...extract.length > 0 ? { extract } : {},
682
+ ...removeFields.length > 0 ? { removeFields } : {},
683
+ ...ids.length > 0 ? { ids } : {},
684
+ fields: node.namedList("fields").map(
685
+ ({ name: fname, node: fnode }) => this.#readField(fname, fnode)
686
+ )
687
+ };
688
+ });
689
+ }
690
+ #readField(name, node) {
691
+ const rawType = node.str("type") ?? "string";
692
+ const parsed = parseFieldType(rawType);
693
+ const references = referencesOf(node);
694
+ const size = sizeOf(node);
695
+ const minSize = node.finiteInt("min_size");
696
+ return {
697
+ name,
698
+ type: rawType,
699
+ kind: parsed.kind,
700
+ base: parsed.base,
701
+ isArray: parsed.isArray,
702
+ isMap: parsed.isMap,
703
+ isNullable: node.bool("is_nullable"),
704
+ ...node.bool("is_id") ? { isId: true } : {},
705
+ ...size !== void 0 ? { size } : {},
706
+ ...minSize !== void 0 ? { minSize } : {},
707
+ ...references !== void 0 ? { references } : {},
708
+ ...node.has("default_value") ? { hasDefault: true, defaultValue: node.literal("default_value") } : {}
709
+ };
710
+ }
711
+ #parseDatasource(yaml, types) {
712
+ const root = YamlNode.fromYaml(yaml);
713
+ const tables = root.namedList("types").map(({ name, node }) => {
714
+ const uniqueIndexFields = [];
715
+ const indexes = [];
716
+ for (const { name: indexName, node: indexBody } of node.namedList(
717
+ "indexes"
718
+ )) {
719
+ const rawFields = indexBody.child("fields").value;
720
+ const fields2 = Array.isArray(rawFields) ? rawFields.filter((f) => typeof f === "string") : [];
721
+ indexes.push({
722
+ name: indexName,
723
+ fields: fields2,
724
+ isUnique: indexBody.bool("is_unique")
725
+ });
726
+ if (indexBody.bool("is_unique") && fields2.length === 1 && fields2[0]) {
727
+ uniqueIndexFields.push(fields2[0]);
728
+ }
729
+ }
730
+ const fields = node.namedList("fields").map(({ name: fname, node: fnode }) => ({
731
+ name: fname,
732
+ ...fnode.has("is_readonly") ? { isReadonly: fnode.bool("is_readonly") } : {},
733
+ ...fnode.has("is_unique") ? { isUnique: fnode.bool("is_unique") } : {},
734
+ ...fnode.str("mapping") ? { mapping: fnode.str("mapping") } : {},
735
+ ...fnode.has("is_fixed_id") ? { isFixedId: fnode.bool("is_fixed_id") } : {},
736
+ ...fnode.has("is_optimistic_concurrency") ? {
737
+ isOptimisticConcurrency: fnode.bool(
738
+ "is_optimistic_concurrency"
739
+ )
740
+ } : {},
741
+ ...fnode.has("use_native_row_version") ? { useNativeRowVersion: fnode.bool("use_native_row_version") } : {}
742
+ }));
743
+ return {
744
+ name,
745
+ ...node.str("mapping") ? { mapping: node.str("mapping") } : {},
746
+ fields,
747
+ indexes,
748
+ uniqueIndexFields,
749
+ ...node.has("use_optimistic_concurrency") ? {
750
+ useOptimisticConcurrency: node.bool(
751
+ "use_optimistic_concurrency"
752
+ )
753
+ } : {}
754
+ };
755
+ });
756
+ const filter = this.#typesFilter(root);
757
+ if (!filter) return tables;
758
+ const selected = new Set(
759
+ types.filter((t) => filter(t)).map((t) => t.name)
760
+ );
761
+ const overlayNames = new Set(tables.map((t) => t.name));
762
+ const extras = types.filter((t) => selected.has(t.name) && !overlayNames.has(t.name)).map(
763
+ (t) => ({
764
+ name: t.name,
765
+ fields: [],
766
+ indexes: [],
767
+ uniqueIndexFields: []
768
+ })
769
+ );
770
+ return [...tables.filter((t) => selected.has(t.name)), ...extras];
771
+ }
772
+ #parseDatasourceSeeds(yaml) {
773
+ const byTable = /* @__PURE__ */ new Map();
774
+ for (const { name, node } of YamlNode.fromYaml(yaml).namedList("seeds")) {
775
+ byTable.set(
776
+ name,
777
+ node.namedItems().map(({ name: rowKey, node: row }) => ({
778
+ id: parseSeedKey(rowKey),
779
+ row: seedCells(row)
780
+ }))
781
+ );
782
+ }
783
+ return byTable;
784
+ }
785
+ #typesFilter(root) {
786
+ const block = this.#includeBlock(root, "types");
787
+ if (block === void 0) return void 0;
788
+ return compileTypesFilter(block.str("filter"));
789
+ }
790
+ #parseServices(args) {
791
+ const root = YamlNode.fromYaml(args.servicesYaml);
792
+ const rawServices = root.child("services").items().flatMap((entry) => {
793
+ const name = entry.str("name");
794
+ if (name === void 0) return [];
795
+ return [{ name, module: entry.str("module") }];
796
+ });
797
+ const customEntries = rawServices.filter(
798
+ (s) => !(typeof s.module === "string" && s.module.startsWith("./services/generated/"))
799
+ );
800
+ const explicitCustomNames = new Set(customEntries.map((s) => s.name));
801
+ const methodsByService = this.#collectRouteServiceMethods(args.routesYaml);
802
+ const dsByName = new Map(args.datasource.map((d) => [d.name, d]));
803
+ const predicate = this.#typesFilter(root);
804
+ let generics = [];
805
+ if (predicate !== void 0) {
806
+ const compare = compareByDatasourceTypeOrder(
807
+ args.types,
808
+ (name) => args.types.find((t) => t.name === name)?.inherits
809
+ );
810
+ generics = args.types.filter((t) => predicate(t)).filter((t) => !explicitCustomNames.has(args.serviceClassName(t.name))).sort((a, b) => compare(a.name, b.name)).map((t) => ({
811
+ name: t.name,
812
+ tags: t.tags,
813
+ inherits: t.inherits,
814
+ byFields: uniqueLookupFields(t, dsByName.get(t.name))
815
+ }));
816
+ }
817
+ const customs = customEntries.map((entry) => ({
818
+ name: entry.name,
819
+ module: entry.module,
820
+ methods: [...methodsByService.get(entry.name) ?? []].sort()
821
+ }));
822
+ return { generics, customs };
823
+ }
824
+ #parseRoutes(args) {
825
+ const root = YamlNode.fromYaml(args.routesYaml);
826
+ const dsByName = new Map(args.datasource.map((d) => [d.name, d]));
827
+ const typeByName = new Map(args.types.map((t) => [t.name, t]));
828
+ const overlays = this.#entityOverlays(root);
829
+ const allCandidates = args.types.map((t) => {
830
+ const overlay = overlays.get(t.name);
831
+ return {
832
+ name: t.name,
833
+ tags: t.tags,
834
+ inherits: t.inherits,
835
+ byFields: [],
836
+ ...overlay?.eagerReadPath ? { eagerReadPath: overlay.eagerReadPath } : {},
837
+ ...overlay?.eagerUpdatePath ? { eagerUpdatePath: overlay.eagerUpdatePath } : {},
838
+ ...overlay?.eagerReadMemberOnly ? { eagerReadMemberOnly: overlay.eagerReadMemberOnly } : {}
839
+ };
840
+ });
841
+ const childrenOnly = this.#collectCombinedChildNames(root, typeByName);
842
+ this.#attachByFields(allCandidates, root, dsByName, typeByName);
843
+ const customs = this.#extractCustomRoutes(root, dsByName, typeByName);
844
+ const nested = this.#collectNestedDescriptors(root, typeByName);
845
+ const predicate = this.#typesFilter(root);
846
+ let candidates = [];
847
+ if (predicate !== void 0) {
848
+ const compare = compareByDatasourceTypeOrder(
849
+ args.types,
850
+ (name) => typeByName.get(name)?.inherits
851
+ );
852
+ candidates = allCandidates.filter((c) => predicate({
853
+ name: c.name,
854
+ tags: c.tags,
855
+ inherits: c.inherits
856
+ })).filter((c) => !childrenOnly.has(c.name)).sort((a, b) => compare(a.name, b.name));
857
+ }
858
+ return {
859
+ candidates,
860
+ customs,
861
+ nested,
862
+ childrenOnly,
863
+ datasource: args.datasource
864
+ };
865
+ }
866
+ #entityOverlays(root) {
867
+ const out = /* @__PURE__ */ new Map();
868
+ for (const { name, node } of root.namedList("routes")) {
869
+ const read = node.strings("eager_read_path");
870
+ const update = node.strings("eager_update_path");
871
+ const member = node.strings("eager_read_member_only");
872
+ if (read.length + update.length + member.length === 0) continue;
873
+ out.set(name, {
874
+ ...read.length > 0 ? { eagerReadPath: read } : {},
875
+ ...update.length > 0 ? { eagerUpdatePath: update } : {},
876
+ ...member.length > 0 ? { eagerReadMemberOnly: member } : {}
877
+ });
878
+ }
879
+ return out;
880
+ }
881
+ #includeBlock(root, key) {
882
+ for (const entry of root.child("includes").items()) {
883
+ if (entry.child(key).record !== void 0) return entry.child(key);
884
+ }
885
+ return void 0;
886
+ }
887
+ #collectRouteServiceMethods(routesYaml) {
888
+ const byService = /* @__PURE__ */ new Map();
889
+ if (routesYaml === void 0) return byService;
890
+ const root = YamlNode.fromYaml(routesYaml);
891
+ const visit = (node) => {
892
+ if (Array.isArray(node.value)) {
893
+ for (const item of node.items()) visit(item);
894
+ return;
895
+ }
896
+ if (node.record === void 0) return;
897
+ const service = node.str("service");
898
+ const fn = node.str("function");
899
+ if (service !== void 0 && fn !== void 0) {
900
+ const set = byService.get(service) ?? /* @__PURE__ */ new Set();
901
+ set.add(fn);
902
+ byService.set(service, set);
903
+ }
904
+ for (const key of Object.keys(node.record)) visit(node.child(key));
905
+ };
906
+ visit(root.child("routes"));
907
+ visit(root.child("combined_routes"));
908
+ return byService;
909
+ }
910
+ #defaultParentBasePath(parentName) {
911
+ return `/api/${specPlural(parentName)}/{id}`;
912
+ }
913
+ #segmentTailOf(segment) {
914
+ return segment.split("/").filter(Boolean).pop() ?? "";
915
+ }
916
+ #defaultChildSegment(name) {
917
+ return `/${specPlural(name)}`;
918
+ }
919
+ #columnIsUnique(table, type, columnName) {
920
+ if (columnName === primaryKeyColumn(table, type)) return true;
921
+ if (table?.fields.some((f) => f.name === columnName && f.isUnique)) {
922
+ return true;
923
+ }
924
+ return table?.uniqueIndexFields.includes(columnName) ?? false;
925
+ }
926
+ #singularizeLastToken(snakePlural) {
927
+ const parts = snakePlural.split("_");
928
+ parts[parts.length - 1] = pluralize.singular(parts[parts.length - 1]);
929
+ return parts.join("_");
930
+ }
931
+ #entityHasField(type, fieldName) {
932
+ if (fieldName === "id") return true;
933
+ return type.fields.some((f) => f.name === fieldName);
934
+ }
935
+ #parseVerb(token) {
936
+ const verbMatch = SHORTHAND_VERB_RE.exec(token);
937
+ if (!verbMatch) return { methods: null, body: token };
938
+ return {
939
+ methods: VERB_TO_METHODS[verbMatch[1].toLowerCase()],
940
+ body: token.slice(verbMatch[0].length)
941
+ };
942
+ }
943
+ #splitEntityField(token, body) {
944
+ const splitIdx = body.lastIndexOf("_by_");
945
+ if (splitIdx < 0) {
946
+ throw new Error(
947
+ `parseByFieldEntry: route key \`${token}\` is missing \`_by_\` separator`
948
+ );
949
+ }
950
+ const pluralSnake = body.slice(0, splitIdx);
951
+ const fieldToken = body.slice(splitIdx + "_by_".length);
952
+ if (!pluralSnake || !fieldToken) {
953
+ throw new Error(
954
+ `parseByFieldEntry: route key \`${token}\` has empty entity or field around \`_by_\``
955
+ );
956
+ }
957
+ return {
958
+ entity: this.#singularizeLastToken(pluralSnake),
959
+ byField: shorthandField(fieldToken)
960
+ };
961
+ }
962
+ #parseShorthandByField(token, typeByName) {
963
+ if (typeof token !== "string" || token.length === 0) {
964
+ throw new Error("parseByFieldEntry: expected non-empty string token");
965
+ }
966
+ const { methods, body } = this.#parseVerb(token);
967
+ const { entity, byField } = this.#splitEntityField(token, body);
968
+ const type = typeByName.get(entity);
969
+ if (type === void 0) {
970
+ throw new Error(
971
+ `parseByFieldEntry: unknown entity \`${entity}\` in route \`${token}\``
972
+ );
973
+ }
974
+ if (!this.#entityHasField(type, byField)) {
975
+ throw new Error(
976
+ `parseByFieldEntry: field \`${byField}\` not found on entity \`${entity}\` in route \`${token}\``
977
+ );
978
+ }
979
+ return { entity, byField, methods };
980
+ }
981
+ #parseVerboseByField(key, def) {
982
+ if (typeof def.entity !== "string" || typeof def.byField !== "string") {
983
+ throw new Error(
984
+ `parseByFieldEntry: route \`${key}\` has non-string entity/byField`
985
+ );
986
+ }
987
+ return {
988
+ entity: def.entity,
989
+ byField: def.byField,
990
+ methods: Array.isArray(def.methods) ? def.methods : null
991
+ };
992
+ }
993
+ #parseByFieldEntry(entry, typeByName) {
994
+ if (entry == null) return null;
995
+ if (typeof entry === "string") {
996
+ return this.#parseShorthandByField(entry, typeByName);
997
+ }
998
+ if (!isRecord(entry)) return null;
999
+ const pairs = Object.entries(entry);
1000
+ if (pairs.length === 0) return null;
1001
+ const [key, def] = pairs[0];
1002
+ if (def == null) {
1003
+ return this.#parseShorthandByField(key, typeByName);
1004
+ }
1005
+ if (!isRecord(def)) return null;
1006
+ if ("entity" in def && "byField" in def) {
1007
+ return this.#parseVerboseByField(key, def);
1008
+ }
1009
+ return null;
1010
+ }
1011
+ #refParent(references) {
1012
+ if (typeof references !== "string") return null;
1013
+ return references.split(".")[0];
1014
+ }
1015
+ #inheritsChain(name, typeByName) {
1016
+ return inheritsChain(name, typeByName);
1017
+ }
1018
+ #refMatchesParent(target, parent, typeByName) {
1019
+ return parent === target || this.#inheritsChain(parent, typeByName).includes(target);
1020
+ }
1021
+ #fkFields(type, typeByName) {
1022
+ const fields = [...type.fields];
1023
+ for (const ancestor of this.#inheritsChain(type.name, typeByName)) {
1024
+ fields.push(...typeByName.get(ancestor)?.fields ?? []);
1025
+ }
1026
+ return fields;
1027
+ }
1028
+ #findForeignKeyTo(child, parentName, typeByName) {
1029
+ for (const field of this.#fkFields(child, typeByName)) {
1030
+ const target = this.#refParent(field.references);
1031
+ if (target !== null && this.#refMatchesParent(target, parentName, typeByName)) {
1032
+ return field.name;
1033
+ }
1034
+ }
1035
+ return null;
1036
+ }
1037
+ #collectCombinedChildNames(root, typeByName) {
1038
+ const childrenOnly = /* @__PURE__ */ new Set();
1039
+ const parents = new Set(
1040
+ root.namedList("combined_routes").map((e) => e.name)
1041
+ );
1042
+ for (const { name: parentName, node } of root.namedList("combined_routes")) {
1043
+ const def = node.record;
1044
+ for (const child of def?.combines ?? []) {
1045
+ let childName;
1046
+ if (typeof child === "string") {
1047
+ childName = specName(child);
1048
+ } else {
1049
+ const [rawName, childDef] = Object.entries(child)[0];
1050
+ if (childDef && (childDef.via || childDef.target)) continue;
1051
+ childName = specName(rawName);
1052
+ }
1053
+ if (parents.has(childName)) continue;
1054
+ const childType = typeByName.get(childName);
1055
+ if (childType !== void 0 && this.#findForeignKeyTo(childType, parentName, typeByName) !== null) {
1056
+ childrenOnly.add(childName);
1057
+ }
1058
+ }
1059
+ }
1060
+ return childrenOnly;
1061
+ }
1062
+ #upsertByField(list, parsed, dsByName, typeByName) {
1063
+ const existing = list.find((e) => e.byField === parsed.byField);
1064
+ if (existing) {
1065
+ if (existing.methods === void 0 || parsed.methods === null) {
1066
+ existing.methods = void 0;
1067
+ } else if (Array.isArray(parsed.methods)) {
1068
+ const union = [...existing.methods];
1069
+ for (const m of parsed.methods) {
1070
+ if (!union.includes(m)) union.push(m);
1071
+ }
1072
+ existing.methods = union;
1073
+ }
1074
+ return;
1075
+ }
1076
+ list.push({
1077
+ byField: parsed.byField,
1078
+ methods: Array.isArray(parsed.methods) ? parsed.methods : void 0,
1079
+ byFieldUnique: this.#columnIsUnique(
1080
+ dsByName.get(parsed.entity),
1081
+ typeByName.get(parsed.entity),
1082
+ parsed.byField
1083
+ )
1084
+ });
1085
+ }
1086
+ #attachByFields(candidates, root, dsByName, typeByName) {
1087
+ const byFieldByEntity = /* @__PURE__ */ new Map();
1088
+ for (const entry of root.child("routes").items()) {
1089
+ const parsed = this.#parseByFieldEntry(entry.value, typeByName);
1090
+ if (parsed === null) continue;
1091
+ if (!byFieldByEntity.has(parsed.entity)) {
1092
+ byFieldByEntity.set(parsed.entity, []);
1093
+ }
1094
+ this.#upsertByField(
1095
+ byFieldByEntity.get(parsed.entity),
1096
+ parsed,
1097
+ dsByName,
1098
+ typeByName
1099
+ );
1100
+ }
1101
+ for (const candidate of candidates) {
1102
+ const list = byFieldByEntity.get(candidate.name);
1103
+ if (list !== void 0 && list.length > 0) {
1104
+ candidate.byFields = list;
1105
+ }
1106
+ }
1107
+ }
1108
+ #extractCustomRoutes(root, dsByName, typeByName) {
1109
+ const customs = [];
1110
+ for (const entry of root.child("routes").items()) {
1111
+ if (entry.record === void 0) continue;
1112
+ if (this.#parseByFieldEntry(entry.value, typeByName) !== null) continue;
1113
+ const [name] = Object.keys(entry.record);
1114
+ if (name === void 0) continue;
1115
+ const node = entry.child(name);
1116
+ if (node.has("eager_read_path") || node.has("eager_update_path") || node.has("eager_read_member_only")) {
1117
+ continue;
1118
+ }
1119
+ if (node.str("path") === void 0) continue;
1120
+ customs.push({
1121
+ name,
1122
+ path: node.str("path"),
1123
+ method: node.str("method"),
1124
+ entity: node.str("entity") ?? null,
1125
+ request: node.str("request"),
1126
+ response: node.str("response"),
1127
+ module: node.str("module"),
1128
+ routeClass: node.str("routeClass")
1129
+ });
1130
+ }
1131
+ return customs;
1132
+ }
1133
+ #normalizeCombinedChild(child) {
1134
+ if (typeof child === "string") {
1135
+ return {
1136
+ name: specName(child),
1137
+ via: null,
1138
+ target: null,
1139
+ route: null
1140
+ };
1141
+ }
1142
+ const [rawName, def] = Object.entries(child)[0];
1143
+ return {
1144
+ name: specName(rawName),
1145
+ via: def && typeof def.via === "string" ? def.via : null,
1146
+ target: def && typeof def.target === "string" ? def.target : null,
1147
+ route: def && typeof def.route === "string" ? def.route : null
1148
+ };
1149
+ }
1150
+ #detectJunction(parentName, childName, typeByName) {
1151
+ const matches = [];
1152
+ for (const [name, def] of typeByName) {
1153
+ if (name === parentName || name === childName) continue;
1154
+ if (!def.tags.includes("many_to_many")) continue;
1155
+ const parentFk = this.#findForeignKeyTo(def, parentName, typeByName);
1156
+ const childFk = this.#findForeignKeyTo(def, childName, typeByName);
1157
+ if (parentFk !== null && childFk !== null) {
1158
+ matches.push({ name, parentFk, childFk });
1159
+ }
1160
+ }
1161
+ if (matches.length === 0) return null;
1162
+ if (matches.length > 1) {
1163
+ const candidates = matches.map((m) => m.name).join(", ");
1164
+ throw new Error(
1165
+ `combined_routes: ambiguous junction between "${parentName}" and "${childName}" \u2014 candidates: ${candidates}. Add via: to disambiguate.`
1166
+ );
1167
+ }
1168
+ return matches[0];
1169
+ }
1170
+ #m2mDescriptor(parentName, parentBasePath, args) {
1171
+ const segment = args.route ?? this.#defaultChildSegment(args.target);
1172
+ return {
1173
+ kind: "m2m",
1174
+ parent: parentName,
1175
+ parentBasePath,
1176
+ parentParam: parentName,
1177
+ junction: args.junction,
1178
+ target: args.target,
1179
+ targetParam: args.target,
1180
+ parentFkField: args.parentFkField,
1181
+ childFkField: args.childFkField,
1182
+ segment,
1183
+ segmentTail: this.#segmentTailOf(segment)
1184
+ };
1185
+ }
1186
+ #directFkDescriptor(parentName, parentBasePath, args) {
1187
+ const segment = args.route ?? this.#defaultChildSegment(args.childName);
1188
+ return {
1189
+ kind: "direct-fk",
1190
+ parent: parentName,
1191
+ parentBasePath,
1192
+ parentParam: parentName,
1193
+ child: { name: args.childName },
1194
+ fkColumn: args.fkColumn,
1195
+ segment,
1196
+ segmentTail: this.#segmentTailOf(segment)
1197
+ };
1198
+ }
1199
+ #collectNestedDescriptors(root, typeByName) {
1200
+ const nested = [];
1201
+ for (const { name: parentName, node } of root.namedList("combined_routes")) {
1202
+ const def = node.record ?? {};
1203
+ const parentBasePath = typeof def.route === "string" && def.route.length > 0 ? def.route : this.#defaultParentBasePath(parentName);
1204
+ for (const rawChild of def.combines ?? []) {
1205
+ const child = this.#normalizeCombinedChild(rawChild);
1206
+ if (child.via || child.target) {
1207
+ const junctionName = child.via;
1208
+ const targetName = child.target;
1209
+ if (!junctionName || !targetName) {
1210
+ throw new Error(
1211
+ `combined_routes: M2M child must declare both via: and target: (parent=${parentName}, child=${child.name})`
1212
+ );
1213
+ }
1214
+ const junctionDef = typeByName.get(junctionName);
1215
+ if (junctionDef === void 0) {
1216
+ throw new Error(
1217
+ `combined_routes: junction "${junctionName}" not found in types.yaml`
1218
+ );
1219
+ }
1220
+ const parentFkField = this.#findForeignKeyTo(
1221
+ junctionDef,
1222
+ parentName,
1223
+ typeByName
1224
+ );
1225
+ const childFkField = this.#findForeignKeyTo(
1226
+ junctionDef,
1227
+ targetName,
1228
+ typeByName
1229
+ );
1230
+ if (parentFkField === null || childFkField === null) {
1231
+ throw new Error(
1232
+ `combined_routes: junction "${junctionName}" missing FK to ${parentName}/${targetName}`
1233
+ );
1234
+ }
1235
+ nested.push(
1236
+ this.#m2mDescriptor(parentName, parentBasePath, {
1237
+ junction: junctionName,
1238
+ target: targetName,
1239
+ parentFkField,
1240
+ childFkField,
1241
+ route: child.route
1242
+ })
1243
+ );
1244
+ continue;
1245
+ }
1246
+ const childDef = typeByName.get(child.name);
1247
+ if (childDef === void 0) {
1248
+ throw new Error(
1249
+ `combined_routes: child "${child.name}" not found in types.yaml`
1250
+ );
1251
+ }
1252
+ const fkColumn = this.#findForeignKeyTo(
1253
+ childDef,
1254
+ parentName,
1255
+ typeByName
1256
+ );
1257
+ if (fkColumn !== null) {
1258
+ nested.push(
1259
+ this.#directFkDescriptor(parentName, parentBasePath, {
1260
+ childName: child.name,
1261
+ fkColumn,
1262
+ route: child.route
1263
+ })
1264
+ );
1265
+ continue;
1266
+ }
1267
+ const junction = this.#detectJunction(parentName, child.name, typeByName);
1268
+ if (junction !== null) {
1269
+ nested.push(
1270
+ this.#m2mDescriptor(parentName, parentBasePath, {
1271
+ junction: junction.name,
1272
+ target: child.name,
1273
+ parentFkField: junction.parentFk,
1274
+ childFkField: junction.childFk,
1275
+ route: child.route
1276
+ })
1277
+ );
1278
+ continue;
1279
+ }
1280
+ throw new Error(
1281
+ `combined_routes: child "${child.name}" has no FK to parent "${parentName}" and no detectable junction table in types.yaml`
1282
+ );
1283
+ }
1284
+ }
1285
+ return nested;
1286
+ }
1287
+ };
1288
+ export {
1289
+ DeterministicParser
1290
+ };