@powerhousedao/codegen 4.1.0-dev.11 → 4.1.0-dev.111

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 (283) hide show
  1. package/README.md +0 -1
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/index.js +10 -0
  7. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/resolvers.esm.t +17 -0
  8. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/schema.esm.t +16 -0
  9. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/actions.esm.t +3 -3
  10. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/creators.esm.t +3 -2
  11. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/customUtils.esm.t +1 -1
  12. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/document-models.esm.t +14 -0
  13. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/document-schema.esm.t +56 -0
  14. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/document-type.esm.t +6 -0
  15. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/documentModel.esm.t +3 -3
  16. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/documentModelTest.esm.t +110 -15
  17. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/hooks.esm.t +49 -0
  18. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.esm.t +17 -3
  19. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.js +128 -54
  20. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/lib.esm.t +4 -2
  21. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/module.esm.t +22 -0
  22. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/ph-factories.esm.t +93 -0
  23. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/reducer.esm.t +21 -9
  24. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/root-utils.esm.t +11 -0
  25. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/rootActions.esm.t +13 -0
  26. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/rootIndex.esm.t +6 -27
  27. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/schema.esm.t +2 -2
  28. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/src-index.esm.t +5 -0
  29. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/types.esm.t +23 -11
  30. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/utils.esm.t +44 -30
  31. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/creators.esm.t +11 -6
  32. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/customTest.esm.t +15 -20
  33. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/error.esm.t +6 -10
  34. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js +67 -27
  35. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.js +117 -21
  36. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/resolvers.esm.t +27 -12
  37. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/schema.esm.t +5 -10
  38. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/CreateDocument.esm.t +42 -34
  39. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveContents.esm.t +23 -0
  40. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveExplorer.esm.t +18 -224
  41. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/EmptyState.esm.t +19 -0
  42. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/Files.esm.t +29 -0
  43. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderTree.esm.t +95 -72
  44. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/Folders.esm.t +28 -0
  45. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/NavigationBreadcrumbs.esm.t +14 -0
  46. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/config.esm.t +11 -0
  47. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editor.esm.t +10 -71
  48. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editors.esm.t +14 -0
  49. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.js +30 -0
  50. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/lib.esm.t +4 -2
  51. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/module.esm.t +15 -0
  52. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/edit-name.esm.t +78 -0
  53. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/editor.esm.t +9 -21
  54. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/editors.esm.t +14 -0
  55. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js +97 -15
  56. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/lib.esm.t +4 -2
  57. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/module.esm.t +16 -0
  58. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.js +8 -10
  59. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/factory.esm.t +5 -4
  60. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.esm.t +5 -9
  61. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.js +11 -15
  62. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.root.inject.esm.t +12 -0
  63. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.esm.t +8 -6
  64. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_call.esm.t +1 -1
  65. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_import.esm.t +1 -1
  66. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/factory.esm.t +6 -5
  67. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.esm.t +6 -13
  68. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.js +11 -15
  69. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.root.inject.esm.t +12 -0
  70. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.esm.t +8 -9
  71. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.inject_call.esm.t +2 -2
  72. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.inject_import.esm.t +1 -1
  73. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/migrations.esm.t +2 -2
  74. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/schema.esm.t +10 -2
  75. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.esm.t +5 -36
  76. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.js +9 -11
  77. package/dist/src/codegen/.hygen/templates/powerhouse/utils.js +43 -0
  78. package/dist/src/codegen/__tests__/config.d.ts +2 -0
  79. package/dist/src/codegen/__tests__/config.d.ts.map +1 -0
  80. package/dist/src/codegen/__tests__/config.js +2 -0
  81. package/dist/src/codegen/__tests__/config.js.map +1 -0
  82. package/dist/src/codegen/__tests__/constants.d.ts +16 -0
  83. package/dist/src/codegen/__tests__/constants.d.ts.map +1 -0
  84. package/dist/src/codegen/__tests__/constants.js +16 -0
  85. package/dist/src/codegen/__tests__/constants.js.map +1 -0
  86. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.d.ts +2 -0
  87. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.d.ts.map +1 -0
  88. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.js +9 -0
  89. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.js.map +1 -0
  90. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.d.ts +3 -0
  91. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.d.ts.map +1 -0
  92. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.js +33 -0
  93. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.js.map +1 -0
  94. package/dist/src/codegen/__tests__/fixtures/run-generated-tests.d.ts +2 -0
  95. package/dist/src/codegen/__tests__/fixtures/run-generated-tests.d.ts.map +1 -0
  96. package/dist/src/codegen/__tests__/fixtures/run-generated-tests.js +23 -0
  97. package/dist/src/codegen/__tests__/fixtures/run-generated-tests.js.map +1 -0
  98. package/dist/src/codegen/__tests__/fixtures/typecheck.d.ts +2 -0
  99. package/dist/src/codegen/__tests__/fixtures/typecheck.d.ts.map +1 -0
  100. package/dist/src/codegen/__tests__/fixtures/typecheck.js +23 -0
  101. package/dist/src/codegen/__tests__/fixtures/typecheck.js.map +1 -0
  102. package/dist/src/codegen/__tests__/generate-doc-model.test.d.ts +2 -0
  103. package/dist/src/codegen/__tests__/generate-doc-model.test.d.ts.map +1 -0
  104. package/dist/src/codegen/__tests__/generate-doc-model.test.js +206 -0
  105. package/dist/src/codegen/__tests__/generate-doc-model.test.js.map +1 -0
  106. package/dist/src/codegen/__tests__/generate-drive-editor.test.d.ts +2 -0
  107. package/dist/src/codegen/__tests__/generate-drive-editor.test.d.ts.map +1 -0
  108. package/dist/src/codegen/__tests__/generate-drive-editor.test.js +153 -0
  109. package/dist/src/codegen/__tests__/generate-drive-editor.test.js.map +1 -0
  110. package/dist/src/codegen/__tests__/generate-editor.test.d.ts +2 -0
  111. package/dist/src/codegen/__tests__/generate-editor.test.d.ts.map +1 -0
  112. package/dist/src/codegen/__tests__/generate-editor.test.js +94 -0
  113. package/dist/src/codegen/__tests__/generate-editor.test.js.map +1 -0
  114. package/dist/src/codegen/__tests__/generate-manifest.test.d.ts +2 -0
  115. package/dist/src/codegen/__tests__/generate-manifest.test.d.ts.map +1 -0
  116. package/dist/src/codegen/__tests__/generate-manifest.test.js +192 -0
  117. package/dist/src/codegen/__tests__/generate-manifest.test.js.map +1 -0
  118. package/dist/src/codegen/__tests__/generate-schemas.test.d.ts +2 -0
  119. package/dist/src/codegen/__tests__/generate-schemas.test.d.ts.map +1 -0
  120. package/dist/src/codegen/__tests__/generate-schemas.test.js +143 -0
  121. package/dist/src/codegen/__tests__/generate-schemas.test.js.map +1 -0
  122. package/dist/src/codegen/__tests__/global-setup.d.ts +2 -0
  123. package/dist/src/codegen/__tests__/global-setup.d.ts.map +1 -0
  124. package/dist/src/codegen/__tests__/global-setup.js +21 -0
  125. package/dist/src/codegen/__tests__/global-setup.js.map +1 -0
  126. package/dist/src/codegen/__tests__/ts-morph-generator.test.d.ts +2 -0
  127. package/dist/src/codegen/__tests__/ts-morph-generator.test.d.ts.map +1 -0
  128. package/dist/src/codegen/__tests__/ts-morph-generator.test.js +72 -0
  129. package/dist/src/codegen/__tests__/ts-morph-generator.test.js.map +1 -0
  130. package/dist/src/codegen/__tests__/utils.d.ts +7 -0
  131. package/dist/src/codegen/__tests__/utils.d.ts.map +1 -0
  132. package/dist/src/codegen/__tests__/utils.js +52 -0
  133. package/dist/src/codegen/__tests__/utils.js.map +1 -0
  134. package/dist/src/codegen/generate.d.ts +33 -0
  135. package/dist/src/codegen/generate.d.ts.map +1 -0
  136. package/dist/src/codegen/generate.js +205 -0
  137. package/dist/src/codegen/generate.js.map +1 -0
  138. package/dist/src/codegen/graphql.d.ts +2 -2
  139. package/dist/src/codegen/graphql.d.ts.map +1 -1
  140. package/dist/src/codegen/graphql.js.map +1 -1
  141. package/dist/src/codegen/hygen.d.ts +19 -14
  142. package/dist/src/codegen/hygen.d.ts.map +1 -1
  143. package/dist/src/codegen/hygen.js +100 -28
  144. package/dist/src/codegen/hygen.js.map +1 -1
  145. package/dist/src/codegen/index.d.ts +6 -33
  146. package/dist/src/codegen/index.d.ts.map +1 -1
  147. package/dist/src/codegen/index.js +6 -230
  148. package/dist/src/codegen/index.js.map +1 -1
  149. package/dist/src/codegen/types.d.ts +9 -0
  150. package/dist/src/codegen/types.d.ts.map +1 -0
  151. package/dist/src/codegen/types.js +2 -0
  152. package/dist/src/codegen/types.js.map +1 -0
  153. package/dist/src/codegen/utils.d.ts +5 -2
  154. package/dist/src/codegen/utils.d.ts.map +1 -1
  155. package/dist/src/codegen/utils.js +42 -4
  156. package/dist/src/codegen/utils.js.map +1 -1
  157. package/dist/src/create-lib/checkout-project.d.ts +13 -0
  158. package/dist/src/create-lib/checkout-project.d.ts.map +1 -0
  159. package/dist/src/create-lib/checkout-project.js +47 -0
  160. package/dist/src/create-lib/checkout-project.js.map +1 -0
  161. package/dist/src/create-lib/create-project.d.ts +9 -5
  162. package/dist/src/create-lib/create-project.d.ts.map +1 -1
  163. package/dist/src/create-lib/create-project.js +37 -30
  164. package/dist/src/create-lib/create-project.js.map +1 -1
  165. package/dist/src/create-lib/feature-flags.d.ts +4 -0
  166. package/dist/src/create-lib/feature-flags.d.ts.map +1 -0
  167. package/dist/src/create-lib/feature-flags.js +4 -0
  168. package/dist/src/create-lib/feature-flags.js.map +1 -0
  169. package/dist/src/create-lib/index.d.ts +1 -0
  170. package/dist/src/create-lib/index.d.ts.map +1 -1
  171. package/dist/src/create-lib/index.js +1 -0
  172. package/dist/src/create-lib/index.js.map +1 -1
  173. package/dist/src/{utils/package-manager.d.ts → create-lib/utils.d.ts} +3 -1
  174. package/dist/src/create-lib/utils.d.ts.map +1 -0
  175. package/dist/src/{utils/package-manager.js → create-lib/utils.js} +12 -1
  176. package/dist/src/create-lib/utils.js.map +1 -0
  177. package/dist/src/index.d.ts +5 -0
  178. package/dist/src/index.d.ts.map +1 -0
  179. package/dist/src/index.js +5 -0
  180. package/dist/src/index.js.map +1 -0
  181. package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.d.ts +2 -0
  182. package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.d.ts.map +1 -0
  183. package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.js +491 -0
  184. package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.js.map +1 -0
  185. package/dist/src/ts-morph-generator/core/FileGenerator.d.ts +5 -4
  186. package/dist/src/ts-morph-generator/core/FileGenerator.d.ts.map +1 -1
  187. package/dist/src/ts-morph-generator/core/FileGenerator.js +3 -1
  188. package/dist/src/ts-morph-generator/core/FileGenerator.js.map +1 -1
  189. package/dist/src/ts-morph-generator/core/GenerationContext.d.ts +19 -8
  190. package/dist/src/ts-morph-generator/core/GenerationContext.d.ts.map +1 -1
  191. package/dist/src/ts-morph-generator/core/ReducerGenerator.d.ts +12 -0
  192. package/dist/src/ts-morph-generator/core/ReducerGenerator.d.ts.map +1 -0
  193. package/dist/src/ts-morph-generator/core/ReducerGenerator.js +147 -0
  194. package/dist/src/ts-morph-generator/core/ReducerGenerator.js.map +1 -0
  195. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts +5 -3
  196. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts.map +1 -1
  197. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.js +17 -9
  198. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.js.map +1 -1
  199. package/dist/src/ts-morph-generator/index.d.ts +2 -2
  200. package/dist/src/ts-morph-generator/index.d.ts.map +1 -1
  201. package/dist/src/ts-morph-generator/index.js +2 -2
  202. package/dist/src/ts-morph-generator/index.js.map +1 -1
  203. package/dist/src/ts-morph-generator/utilities/DeclarationManager.d.ts +5 -0
  204. package/dist/src/ts-morph-generator/utilities/DeclarationManager.d.ts.map +1 -0
  205. package/dist/src/ts-morph-generator/utilities/DeclarationManager.js +10 -0
  206. package/dist/src/ts-morph-generator/utilities/DeclarationManager.js.map +1 -0
  207. package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts +2 -2
  208. package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts.map +1 -1
  209. package/dist/src/ts-morph-generator/utilities/ImportManager.d.ts +2 -1
  210. package/dist/src/ts-morph-generator/utilities/ImportManager.d.ts.map +1 -1
  211. package/dist/src/ts-morph-generator/utilities/ImportManager.js +13 -3
  212. package/dist/src/ts-morph-generator/utilities/ImportManager.js.map +1 -1
  213. package/dist/src/ts-morph-generator/utilities/index.d.ts +1 -0
  214. package/dist/src/ts-morph-generator/utilities/index.d.ts.map +1 -1
  215. package/dist/src/ts-morph-generator/utilities/index.js +1 -0
  216. package/dist/src/ts-morph-generator/utilities/index.js.map +1 -1
  217. package/dist/src/utils/index.d.ts +0 -1
  218. package/dist/src/utils/index.d.ts.map +1 -1
  219. package/dist/src/utils/index.js +0 -1
  220. package/dist/src/utils/index.js.map +1 -1
  221. package/dist/src/utils/validation.d.ts +6 -6
  222. package/dist/src/utils/validation.d.ts.map +1 -1
  223. package/dist/src/utils/validation.js +5 -6
  224. package/dist/src/utils/validation.js.map +1 -1
  225. package/dist/tsconfig.tsbuildinfo +1 -0
  226. package/dist/vitest.config.d.ts +3 -0
  227. package/dist/vitest.config.d.ts.map +1 -0
  228. package/dist/vitest.config.js +16 -0
  229. package/dist/vitest.config.js.map +1 -0
  230. package/package.json +27 -28
  231. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.d.ts +0 -25
  232. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.d.ts.map +0 -1
  233. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.js.map +0 -1
  234. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/lib.inject_export.esm.t +0 -7
  235. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/object.esm.t +0 -49
  236. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.d.ts +0 -23
  237. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.d.ts.map +0 -1
  238. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js.map +0 -1
  239. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/object.esm.t +0 -37
  240. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.d.ts +0 -22
  241. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.d.ts.map +0 -1
  242. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.js.map +0 -1
  243. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/EditorContainer.esm.t +0 -124
  244. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FileItemsGrid.esm.t +0 -44
  245. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderItemsGrid.esm.t +0 -96
  246. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/hooks/useSelectedFolderChildren.esm.t +0 -35
  247. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/hooks/useTransformedNodes.esm.t +0 -35
  248. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.esm.t +0 -20
  249. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/lib.inject_export.esm.t +0 -7
  250. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/types/css.d.esm.t +0 -8
  251. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.d.ts +0 -20
  252. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.d.ts.map +0 -1
  253. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.esm.t +0 -22
  254. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js.map +0 -1
  255. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/lib.inject_export.esm.t +0 -7
  256. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.d.ts +0 -14
  257. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.d.ts.map +0 -1
  258. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.js.map +0 -1
  259. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.d.ts +0 -20
  260. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.d.ts.map +0 -1
  261. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.js.map +0 -1
  262. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.d.ts +0 -20
  263. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.d.ts.map +0 -1
  264. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.js.map +0 -1
  265. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.d.ts +0 -16
  266. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.d.ts.map +0 -1
  267. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.js.map +0 -1
  268. package/dist/src/ts-morph-generator/core/index.d.ts +0 -4
  269. package/dist/src/ts-morph-generator/core/index.d.ts.map +0 -1
  270. package/dist/src/ts-morph-generator/core/index.js +0 -4
  271. package/dist/src/ts-morph-generator/core/index.js.map +0 -1
  272. package/dist/src/ts-morph-generator/file-generators/ReducerGenerator.d.ts +0 -9
  273. package/dist/src/ts-morph-generator/file-generators/ReducerGenerator.d.ts.map +0 -1
  274. package/dist/src/ts-morph-generator/file-generators/ReducerGenerator.js +0 -69
  275. package/dist/src/ts-morph-generator/file-generators/ReducerGenerator.js.map +0 -1
  276. package/dist/src/ts-morph-generator/file-generators/index.d.ts +0 -2
  277. package/dist/src/ts-morph-generator/file-generators/index.d.ts.map +0 -1
  278. package/dist/src/ts-morph-generator/file-generators/index.js +0 -2
  279. package/dist/src/ts-morph-generator/file-generators/index.js.map +0 -1
  280. package/dist/src/utils/package-manager.d.ts.map +0 -1
  281. package/dist/src/utils/package-manager.js.map +0 -1
  282. package/dist/tsconfig.hygen.tsbuildinfo +0 -1
  283. package/dist/tsconfig.lib.tsbuildinfo +0 -1
@@ -0,0 +1,93 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= paramCaseDocumentType %>/gen/ph-factories.ts"
3
+ force: true
4
+ ---
5
+ /**
6
+ * Factory methods for creating <%= phDocumentTypeName %> instances
7
+ */
8
+ import type {
9
+ PHAuthState,
10
+ PHDocumentState,
11
+ PHBaseState,
12
+ } from "document-model";
13
+ import {
14
+ createBaseState,
15
+ defaultBaseState,
16
+ } from "document-model/core";
17
+ import type {
18
+ <%= phDocumentTypeName %>,
19
+ <%= localStateName %>,
20
+ <%= globalStateName %>,
21
+ <%= phStateName %>,
22
+ } from "./types.js";
23
+ import { createDocument } from "./utils.js";
24
+
25
+ export function defaultGlobalState(): <%= globalStateName %> {
26
+ return <%- initialGlobalState %>;
27
+ }
28
+
29
+ export function defaultLocalState(): <%= localStateName %> {
30
+ return <%- initialLocalState %>;
31
+ }
32
+
33
+ export function defaultPHState(): <%= phStateName %> {
34
+ return {
35
+ ...defaultBaseState(),
36
+ global: defaultGlobalState(),
37
+ local: defaultLocalState(),
38
+ };
39
+ }
40
+
41
+ export function createGlobalState(
42
+ state?: Partial<<%= globalStateName %>>,
43
+ ): <%= globalStateName %> {
44
+ return {
45
+ ...defaultGlobalState(),
46
+ ...(state || {}),
47
+ } as <%= globalStateName %>;
48
+ }
49
+
50
+ export function createLocalState(
51
+ state?: Partial<<%= localStateName %>>,
52
+ ): <%= localStateName %> {
53
+ return {
54
+ ...defaultLocalState(),
55
+ ...(state || {}),
56
+ } as <%= localStateName %>;
57
+ }
58
+
59
+ export function createState(
60
+ baseState?: Partial<PHBaseState>,
61
+ globalState?: Partial<<%= globalStateName %>>,
62
+ localState?: Partial<<%= localStateName %>>,
63
+ ): <%= phStateName %> {
64
+ return {
65
+ ...createBaseState(baseState?.auth, baseState?.document),
66
+ global: createGlobalState(globalState),
67
+ local: createLocalState(localState),
68
+ };
69
+ }
70
+
71
+ /**
72
+ * Creates a <%= phDocumentTypeName %> with custom global and local state
73
+ * This properly handles the PHBaseState requirements while allowing
74
+ * document-specific state to be set.
75
+ */
76
+ export function create<%= phDocumentTypeName %>(
77
+ state?: Partial<{
78
+ auth?: Partial<PHAuthState>;
79
+ document?: Partial<PHDocumentState>;
80
+ global?: Partial<<%= globalStateName %>>;
81
+ local?: Partial<<%= localStateName %>>;
82
+ }>,
83
+ ): <%= phDocumentTypeName %> {
84
+ const document = createDocument(
85
+ state ? createState(
86
+ createBaseState(state.auth, state.document),
87
+ state.global,
88
+ state.local,
89
+ ) : undefined
90
+ );
91
+
92
+ return document;
93
+ }
@@ -1,15 +1,27 @@
1
1
  ---
2
- to: "<%= rootDir %>/<%= h.changeCase.param(documentType) %>/gen/reducer.ts"
2
+ to: "<%= rootDir %>/<%= paramCaseDocumentType %>/gen/reducer.ts"
3
3
  force: true
4
4
  ---
5
- import { type StateReducer, isDocumentAction, createReducer } from "document-model";
6
- import { <%= 'type ' + h.changeCase.pascal(documentType) %>Document, z } from './types.js';
5
+ // TODO: remove eslint-disable rules once refactor is done
6
+ /* eslint-disable @typescript-eslint/no-unsafe-member-access */
7
+ /* eslint-disable @typescript-eslint/no-unsafe-argument */
8
+ import type { StateReducer } from "document-model";
9
+ import { isDocumentAction, createReducer } from "document-model/core";
10
+ import type { <%= phStateName %> } from "<%= documentModelDir %>";
7
11
 
8
- <% modules.forEach(m => { _%>
9
- import { reducer as <%= h.changeCase.pascal(m.name) %>Reducer } from '../src/reducers/<%= h.changeCase.param(m.name) %>.js';
12
+ <% modules.forEach(module => { _%>
13
+ import { <%= camelCaseDocumentType %><%= h.changeCase.pascal(module.name) %>Operations } from "../src/reducers/<%= h.changeCase.param(module.name) %>.js";
10
14
  <%_ }); %>
11
15
 
12
- const stateReducer: StateReducer<<%= h.changeCase.pascal(documentType) %>Document> =
16
+ <% const schemas = modules.flatMap(m =>
17
+ m.operations.map(o => `${h.changeCase.pascalCase(o.name)}InputSchema`)
18
+ );
19
+ %>
20
+ import {
21
+ <%= schemas.join(',\n ') %>
22
+ } from "./schema/zod.js";
23
+
24
+ const stateReducer: StateReducer<<%= phStateName %>> =
13
25
  (state, action, dispatch) => {
14
26
  if (isDocumentAction(action)) {
15
27
  return state;
@@ -20,9 +32,9 @@ const stateReducer: StateReducer<<%= h.changeCase.pascal(documentType) %>Documen
20
32
  modules.map(m => m.operations.map(o =>
21
33
  ' case "' + h.changeCase.constant(o.name) + '":\n' +
22
34
  ' ' + (o.schema !== null ?
23
- 'z.' + h.changeCase.pascalCase(o.name) + 'InputSchema().parse(action.input);\n' :
35
+ h.changeCase.pascalCase(o.name) + 'InputSchema().parse(action.input);\n' :
24
36
  'if (Object.keys(action.input).length > 0) throw new Error("Expected empty input for action ' + h.changeCase.constant(o.name) + '");\n') +
25
- ' ' + h.changeCase.pascal(m.name) + 'Reducer.' + h.changeCase.camel(o.name) + 'Operation((state as any)[action.scope], action as any, dispatch);\n' +
37
+ ' ' + camelCaseDocumentType + h.changeCase.pascal(m.name) + 'Operations.' + h.changeCase.camel(o.name) + 'Operation((state as any)[action.scope], action as any, dispatch);\n' +
26
38
  ' break;\n'
27
39
  ).join('\n')).join('\n')
28
40
  %>
@@ -31,4 +43,4 @@ const stateReducer: StateReducer<<%= h.changeCase.pascal(documentType) %>Documen
31
43
  }
32
44
  }
33
45
 
34
- export const reducer = createReducer<<%= h.changeCase.pascal(documentType) %>Document>(stateReducer);
46
+ export const reducer = createReducer<<%= phStateName %>>(stateReducer);
@@ -0,0 +1,11 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= paramCaseDocumentType %>/utils.ts"
3
+ force: true
4
+ ---
5
+ import type { DocumentModelUtils } from "document-model";
6
+ import type { <%= phStateName %> } from "./gen/types.js";
7
+ import { utils as genUtils } from "./gen/utils.js";
8
+ import * as customUtils from "./src/utils.js";
9
+
10
+ /** Utils for the <%= pascalCaseDocumentType %> document model */
11
+ export const utils = { ...genUtils, ...customUtils } satisfies DocumentModelUtils<<%= phStateName %>>;
@@ -0,0 +1,13 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= paramCaseDocumentType %>/actions.ts"
3
+ force: true
4
+ ---
5
+ import { baseActions } from "document-model";
6
+ import { <% modules.forEach(module => { _%>
7
+ <%= h.changeCase.camel(module.name) %>Actions,
8
+ <% }); _%> } from "./gen/creators.js";
9
+
10
+ /** Actions for the <%= pascalCaseDocumentType %> document model */
11
+ export const actions = { ...baseActions, <% modules.forEach(module => { _%>
12
+ ...<%= h.changeCase.camel(module.name) %>Actions,
13
+ <% }); _%> };
@@ -1,5 +1,5 @@
1
1
  ---
2
- to: "<%= rootDir %>/<%= h.changeCase.param(documentType) %>/index.ts"
2
+ to: "<%= rootDir %>/<%= paramCaseDocumentType %>/index.ts"
3
3
  force: true
4
4
  ---
5
5
  /**
@@ -7,29 +7,8 @@ force: true
7
7
  * Delete the file and run the code generator again to have it reset
8
8
  */
9
9
 
10
- import { actions as BaseActions, type DocumentModelModule } from 'document-model';
11
- import { actions as <%= h.changeCase.pascal(documentType) %>Actions } from './gen/index.js';
12
- import { reducer } from './gen/reducer.js';
13
- import { documentModel } from './gen/document-model.js';
14
- import genUtils from './gen/utils.js';
15
- import * as customUtils from './src/utils.js';
16
- import {
17
- <%= 'type ' + h.changeCase.pascal(documentType) %>Document,
18
- } from './gen/types.js';
19
-
20
- const utils = { ...genUtils, ...customUtils };
21
- const actions = { ...BaseActions, ...<%= h.changeCase.pascal(documentType) %>Actions };
22
-
23
- export const module: DocumentModelModule<
24
- <%= h.changeCase.pascal(documentType) %>Document
25
- > = {
26
- reducer,
27
- actions,
28
- utils,
29
- documentModel,
30
- };
31
-
32
- export { reducer, actions, utils, documentModel };
33
-
34
- export * from './gen/types.js';
35
- export * from './src/utils.js';
10
+ export * from "./gen/index.js";
11
+ export * from "./src/index.js";
12
+ export * from "./hooks.js";
13
+ export { actions } from "./actions.js";
14
+ export { utils } from "./utils.js";
@@ -1,6 +1,6 @@
1
1
  ---
2
- to: "<%= rootDir %>/<%= h.changeCase.param(documentType) %>/gen/schema/index.ts"
2
+ to: "<%= rootDir %>/<%= paramCaseDocumentType %>/gen/schema/index.ts"
3
3
  force: true
4
4
  ---
5
5
  export * from "./types.js";
6
- export * as z from "./zod.js";
6
+ export * from "./zod.js";
@@ -0,0 +1,5 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= paramCaseDocumentType %>/src/index.ts"
3
+ force: true
4
+ ---
5
+ export * from "./utils.js";
@@ -1,19 +1,31 @@
1
1
  ---
2
- to: "<%= rootDir %>/<%= h.changeCase.param(documentType) %>/gen/types.ts"
2
+ to: "<%= rootDir %>/<%= paramCaseDocumentType %>/gen/types.ts"
3
3
  force: true
4
4
  ---
5
- import type { PHDocument, ExtendedState } from 'document-model';
6
- import type { <%= h.changeCase.pascal(documentType) %>State } from './schema/types.js';
5
+ import type { PHDocument, PHBaseState } from 'document-model';
6
+ import type { <%= actionTypeName %> } from './actions.js';
7
+ import type {
8
+ <%= stateName %> as <%= globalStateName %>,
7
9
  <% if(hasLocalSchema) { -%>
8
- import type { <%= h.changeCase.pascal(documentType) %>LocalState } from './schema/types.js';
10
+ <%= localStateName %>,
9
11
  <%} -%>
10
- import type { <%= h.changeCase.pascal(documentType) %>Action } from './actions.js';
12
+ } from './schema/types.js';
11
13
 
12
- export { z } from './schema/index.js';
13
- export type * from './schema/types.js';
14
14
  <% if(!hasLocalSchema) { -%>
15
- <%= 'type ' + h.changeCase.pascal(documentType) %>LocalState = Record<PropertyKey, never>;
15
+ <%= 'type ' + localStateName %> = Record<PropertyKey, never>;
16
16
  <%} -%>
17
- export type Extended<%= h.changeCase.pascal(documentType) %>State = ExtendedState<<%= h.changeCase.pascal(documentType) %>State, <%= h.changeCase.pascal(documentType) %>LocalState>;
18
- export <%= 'type ' + h.changeCase.pascal(documentType) %>Document = PHDocument<<%= h.changeCase.pascal(documentType) %>State, <%= h.changeCase.pascal(documentType) %>LocalState>;
19
- export type { <%= h.changeCase.pascal(documentType) %>State, <%= h.changeCase.pascal(documentType) %>LocalState, <%= h.changeCase.pascal(documentType) %>Action };
17
+ type <%= phStateName %> = PHBaseState & {
18
+ global: <%= globalStateName %>;
19
+ local: <%= localStateName %>;
20
+ };
21
+ type <%= phDocumentTypeName %> = PHDocument<<%= phStateName %>>;
22
+
23
+ export * from './schema/types.js';
24
+
25
+ export type {
26
+ <%= globalStateName %>,
27
+ <%= localStateName %>,
28
+ <%= phStateName %>,
29
+ <%= actionTypeName %>,
30
+ <%= phDocumentTypeName %>,
31
+ };
@@ -1,63 +1,77 @@
1
1
  ---
2
- to: "<%= rootDir %>/<%= h.changeCase.param(documentType) %>/gen/utils.ts"
2
+ to: "<%= rootDir %>/<%= paramCaseDocumentType %>/gen/utils.ts"
3
3
  force: true
4
4
  ---
5
+ import type {
6
+ DocumentModelUtils,
7
+ } from "document-model";
5
8
  import {
6
- type DocumentModelUtils,
7
9
  baseCreateDocument,
8
- baseCreateExtendedState,
9
- baseSaveToFile,
10
10
  baseSaveToFileHandle,
11
- baseLoadFromFile,
12
11
  baseLoadFromInput,
12
+ defaultBaseState,
13
13
  generateId,
14
- } from 'document-model';
15
- import {
16
- <%= 'type ' + h.changeCase.pascal(documentType) %>Document,
17
- <%= 'type ' + h.changeCase.pascal(documentType) %>State,
18
- <%= 'type ' + h.changeCase.pascal(documentType) %>LocalState
14
+ } from 'document-model/core';
15
+ import type {
16
+ <%= globalStateName %>,
17
+ <%= localStateName %>
19
18
  } from './types.js';
19
+ import type { <%= phStateName %> } from './types.js';
20
20
  import { reducer } from './reducer.js';
21
+ import { <%= documentTypeVariableName %> } from "./document-type.js";
22
+ import {
23
+ <%= isPhDocumentOfTypeFunctionName %>,
24
+ <%= assertIsPhDocumentOfTypeFunctionName %>,
25
+ <%= isPhStateOfTypeFunctionName %>,
26
+ <%= assertIsPhStateOfTypeFunctionName %>,
27
+ } from "./document-schema.js";
21
28
 
22
- export const initialGlobalState: <%= h.changeCase.pascal(documentType) %>State = <%- initialGlobalState %>;
23
- export const initialLocalState: <%= h.changeCase.pascal(documentType) %>LocalState = <%- initialLocalState %>;
29
+ export const initialGlobalState: <%= globalStateName %> = <%- initialGlobalState %>;
30
+ export const initialLocalState: <%= localStateName %> = <%- initialLocalState %>;
24
31
 
25
- const utils: DocumentModelUtils<<%= h.changeCase.pascal(documentType) %>Document> = {
32
+ export const utils: DocumentModelUtils<<%= phStateName %>> = {
26
33
  fileExtension: '<%- fileExtension %>',
27
34
  createState(state) {
28
- return { global: { ...initialGlobalState, ...state?.global }, local: { ...initialLocalState, ...state?.local } };
29
- },
30
- createExtendedState(extendedState) {
31
- return baseCreateExtendedState(
32
- { ...extendedState },
33
- utils.createState
34
- );
35
+ return { ...defaultBaseState(), global: { ...initialGlobalState, ...state?.global }, local: { ...initialLocalState, ...state?.local } };
35
36
  },
36
37
  createDocument(state) {
37
38
  const document = baseCreateDocument(
38
- utils.createExtendedState(state),
39
- utils.createState
39
+ utils.createState,
40
+ state
40
41
  );
41
42
 
42
- document.header.documentType = '<%- documentTypeId %>';
43
+ document.header.documentType = <%= documentTypeVariableName %>;
43
44
 
44
45
  // for backwards compatibility, but this is NOT a valid signed document id
45
46
  document.header.id = generateId();
46
47
 
47
48
  return document;
48
49
  },
49
- saveToFile(document, path, name) {
50
- return baseSaveToFile(document, path, '<%- fileExtension %>', name);
51
- },
52
50
  saveToFileHandle(document, input) {
53
51
  return baseSaveToFileHandle(document, input);
54
52
  },
55
- loadFromFile(path) {
56
- return baseLoadFromFile(path, reducer);
57
- },
58
53
  loadFromInput(input) {
59
54
  return baseLoadFromInput(input, reducer);
60
55
  },
56
+ isStateOfType(state) {
57
+ return <%= isPhStateOfTypeFunctionName %>(state);
58
+ },
59
+ assertIsStateOfType(state) {
60
+ return <%= assertIsPhStateOfTypeFunctionName %>(state);
61
+ },
62
+ isDocumentOfType(document) {
63
+ return <%= isPhDocumentOfTypeFunctionName %>(document);
64
+ },
65
+ assertIsDocumentOfType(document) {
66
+ return <%= assertIsPhDocumentOfTypeFunctionName %>(document);
67
+ },
61
68
  };
62
69
 
63
- export default utils;
70
+ export const createDocument = utils.createDocument;
71
+ export const createState = utils.createState;
72
+ export const saveToFileHandle = utils.saveToFileHandle;
73
+ export const loadFromInput = utils.loadFromInput;
74
+ export const isStateOfType = utils.isStateOfType;
75
+ export const assertIsStateOfType = utils.assertIsStateOfType;
76
+ export const isDocumentOfType = utils.isDocumentOfType;
77
+ export const assertIsDocumentOfType = utils.assertIsDocumentOfType;
@@ -2,15 +2,20 @@
2
2
  to: "<%= rootDir %>/<%= h.changeCase.param(documentType) %>/gen/<%= module %>/creators.ts"
3
3
  force: true
4
4
  ---
5
- import { createAction<% if (actions.find(a => a.hasAttachment)) {%>, AttachmentInput<%}%> } from 'document-model';
6
- import { z,
5
+ import { createAction<% if (actions.find(a => a.hasAttachment)) {%>, AttachmentInput<%}%> } from 'document-model/core';
6
+ import {
7
+ <% actions.filter(a => a.hasInput).forEach(action => { _%>
8
+ <%= h.changeCase.pascal(action.name) %>InputSchema,
9
+ <% }); _%>
10
+ } from '../schema/zod.js';
11
+ import type {
7
12
  <% actions.filter(a => a.hasInput).forEach(action => { _%>
8
- <%= 'type ' + h.changeCase.pascal(action.name) %>Input,
13
+ <%= h.changeCase.pascal(action.name) %>Input,
9
14
  <% }); _%>
10
15
  } from '../types.js';
11
- import {
16
+ import type {
12
17
  <% actions.forEach(action => { _%>
13
- <%= 'type ' + h.changeCase.pascal(action.name) %>Action,
18
+ <%= h.changeCase.pascal(action.name) %>Action,
14
19
  <% }); _%>
15
20
  } from './actions.js';
16
21
 
@@ -20,7 +25,7 @@ export const <%= h.changeCase.camel(action.name) %> = (input: <%= h.changeCase.p
20
25
  '<%= h.changeCase.constantCase(action.name) %>',
21
26
  {...input},
22
27
  <%if(action.hasAttachment){ %>attachments<% } else { %>undefined<% } %>,
23
- z.<%= h.changeCase.pascalCase(action.name) %>InputSchema,
28
+ <%= h.changeCase.pascalCase(action.name) %>InputSchema,
24
29
  '<%= action.scope %>'
25
30
  );
26
31
 
@@ -7,42 +7,37 @@ unless_exists: true
7
7
  * - change it by adding new tests or modifying the existing ones
8
8
  */
9
9
 
10
- import { describe, it, expect, beforeEach } from 'vitest';
10
+ import { describe, it, expect } from 'vitest';
11
11
  import { generateMock } from '@powerhousedao/codegen';
12
- import utils from '../../gen/utils.js';
13
12
  import {
14
- z,
15
- <% actions.forEach(action => { _%>
16
- <%= 'type ' + h.changeCase.pascal(action.name) %>Input,
13
+ reducer,
14
+ utils,
15
+ <%= isPhDocumentOfTypeFunctionName %>,
16
+ <% actions.forEach(action => { _%>
17
+ <%= h.changeCase.camel(action.name) %>,
18
+ <%= h.changeCase.pascal(action.name) %>InputSchema,
17
19
  <% }); _%>
18
- } from '../../gen/schema/index.js';
19
- import { reducer } from '../../gen/reducer.js';
20
- import * as creators from '../../gen/<%= module %>/creators.js';
21
- import type { <%= h.changeCase.pascal(documentType) %>Document } from '../../gen/types.js';
20
+ } from "<%= documentModelDir %>";
22
21
 
23
22
  describe('<%= h.changeCase.pascal(module) %> Operations', () => {
24
- let document: <%= h.changeCase.pascal(documentType) %>Document;
25
-
26
- beforeEach(() => {
27
- document = utils.createDocument();
28
- });
29
-
30
23
  <% actions.forEach(action => { _%>
31
24
  it('should handle <%= h.changeCase.camel(action.name) %> operation', () => {
32
- const input: <%= h.changeCase.pascal(action.name) %>Input = generateMock(
33
- z.<%= h.changeCase.pascal(action.name) %>InputSchema(),
25
+ const document = utils.createDocument();
26
+ const input = generateMock(
27
+ <%= h.changeCase.pascal(action.name) %>InputSchema(),
34
28
  );
35
29
 
36
30
  const updatedDocument = reducer(
37
31
  document,
38
- creators.<%= h.changeCase.camel(action.name) %>(input),
32
+ <%= h.changeCase.camel(action.name) %>(input),
39
33
  );
40
34
 
35
+ expect(<%= isPhDocumentOfTypeFunctionName %>(updatedDocument)).toBe(true);
41
36
  expect(updatedDocument.operations.<%= action.scope %>).toHaveLength(1);
42
- expect(updatedDocument.operations.<%= action.scope %>[0].type).toBe(
37
+ expect(updatedDocument.operations.<%= action.scope %>[0].action.type).toBe(
43
38
  '<%= h.changeCase.constant(action.name) %>',
44
39
  );
45
- expect(updatedDocument.operations.<%= action.scope %>[0].input).toStrictEqual(input);
40
+ expect(updatedDocument.operations.<%= action.scope %>[0].action.input).toStrictEqual(input);
46
41
  expect(updatedDocument.operations.<%= action.scope %>[0].index).toEqual(0);
47
42
  });
48
43
  <% }); _%>
@@ -2,20 +2,17 @@
2
2
  to: "<%= rootDir %>/<%= h.changeCase.param(documentType) %>/gen/<%= module %>/error.ts"
3
3
  force: true
4
4
  ---
5
- <% if (actions.some(action => action.errors?.length > 0)) { _%>
5
+ <% if (errors.length > 0) { _%>
6
6
  export type ErrorCode =
7
- <% actions.forEach((action, actionIndex) => { _%>
8
- <% action.errors.forEach((error, errorIndex) => { _%>
9
- | '<%= h.changeCase.pascal(error.name) %>'<% if (actionIndex === actions.length - 1 && errorIndex === action.errors.length - 1) { %>;<% } %>
10
- <% }); _%>
7
+ <% errors.forEach((error, errorIndex) => { _%>
8
+ | '<%= h.changeCase.pascal(error.name) %>'<% if (errorIndex === errors.length - 1) { %>;<% } %>
11
9
  <% }); _%>
12
10
 
13
11
  export interface ReducerError {
14
12
  errorCode: ErrorCode;
15
13
  }
16
14
 
17
- <% actions.forEach(action => { _%>
18
- <% action.errors.forEach(error => { _%>
15
+ <% errors.forEach(error => { _%>
19
16
  export class <%= h.changeCase.pascal(error.name) %> extends Error implements ReducerError {
20
17
  errorCode = '<%= h.changeCase.pascal(error.name) %>' as ErrorCode;
21
18
  constructor(message = '<%= h.changeCase.pascal(error.name) %>') {
@@ -23,7 +20,6 @@ export class <%= h.changeCase.pascal(error.name) %> extends Error implements Red
23
20
  }
24
21
  }
25
22
 
26
- <% }); _%>
27
23
  <% }); _%>
28
24
 
29
25
  <% } _%>
@@ -32,9 +28,9 @@ export const errors = {
32
28
  <% if(action.errors?.length > 0){ -%>
33
29
  <%= h.changeCase.pascal(action.name) %>: {
34
30
  <% action.errors.forEach(error => { _%>
35
- <%= h.changeCase.pascal(error.name) %>,
31
+ <%= h.changeCase.pascal(error.name) %>,
36
32
  <% }); _%>
37
- },
33
+ },
38
34
  <% } -%>
39
35
  <% }); _%>
40
36
  };
@@ -1,28 +1,68 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const change_case_1 = require("change-case");
4
- exports.default = {
5
- params: ({ args }) => {
6
- const documentModel = JSON.parse(args.documentModel);
7
- const latestSpec = documentModel.specifications[documentModel.specifications.length - 1];
8
- const filteredModules = latestSpec.modules.filter((m) => m.name === args.module);
9
- const actions = filteredModules.length > 0
10
- ? filteredModules[0].operations.map((a) => ({
11
- name: a.name,
12
- hasInput: a.schema !== null,
13
- hasAttachment: a.schema?.includes(": Attachment"),
14
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
15
- scope: a.scope || "global",
16
- state: a.scope === "global" ? "" : a.scope, // the state this action affects
17
- errors: a.errors,
18
- }))
19
- : [];
20
- return {
21
- rootDir: args.rootDir,
22
- documentType: documentModel.name,
23
- module: (0, change_case_1.paramCase)(args.module),
24
- actions,
25
- };
26
- },
1
+ // @ts-check
2
+ const { paramCase, pascalCase } = require("change-case");
3
+
4
+ module.exports = {
5
+ params: ({ args }) => {
6
+ const documentModel = JSON.parse(args.documentModel);
7
+ const latestSpec =
8
+ documentModel.specifications[documentModel.specifications.length - 1];
9
+ const filteredModules = latestSpec.modules.filter(
10
+ (m) => m.name === args.module,
11
+ );
12
+
13
+ const actions =
14
+ filteredModules.length > 0
15
+ ? filteredModules[0].operations.map((a) => ({
16
+ name: a.name,
17
+ hasInput: a.schema !== null,
18
+ hasAttachment: a.schema?.includes(": Attachment"),
19
+ scope: a.scope || "global",
20
+ state: a.scope === "global" ? "" : a.scope, // the state this action affects
21
+ errors: a.errors,
22
+ }))
23
+ : [];
24
+
25
+ const errors = actions.reduce((acc, action) => {
26
+ action.errors.forEach((error) => {
27
+ // Fallback: If error code is empty, generate it from the error name in PascalCase
28
+ const errorCode = error.code || pascalCase(error.name || "");
29
+ const normalizedError = { ...error, code: errorCode };
30
+
31
+ const existingError = acc.find((e) => e.code === errorCode);
32
+ if (!existingError) {
33
+ acc.push(normalizedError);
34
+ } else if (
35
+ JSON.stringify(existingError) !== JSON.stringify(normalizedError)
36
+ ) {
37
+ console.warn(
38
+ `Warning: Duplicate error code "${errorCode}" with different fields found`,
39
+ );
40
+ }
41
+ });
42
+ return acc;
43
+ }, []);
44
+
45
+ const documentType = documentModel.name;
46
+ const pascalCaseDocumentType = pascalCase(documentType);
47
+ const phDocumentTypeName = `${pascalCaseDocumentType}Document`;
48
+ const isPhDocumentOfTypeFunctionName = `is${phDocumentTypeName}`;
49
+ const assertIsPhDocumentOfTypeFunctionName = `assertIs${phDocumentTypeName}`;
50
+ const paramCaseDocumentType = paramCase(documentType);
51
+ const packageName = args.packageName;
52
+ const documentModelDir = `${packageName}/document-models/${paramCaseDocumentType}`;
53
+ return {
54
+ rootDir: args.rootDir,
55
+ documentType: documentModel.name,
56
+ module: paramCase(args.module),
57
+ actions,
58
+ errors,
59
+ pascalCaseDocumentType,
60
+ paramCaseDocumentType,
61
+ packageName,
62
+ documentModelDir,
63
+ phDocumentTypeName,
64
+ isPhDocumentOfTypeFunctionName,
65
+ assertIsPhDocumentOfTypeFunctionName,
66
+ };
67
+ },
27
68
  };
28
- //# sourceMappingURL=index.js.map