@powerhousedao/codegen 6.0.0-dev.9 → 6.0.0-staging.2

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 (294) hide show
  1. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/resolvers.esm.t +2 -2
  2. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.js +5 -5
  3. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/module.esm.t +1 -1
  4. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js +5 -5
  5. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.js +4 -4
  6. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editor.esm.t +3 -1
  7. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.js +4 -4
  8. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/editor.esm.t +1 -1
  9. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js +7 -7
  10. package/dist/src/codegen/__tests__/fixtures/typecheck.js +1 -1
  11. package/dist/src/codegen/__tests__/fixtures/typecheck.js.map +1 -1
  12. package/dist/src/codegen/__tests__/generate-doc-model.test.js +163 -212
  13. package/dist/src/codegen/__tests__/generate-doc-model.test.js.map +1 -1
  14. package/dist/src/codegen/__tests__/generate-drive-editor.test.js +72 -46
  15. package/dist/src/codegen/__tests__/generate-drive-editor.test.js.map +1 -1
  16. package/dist/src/codegen/__tests__/generate-editor.test.js +27 -23
  17. package/dist/src/codegen/__tests__/generate-editor.test.js.map +1 -1
  18. package/dist/src/codegen/__tests__/generate-manifest.test.js +17 -16
  19. package/dist/src/codegen/__tests__/generate-manifest.test.js.map +1 -1
  20. package/dist/src/codegen/__tests__/generate-processor.test.d.ts +2 -0
  21. package/dist/src/codegen/__tests__/generate-processor.test.d.ts.map +1 -0
  22. package/dist/src/codegen/__tests__/generate-processor.test.js +296 -0
  23. package/dist/src/codegen/__tests__/generate-processor.test.js.map +1 -0
  24. package/dist/src/codegen/__tests__/global-setup.d.ts +1 -1
  25. package/dist/src/codegen/__tests__/global-setup.d.ts.map +1 -1
  26. package/dist/src/codegen/__tests__/global-setup.js +3 -15
  27. package/dist/src/codegen/__tests__/global-setup.js.map +1 -1
  28. package/dist/src/codegen/__tests__/ts-morph-generator.test.js +4 -4
  29. package/dist/src/codegen/__tests__/ts-morph-generator.test.js.map +1 -1
  30. package/dist/src/codegen/__tests__/utils.d.ts +2 -2
  31. package/dist/src/codegen/__tests__/utils.d.ts.map +1 -1
  32. package/dist/src/codegen/__tests__/utils.js +11 -12
  33. package/dist/src/codegen/__tests__/utils.js.map +1 -1
  34. package/dist/src/codegen/generate.d.ts +19 -10
  35. package/dist/src/codegen/generate.d.ts.map +1 -1
  36. package/dist/src/codegen/generate.js +48 -35
  37. package/dist/src/codegen/generate.js.map +1 -1
  38. package/dist/src/codegen/graphql.d.ts.map +1 -1
  39. package/dist/src/codegen/graphql.js +10 -9
  40. package/dist/src/codegen/graphql.js.map +1 -1
  41. package/dist/src/codegen/hygen.js +4 -4
  42. package/dist/src/codegen/hygen.js.map +1 -1
  43. package/dist/src/codegen/utils.d.ts +1 -1
  44. package/dist/src/codegen/utils.d.ts.map +1 -1
  45. package/dist/src/codegen/utils.js +2 -1
  46. package/dist/src/codegen/utils.js.map +1 -1
  47. package/dist/src/create-lib/create-project.d.ts.map +1 -1
  48. package/dist/src/create-lib/create-project.js +14 -2
  49. package/dist/src/create-lib/create-project.js.map +1 -1
  50. package/dist/src/file-builders/boilerplate/ci-templates.test.d.ts +2 -0
  51. package/dist/src/file-builders/boilerplate/ci-templates.test.d.ts.map +1 -0
  52. package/dist/src/file-builders/boilerplate/ci-templates.test.js +114 -0
  53. package/dist/src/file-builders/boilerplate/ci-templates.test.js.map +1 -0
  54. package/dist/src/file-builders/boilerplate/package.json.js +1 -1
  55. package/dist/src/file-builders/boilerplate/package.json.js.map +1 -1
  56. package/dist/src/file-builders/clis/generate-cli-docs.d.ts +17 -0
  57. package/dist/src/file-builders/clis/generate-cli-docs.d.ts.map +1 -0
  58. package/dist/src/file-builders/clis/generate-cli-docs.js +36 -0
  59. package/dist/src/file-builders/clis/generate-cli-docs.js.map +1 -0
  60. package/dist/src/file-builders/document-editor.d.ts +1 -1
  61. package/dist/src/file-builders/document-editor.d.ts.map +1 -1
  62. package/dist/src/file-builders/document-editor.js +9 -7
  63. package/dist/src/file-builders/document-editor.js.map +1 -1
  64. package/dist/src/file-builders/document-model/document-model.d.ts.map +1 -1
  65. package/dist/src/file-builders/document-model/document-model.js +61 -64
  66. package/dist/src/file-builders/document-model/document-model.js.map +1 -1
  67. package/dist/src/file-builders/document-model/gen-dir.d.ts +1 -1
  68. package/dist/src/file-builders/document-model/gen-dir.d.ts.map +1 -1
  69. package/dist/src/file-builders/document-model/gen-dir.js +57 -57
  70. package/dist/src/file-builders/document-model/gen-dir.js.map +1 -1
  71. package/dist/src/file-builders/document-model/root-dir.d.ts +1 -1
  72. package/dist/src/file-builders/document-model/root-dir.d.ts.map +1 -1
  73. package/dist/src/file-builders/document-model/root-dir.js +17 -17
  74. package/dist/src/file-builders/document-model/root-dir.js.map +1 -1
  75. package/dist/src/file-builders/document-model/src-dir.d.ts +1 -1
  76. package/dist/src/file-builders/document-model/src-dir.d.ts.map +1 -1
  77. package/dist/src/file-builders/document-model/src-dir.js +15 -15
  78. package/dist/src/file-builders/document-model/src-dir.js.map +1 -1
  79. package/dist/src/file-builders/document-model/tests-dir.d.ts +1 -1
  80. package/dist/src/file-builders/document-model/tests-dir.d.ts.map +1 -1
  81. package/dist/src/file-builders/document-model/tests-dir.js +11 -11
  82. package/dist/src/file-builders/document-model/tests-dir.js.map +1 -1
  83. package/dist/src/file-builders/document-model/upgrades-dir.d.ts +6 -4
  84. package/dist/src/file-builders/document-model/upgrades-dir.d.ts.map +1 -1
  85. package/dist/src/file-builders/document-model/upgrades-dir.js +17 -25
  86. package/dist/src/file-builders/document-model/upgrades-dir.js.map +1 -1
  87. package/dist/src/file-builders/drive-editor.d.ts +1 -1
  88. package/dist/src/file-builders/drive-editor.d.ts.map +1 -1
  89. package/dist/src/file-builders/drive-editor.js +37 -35
  90. package/dist/src/file-builders/drive-editor.js.map +1 -1
  91. package/dist/src/file-builders/editor-common.d.ts.map +1 -1
  92. package/dist/src/file-builders/editor-common.js +0 -1
  93. package/dist/src/file-builders/editor-common.js.map +1 -1
  94. package/dist/src/file-builders/index.d.ts +1 -0
  95. package/dist/src/file-builders/index.d.ts.map +1 -1
  96. package/dist/src/file-builders/index.js +1 -0
  97. package/dist/src/file-builders/index.js.map +1 -1
  98. package/dist/src/file-builders/module-files.d.ts +11 -5
  99. package/dist/src/file-builders/module-files.d.ts.map +1 -1
  100. package/dist/src/file-builders/module-files.js +36 -28
  101. package/dist/src/file-builders/module-files.js.map +1 -1
  102. package/dist/src/file-builders/processors/analytics.d.ts +3 -0
  103. package/dist/src/file-builders/processors/analytics.d.ts.map +1 -0
  104. package/dist/src/file-builders/processors/analytics.js +35 -0
  105. package/dist/src/file-builders/processors/analytics.js.map +1 -0
  106. package/dist/src/file-builders/processors/processor.d.ts +9 -0
  107. package/dist/src/file-builders/processors/processor.d.ts.map +1 -0
  108. package/dist/src/file-builders/processors/processor.js +142 -0
  109. package/dist/src/file-builders/processors/processor.js.map +1 -0
  110. package/dist/src/file-builders/processors/relational-db.d.ts +3 -0
  111. package/dist/src/file-builders/processors/relational-db.d.ts.map +1 -0
  112. package/dist/src/file-builders/processors/relational-db.js +53 -0
  113. package/dist/src/file-builders/processors/relational-db.js.map +1 -0
  114. package/dist/src/file-builders/processors/types.d.ts +13 -0
  115. package/dist/src/file-builders/processors/types.d.ts.map +1 -0
  116. package/dist/src/file-builders/processors/types.js +2 -0
  117. package/dist/src/file-builders/processors/types.js.map +1 -0
  118. package/dist/src/file-builders/subgraphs.d.ts +1 -1
  119. package/dist/src/file-builders/subgraphs.d.ts.map +1 -1
  120. package/dist/src/file-builders/subgraphs.js +2 -2
  121. package/dist/src/file-builders/subgraphs.js.map +1 -1
  122. package/dist/src/file-builders/types.d.ts +18 -0
  123. package/dist/src/file-builders/types.d.ts.map +1 -1
  124. package/dist/src/name-builders/get-variable-names.d.ts +2 -1
  125. package/dist/src/name-builders/get-variable-names.d.ts.map +1 -1
  126. package/dist/src/name-builders/get-variable-names.js +6 -4
  127. package/dist/src/name-builders/get-variable-names.js.map +1 -1
  128. package/dist/src/templates/boilerplate/AGENTS.md.d.ts.map +1 -1
  129. package/dist/src/templates/boilerplate/AGENTS.md.js +41 -0
  130. package/dist/src/templates/boilerplate/AGENTS.md.js.map +1 -1
  131. package/dist/src/templates/boilerplate/CLAUDE.md.d.ts +1 -1
  132. package/dist/src/templates/boilerplate/CLAUDE.md.d.ts.map +1 -1
  133. package/dist/src/templates/boilerplate/CLAUDE.md.js +1 -407
  134. package/dist/src/templates/boilerplate/CLAUDE.md.js.map +1 -1
  135. package/dist/src/templates/boilerplate/docker/Dockerfile.d.ts +2 -0
  136. package/dist/src/templates/boilerplate/docker/Dockerfile.d.ts.map +1 -0
  137. package/dist/src/templates/boilerplate/docker/Dockerfile.js +144 -0
  138. package/dist/src/templates/boilerplate/docker/Dockerfile.js.map +1 -0
  139. package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.d.ts +2 -0
  140. package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.d.ts.map +1 -0
  141. package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.js +18 -0
  142. package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.js.map +1 -0
  143. package/dist/src/templates/boilerplate/docker/nginx.conf.d.ts +2 -0
  144. package/dist/src/templates/boilerplate/docker/nginx.conf.d.ts.map +1 -0
  145. package/dist/src/templates/boilerplate/docker/nginx.conf.js +79 -0
  146. package/dist/src/templates/boilerplate/docker/nginx.conf.js.map +1 -0
  147. package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.d.ts +2 -0
  148. package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.d.ts.map +1 -0
  149. package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.js +19 -0
  150. package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.js.map +1 -0
  151. package/dist/src/templates/boilerplate/document-models/upgrade-manifests.d.ts +2 -0
  152. package/dist/src/templates/boilerplate/document-models/upgrade-manifests.d.ts.map +1 -0
  153. package/dist/src/templates/boilerplate/document-models/upgrade-manifests.js +7 -0
  154. package/dist/src/templates/boilerplate/document-models/upgrade-manifests.js.map +1 -0
  155. package/dist/src/templates/boilerplate/github/sync-and-publish.yml.d.ts +2 -0
  156. package/dist/src/templates/boilerplate/github/sync-and-publish.yml.d.ts.map +1 -0
  157. package/dist/src/templates/boilerplate/github/sync-and-publish.yml.js +376 -0
  158. package/dist/src/templates/boilerplate/github/sync-and-publish.yml.js.map +1 -0
  159. package/dist/src/templates/boilerplate/index.d.ts.map +1 -1
  160. package/dist/src/templates/boilerplate/index.js +4 -1
  161. package/dist/src/templates/boilerplate/index.js.map +1 -1
  162. package/dist/src/templates/boilerplate/package.json.d.ts.map +1 -1
  163. package/dist/src/templates/boilerplate/package.json.js +9 -2
  164. package/dist/src/templates/boilerplate/package.json.js.map +1 -1
  165. package/dist/src/templates/boilerplate/powerhouse.config.json.js +2 -2
  166. package/dist/src/templates/boilerplate/powerhouse.config.json.js.map +1 -1
  167. package/dist/src/templates/cli-docs/docs-from-cli-help.d.ts +8 -0
  168. package/dist/src/templates/cli-docs/docs-from-cli-help.d.ts.map +1 -0
  169. package/dist/src/templates/cli-docs/docs-from-cli-help.js +86 -0
  170. package/dist/src/templates/cli-docs/docs-from-cli-help.js.map +1 -0
  171. package/dist/src/templates/document-editor/editor.js +1 -1
  172. package/dist/src/templates/document-model/gen/actions.js +5 -5
  173. package/dist/src/templates/document-model/gen/creators.js +4 -4
  174. package/dist/src/templates/document-model/gen/index.js +2 -2
  175. package/dist/src/templates/document-model/gen/modules/error.d.ts.map +1 -1
  176. package/dist/src/templates/document-model/gen/modules/error.js +8 -2
  177. package/dist/src/templates/document-model/gen/modules/error.js.map +1 -1
  178. package/dist/src/templates/document-model/gen/reducer.js +3 -3
  179. package/dist/src/templates/document-model/module.js +1 -1
  180. package/dist/src/templates/document-model/module.js.map +1 -1
  181. package/dist/src/templates/document-model/tests/document-model.test.d.ts.map +1 -0
  182. package/dist/src/templates/document-model/tests/document-model.test.js.map +1 -0
  183. package/dist/src/templates/document-model/tests/module.test.d.ts.map +1 -0
  184. package/dist/src/templates/document-model/{src/tests → tests}/module.test.js +1 -1
  185. package/dist/src/templates/document-model/tests/module.test.js.map +1 -0
  186. package/dist/src/templates/document-model/upgrades/upgrade-manifest.d.ts +5 -0
  187. package/dist/src/templates/document-model/upgrades/upgrade-manifest.d.ts.map +1 -0
  188. package/dist/src/templates/document-model/upgrades/upgrade-manifest.js +13 -0
  189. package/dist/src/templates/document-model/upgrades/upgrade-manifest.js.map +1 -0
  190. package/dist/src/templates/drive-editor/editor.d.ts.map +1 -1
  191. package/dist/src/templates/drive-editor/editor.js +3 -1
  192. package/dist/src/templates/drive-editor/editor.js.map +1 -1
  193. package/dist/src/templates/index.d.ts +17 -3
  194. package/dist/src/templates/index.d.ts.map +1 -1
  195. package/dist/src/templates/index.js +17 -3
  196. package/dist/src/templates/index.js.map +1 -1
  197. package/dist/src/templates/processors/analytics/factory.d.ts +6 -0
  198. package/dist/src/templates/processors/analytics/factory.d.ts.map +1 -0
  199. package/dist/src/templates/processors/analytics/factory.js +26 -0
  200. package/dist/src/templates/processors/analytics/factory.js.map +1 -0
  201. package/dist/src/templates/processors/analytics/index.d.ts +4 -0
  202. package/dist/src/templates/processors/analytics/index.d.ts.map +1 -0
  203. package/dist/src/templates/processors/analytics/index.js +34 -0
  204. package/dist/src/templates/processors/analytics/index.js.map +1 -0
  205. package/dist/src/templates/processors/factory.d.ts +2 -0
  206. package/dist/src/templates/processors/factory.d.ts.map +1 -0
  207. package/dist/src/templates/processors/factory.js +60 -0
  208. package/dist/src/templates/processors/factory.js.map +1 -0
  209. package/dist/src/templates/processors/index.d.ts +2 -0
  210. package/dist/src/templates/processors/index.d.ts.map +1 -0
  211. package/dist/src/templates/processors/index.js +10 -0
  212. package/dist/src/templates/processors/index.js.map +1 -0
  213. package/dist/src/templates/processors/relational-db/factory.d.ts +6 -0
  214. package/dist/src/templates/processors/relational-db/factory.d.ts.map +1 -0
  215. package/dist/src/templates/processors/relational-db/factory.js +40 -0
  216. package/dist/src/templates/processors/relational-db/factory.js.map +1 -0
  217. package/dist/src/templates/processors/relational-db/index.d.ts +4 -0
  218. package/dist/src/templates/processors/relational-db/index.d.ts.map +1 -0
  219. package/dist/src/templates/processors/relational-db/index.js +28 -0
  220. package/dist/src/templates/processors/relational-db/index.js.map +1 -0
  221. package/dist/src/templates/processors/relational-db/migrations.d.ts +2 -0
  222. package/dist/src/templates/processors/relational-db/migrations.d.ts.map +1 -0
  223. package/dist/src/templates/processors/relational-db/migrations.js +23 -0
  224. package/dist/src/templates/processors/relational-db/migrations.js.map +1 -0
  225. package/dist/src/templates/processors/relational-db/schema.d.ts +2 -0
  226. package/dist/src/templates/processors/relational-db/schema.d.ts.map +1 -0
  227. package/dist/src/templates/processors/relational-db/schema.js +12 -0
  228. package/dist/src/templates/processors/relational-db/schema.js.map +1 -0
  229. package/dist/src/templates/processors/utils.d.ts +2 -0
  230. package/dist/src/templates/processors/utils.d.ts.map +1 -0
  231. package/dist/src/templates/processors/utils.js +6 -0
  232. package/dist/src/templates/processors/utils.js.map +1 -0
  233. package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.js +4 -4
  234. package/dist/src/ts-morph-generator/core/ReducerGenerator.js +3 -3
  235. package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts +1 -1
  236. package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts.map +1 -1
  237. package/dist/src/ts-morph-generator/utilities/DirectoryManager.js +5 -5
  238. package/dist/src/ts-morph-generator/utilities/DirectoryManager.js.map +1 -1
  239. package/dist/src/utils/constants.d.ts +0 -2
  240. package/dist/src/utils/constants.d.ts.map +1 -1
  241. package/dist/src/utils/constants.js +0 -18
  242. package/dist/src/utils/constants.js.map +1 -1
  243. package/dist/src/utils/format-with-prettier.d.ts +1 -1
  244. package/dist/src/utils/format-with-prettier.d.ts.map +1 -1
  245. package/dist/src/utils/format-with-prettier.js +5 -11
  246. package/dist/src/utils/format-with-prettier.js.map +1 -1
  247. package/dist/src/utils/index.d.ts +1 -3
  248. package/dist/src/utils/index.d.ts.map +1 -1
  249. package/dist/src/utils/index.js +1 -3
  250. package/dist/src/utils/index.js.map +1 -1
  251. package/dist/src/utils/source-files.d.ts +8 -1
  252. package/dist/src/utils/source-files.d.ts.map +1 -1
  253. package/dist/src/utils/source-files.js +19 -2
  254. package/dist/src/utils/source-files.js.map +1 -1
  255. package/dist/src/utils/syntax-getters.d.ts +2 -1
  256. package/dist/src/utils/syntax-getters.d.ts.map +1 -1
  257. package/dist/src/utils/syntax-getters.js +4 -0
  258. package/dist/src/utils/syntax-getters.js.map +1 -1
  259. package/dist/src/utils/ts-morph-project.d.ts +14 -5
  260. package/dist/src/utils/ts-morph-project.d.ts.map +1 -1
  261. package/dist/src/utils/ts-morph-project.js +12 -12
  262. package/dist/src/utils/ts-morph-project.js.map +1 -1
  263. package/dist/tsconfig.tsbuildinfo +1 -1
  264. package/dist/vitest.config.d.ts.map +1 -1
  265. package/dist/vitest.config.js +2 -0
  266. package/dist/vitest.config.js.map +1 -1
  267. package/package.json +38 -41
  268. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.d.ts +0 -2
  269. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.d.ts.map +0 -1
  270. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.js +0 -159
  271. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.js.map +0 -1
  272. package/dist/src/file-builders/boilerplate/package-json-versions.test.d.ts +0 -2
  273. package/dist/src/file-builders/boilerplate/package-json-versions.test.d.ts.map +0 -1
  274. package/dist/src/file-builders/boilerplate/package-json-versions.test.js +0 -34
  275. package/dist/src/file-builders/boilerplate/package-json-versions.test.js.map +0 -1
  276. package/dist/src/templates/boilerplate/processors/index.d.ts +0 -2
  277. package/dist/src/templates/boilerplate/processors/index.d.ts.map +0 -1
  278. package/dist/src/templates/boilerplate/processors/index.js +0 -2
  279. package/dist/src/templates/boilerplate/processors/index.js.map +0 -1
  280. package/dist/src/templates/document-model/src/tests/document-model.test.d.ts.map +0 -1
  281. package/dist/src/templates/document-model/src/tests/document-model.test.js.map +0 -1
  282. package/dist/src/templates/document-model/src/tests/module.test.d.ts.map +0 -1
  283. package/dist/src/templates/document-model/src/tests/module.test.js.map +0 -1
  284. package/dist/src/utils/dependencies.d.ts +0 -12
  285. package/dist/src/utils/dependencies.d.ts.map +0 -1
  286. package/dist/src/utils/dependencies.js +0 -34
  287. package/dist/src/utils/dependencies.js.map +0 -1
  288. package/dist/src/utils/spawn-async.d.ts +0 -5
  289. package/dist/src/utils/spawn-async.d.ts.map +0 -1
  290. package/dist/src/utils/spawn-async.js +0 -29
  291. package/dist/src/utils/spawn-async.js.map +0 -1
  292. /package/dist/src/templates/document-model/{src/tests → tests}/document-model.test.d.ts +0 -0
  293. /package/dist/src/templates/document-model/{src/tests → tests}/document-model.test.js +0 -0
  294. /package/dist/src/templates/document-model/{src/tests → tests}/module.test.d.ts +0 -0
@@ -1,233 +1,184 @@
1
- import { readFileSync, rmSync } from "node:fs";
2
- import path from "node:path";
3
- import { afterAll, beforeAll, beforeEach, describe, expect, it, } from "vitest";
1
+ import { $ } from "bun";
2
+ import { describe, expect, test } from "bun:test";
3
+ import { cp, readdir } from "node:fs/promises";
4
+ import path from "path";
5
+ import { Project, ts } from "ts-morph";
4
6
  import { generateDocumentModel } from "../generate.js";
5
- import { hygenGenerateProcessor } from "../hygen.js";
6
7
  import { loadDocumentModel } from "../utils.js";
7
- import { USE_TS_MORPH } from "./config.js";
8
- import { DOCUMENT_MODELS_TEST_PROJECT, GENERATE_DOC_MODEL_TEST_OUTPUT_DIR, TEST_PACKAGE_NAME, } from "./constants.js";
9
- import { runGeneratedTests } from "./fixtures/run-generated-tests.js";
10
- import { compile } from "./fixtures/typecheck.js";
11
- import { copyAllFiles, getTestDataDir, getTestOutDirPath, getTestOutputDir, purgeDirAfterTest, resetDirForTest, } from "./utils.js";
12
- describe("document model", () => {
13
- const testDir = import.meta.dirname;
14
- const outDirName = getTestOutputDir(testDir, GENERATE_DOC_MODEL_TEST_OUTPUT_DIR);
15
- const testDataDir = getTestDataDir(testDir, DOCUMENT_MODELS_TEST_PROJECT);
16
- let testOutDirPath = getTestOutDirPath("initial", outDirName);
17
- const documentModelsSrcPath = path.join(testDir, "data", "document-models");
18
- let documentModelsDirName = path.join(testOutDirPath, "document-models");
19
- let processorsDirName = path.join(testOutDirPath, "processors");
20
- async function setupTest(context, dataDir = testDataDir) {
21
- testOutDirPath = getTestOutDirPath(context.task.name, outDirName);
22
- await copyAllFiles(dataDir, testOutDirPath);
23
- documentModelsDirName = path.join(testOutDirPath, "document-models");
24
- processorsDirName = path.join(testOutDirPath, "processors");
25
- }
26
- beforeEach(async (context) => {
27
- await setupTest(context);
28
- });
29
- beforeAll(() => {
30
- resetDirForTest(outDirName);
31
- });
32
- afterAll(() => {
33
- purgeDirAfterTest(outDirName);
34
- });
35
- const generate = async () => {
36
- const billingStatementDocumentModel = await loadDocumentModel(path.join(documentModelsSrcPath, "billing-statement", "billing-statement.json"));
8
+ const testsDir = import.meta.dirname;
9
+ const testOutputDir = path.join(testsDir, ".test-output");
10
+ function getDocumentModelJsonFilePath(basePath, dirName) {
11
+ return path.join(basePath, dirName, `${dirName}.json`);
12
+ }
13
+ async function loadDocumentModelsInDir(documentModelsInDir, testOutDir, useVersioning = true) {
14
+ const documentModelsOutDir = path.join(testOutDir, "document-models");
15
+ const documentModelDirs = (await readdir(documentModelsInDir, {
16
+ withFileTypes: true,
17
+ }))
18
+ .filter((value) => value.isDirectory())
19
+ .map((value) => value.name);
20
+ const documentModelStates = await Promise.all(documentModelDirs.map(async (dirName) => await loadDocumentModel(getDocumentModelJsonFilePath(documentModelsInDir, dirName))));
21
+ for (const documentModelState of documentModelStates) {
37
22
  await generateDocumentModel({
38
- dir: documentModelsDirName,
39
- specifiedPackageName: TEST_PACKAGE_NAME,
40
- documentModelState: billingStatementDocumentModel,
41
- useTsMorph: USE_TS_MORPH,
42
- useVersioning: false,
43
- skipFormat: true,
23
+ documentModelState,
24
+ dir: documentModelsOutDir,
25
+ useTsMorph: true,
26
+ useVersioning,
27
+ specifiedPackageName: "test",
44
28
  });
45
- const testDocDocumentModel = await loadDocumentModel(path.join(documentModelsSrcPath, "test-doc", "test-doc.json"));
46
- await generateDocumentModel({
47
- useTsMorph: USE_TS_MORPH,
48
- useVersioning: false,
49
- dir: documentModelsDirName,
50
- specifiedPackageName: TEST_PACKAGE_NAME,
51
- documentModelState: testDocDocumentModel,
52
- skipFormat: true,
53
- });
54
- };
55
- it("should generate a document model", {
56
- timeout: 100000,
57
- }, async (context) => {
58
- await setupTest(context);
59
- await generate();
60
- await compile(testOutDirPath);
61
- await runGeneratedTests(testOutDirPath);
62
- });
63
- it("should generate a document model when previous document models exist", {
64
- timeout: 100000,
65
- }, async (context) => {
66
- const dataDirOverride = getTestDataDir(testDir, "document-models-test-project-with-existing-document-models");
67
- await setupTest(context, dataDirOverride);
68
- await generate();
69
- await compile(testOutDirPath);
70
- await runGeneratedTests(testOutDirPath);
71
- });
72
- it("should create the document-models.ts file if it does not exist", {
73
- timeout: 100000,
74
- }, async (context) => {
75
- await setupTest(context);
76
- const documentModelsFilePath = path.join(documentModelsDirName, "document-models.ts");
77
- rmSync(documentModelsFilePath, { force: true });
78
- await generate();
79
- await compile(testOutDirPath);
80
- const documentModelsContent = readFileSync(documentModelsFilePath, "utf-8");
81
- // Check that both models are exported
82
- expect(documentModelsContent).toContain(`import { BillingStatement } from "./billing-statement/module.js";`);
83
- expect(documentModelsContent).toContain(`import { TestDoc } from "./test-doc/module.js";`);
84
- expect(documentModelsContent).toContain("export const documentModels: DocumentModelModule<any>[] = [");
85
- expect(documentModelsContent).toContain("BillingStatement");
86
- expect(documentModelsContent).toContain("TestDoc");
87
- expect(documentModelsContent).toContain("]");
29
+ }
30
+ }
31
+ async function runDocumentModelTests(args) {
32
+ const { inDirName, specDirName, testsDataDir, testOutputParentDir, useVersioning = true, } = args;
33
+ const dataDir = path.join(testsDataDir, inDirName);
34
+ const documentModelsInDir = path.join(testsDataDir, specDirName);
35
+ const outDir = path.join(testOutputParentDir, `${inDirName}-${specDirName}`);
36
+ await cp(dataDir, outDir, {
37
+ recursive: true,
38
+ force: true,
88
39
  });
89
- it("should generate multiple document models and export both in document-models.ts", {
90
- timeout: 100000,
91
- }, async (context) => {
92
- await setupTest(context);
93
- await generate();
94
- await compile(testOutDirPath);
95
- const documentModelsFilePath = path.join(documentModelsDirName, "document-models.ts");
96
- const documentModelsContent = readFileSync(documentModelsFilePath, "utf-8");
97
- // Check that both models are exported
98
- expect(documentModelsContent).toContain(`import { BillingStatement } from "./billing-statement/module.js";`);
99
- expect(documentModelsContent).toContain(`import { TestDoc } from "./test-doc/module.js";`);
100
- expect(documentModelsContent).toContain("export const documentModels: DocumentModelModule<any>[] = [");
101
- expect(documentModelsContent).toContain("BillingStatement");
102
- expect(documentModelsContent).toContain("TestDoc");
103
- expect(documentModelsContent).toContain("]");
40
+ await loadDocumentModelsInDir(documentModelsInDir, outDir, useVersioning);
41
+ await $ `bun run --cwd ${outDir} tsc --noEmit`;
42
+ return outDir;
43
+ }
44
+ async function checkFileContents(outDir) {
45
+ const project = new Project({
46
+ tsConfigFilePath: path.join(outDir, "tsconfig.json"),
47
+ skipAddingFilesFromTsConfig: true,
48
+ skipFileDependencyResolution: true,
49
+ skipLoadingLibFiles: true,
104
50
  });
105
- it("should generate an updated version of test-doc", { timeout: 100000 }, async (context) => {
106
- await setupTest(context);
107
- await generate();
108
- await compile(testOutDirPath);
109
- const testDocDocumentModelV2 = await loadDocumentModel(path.join(documentModelsSrcPath, "..", "test-doc-versions", "test-doc-v2", "test-doc.json"));
110
- // TODO: this is a hack to get the test to pass, we should be able to update the reducer file once is generated
111
- // remove .out/document-model/test-doc/src/reducers/base-operations.ts file
112
- rmSync(path.join(documentModelsDirName, "test-doc", "src", "reducers", "base-operations.ts"), { force: true });
113
- await generateDocumentModel({
114
- useTsMorph: USE_TS_MORPH,
115
- useVersioning: false,
116
- dir: documentModelsDirName,
117
- specifiedPackageName: TEST_PACKAGE_NAME,
118
- documentModelState: testDocDocumentModelV2,
119
- skipFormat: true,
51
+ project.addSourceFilesAtPaths(path.join(outDir, "document-models/**/*"));
52
+ const documentModelsFile = project.getSourceFileOrThrow("document-models.ts");
53
+ const documentModelsArray = documentModelsFile
54
+ .getVariableStatementOrThrow("documentModels")
55
+ .getDescendantsOfKind(ts.SyntaxKind.ArrayLiteralExpression)
56
+ .at(0);
57
+ const elements = documentModelsArray
58
+ .getElements()
59
+ .map((e) => e.getText())
60
+ .join(" ");
61
+ expect(elements).toContain("BillingStatement");
62
+ expect(elements).toContain("TestDoc");
63
+ const billingStatementErrorFile = await Bun.file(path.join(outDir, "document-models", "billing-statement", "gen", "general", "error.ts")).text();
64
+ expect(billingStatementErrorFile).toContain("export type ErrorCode");
65
+ expect(billingStatementErrorFile).toContain(`"InvalidStatusTransition"`);
66
+ expect(billingStatementErrorFile).toContain("export class InvalidStatusTransition extends Error implements ReducerError");
67
+ expect(billingStatementErrorFile).toContain(`errorCode = "InvalidStatusTransition" as ErrorCode`);
68
+ const lineItemsErrorFile = await Bun.file(path.join(outDir, "document-models", "billing-statement", "gen", "line-items", "error.ts")).text();
69
+ expect(lineItemsErrorFile).toContain("export type ErrorCode =");
70
+ expect(lineItemsErrorFile).toContain(`"DuplicateLineItem"`);
71
+ expect(lineItemsErrorFile).toContain(`"InvalidStatusTransition"`);
72
+ expect(lineItemsErrorFile).toContain("export class DuplicateLineItem extends Error implements ReducerError");
73
+ expect(lineItemsErrorFile).toContain("export class InvalidStatusTransition extends Error implements ReducerError");
74
+ const errorCodeMatches = lineItemsErrorFile.match(/"InvalidStatusTransition"/g);
75
+ expect(errorCodeMatches?.length).toBe(3);
76
+ }
77
+ describe("generate doc model", () => {
78
+ const parentOutDirName = "generate-doc-model";
79
+ const testOutputParentDir = path.join(testOutputDir, parentOutDirName);
80
+ const testsDataDir = path.join(testsDir, "data");
81
+ const useVersioning = false;
82
+ test("generate document models", async () => {
83
+ const outDir = await runDocumentModelTests({
84
+ inDirName: "document-models-test-project",
85
+ specDirName: "document-models",
86
+ testOutputParentDir,
87
+ testsDataDir,
88
+ useVersioning,
120
89
  });
121
- // expect .out/document-model/test-doc/src/reducers/base-operations.ts to contain setTestIdOperation, setTestNameOperation, setTestDescriptionOperation and setTestValueOperation
122
- const baseOperationsPath = path.join(documentModelsDirName, "test-doc", "src", "reducers", "base-operations.ts");
123
- const baseOperationsContent = readFileSync(baseOperationsPath, "utf-8");
124
- expect(baseOperationsContent).toContain("setTestIdOperation");
125
- expect(baseOperationsContent).toContain("setTestNameOperation");
126
- expect(baseOperationsContent).toContain("setTestDescriptionOperation");
127
- expect(baseOperationsContent).toContain("setTestValueOperation");
90
+ await checkFileContents(outDir);
128
91
  });
129
- it("should generate an analytics processor and factory", {
130
- timeout: 100000,
131
- }, async (context) => {
132
- await setupTest(context);
133
- await generate();
134
- await hygenGenerateProcessor("test-analytics-processor", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "analytics", {
135
- skipFormat: true,
92
+ test("generate document models in existing project", async () => {
93
+ const outDir = await runDocumentModelTests({
94
+ inDirName: "document-models-test-project-with-existing-document-models",
95
+ specDirName: "document-models",
96
+ testOutputParentDir,
97
+ testsDataDir,
98
+ useVersioning,
136
99
  });
137
- await compile(testOutDirPath);
100
+ await checkFileContents(outDir);
138
101
  });
139
- it("should generate multiple analytics processors with composable factories", {
140
- timeout: 100000,
141
- }, async (context) => {
142
- await setupTest(context);
143
- await generate();
144
- await hygenGenerateProcessor("test1", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "analytics", {
145
- skipFormat: true,
146
- });
147
- await hygenGenerateProcessor("test2", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "analytics", {
148
- skipFormat: true,
149
- });
150
- await hygenGenerateProcessor("test3", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "analytics", {
151
- skipFormat: true,
102
+ });
103
+ describe("versioned document models", () => {
104
+ const parentOutDirName = "versioned-document-models";
105
+ const testOutputParentDir = path.join(testOutputDir, parentOutDirName);
106
+ const testsDataDir = path.join(testsDir, "data", "versioned-document-models");
107
+ describe("v1", () => {
108
+ test("should generate new document models as v1", async () => {
109
+ await runDocumentModelTests({
110
+ inDirName: "empty-project",
111
+ specDirName: "spec-version-1",
112
+ testOutputParentDir,
113
+ testsDataDir,
114
+ });
152
115
  });
153
- await compile(testOutDirPath);
154
- });
155
- it("should generate a relational db processor and factory", {
156
- timeout: 100000,
157
- }, async (context) => {
158
- await setupTest(context);
159
- await generate();
160
- await hygenGenerateProcessor("test-relational-processor", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "relationalDb", {
161
- skipFormat: true,
116
+ test("should persist existing reducers, tests, utils, and custom files when generating for the same spec version", async () => {
117
+ await runDocumentModelTests({
118
+ inDirName: "project-with-existing-document-models-at-spec-1",
119
+ specDirName: "spec-version-1-with-more-operations",
120
+ testOutputParentDir,
121
+ testsDataDir,
122
+ });
162
123
  });
163
- await compile(testOutDirPath);
164
124
  });
165
- it("should generate multiple relational db processors with composable factories", {
166
- timeout: 100000,
167
- }, async (context) => {
168
- await setupTest(context);
169
- await generate();
170
- await hygenGenerateProcessor("test1", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "relationalDb", {
171
- skipFormat: true,
125
+ describe("v2", () => {
126
+ test("should handle generating document models as v2", async () => {
127
+ const testOutDir = await runDocumentModelTests({
128
+ inDirName: "empty-project",
129
+ specDirName: "spec-version-2",
130
+ testOutputParentDir,
131
+ testsDataDir,
132
+ });
133
+ const v1ModulePath = path.join(testOutDir, "document-models", "test-doc", "v1", "module.ts");
134
+ const v2ModulePath = path.join(testOutDir, "document-models", "test-doc", "v2", "module.ts");
135
+ const v1ModuleContent = await Bun.file(v1ModulePath).text();
136
+ const v2ModuleContent = await Bun.file(v2ModulePath).text();
137
+ expect(v1ModuleContent).toContain("version: 1,");
138
+ expect(v2ModuleContent).toContain("version: 2,");
172
139
  });
173
- await hygenGenerateProcessor("test2", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "relationalDb", {
174
- skipFormat: true,
140
+ test("should persist existing reducers, tests, utils, and custom files when generating a new spec version", async () => {
141
+ await runDocumentModelTests({
142
+ inDirName: "project-with-existing-document-models-at-spec-1",
143
+ specDirName: "spec-version-2",
144
+ testOutputParentDir,
145
+ testsDataDir,
146
+ });
175
147
  });
176
- await hygenGenerateProcessor("test3", ["billing-statement"], path.join(testOutDirPath, processorsDirName), "relationalDb", {
177
- skipFormat: true,
148
+ test("should throw a typescript error in upgrades when new state does not match old state", () => {
149
+ expect(async () => await runDocumentModelTests({
150
+ inDirName: "project-with-existing-document-models-at-spec-1",
151
+ specDirName: "spec-version-2-with-state-changes",
152
+ testOutputParentDir,
153
+ testsDataDir,
154
+ })).toThrow();
178
155
  });
179
- await compile(testOutDirPath);
180
156
  });
181
- it("should generate error classes and types from billing statement errors", { timeout: 100000 }, async (context) => {
182
- await setupTest(context);
183
- await generate();
184
- await compile(testOutDirPath);
185
- // Check general module errors
186
- const generalErrorPath = path.join(documentModelsDirName, "billing-statement", "gen", "general", "error.ts");
187
- const generalErrorContent = readFileSync(generalErrorPath, "utf-8");
188
- // Check that InvalidStatusTransition error is generated
189
- expect(generalErrorContent).toContain("export type ErrorCode =");
190
- expect(generalErrorContent).toContain(`"InvalidStatusTransition"`);
191
- expect(generalErrorContent).toContain("export class InvalidStatusTransition extends Error implements ReducerError");
192
- expect(generalErrorContent).toContain(`errorCode = "InvalidStatusTransition" as ErrorCode`);
193
- // Check line_items module errors
194
- const lineItemsErrorPath = path.join(documentModelsDirName, "billing-statement", "gen", "line-items", "error.ts");
195
- const lineItemsErrorContent = readFileSync(lineItemsErrorPath, "utf-8");
196
- // Check that both DuplicateLineItem and InvalidStatusTransition errors are generated (but deduplicated)
197
- expect(lineItemsErrorContent).toContain("export type ErrorCode =");
198
- expect(lineItemsErrorContent).toContain(`"DuplicateLineItem"`);
199
- expect(lineItemsErrorContent).toContain(`"InvalidStatusTransition"`);
200
- expect(lineItemsErrorContent).toContain("export class DuplicateLineItem extends Error implements ReducerError");
201
- expect(lineItemsErrorContent).toContain("export class InvalidStatusTransition extends Error implements ReducerError");
202
- // Verify that InvalidStatusTransition only appears once in the ErrorCode type (deduplication test)
203
- const errorCodeMatches = lineItemsErrorContent.match(/"InvalidStatusTransition"/g);
204
- expect(errorCodeMatches?.length).toBe(3); // Once in type definition, once in each class
205
- });
206
- it("should generate error codes for legacy documents with empty error codes", { timeout: 100000 }, async (context) => {
207
- await setupTest(context);
208
- await generate();
209
- const testEmptyCodesDocumentModel = await loadDocumentModel(path.join(documentModelsSrcPath, "test-empty-error-codes", "test-empty-error-codes.json"));
210
- await generateDocumentModel({
211
- useTsMorph: USE_TS_MORPH,
212
- useVersioning: false,
213
- dir: documentModelsDirName,
214
- specifiedPackageName: TEST_PACKAGE_NAME,
215
- documentModelState: testEmptyCodesDocumentModel,
216
- skipFormat: true,
157
+ describe("v3", () => {
158
+ test("should handle generating document models as v3", async () => {
159
+ await runDocumentModelTests({
160
+ inDirName: "empty-project",
161
+ specDirName: "spec-version-3",
162
+ testOutputParentDir,
163
+ testsDataDir,
164
+ });
165
+ });
166
+ test("should persist existing reducers, tests, utils, and custom files when generating a new spec version", async () => {
167
+ await runDocumentModelTests({
168
+ inDirName: "project-with-existing-document-models-at-spec-2",
169
+ specDirName: "spec-version-3",
170
+ testOutputParentDir,
171
+ testsDataDir,
172
+ });
173
+ });
174
+ test("should throw a typescript error in upgrades when new state does not match old state", () => {
175
+ expect(async () => await runDocumentModelTests({
176
+ inDirName: "project-with-existing-document-models-at-spec-2",
177
+ specDirName: "spec-version-3-with-state-changes",
178
+ testOutputParentDir,
179
+ testsDataDir,
180
+ })).toThrow();
217
181
  });
218
- // Check that error codes are generated from error names
219
- const testOperationsErrorPath = path.join(documentModelsDirName, "test-empty-codes", "gen", "test-operations", "error.ts");
220
- const testOperationsErrorContent = readFileSync(testOperationsErrorPath, "utf-8");
221
- // Check that error codes are generated from names in PascalCase when empty
222
- expect(testOperationsErrorContent).toContain("export type ErrorCode =");
223
- expect(testOperationsErrorContent).toContain(`"InvalidValue"`);
224
- expect(testOperationsErrorContent).toContain(`"EmptyValue"`);
225
- // Check that error classes are generated
226
- expect(testOperationsErrorContent).toContain("export class InvalidValue extends Error implements ReducerError");
227
- expect(testOperationsErrorContent).toContain("export class EmptyValue extends Error implements ReducerError");
228
- // Verify error code constants are set properly in PascalCase
229
- expect(testOperationsErrorContent).toContain(`errorCode = "InvalidValue" as ErrorCode`);
230
- expect(testOperationsErrorContent).toContain(`errorCode = "EmptyValue" as ErrorCode`);
231
182
  });
232
183
  });
233
184
  //# sourceMappingURL=generate-doc-model.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-doc-model.test.js","sourceRoot":"","sources":["../../../../src/codegen/__tests__/generate-doc-model.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-doc-model.test.js","sourceRoot":"","sources":["../../../../src/codegen/__tests__/generate-doc-model.test.ts"],"names":[],"mappings":"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"}