@powerhousedao/codegen 6.0.0-dev.19 → 6.0.0-dev.190

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 (688) hide show
  1. package/{dist/src/templates/boilerplate/LICENSE.js → LICENSE} +1 -4
  2. package/dist/file-builders-BV9wDPPZ.mjs +1652 -0
  3. package/dist/file-builders-BV9wDPPZ.mjs.map +1 -0
  4. package/dist/index-CHAnPBj2.d.mts +199 -0
  5. package/dist/index-CHAnPBj2.d.mts.map +1 -0
  6. package/dist/index-CJZGVSYg.d.mts +65 -0
  7. package/dist/index-CJZGVSYg.d.mts.map +1 -0
  8. package/dist/index.d.mts +298 -0
  9. package/dist/index.d.mts.map +1 -0
  10. package/dist/index.mjs +802 -0
  11. package/dist/index.mjs.map +1 -0
  12. package/dist/src/file-builders/index.d.mts +3 -0
  13. package/dist/src/file-builders/index.mjs +3 -0
  14. package/dist/src/name-builders/index.d.mts +2 -0
  15. package/dist/src/name-builders/index.mjs +146 -0
  16. package/dist/src/name-builders/index.mjs.map +1 -0
  17. package/dist/src/templates/index.d.mts +415 -0
  18. package/dist/src/templates/index.d.mts.map +1 -0
  19. package/dist/src/templates/index.mjs +2 -0
  20. package/dist/src/utils/index.d.mts +125 -0
  21. package/dist/src/utils/index.d.mts.map +1 -0
  22. package/dist/src/utils/index.mjs +380 -0
  23. package/dist/src/utils/index.mjs.map +1 -0
  24. package/dist/templates-BbNsigQX.mjs +6387 -0
  25. package/dist/templates-BbNsigQX.mjs.map +1 -0
  26. package/dist/types-e2ztuDtG.d.mts +87 -0
  27. package/dist/types-e2ztuDtG.d.mts.map +1 -0
  28. package/dist/validation-Bpg_44mW.d.mts +43 -0
  29. package/dist/validation-Bpg_44mW.d.mts.map +1 -0
  30. package/package.json +31 -58
  31. package/dist/index.d.ts +0 -8
  32. package/dist/index.d.ts.map +0 -1
  33. package/dist/index.js +0 -7
  34. package/dist/index.js.map +0 -1
  35. package/dist/src/codegen/.hygen/package.json +0 -6
  36. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/index.js +0 -10
  37. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/resolvers.esm.t +0 -17
  38. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/schema.esm.t +0 -16
  39. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/actions.esm.t +0 -16
  40. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/creators.esm.t +0 -9
  41. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/customUtils.esm.t +0 -5
  42. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/document-schema.esm.t +0 -56
  43. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/document-type.esm.t +0 -6
  44. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/documentModel.esm.t +0 -7
  45. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/documentModelTest.esm.t +0 -121
  46. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/hooks.esm.t +0 -49
  47. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.esm.t +0 -23
  48. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.js +0 -127
  49. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/module.esm.t +0 -22
  50. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/ph-factories.esm.t +0 -93
  51. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/reducer.esm.t +0 -46
  52. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/root-utils.esm.t +0 -11
  53. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/rootActions.esm.t +0 -13
  54. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/rootIndex.esm.t +0 -14
  55. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/schema.esm.t +0 -6
  56. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/src-index.esm.t +0 -5
  57. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/types.esm.t +0 -31
  58. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/utils.esm.t +0 -77
  59. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/actions.esm.t +0 -22
  60. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/creators.esm.t +0 -37
  61. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/customTest.esm.t +0 -44
  62. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/error.esm.t +0 -36
  63. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js +0 -71
  64. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/operations.esm.t +0 -17
  65. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.js +0 -118
  66. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/resolvers.esm.t +0 -130
  67. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/schema.esm.t +0 -44
  68. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/CreateDocument.esm.t +0 -58
  69. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveContents.esm.t +0 -23
  70. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveExplorer.esm.t +0 -32
  71. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/EmptyState.esm.t +0 -19
  72. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/Files.esm.t +0 -29
  73. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderTree.esm.t +0 -108
  74. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/Folders.esm.t +0 -28
  75. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/NavigationBreadcrumbs.esm.t +0 -14
  76. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/config.esm.t +0 -11
  77. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editor.esm.t +0 -20
  78. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.js +0 -25
  79. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/module.esm.t +0 -15
  80. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/editor.esm.t +0 -80
  81. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js +0 -90
  82. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/module.esm.t +0 -16
  83. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.esm.t +0 -59
  84. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.js +0 -9
  85. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/utils.esm.t +0 -100
  86. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/factory.esm.t +0 -22
  87. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.esm.t +0 -62
  88. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.js +0 -12
  89. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.root.esm.t +0 -10
  90. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.root.inject.esm.t +0 -12
  91. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.esm.t +0 -34
  92. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_call.esm.t +0 -7
  93. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_export.esm.t +0 -7
  94. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_import.esm.t +0 -7
  95. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/factory.esm.t +0 -40
  96. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.esm.t +0 -47
  97. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.js +0 -12
  98. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.root.esm.t +0 -10
  99. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.root.inject.esm.t +0 -12
  100. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.esm.t +0 -34
  101. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.inject_call.esm.t +0 -7
  102. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.inject_export.esm.t +0 -9
  103. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.inject_import.esm.t +0 -7
  104. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/migrations.esm.t +0 -23
  105. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/schema.esm.t +0 -13
  106. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.esm.t +0 -17
  107. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.js +0 -10
  108. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/lib.esm.t +0 -9
  109. package/dist/src/codegen/__tests__/config.d.ts +0 -3
  110. package/dist/src/codegen/__tests__/config.d.ts.map +0 -1
  111. package/dist/src/codegen/__tests__/config.js +0 -3
  112. package/dist/src/codegen/__tests__/config.js.map +0 -1
  113. package/dist/src/codegen/__tests__/constants.d.ts +0 -16
  114. package/dist/src/codegen/__tests__/constants.d.ts.map +0 -1
  115. package/dist/src/codegen/__tests__/constants.js +0 -16
  116. package/dist/src/codegen/__tests__/constants.js.map +0 -1
  117. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.d.ts +0 -2
  118. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.d.ts.map +0 -1
  119. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.js +0 -9
  120. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.js.map +0 -1
  121. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.d.ts +0 -3
  122. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.d.ts.map +0 -1
  123. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.js +0 -33
  124. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.js.map +0 -1
  125. package/dist/src/codegen/__tests__/fixtures/run-generated-tests.d.ts +0 -2
  126. package/dist/src/codegen/__tests__/fixtures/run-generated-tests.d.ts.map +0 -1
  127. package/dist/src/codegen/__tests__/fixtures/run-generated-tests.js +0 -23
  128. package/dist/src/codegen/__tests__/fixtures/run-generated-tests.js.map +0 -1
  129. package/dist/src/codegen/__tests__/fixtures/typecheck.d.ts +0 -2
  130. package/dist/src/codegen/__tests__/fixtures/typecheck.d.ts.map +0 -1
  131. package/dist/src/codegen/__tests__/fixtures/typecheck.js +0 -23
  132. package/dist/src/codegen/__tests__/fixtures/typecheck.js.map +0 -1
  133. package/dist/src/codegen/__tests__/generate-doc-model.test.d.ts +0 -2
  134. package/dist/src/codegen/__tests__/generate-doc-model.test.d.ts.map +0 -1
  135. package/dist/src/codegen/__tests__/generate-doc-model.test.js +0 -234
  136. package/dist/src/codegen/__tests__/generate-doc-model.test.js.map +0 -1
  137. package/dist/src/codegen/__tests__/generate-drive-editor.test.d.ts +0 -2
  138. package/dist/src/codegen/__tests__/generate-drive-editor.test.d.ts.map +0 -1
  139. package/dist/src/codegen/__tests__/generate-drive-editor.test.js +0 -181
  140. package/dist/src/codegen/__tests__/generate-drive-editor.test.js.map +0 -1
  141. package/dist/src/codegen/__tests__/generate-editor.test.d.ts +0 -2
  142. package/dist/src/codegen/__tests__/generate-editor.test.d.ts.map +0 -1
  143. package/dist/src/codegen/__tests__/generate-editor.test.js +0 -119
  144. package/dist/src/codegen/__tests__/generate-editor.test.js.map +0 -1
  145. package/dist/src/codegen/__tests__/generate-manifest.test.d.ts +0 -2
  146. package/dist/src/codegen/__tests__/generate-manifest.test.d.ts.map +0 -1
  147. package/dist/src/codegen/__tests__/generate-manifest.test.js +0 -192
  148. package/dist/src/codegen/__tests__/generate-manifest.test.js.map +0 -1
  149. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.d.ts +0 -2
  150. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.d.ts.map +0 -1
  151. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.js +0 -159
  152. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.js.map +0 -1
  153. package/dist/src/codegen/__tests__/global-setup.d.ts +0 -2
  154. package/dist/src/codegen/__tests__/global-setup.d.ts.map +0 -1
  155. package/dist/src/codegen/__tests__/global-setup.js +0 -21
  156. package/dist/src/codegen/__tests__/global-setup.js.map +0 -1
  157. package/dist/src/codegen/__tests__/ts-morph-generator.test.d.ts +0 -2
  158. package/dist/src/codegen/__tests__/ts-morph-generator.test.d.ts.map +0 -1
  159. package/dist/src/codegen/__tests__/ts-morph-generator.test.js +0 -73
  160. package/dist/src/codegen/__tests__/ts-morph-generator.test.js.map +0 -1
  161. package/dist/src/codegen/__tests__/utils.d.ts +0 -7
  162. package/dist/src/codegen/__tests__/utils.d.ts.map +0 -1
  163. package/dist/src/codegen/__tests__/utils.js +0 -52
  164. package/dist/src/codegen/__tests__/utils.js.map +0 -1
  165. package/dist/src/codegen/generate.d.ts +0 -79
  166. package/dist/src/codegen/generate.d.ts.map +0 -1
  167. package/dist/src/codegen/generate.js +0 -332
  168. package/dist/src/codegen/generate.js.map +0 -1
  169. package/dist/src/codegen/graphql.d.ts +0 -36
  170. package/dist/src/codegen/graphql.d.ts.map +0 -1
  171. package/dist/src/codegen/graphql.js +0 -146
  172. package/dist/src/codegen/graphql.js.map +0 -1
  173. package/dist/src/codegen/hygen.d.ts +0 -47
  174. package/dist/src/codegen/hygen.d.ts.map +0 -1
  175. package/dist/src/codegen/hygen.js +0 -230
  176. package/dist/src/codegen/hygen.js.map +0 -1
  177. package/dist/src/codegen/index.d.ts +0 -7
  178. package/dist/src/codegen/index.d.ts.map +0 -1
  179. package/dist/src/codegen/index.js +0 -7
  180. package/dist/src/codegen/index.js.map +0 -1
  181. package/dist/src/codegen/kysely.d.ts +0 -6
  182. package/dist/src/codegen/kysely.d.ts.map +0 -1
  183. package/dist/src/codegen/kysely.js +0 -51
  184. package/dist/src/codegen/kysely.js.map +0 -1
  185. package/dist/src/codegen/types.d.ts +0 -9
  186. package/dist/src/codegen/types.d.ts.map +0 -1
  187. package/dist/src/codegen/types.js +0 -2
  188. package/dist/src/codegen/types.js.map +0 -1
  189. package/dist/src/codegen/utils.d.ts +0 -7
  190. package/dist/src/codegen/utils.d.ts.map +0 -1
  191. package/dist/src/codegen/utils.js +0 -79
  192. package/dist/src/codegen/utils.js.map +0 -1
  193. package/dist/src/create-lib/checkout-project.d.ts +0 -13
  194. package/dist/src/create-lib/checkout-project.d.ts.map +0 -1
  195. package/dist/src/create-lib/checkout-project.js +0 -47
  196. package/dist/src/create-lib/checkout-project.js.map +0 -1
  197. package/dist/src/create-lib/create-project.d.ts +0 -10
  198. package/dist/src/create-lib/create-project.d.ts.map +0 -1
  199. package/dist/src/create-lib/create-project.js +0 -106
  200. package/dist/src/create-lib/create-project.js.map +0 -1
  201. package/dist/src/create-lib/feature-flags.d.ts +0 -4
  202. package/dist/src/create-lib/feature-flags.d.ts.map +0 -1
  203. package/dist/src/create-lib/feature-flags.js +0 -4
  204. package/dist/src/create-lib/feature-flags.js.map +0 -1
  205. package/dist/src/create-lib/index.d.ts +0 -3
  206. package/dist/src/create-lib/index.d.ts.map +0 -1
  207. package/dist/src/create-lib/index.js +0 -3
  208. package/dist/src/create-lib/index.js.map +0 -1
  209. package/dist/src/create-lib/utils.d.ts +0 -8
  210. package/dist/src/create-lib/utils.d.ts.map +0 -1
  211. package/dist/src/create-lib/utils.js +0 -34
  212. package/dist/src/create-lib/utils.js.map +0 -1
  213. package/dist/src/file-builders/boilerplate/build-package-json.test.d.ts +0 -2
  214. package/dist/src/file-builders/boilerplate/build-package-json.test.d.ts.map +0 -1
  215. package/dist/src/file-builders/boilerplate/build-package-json.test.js +0 -28
  216. package/dist/src/file-builders/boilerplate/build-package-json.test.js.map +0 -1
  217. package/dist/src/file-builders/boilerplate/ci-templates.test.d.ts +0 -2
  218. package/dist/src/file-builders/boilerplate/ci-templates.test.d.ts.map +0 -1
  219. package/dist/src/file-builders/boilerplate/ci-templates.test.js +0 -114
  220. package/dist/src/file-builders/boilerplate/ci-templates.test.js.map +0 -1
  221. package/dist/src/file-builders/boilerplate/package-json-versions.test.d.ts +0 -2
  222. package/dist/src/file-builders/boilerplate/package-json-versions.test.d.ts.map +0 -1
  223. package/dist/src/file-builders/boilerplate/package-json-versions.test.js +0 -34
  224. package/dist/src/file-builders/boilerplate/package-json-versions.test.js.map +0 -1
  225. package/dist/src/file-builders/boilerplate/package.json.d.ts +0 -6
  226. package/dist/src/file-builders/boilerplate/package.json.d.ts.map +0 -1
  227. package/dist/src/file-builders/boilerplate/package.json.js +0 -18
  228. package/dist/src/file-builders/boilerplate/package.json.js.map +0 -1
  229. package/dist/src/file-builders/clis/generate-cli-docs.d.ts +0 -17
  230. package/dist/src/file-builders/clis/generate-cli-docs.d.ts.map +0 -1
  231. package/dist/src/file-builders/clis/generate-cli-docs.js +0 -36
  232. package/dist/src/file-builders/clis/generate-cli-docs.js.map +0 -1
  233. package/dist/src/file-builders/document-editor.d.ts +0 -8
  234. package/dist/src/file-builders/document-editor.d.ts.map +0 -1
  235. package/dist/src/file-builders/document-editor.js +0 -57
  236. package/dist/src/file-builders/document-editor.js.map +0 -1
  237. package/dist/src/file-builders/document-model/document-model.d.ts +0 -8
  238. package/dist/src/file-builders/document-model/document-model.d.ts.map +0 -1
  239. package/dist/src/file-builders/document-model/document-model.js +0 -246
  240. package/dist/src/file-builders/document-model/document-model.js.map +0 -1
  241. package/dist/src/file-builders/document-model/gen-dir.d.ts +0 -3
  242. package/dist/src/file-builders/document-model/gen-dir.d.ts.map +0 -1
  243. package/dist/src/file-builders/document-model/gen-dir.js +0 -201
  244. package/dist/src/file-builders/document-model/gen-dir.js.map +0 -1
  245. package/dist/src/file-builders/document-model/root-dir.d.ts +0 -3
  246. package/dist/src/file-builders/document-model/root-dir.d.ts.map +0 -1
  247. package/dist/src/file-builders/document-model/root-dir.js +0 -51
  248. package/dist/src/file-builders/document-model/root-dir.js.map +0 -1
  249. package/dist/src/file-builders/document-model/src-dir.d.ts +0 -3
  250. package/dist/src/file-builders/document-model/src-dir.d.ts.map +0 -1
  251. package/dist/src/file-builders/document-model/src-dir.js +0 -118
  252. package/dist/src/file-builders/document-model/src-dir.js.map +0 -1
  253. package/dist/src/file-builders/document-model/tests-dir.d.ts +0 -3
  254. package/dist/src/file-builders/document-model/tests-dir.d.ts.map +0 -1
  255. package/dist/src/file-builders/document-model/tests-dir.js +0 -127
  256. package/dist/src/file-builders/document-model/tests-dir.js.map +0 -1
  257. package/dist/src/file-builders/document-model/upgrades-dir.d.ts +0 -31
  258. package/dist/src/file-builders/document-model/upgrades-dir.d.ts.map +0 -1
  259. package/dist/src/file-builders/document-model/upgrades-dir.js +0 -135
  260. package/dist/src/file-builders/document-model/upgrades-dir.js.map +0 -1
  261. package/dist/src/file-builders/drive-editor.d.ts +0 -9
  262. package/dist/src/file-builders/drive-editor.d.ts.map +0 -1
  263. package/dist/src/file-builders/drive-editor.js +0 -164
  264. package/dist/src/file-builders/drive-editor.js.map +0 -1
  265. package/dist/src/file-builders/editor-common.d.ts +0 -13
  266. package/dist/src/file-builders/editor-common.d.ts.map +0 -1
  267. package/dist/src/file-builders/editor-common.js +0 -26
  268. package/dist/src/file-builders/editor-common.js.map +0 -1
  269. package/dist/src/file-builders/index-files.d.ts +0 -18
  270. package/dist/src/file-builders/index-files.d.ts.map +0 -1
  271. package/dist/src/file-builders/index-files.js +0 -25
  272. package/dist/src/file-builders/index-files.js.map +0 -1
  273. package/dist/src/file-builders/index.d.ts +0 -11
  274. package/dist/src/file-builders/index.d.ts.map +0 -1
  275. package/dist/src/file-builders/index.js +0 -10
  276. package/dist/src/file-builders/index.js.map +0 -1
  277. package/dist/src/file-builders/module-files.d.ts +0 -52
  278. package/dist/src/file-builders/module-files.d.ts.map +0 -1
  279. package/dist/src/file-builders/module-files.js +0 -230
  280. package/dist/src/file-builders/module-files.js.map +0 -1
  281. package/dist/src/file-builders/subgraphs.d.ts +0 -6
  282. package/dist/src/file-builders/subgraphs.d.ts.map +0 -1
  283. package/dist/src/file-builders/subgraphs.js +0 -53
  284. package/dist/src/file-builders/subgraphs.js.map +0 -1
  285. package/dist/src/file-builders/types.d.ts +0 -84
  286. package/dist/src/file-builders/types.d.ts.map +0 -1
  287. package/dist/src/file-builders/types.js +0 -2
  288. package/dist/src/file-builders/types.js.map +0 -1
  289. package/dist/src/index.d.ts +0 -5
  290. package/dist/src/index.d.ts.map +0 -1
  291. package/dist/src/index.js +0 -5
  292. package/dist/src/index.js.map +0 -1
  293. package/dist/src/name-builders/get-action-names.d.ts +0 -6
  294. package/dist/src/name-builders/get-action-names.d.ts.map +0 -1
  295. package/dist/src/name-builders/get-action-names.js +0 -16
  296. package/dist/src/name-builders/get-action-names.js.map +0 -1
  297. package/dist/src/name-builders/get-variable-names.d.ts +0 -48
  298. package/dist/src/name-builders/get-variable-names.d.ts.map +0 -1
  299. package/dist/src/name-builders/get-variable-names.js +0 -147
  300. package/dist/src/name-builders/get-variable-names.js.map +0 -1
  301. package/dist/src/name-builders/index.d.ts +0 -3
  302. package/dist/src/name-builders/index.d.ts.map +0 -1
  303. package/dist/src/name-builders/index.js +0 -3
  304. package/dist/src/name-builders/index.js.map +0 -1
  305. package/dist/src/templates/boilerplate/AGENTS.md.d.ts +0 -2
  306. package/dist/src/templates/boilerplate/AGENTS.md.d.ts.map +0 -1
  307. package/dist/src/templates/boilerplate/AGENTS.md.js +0 -449
  308. package/dist/src/templates/boilerplate/AGENTS.md.js.map +0 -1
  309. package/dist/src/templates/boilerplate/CLAUDE.md.d.ts +0 -2
  310. package/dist/src/templates/boilerplate/CLAUDE.md.d.ts.map +0 -1
  311. package/dist/src/templates/boilerplate/CLAUDE.md.js +0 -2
  312. package/dist/src/templates/boilerplate/CLAUDE.md.js.map +0 -1
  313. package/dist/src/templates/boilerplate/LICENSE.d.ts +0 -2
  314. package/dist/src/templates/boilerplate/LICENSE.d.ts.map +0 -1
  315. package/dist/src/templates/boilerplate/LICENSE.js.map +0 -1
  316. package/dist/src/templates/boilerplate/README.md.d.ts +0 -2
  317. package/dist/src/templates/boilerplate/README.md.d.ts.map +0 -1
  318. package/dist/src/templates/boilerplate/README.md.js +0 -194
  319. package/dist/src/templates/boilerplate/README.md.js.map +0 -1
  320. package/dist/src/templates/boilerplate/claude/settings.local.json.d.ts +0 -2
  321. package/dist/src/templates/boilerplate/claude/settings.local.json.d.ts.map +0 -1
  322. package/dist/src/templates/boilerplate/claude/settings.local.json.js +0 -18
  323. package/dist/src/templates/boilerplate/claude/settings.local.json.js.map +0 -1
  324. package/dist/src/templates/boilerplate/cursor/mcp.json.d.ts +0 -2
  325. package/dist/src/templates/boilerplate/cursor/mcp.json.d.ts.map +0 -1
  326. package/dist/src/templates/boilerplate/cursor/mcp.json.js +0 -12
  327. package/dist/src/templates/boilerplate/cursor/mcp.json.js.map +0 -1
  328. package/dist/src/templates/boilerplate/docker/Dockerfile.d.ts +0 -2
  329. package/dist/src/templates/boilerplate/docker/Dockerfile.d.ts.map +0 -1
  330. package/dist/src/templates/boilerplate/docker/Dockerfile.js +0 -144
  331. package/dist/src/templates/boilerplate/docker/Dockerfile.js.map +0 -1
  332. package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.d.ts +0 -2
  333. package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.d.ts.map +0 -1
  334. package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.js +0 -18
  335. package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.js.map +0 -1
  336. package/dist/src/templates/boilerplate/docker/nginx.conf.d.ts +0 -2
  337. package/dist/src/templates/boilerplate/docker/nginx.conf.d.ts.map +0 -1
  338. package/dist/src/templates/boilerplate/docker/nginx.conf.js +0 -79
  339. package/dist/src/templates/boilerplate/docker/nginx.conf.js.map +0 -1
  340. package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.d.ts +0 -2
  341. package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.d.ts.map +0 -1
  342. package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.js +0 -19
  343. package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.js.map +0 -1
  344. package/dist/src/templates/boilerplate/document-models/document-models.d.ts +0 -2
  345. package/dist/src/templates/boilerplate/document-models/document-models.d.ts.map +0 -1
  346. package/dist/src/templates/boilerplate/document-models/document-models.js +0 -7
  347. package/dist/src/templates/boilerplate/document-models/document-models.js.map +0 -1
  348. package/dist/src/templates/boilerplate/document-models/index.d.ts +0 -2
  349. package/dist/src/templates/boilerplate/document-models/index.d.ts.map +0 -1
  350. package/dist/src/templates/boilerplate/document-models/index.js +0 -2
  351. package/dist/src/templates/boilerplate/document-models/index.js.map +0 -1
  352. package/dist/src/templates/boilerplate/editors/editors.d.ts +0 -2
  353. package/dist/src/templates/boilerplate/editors/editors.d.ts.map +0 -1
  354. package/dist/src/templates/boilerplate/editors/editors.js +0 -7
  355. package/dist/src/templates/boilerplate/editors/editors.js.map +0 -1
  356. package/dist/src/templates/boilerplate/editors/index.d.ts +0 -2
  357. package/dist/src/templates/boilerplate/editors/index.d.ts.map +0 -1
  358. package/dist/src/templates/boilerplate/editors/index.js +0 -2
  359. package/dist/src/templates/boilerplate/editors/index.js.map +0 -1
  360. package/dist/src/templates/boilerplate/eslint.config.js.d.ts +0 -2
  361. package/dist/src/templates/boilerplate/eslint.config.js.d.ts.map +0 -1
  362. package/dist/src/templates/boilerplate/eslint.config.js.js +0 -140
  363. package/dist/src/templates/boilerplate/eslint.config.js.js.map +0 -1
  364. package/dist/src/templates/boilerplate/gemini/settings.json.d.ts +0 -2
  365. package/dist/src/templates/boilerplate/gemini/settings.json.d.ts.map +0 -1
  366. package/dist/src/templates/boilerplate/gemini/settings.json.js +0 -12
  367. package/dist/src/templates/boilerplate/gemini/settings.json.js.map +0 -1
  368. package/dist/src/templates/boilerplate/github/sync-and-publish.yml.d.ts +0 -2
  369. package/dist/src/templates/boilerplate/github/sync-and-publish.yml.d.ts.map +0 -1
  370. package/dist/src/templates/boilerplate/github/sync-and-publish.yml.js +0 -376
  371. package/dist/src/templates/boilerplate/github/sync-and-publish.yml.js.map +0 -1
  372. package/dist/src/templates/boilerplate/gitignore.d.ts +0 -2
  373. package/dist/src/templates/boilerplate/gitignore.d.ts.map +0 -1
  374. package/dist/src/templates/boilerplate/gitignore.js +0 -11
  375. package/dist/src/templates/boilerplate/gitignore.js.map +0 -1
  376. package/dist/src/templates/boilerplate/index.d.ts +0 -2
  377. package/dist/src/templates/boilerplate/index.d.ts.map +0 -1
  378. package/dist/src/templates/boilerplate/index.html.d.ts +0 -2
  379. package/dist/src/templates/boilerplate/index.html.d.ts.map +0 -1
  380. package/dist/src/templates/boilerplate/index.html.js +0 -31
  381. package/dist/src/templates/boilerplate/index.html.js.map +0 -1
  382. package/dist/src/templates/boilerplate/index.html.legacy.d.ts +0 -2
  383. package/dist/src/templates/boilerplate/index.html.legacy.d.ts.map +0 -1
  384. package/dist/src/templates/boilerplate/index.html.legacy.js +0 -36
  385. package/dist/src/templates/boilerplate/index.html.legacy.js.map +0 -1
  386. package/dist/src/templates/boilerplate/index.js +0 -8
  387. package/dist/src/templates/boilerplate/index.js.map +0 -1
  388. package/dist/src/templates/boilerplate/mcp.json.d.ts +0 -2
  389. package/dist/src/templates/boilerplate/mcp.json.d.ts.map +0 -1
  390. package/dist/src/templates/boilerplate/mcp.json.js +0 -12
  391. package/dist/src/templates/boilerplate/mcp.json.js.map +0 -1
  392. package/dist/src/templates/boilerplate/npmrc.d.ts +0 -2
  393. package/dist/src/templates/boilerplate/npmrc.d.ts.map +0 -1
  394. package/dist/src/templates/boilerplate/npmrc.js +0 -2
  395. package/dist/src/templates/boilerplate/npmrc.js.map +0 -1
  396. package/dist/src/templates/boilerplate/package.json.d.ts +0 -2
  397. package/dist/src/templates/boilerplate/package.json.d.ts.map +0 -1
  398. package/dist/src/templates/boilerplate/package.json.js +0 -114
  399. package/dist/src/templates/boilerplate/package.json.js.map +0 -1
  400. package/dist/src/templates/boilerplate/package.json.legacy.d.ts +0 -55
  401. package/dist/src/templates/boilerplate/package.json.legacy.d.ts.map +0 -1
  402. package/dist/src/templates/boilerplate/package.json.legacy.js +0 -55
  403. package/dist/src/templates/boilerplate/package.json.legacy.js.map +0 -1
  404. package/dist/src/templates/boilerplate/powerhouse.config.json.d.ts +0 -6
  405. package/dist/src/templates/boilerplate/powerhouse.config.json.d.ts.map +0 -1
  406. package/dist/src/templates/boilerplate/powerhouse.config.json.js +0 -46
  407. package/dist/src/templates/boilerplate/powerhouse.config.json.js.map +0 -1
  408. package/dist/src/templates/boilerplate/powerhouse.manifest.json.d.ts +0 -2
  409. package/dist/src/templates/boilerplate/powerhouse.manifest.json.d.ts.map +0 -1
  410. package/dist/src/templates/boilerplate/powerhouse.manifest.json.js +0 -19
  411. package/dist/src/templates/boilerplate/powerhouse.manifest.json.js.map +0 -1
  412. package/dist/src/templates/boilerplate/processors/index.d.ts +0 -2
  413. package/dist/src/templates/boilerplate/processors/index.d.ts.map +0 -1
  414. package/dist/src/templates/boilerplate/processors/index.js +0 -2
  415. package/dist/src/templates/boilerplate/processors/index.js.map +0 -1
  416. package/dist/src/templates/boilerplate/style.css.d.ts +0 -2
  417. package/dist/src/templates/boilerplate/style.css.d.ts.map +0 -1
  418. package/dist/src/templates/boilerplate/style.css.js +0 -17
  419. package/dist/src/templates/boilerplate/style.css.js.map +0 -1
  420. package/dist/src/templates/boilerplate/subgraphs/index.d.ts +0 -2
  421. package/dist/src/templates/boilerplate/subgraphs/index.d.ts.map +0 -1
  422. package/dist/src/templates/boilerplate/subgraphs/index.js +0 -2
  423. package/dist/src/templates/boilerplate/subgraphs/index.js.map +0 -1
  424. package/dist/src/templates/boilerplate/tsconfig.json.d.ts +0 -2
  425. package/dist/src/templates/boilerplate/tsconfig.json.d.ts.map +0 -1
  426. package/dist/src/templates/boilerplate/tsconfig.json.js +0 -46
  427. package/dist/src/templates/boilerplate/tsconfig.json.js.map +0 -1
  428. package/dist/src/templates/boilerplate/vite.config.ts.d.ts +0 -2
  429. package/dist/src/templates/boilerplate/vite.config.ts.d.ts.map +0 -1
  430. package/dist/src/templates/boilerplate/vite.config.ts.js +0 -21
  431. package/dist/src/templates/boilerplate/vite.config.ts.js.map +0 -1
  432. package/dist/src/templates/boilerplate/vitest.config.ts.d.ts +0 -2
  433. package/dist/src/templates/boilerplate/vitest.config.ts.d.ts.map +0 -1
  434. package/dist/src/templates/boilerplate/vitest.config.ts.js +0 -21
  435. package/dist/src/templates/boilerplate/vitest.config.ts.js.map +0 -1
  436. package/dist/src/templates/cli-docs/docs-from-cli-help.d.ts +0 -8
  437. package/dist/src/templates/cli-docs/docs-from-cli-help.d.ts.map +0 -1
  438. package/dist/src/templates/cli-docs/docs-from-cli-help.js +0 -86
  439. package/dist/src/templates/cli-docs/docs-from-cli-help.js.map +0 -1
  440. package/dist/src/templates/document-editor/editor.d.ts +0 -5
  441. package/dist/src/templates/document-editor/editor.d.ts.map +0 -1
  442. package/dist/src/templates/document-editor/editor.js +0 -85
  443. package/dist/src/templates/document-editor/editor.js.map +0 -1
  444. package/dist/src/templates/document-editor/module.d.ts +0 -7
  445. package/dist/src/templates/document-editor/module.d.ts.map +0 -1
  446. package/dist/src/templates/document-editor/module.js +0 -16
  447. package/dist/src/templates/document-editor/module.js.map +0 -1
  448. package/dist/src/templates/document-model/actions.d.ts +0 -3
  449. package/dist/src/templates/document-model/actions.d.ts.map +0 -1
  450. package/dist/src/templates/document-model/actions.js +0 -28
  451. package/dist/src/templates/document-model/actions.js.map +0 -1
  452. package/dist/src/templates/document-model/gen/actions.d.ts +0 -3
  453. package/dist/src/templates/document-model/gen/actions.d.ts.map +0 -1
  454. package/dist/src/templates/document-model/gen/actions.js +0 -40
  455. package/dist/src/templates/document-model/gen/actions.js.map +0 -1
  456. package/dist/src/templates/document-model/gen/creators.d.ts +0 -3
  457. package/dist/src/templates/document-model/gen/creators.d.ts.map +0 -1
  458. package/dist/src/templates/document-model/gen/creators.js +0 -16
  459. package/dist/src/templates/document-model/gen/creators.js.map +0 -1
  460. package/dist/src/templates/document-model/gen/document-schema.d.ts +0 -3
  461. package/dist/src/templates/document-model/gen/document-schema.d.ts.map +0 -1
  462. package/dist/src/templates/document-model/gen/document-schema.js +0 -56
  463. package/dist/src/templates/document-model/gen/document-schema.js.map +0 -1
  464. package/dist/src/templates/document-model/gen/document-type.d.ts +0 -3
  465. package/dist/src/templates/document-model/gen/document-type.d.ts.map +0 -1
  466. package/dist/src/templates/document-model/gen/document-type.js +0 -5
  467. package/dist/src/templates/document-model/gen/document-type.js.map +0 -1
  468. package/dist/src/templates/document-model/gen/index.d.ts +0 -3
  469. package/dist/src/templates/document-model/gen/index.d.ts.map +0 -1
  470. package/dist/src/templates/document-model/gen/index.js +0 -29
  471. package/dist/src/templates/document-model/gen/index.js.map +0 -1
  472. package/dist/src/templates/document-model/gen/modules/actions.d.ts +0 -8
  473. package/dist/src/templates/document-model/gen/modules/actions.d.ts.map +0 -1
  474. package/dist/src/templates/document-model/gen/modules/actions.js +0 -39
  475. package/dist/src/templates/document-model/gen/modules/actions.js.map +0 -1
  476. package/dist/src/templates/document-model/gen/modules/creators.d.ts +0 -3
  477. package/dist/src/templates/document-model/gen/modules/creators.d.ts.map +0 -1
  478. package/dist/src/templates/document-model/gen/modules/creators.js +0 -97
  479. package/dist/src/templates/document-model/gen/modules/creators.js.map +0 -1
  480. package/dist/src/templates/document-model/gen/modules/error.d.ts +0 -3
  481. package/dist/src/templates/document-model/gen/modules/error.d.ts.map +0 -1
  482. package/dist/src/templates/document-model/gen/modules/error.js +0 -73
  483. package/dist/src/templates/document-model/gen/modules/error.js.map +0 -1
  484. package/dist/src/templates/document-model/gen/modules/operations.d.ts +0 -3
  485. package/dist/src/templates/document-model/gen/modules/operations.d.ts.map +0 -1
  486. package/dist/src/templates/document-model/gen/modules/operations.js +0 -61
  487. package/dist/src/templates/document-model/gen/modules/operations.js.map +0 -1
  488. package/dist/src/templates/document-model/gen/ph-factories.d.ts +0 -3
  489. package/dist/src/templates/document-model/gen/ph-factories.d.ts.map +0 -1
  490. package/dist/src/templates/document-model/gen/ph-factories.js +0 -93
  491. package/dist/src/templates/document-model/gen/ph-factories.js.map +0 -1
  492. package/dist/src/templates/document-model/gen/reducer.d.ts +0 -3
  493. package/dist/src/templates/document-model/gen/reducer.d.ts.map +0 -1
  494. package/dist/src/templates/document-model/gen/reducer.js +0 -106
  495. package/dist/src/templates/document-model/gen/reducer.js.map +0 -1
  496. package/dist/src/templates/document-model/gen/schema/index.d.ts +0 -2
  497. package/dist/src/templates/document-model/gen/schema/index.d.ts.map +0 -1
  498. package/dist/src/templates/document-model/gen/schema/index.js +0 -6
  499. package/dist/src/templates/document-model/gen/schema/index.js.map +0 -1
  500. package/dist/src/templates/document-model/gen/types.d.ts +0 -3
  501. package/dist/src/templates/document-model/gen/types.d.ts.map +0 -1
  502. package/dist/src/templates/document-model/gen/types.js +0 -38
  503. package/dist/src/templates/document-model/gen/types.js.map +0 -1
  504. package/dist/src/templates/document-model/gen/utils.d.ts +0 -3
  505. package/dist/src/templates/document-model/gen/utils.d.ts.map +0 -1
  506. package/dist/src/templates/document-model/gen/utils.js +0 -77
  507. package/dist/src/templates/document-model/gen/utils.js.map +0 -1
  508. package/dist/src/templates/document-model/hooks.d.ts +0 -3
  509. package/dist/src/templates/document-model/hooks.d.ts.map +0 -1
  510. package/dist/src/templates/document-model/hooks.js +0 -52
  511. package/dist/src/templates/document-model/hooks.js.map +0 -1
  512. package/dist/src/templates/document-model/index.d.ts +0 -2
  513. package/dist/src/templates/document-model/index.d.ts.map +0 -1
  514. package/dist/src/templates/document-model/index.js +0 -9
  515. package/dist/src/templates/document-model/index.js.map +0 -1
  516. package/dist/src/templates/document-model/module.d.ts +0 -9
  517. package/dist/src/templates/document-model/module.d.ts.map +0 -1
  518. package/dist/src/templates/document-model/module.js +0 -26
  519. package/dist/src/templates/document-model/module.js.map +0 -1
  520. package/dist/src/templates/document-model/src/index.d.ts +0 -2
  521. package/dist/src/templates/document-model/src/index.d.ts.map +0 -1
  522. package/dist/src/templates/document-model/src/index.js +0 -5
  523. package/dist/src/templates/document-model/src/index.js.map +0 -1
  524. package/dist/src/templates/document-model/src/tests/document-model.test.d.ts +0 -3
  525. package/dist/src/templates/document-model/src/tests/document-model.test.d.ts.map +0 -1
  526. package/dist/src/templates/document-model/src/tests/document-model.test.js +0 -121
  527. package/dist/src/templates/document-model/src/tests/document-model.test.js.map +0 -1
  528. package/dist/src/templates/document-model/src/tests/module.test.d.ts +0 -6
  529. package/dist/src/templates/document-model/src/tests/module.test.d.ts.map +0 -1
  530. package/dist/src/templates/document-model/src/tests/module.test.js +0 -87
  531. package/dist/src/templates/document-model/src/tests/module.test.js.map +0 -1
  532. package/dist/src/templates/document-model/src/utils.d.ts +0 -2
  533. package/dist/src/templates/document-model/src/utils.d.ts.map +0 -1
  534. package/dist/src/templates/document-model/src/utils.js +0 -5
  535. package/dist/src/templates/document-model/src/utils.js.map +0 -1
  536. package/dist/src/templates/document-model/upgrades/upgrade-transition.d.ts +0 -7
  537. package/dist/src/templates/document-model/upgrades/upgrade-transition.d.ts.map +0 -1
  538. package/dist/src/templates/document-model/upgrades/upgrade-transition.js +0 -22
  539. package/dist/src/templates/document-model/upgrades/upgrade-transition.js.map +0 -1
  540. package/dist/src/templates/document-model/utils.d.ts +0 -3
  541. package/dist/src/templates/document-model/utils.d.ts.map +0 -1
  542. package/dist/src/templates/document-model/utils.js +0 -11
  543. package/dist/src/templates/document-model/utils.js.map +0 -1
  544. package/dist/src/templates/drive-editor/components/CreateDocument.d.ts +0 -2
  545. package/dist/src/templates/drive-editor/components/CreateDocument.d.ts.map +0 -1
  546. package/dist/src/templates/drive-editor/components/CreateDocument.js +0 -58
  547. package/dist/src/templates/drive-editor/components/CreateDocument.js.map +0 -1
  548. package/dist/src/templates/drive-editor/components/DriveContents.d.ts +0 -2
  549. package/dist/src/templates/drive-editor/components/DriveContents.d.ts.map +0 -1
  550. package/dist/src/templates/drive-editor/components/DriveContents.js +0 -24
  551. package/dist/src/templates/drive-editor/components/DriveContents.js.map +0 -1
  552. package/dist/src/templates/drive-editor/components/DriveExplorer.d.ts +0 -2
  553. package/dist/src/templates/drive-editor/components/DriveExplorer.d.ts.map +0 -1
  554. package/dist/src/templates/drive-editor/components/DriveExplorer.js +0 -32
  555. package/dist/src/templates/drive-editor/components/DriveExplorer.js.map +0 -1
  556. package/dist/src/templates/drive-editor/components/EmptyState.d.ts +0 -2
  557. package/dist/src/templates/drive-editor/components/EmptyState.d.ts.map +0 -1
  558. package/dist/src/templates/drive-editor/components/EmptyState.js +0 -19
  559. package/dist/src/templates/drive-editor/components/EmptyState.js.map +0 -1
  560. package/dist/src/templates/drive-editor/components/Files.d.ts +0 -2
  561. package/dist/src/templates/drive-editor/components/Files.d.ts.map +0 -1
  562. package/dist/src/templates/drive-editor/components/Files.js +0 -30
  563. package/dist/src/templates/drive-editor/components/Files.js.map +0 -1
  564. package/dist/src/templates/drive-editor/components/FolderTree.d.ts +0 -2
  565. package/dist/src/templates/drive-editor/components/FolderTree.d.ts.map +0 -1
  566. package/dist/src/templates/drive-editor/components/FolderTree.js +0 -108
  567. package/dist/src/templates/drive-editor/components/FolderTree.js.map +0 -1
  568. package/dist/src/templates/drive-editor/components/Folders.d.ts +0 -2
  569. package/dist/src/templates/drive-editor/components/Folders.d.ts.map +0 -1
  570. package/dist/src/templates/drive-editor/components/Folders.js +0 -28
  571. package/dist/src/templates/drive-editor/components/Folders.js.map +0 -1
  572. package/dist/src/templates/drive-editor/components/NavigationBreadcrumbs.d.ts +0 -2
  573. package/dist/src/templates/drive-editor/components/NavigationBreadcrumbs.d.ts.map +0 -1
  574. package/dist/src/templates/drive-editor/components/NavigationBreadcrumbs.js +0 -14
  575. package/dist/src/templates/drive-editor/components/NavigationBreadcrumbs.js.map +0 -1
  576. package/dist/src/templates/drive-editor/config.d.ts +0 -5
  577. package/dist/src/templates/drive-editor/config.d.ts.map +0 -1
  578. package/dist/src/templates/drive-editor/config.js +0 -11
  579. package/dist/src/templates/drive-editor/config.js.map +0 -1
  580. package/dist/src/templates/drive-editor/editor.d.ts +0 -2
  581. package/dist/src/templates/drive-editor/editor.d.ts.map +0 -1
  582. package/dist/src/templates/drive-editor/editor.js +0 -20
  583. package/dist/src/templates/drive-editor/editor.js.map +0 -1
  584. package/dist/src/templates/index.d.ts +0 -71
  585. package/dist/src/templates/index.d.ts.map +0 -1
  586. package/dist/src/templates/index.js +0 -71
  587. package/dist/src/templates/index.js.map +0 -1
  588. package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.d.ts +0 -2
  589. package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.d.ts.map +0 -1
  590. package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.js +0 -491
  591. package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.js.map +0 -1
  592. package/dist/src/ts-morph-generator/core/FileGenerator.d.ts +0 -11
  593. package/dist/src/ts-morph-generator/core/FileGenerator.d.ts.map +0 -1
  594. package/dist/src/ts-morph-generator/core/FileGenerator.js +0 -11
  595. package/dist/src/ts-morph-generator/core/FileGenerator.js.map +0 -1
  596. package/dist/src/ts-morph-generator/core/GenerationContext.d.ts +0 -39
  597. package/dist/src/ts-morph-generator/core/GenerationContext.d.ts.map +0 -1
  598. package/dist/src/ts-morph-generator/core/GenerationContext.js +0 -2
  599. package/dist/src/ts-morph-generator/core/GenerationContext.js.map +0 -1
  600. package/dist/src/ts-morph-generator/core/ReducerGenerator.d.ts +0 -12
  601. package/dist/src/ts-morph-generator/core/ReducerGenerator.d.ts.map +0 -1
  602. package/dist/src/ts-morph-generator/core/ReducerGenerator.js +0 -147
  603. package/dist/src/ts-morph-generator/core/ReducerGenerator.js.map +0 -1
  604. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts +0 -20
  605. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts.map +0 -1
  606. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.js +0 -120
  607. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.js.map +0 -1
  608. package/dist/src/ts-morph-generator/index.d.ts +0 -4
  609. package/dist/src/ts-morph-generator/index.d.ts.map +0 -1
  610. package/dist/src/ts-morph-generator/index.js +0 -4
  611. package/dist/src/ts-morph-generator/index.js.map +0 -1
  612. package/dist/src/ts-morph-generator/utilities/DeclarationManager.d.ts +0 -5
  613. package/dist/src/ts-morph-generator/utilities/DeclarationManager.d.ts.map +0 -1
  614. package/dist/src/ts-morph-generator/utilities/DeclarationManager.js +0 -10
  615. package/dist/src/ts-morph-generator/utilities/DeclarationManager.js.map +0 -1
  616. package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts +0 -13
  617. package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts.map +0 -1
  618. package/dist/src/ts-morph-generator/utilities/DirectoryManager.js +0 -45
  619. package/dist/src/ts-morph-generator/utilities/DirectoryManager.js.map +0 -1
  620. package/dist/src/ts-morph-generator/utilities/ImportManager.d.ts +0 -15
  621. package/dist/src/ts-morph-generator/utilities/ImportManager.d.ts.map +0 -1
  622. package/dist/src/ts-morph-generator/utilities/ImportManager.js +0 -50
  623. package/dist/src/ts-morph-generator/utilities/ImportManager.js.map +0 -1
  624. package/dist/src/ts-morph-generator/utilities/index.d.ts +0 -4
  625. package/dist/src/ts-morph-generator/utilities/index.d.ts.map +0 -1
  626. package/dist/src/ts-morph-generator/utilities/index.js +0 -4
  627. package/dist/src/ts-morph-generator/utilities/index.js.map +0 -1
  628. package/dist/src/utils/cli.d.ts +0 -26
  629. package/dist/src/utils/cli.d.ts.map +0 -1
  630. package/dist/src/utils/cli.js +0 -57
  631. package/dist/src/utils/cli.js.map +0 -1
  632. package/dist/src/utils/constants.d.ts +0 -13
  633. package/dist/src/utils/constants.d.ts.map +0 -1
  634. package/dist/src/utils/constants.js +0 -29
  635. package/dist/src/utils/constants.js.map +0 -1
  636. package/dist/src/utils/dependencies.d.ts +0 -33
  637. package/dist/src/utils/dependencies.d.ts.map +0 -1
  638. package/dist/src/utils/dependencies.js +0 -97
  639. package/dist/src/utils/dependencies.js.map +0 -1
  640. package/dist/src/utils/document-type-metadata.d.ts +0 -15
  641. package/dist/src/utils/document-type-metadata.d.ts.map +0 -1
  642. package/dist/src/utils/document-type-metadata.js +0 -67
  643. package/dist/src/utils/document-type-metadata.js.map +0 -1
  644. package/dist/src/utils/format-with-prettier.d.ts +0 -5
  645. package/dist/src/utils/format-with-prettier.d.ts.map +0 -1
  646. package/dist/src/utils/format-with-prettier.js +0 -20
  647. package/dist/src/utils/format-with-prettier.js.map +0 -1
  648. package/dist/src/utils/index.d.ts +0 -14
  649. package/dist/src/utils/index.d.ts.map +0 -1
  650. package/dist/src/utils/index.js +0 -14
  651. package/dist/src/utils/index.js.map +0 -1
  652. package/dist/src/utils/mock.d.ts +0 -3
  653. package/dist/src/utils/mock.d.ts.map +0 -1
  654. package/dist/src/utils/mock.js +0 -5
  655. package/dist/src/utils/mock.js.map +0 -1
  656. package/dist/src/utils/source-files.d.ts +0 -18
  657. package/dist/src/utils/source-files.d.ts.map +0 -1
  658. package/dist/src/utils/source-files.js +0 -39
  659. package/dist/src/utils/source-files.js.map +0 -1
  660. package/dist/src/utils/spawn-async.d.ts +0 -5
  661. package/dist/src/utils/spawn-async.d.ts.map +0 -1
  662. package/dist/src/utils/spawn-async.js +0 -29
  663. package/dist/src/utils/spawn-async.js.map +0 -1
  664. package/dist/src/utils/syntax-builders.d.ts +0 -8
  665. package/dist/src/utils/syntax-builders.d.ts.map +0 -1
  666. package/dist/src/utils/syntax-builders.js +0 -72
  667. package/dist/src/utils/syntax-builders.js.map +0 -1
  668. package/dist/src/utils/syntax-getters.d.ts +0 -9
  669. package/dist/src/utils/syntax-getters.d.ts.map +0 -1
  670. package/dist/src/utils/syntax-getters.js +0 -20
  671. package/dist/src/utils/syntax-getters.js.map +0 -1
  672. package/dist/src/utils/ts-morph-project.d.ts +0 -15
  673. package/dist/src/utils/ts-morph-project.d.ts.map +0 -1
  674. package/dist/src/utils/ts-morph-project.js +0 -28
  675. package/dist/src/utils/ts-morph-project.js.map +0 -1
  676. package/dist/src/utils/unsafe-utils.d.ts +0 -8
  677. package/dist/src/utils/unsafe-utils.d.ts.map +0 -1
  678. package/dist/src/utils/unsafe-utils.js +0 -23
  679. package/dist/src/utils/unsafe-utils.js.map +0 -1
  680. package/dist/src/utils/validation.d.ts +0 -18
  681. package/dist/src/utils/validation.d.ts.map +0 -1
  682. package/dist/src/utils/validation.js +0 -138
  683. package/dist/src/utils/validation.js.map +0 -1
  684. package/dist/tsconfig.tsbuildinfo +0 -1
  685. package/dist/vitest.config.d.ts +0 -3
  686. package/dist/vitest.config.d.ts.map +0 -1
  687. package/dist/vitest.config.js +0 -19
  688. package/dist/vitest.config.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["fs","path","fs","path","claudeTemplate","fs","fs"],"sources":["../src/codegen/utils.ts","../src/codegen/generate.ts","../src/codegen/kysely.ts","../src/create-lib/utils.ts","../src/create-lib/checkout-project.ts","../src/templates/boilerplate/document-models/upgrade-manifests.ts","../src/create-lib/create-project.ts","../src/ts-morph-generator/core/FileGenerator.ts","../src/ts-morph-generator/core/ReducerGenerator.ts","../src/ts-morph-generator/utilities/DeclarationManager.ts","../src/ts-morph-generator/utilities/DirectoryManager.ts","../src/ts-morph-generator/utilities/ImportManager.ts","../src/ts-morph-generator/core/TSMorphCodeGenerator.ts"],"sourcesContent":["import { pascalCase } from \"change-case\";\nimport type {\n DocumentModelDocument,\n DocumentModelGlobalState,\n} from \"@powerhousedao/shared/document-model\";\nimport { documentModelReducer } from \"@powerhousedao/shared/document-model\";\nimport { baseLoadFromFile } from \"document-model/node\";\nimport fs from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport { join, resolve } from \"node:path\";\nimport { format } from \"prettier\";\nimport type { DocumentTypesMap } from \"./types.js\";\n\nexport async function loadDocumentModel(\n path: string,\n): Promise<DocumentModelGlobalState> {\n let documentModel: DocumentModelGlobalState;\n try {\n if (!path) {\n throw new Error(\"Document model file not specified\");\n } else if (path.endsWith(\".zip\") || path.endsWith(\".phd\")) {\n const file = await baseLoadFromFile(path, documentModelReducer);\n documentModel = file.state.global;\n } else if (path.endsWith(\".json\")) {\n const data = await readFile(path, \"utf-8\");\n const parsedData = JSON.parse(data) as DocumentModelDocument;\n if (\"state\" in parsedData) {\n documentModel = parsedData.state.global;\n } else {\n documentModel = parsedData;\n }\n } else {\n throw new Error(\"File type not supported. Must be zip, phd, or json.\");\n }\n return documentModel;\n } catch (error) {\n throw (error as { code?: string }).code === \"MODULE_NOT_FOUND\"\n ? new Error(`Document model not found.`)\n : error;\n }\n}\n\nexport async function formatWithPrettierBeforeWrite(\n outputFile: string,\n content: string,\n) {\n const modifiedContent = await format(content, {\n parser: \"typescript\",\n });\n return modifiedContent;\n}\n\n/** returns map of document model id to document model name in pascal case and import path */\nexport function getDocumentTypesMap(\n dir: string,\n pathOrigin = \"../../\",\n): DocumentTypesMap {\n const documentTypesMap: DocumentTypesMap = {\n \"powerhouse/document-model\": {\n name: \"DocumentModel\",\n importPath: `document-model`,\n },\n };\n\n // add document types from provided dir\n if (fs.existsSync(dir)) {\n fs.readdirSync(dir, { withFileTypes: true })\n .filter((dirent) => dirent.isDirectory())\n .map((dirent) => dirent.name)\n .forEach((name) => {\n const specPath = resolve(dir, name, `${name}.json`);\n if (!fs.existsSync(specPath)) {\n return;\n }\n\n const specRaw = fs.readFileSync(specPath, \"utf-8\");\n try {\n const spec = JSON.parse(specRaw) as DocumentModelGlobalState;\n if (spec.id) {\n documentTypesMap[spec.id] = {\n name: pascalCase(name),\n importPath: join(pathOrigin, dir, name, \"index.js\"),\n };\n }\n } catch {\n console.error(`Failed to parse ${specPath}`);\n }\n });\n }\n\n return documentTypesMap;\n}\n","import type { Manifest } from \"@powerhousedao/shared\";\nimport { fileExists, type PowerhouseConfig } from \"@powerhousedao/shared/clis\";\nimport type { DocumentModelGlobalState } from \"@powerhousedao/shared/document-model\";\nimport type { ProcessorApps } from \"@powerhousedao/shared/processors\";\nimport { kebabCase } from \"change-case\";\nimport {\n makeSubgraphsIndexFile,\n tsMorphGenerateApp,\n tsMorphGenerateDocumentEditor,\n tsMorphGenerateDocumentModel,\n tsMorphGenerateSubgraph,\n} from \"file-builders\";\nimport { getTsconfig } from \"get-tsconfig\";\nimport fs from \"node:fs\";\nimport { readdir, writeFile } from \"node:fs/promises\";\nimport path, { join } from \"node:path\";\nimport { readPackage, type NormalizedPackageJson } from \"read-pkg\";\nimport semver from \"semver\";\nimport {\n exportsTemplate,\n tsconfigPathsTemplate,\n tsConfigTemplate,\n} from \"templates\";\nimport { writePackage } from \"write-package\";\nimport { tsMorphGenerateProcessor } from \"../file-builders/processors/processor.js\";\nimport { generateSchemas } from \"./graphql.js\";\nimport type { CodegenOptions } from \"./types.js\";\nimport { loadDocumentModel } from \"./utils.js\";\n\nexport async function generateAll(args: {\n dir: string;\n useVersioning: boolean;\n migrateLegacy?: boolean;\n watch?: boolean;\n skipFormat?: boolean;\n verbose?: boolean;\n force?: boolean;\n}) {\n const {\n dir,\n useVersioning,\n migrateLegacy = false,\n watch = false,\n skipFormat = false,\n verbose = true,\n force = true,\n } = args;\n const files = await readdir(dir, { withFileTypes: true });\n const documentModelStates: DocumentModelGlobalState[] = [];\n\n for (const directory of files.filter((f) => f.isDirectory())) {\n const documentModelPath = path.join(\n dir,\n directory.name,\n `${directory.name}.json`,\n );\n const pathExists = await fileExists(documentModelPath);\n if (!pathExists) {\n continue;\n }\n\n try {\n const documentModelState = await loadDocumentModel(documentModelPath);\n documentModelStates.push(documentModelState);\n\n await generateDocumentModel({\n dir,\n documentModelState,\n watch,\n skipFormat,\n verbose,\n force,\n useVersioning,\n migrateLegacy,\n });\n } catch (error) {\n if (verbose) {\n console.error(directory.name, error);\n }\n }\n }\n}\n\nexport async function generate(\n config: PowerhouseConfig,\n useVersioning: boolean,\n migrateLegacy = false,\n) {\n const { skipFormat, watch } = config;\n await generateSchemas(config.documentModelsDir, { skipFormat, watch });\n await generateAll({\n dir: config.documentModelsDir,\n useVersioning,\n migrateLegacy,\n skipFormat,\n watch,\n });\n}\n\nexport async function generateFromFile(args: {\n path: string;\n config: PowerhouseConfig;\n useVersioning: boolean;\n migrateLegacy?: boolean;\n options?: CodegenOptions;\n}) {\n const { path, config, useVersioning, migrateLegacy, options } = args;\n // load document model spec from file\n const documentModelState = await loadDocumentModel(path);\n\n // delegate to shared generation function\n await generateFromDocumentModel({\n documentModelState,\n config,\n useVersioning,\n migrateLegacy,\n options,\n });\n}\n\n/**\n * Generates code from a DocumentModelGlobalState object directly.\n *\n * @remarks\n * This function performs the same code generation as generateFromFile but takes\n * a DocumentModelGlobalState object directly instead of loading from a file. This allows for\n * programmatic code generation without file I/O.\n *\n * @param documentModelDocument - The DocumentModelGlobalState object containing the document model\n * @param config - The PowerhouseConfig configuration object\n * @param options - Optional configuration for generation behavior (verbose logging, etc.)\n * @returns A promise that resolves when code generation is complete\n */\nexport async function generateFromDocument(args: {\n documentModelState: DocumentModelGlobalState;\n config: PowerhouseConfig;\n useVersioning: boolean;\n migrateLegacy?: boolean;\n options?: CodegenOptions;\n}) {\n // delegate to shared generation function\n await generateFromDocumentModel(args);\n}\n\ntype GenerateDocumentModelArgs = {\n dir: string;\n documentModelState: DocumentModelGlobalState;\n useVersioning: boolean;\n migrateLegacy?: boolean;\n watch?: boolean;\n skipFormat?: boolean;\n verbose?: boolean;\n force?: boolean;\n};\nexport async function generateDocumentModel(args: GenerateDocumentModelArgs) {\n const { dir, documentModelState, useVersioning, migrateLegacy } = args;\n const packageJson = await readPackage();\n const zodSemverString = findZodDependencyInPackageJson(packageJson);\n ensureZodVersionIsSufficient(zodSemverString);\n\n const projectDir = path.dirname(dir);\n await tsMorphGenerateDocumentModel({\n projectDir,\n documentModelState,\n useVersioning,\n migrateLegacy,\n });\n // await ensurePackageExportsWildcards();\n // await ensureTsconfigPaths();\n}\n\n/**\n * Ensures that the project's package.json exports field contains the\n * wildcard subpath patterns required for deep imports like\n * \"document-models/my-doc\" to resolve correctly.\n */\nasync function ensurePackageExportsWildcards() {\n const requiredExports = JSON.parse(`{ ${exportsTemplate} }`) as Record<\n string,\n string\n >;\n\n const packageJson = await readPackage();\n\n const existingExports =\n !packageJson.exports ||\n typeof packageJson.exports === \"string\" ||\n Array.isArray(packageJson.exports)\n ? {}\n : packageJson.exports;\n\n packageJson.exports = {\n ...existingExports,\n ...requiredExports,\n };\n\n await writePackage(process.cwd(), packageJson);\n}\n\n/**\n * Ensures that the project's tsconfig.json has paths mappings for\n * the convenience export paths like \"document-models/\" etc.\n */\nasync function ensureTsconfigPaths() {\n const requiredTsConfigPaths = JSON.parse(\n `{ ${tsconfigPathsTemplate} }`,\n ) as Record<string, string[]>;\n const tsConfigFilePath = join(process.cwd(), \"tsconfig.json\");\n let tsConfig = getTsconfig();\n\n if (!tsConfig) {\n await writeFile(tsConfigFilePath, tsConfigTemplate);\n tsConfig = getTsconfig();\n }\n\n if (!tsConfig) {\n throw new Error(\n `Failed to get or create tsconfig.json at \"${tsConfigFilePath}\".`,\n );\n }\n\n const existingCompilerOptions = tsConfig.config.compilerOptions ?? {};\n const existingPaths = existingCompilerOptions.paths ?? {};\n\n tsConfig.config.compilerOptions = {\n ...existingCompilerOptions,\n paths: {\n ...existingPaths,\n ...requiredTsConfigPaths,\n },\n };\n\n await writeFile(tsConfigFilePath, JSON.stringify(tsConfig.config, null, 2));\n}\n\nfunction findZodDependencyInPackageJson(\n packageJson: NormalizedPackageJson,\n): string | undefined {\n const dependencies = {\n ...packageJson.dependencies,\n ...packageJson.devDependencies,\n };\n const zodDependency = dependencies[\"zod\"];\n return zodDependency;\n}\n\nfunction ensureZodVersionIsSufficient(zodSemverString: string | undefined) {\n if (!zodSemverString) return;\n const cleaned = semver.clean(zodSemverString);\n if (!cleaned) return;\n const isSufficient = semver.gte(cleaned, \"4.0.0\");\n if (!isSufficient) {\n throw new Error(\n `Your version of zod \"${zodSemverString}\" is out of date. Please install zod version 4.x to continue.`,\n );\n }\n}\n\ntype GenerateEditorArgs = {\n editorName: string;\n documentTypes: string[];\n skipFormat?: boolean;\n editorId?: string;\n editorDirName?: string;\n};\nexport async function generateEditor(args: GenerateEditorArgs) {\n const {\n editorName,\n documentTypes,\n editorId: editorIdArg,\n editorDirName,\n } = args;\n\n const projectDir = path.dirname(\"editors\");\n\n if (documentTypes.length > 1) {\n throw new Error(\"Multiple document types are not supported yet\");\n }\n\n const documentModelId = documentTypes[0];\n const editorId = editorIdArg || kebabCase(editorName);\n const editorDir = editorDirName || kebabCase(editorName);\n\n await tsMorphGenerateDocumentEditor({\n projectDir,\n editorDir,\n documentModelId,\n editorName,\n editorId,\n });\n // await ensurePackageExportsWildcards();\n // await ensureTsconfigPaths();\n}\n\nexport async function generateApp(options: {\n appName: string;\n skipFormat?: boolean;\n appId?: string;\n allowedDocumentTypes?: string[];\n isDragAndDropEnabled?: boolean;\n appDirName?: string;\n}) {\n const {\n appName,\n appId,\n allowedDocumentTypes,\n isDragAndDropEnabled,\n appDirName,\n } = options;\n const dir = \"editors\";\n\n const projectDir = path.dirname(dir);\n\n await tsMorphGenerateApp({\n projectDir,\n editorDir: appDirName || kebabCase(appName),\n editorName: appName,\n editorId: appId ?? kebabCase(appName),\n allowedDocumentModelIds: allowedDocumentTypes ?? [],\n isDragAndDropEnabled: isDragAndDropEnabled ?? true,\n });\n}\n\nexport async function generateSubgraphFromDocumentModel(\n name: string,\n documentModel: DocumentModelGlobalState,\n config: PowerhouseConfig,\n) {\n await tsMorphGenerateSubgraph({\n subgraphsDir: config.subgraphsDir,\n subgraphName: name,\n documentModel,\n });\n await makeSubgraphsIndexFile({\n projectDir: path.dirname(config.subgraphsDir),\n });\n}\n\nexport async function generateSubgraph(\n name: string,\n file: string | null,\n config: PowerhouseConfig,\n) {\n const documentModelState =\n file !== null ? await loadDocumentModel(file) : null;\n\n await tsMorphGenerateSubgraph({\n subgraphsDir: config.subgraphsDir,\n subgraphName: name,\n documentModel: documentModelState,\n });\n await makeSubgraphsIndexFile({\n projectDir: path.dirname(config.subgraphsDir),\n });\n}\n\nexport async function generateProcessor(args: {\n processorName: string;\n processorType: \"analytics\" | \"relationalDb\";\n processorApps: ProcessorApps;\n documentTypes: string[];\n skipFormat?: boolean;\n rootDir?: string;\n}) {\n const { rootDir = process.cwd() } = args;\n return await tsMorphGenerateProcessor({\n rootDir,\n ...args,\n });\n}\n\nexport async function generateImportScript(\n _name: string,\n _config: PowerhouseConfig,\n) {\n throw new Error(\n \"Import script generation has been removed. The document-drive server APIs it depended on have been deprecated.\",\n );\n}\n\nconst defaultManifest: Manifest = {\n name: \"\",\n description: \"\",\n category: \"\",\n publisher: {\n name: \"\",\n url: \"\",\n },\n documentModels: [],\n editors: [],\n apps: [],\n subgraphs: [],\n processors: [],\n};\n\nexport function generateManifest(\n manifestData: Partial<Manifest>,\n projectRoot?: string,\n) {\n const rootDir = projectRoot || process.cwd();\n const manifestPath = join(rootDir, \"powerhouse.manifest.json\");\n\n // Create default manifest structure\n\n // Read existing manifest if it exists\n let existingManifest: Manifest = defaultManifest;\n if (fs.existsSync(manifestPath)) {\n try {\n const existingData = fs.readFileSync(manifestPath, \"utf-8\");\n existingManifest = JSON.parse(existingData) as Manifest;\n } catch (error) {\n console.warn(`Failed to parse existing manifest: ${String(error)}`);\n existingManifest = defaultManifest;\n }\n }\n\n // Helper function to merge arrays by ID\n const mergeArrayById = <T extends { id: string }>(\n existingArray: T[],\n newArray?: T[],\n ): T[] => {\n if (!newArray) return existingArray;\n\n const result = [...existingArray];\n\n newArray.forEach((newItem) => {\n const existingIndex = result.findIndex((item) => item.id === newItem.id);\n if (existingIndex !== -1) {\n // Replace existing item\n result[existingIndex] = newItem;\n } else {\n // Add new item\n result.push(newItem);\n }\n });\n\n return result;\n };\n\n // Helper function to merge config entries by name (config entries are keyed\n // by name, not id).\n const mergeConfigByName = <T extends { name: string }>(\n existingArray: T[],\n newArray?: T[],\n ): T[] => {\n if (!newArray) return existingArray;\n\n const result = [...existingArray];\n\n newArray.forEach((newItem) => {\n const existingIndex = result.findIndex(\n (item) => item.name === newItem.name,\n );\n if (existingIndex !== -1) {\n result[existingIndex] = newItem;\n } else {\n result.push(newItem);\n }\n });\n\n return result;\n };\n\n // Merge partial data with existing manifest\n const updatedManifest: Manifest = {\n ...existingManifest,\n ...manifestData,\n publisher: {\n ...existingManifest.publisher,\n ...(manifestData.publisher || {}),\n },\n documentModels: mergeArrayById(\n existingManifest.documentModels ?? [],\n manifestData.documentModels,\n ),\n editors: mergeArrayById(\n existingManifest.editors ?? [],\n manifestData.editors,\n ),\n apps: mergeArrayById(existingManifest.apps ?? [], manifestData.apps),\n subgraphs: mergeArrayById(\n existingManifest.subgraphs ?? [],\n manifestData.subgraphs,\n ),\n config: mergeConfigByName(\n existingManifest.config ?? [],\n manifestData.config,\n ),\n };\n\n // Write updated manifest to file\n fs.writeFileSync(manifestPath, JSON.stringify(updatedManifest, null, 4));\n\n return manifestPath;\n}\n\n/**\n * Generates code from a DocumentModelGlobalState.\n *\n * @remarks\n * This is the core generation function that both generateFromFile and generateFromDocument\n * use internally. It handles the actual code generation from a DocumentModelGlobalState object.\n *\n * @param documentModel - The DocumentModelGlobalState containing the document model specification\n * @param config - The PowerhouseConfig configuration object\n * @param options - Optional configuration for generation behavior\n * @returns A promise that resolves when code generation is complete\n */\nasync function generateFromDocumentModel(args: {\n documentModelState: DocumentModelGlobalState;\n config: PowerhouseConfig;\n useVersioning: boolean;\n migrateLegacy?: boolean;\n options?: CodegenOptions;\n}) {\n const {\n documentModelState,\n config,\n useVersioning,\n migrateLegacy,\n options = {},\n } = args;\n const {\n verbose = config.logLevel === \"verbose\" ||\n config.logLevel === \"debug\" ||\n config.logLevel === \"info\",\n force = false,\n } = options;\n const name = kebabCase(documentModelState.name);\n const documentModelDir = join(config.documentModelsDir, name);\n // create document model folder and spec as json\n fs.mkdirSync(documentModelDir, { recursive: true });\n fs.writeFileSync(\n join(documentModelDir, `${name}.json`),\n JSON.stringify(documentModelState, null, 2),\n );\n\n await generateDocumentModel({\n dir: config.documentModelsDir,\n documentModelState,\n watch: config.watch,\n skipFormat: config.skipFormat,\n verbose,\n force,\n useVersioning,\n migrateLegacy,\n });\n}\n","import { spawn } from \"node:child_process\";\nimport { existsSync } from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { join, resolve } from \"node:path\";\n\nfunction getKyselyPgLiteBin(): string {\n const require = createRequire(import.meta.url);\n\n const paths = require.resolve.paths(\"kysely-pglite\");\n if (paths) {\n for (const basePath of paths) {\n const pkgRoot = join(basePath, \"kysely-pglite\");\n const binPath = join(pkgRoot, \"bin/run.js\");\n\n if (existsSync(binPath)) {\n return binPath;\n }\n }\n }\n\n throw new Error(\"Could not find kysely-pglite/bin/run.js\");\n}\n\nexport interface IOptions {\n migrationFile: string;\n schemaFile?: string;\n}\n\nfunction runCommand(\n command: string,\n args: string[],\n cwd?: string,\n): Promise<void> {\n return new Promise((resolve, reject) => {\n const child = spawn(command, args, {\n cwd,\n stdio: \"inherit\",\n shell: true,\n });\n\n child.on(\"close\", (code) => {\n if (code === 0) {\n resolve();\n } else {\n reject(new Error(`Command failed with exit code ${code}`));\n }\n });\n\n child.on(\"error\", (error) => {\n reject(error);\n });\n });\n}\n\nexport async function generateDBSchema({\n migrationFile,\n schemaFile,\n}: IOptions) {\n const outFile = schemaFile ?? resolve(migrationFile, \"../schema.ts\");\n\n try {\n const kyselyBinPath = getKyselyPgLiteBin();\n // Use kysely-pglite CLI to handle TypeScript compilation and module resolution\n await runCommand(\n \"node\",\n [kyselyBinPath, migrationFile, \"--outFile\", outFile],\n process.cwd(),\n );\n\n console.log(`Schema types generated at ${outFile}`);\n } catch (error) {\n console.error(\"Error running migration:\", error);\n }\n}\n","import { execSync } from \"child_process\";\nimport { mkdir, writeFile } from \"node:fs/promises\";\nimport { dirname } from \"node:path\";\n\nconst packageManagers = [\"npm\", \"yarn\", \"pnpm\", \"bun\"] as const;\nconst defaultPackageManager = \"npm\";\n\nexport type PackageManager = (typeof packageManagers)[number];\n\nexport function getPackageManager(userAgent?: string): PackageManager {\n if (!userAgent) {\n return defaultPackageManager;\n }\n\n const pkgSpec = userAgent.split(\" \")[0];\n const pkgSpecArr = pkgSpec.split(\"/\");\n const name = pkgSpecArr[0];\n\n if (packageManagers.includes(name as PackageManager)) {\n return name as PackageManager;\n } else {\n return defaultPackageManager;\n }\n}\n\nexport const envPackageManager = getPackageManager(\n process.env.npm_config_user_agent,\n);\n\nexport function runCmd(command: string) {\n try {\n execSync(command, { stdio: \"inherit\" });\n } catch (error) {\n console.log(\"\\x1b[31m\", error, \"\\x1b[0m\");\n throw error;\n }\n}\n\nexport async function writeFileEnsuringDir(\n filePath: string,\n contents: string | Buffer,\n) {\n await mkdir(dirname(filePath), { recursive: true });\n await writeFile(filePath, contents, { encoding: \"utf-8\" });\n}\n","import path from \"node:path\";\nimport { runCmd } from \"./utils.js\";\n\n/**\n * Clones a git repository and returns the path to the cloned project.\n * @param repositoryUrl - The URL of the git repository to clone\n * @returns The absolute path to the cloned project directory\n */\nexport function cloneRepository(repositoryUrl: string): string {\n try {\n console.log(\n \"\\x1b[33m\",\n `Cloning repository from ${repositoryUrl}...`,\n \"\\x1b[0m\",\n );\n runCmd(`git clone ${repositoryUrl}`);\n\n // Extract project name from repository URL\n // e.g., https://github.com/org/repo.git -> repo\n const repoName = repositoryUrl\n .split(\"/\")\n .pop()\n ?.replace(/\\.git$/, \"\");\n\n if (!repoName) {\n throw new Error(\"Could not determine project name from repository URL\");\n }\n\n const projectPath = path.join(process.cwd(), repoName);\n return projectPath;\n } catch (error) {\n console.log(error);\n throw error;\n }\n}\n\n/**\n * Installs dependencies in a project directory using the specified package manager.\n * @param projectPath - The absolute path to the project directory\n * @param packageManager - The package manager to use (npm, pnpm, yarn, bun)\n */\nexport function installDependencies(\n projectPath: string,\n packageManager: string,\n): void {\n try {\n process.chdir(projectPath);\n\n console.log(\n \"\\x1b[34m\",\n `Installing dependencies with ${packageManager}...`,\n \"\\x1b[0m\",\n );\n runCmd(`${packageManager} install --loglevel error`);\n\n console.log(\"\\x1b[32m\", \"Dependencies installed successfully!\", \"\\x1b[0m\");\n console.log();\n } catch (error) {\n console.log(error);\n throw error;\n }\n}\n","import { ts } from \"@tmpl/core\";\n\nexport const upgradeManifestsTemplate = ts`\nimport type { UpgradeManifest } from \"document-model\";\n\nexport const upgradeManifests: UpgradeManifest<readonly number[]>[] = [];\n`.raw;\n","import chalk from \"chalk\";\nimport { buildBoilerplatePackageJson } from \"file-builders\";\nimport fs from \"node:fs\";\nimport path from \"path\";\nimport {\n agentsTemplate,\n buildPowerhouseConfigTemplate,\n claudeSettingsLocalTemplate,\n claudeTemplate,\n connectEntrypointTemplate,\n cursorMcpTemplate,\n dockerfileTemplate,\n documentModelsIndexTemplate,\n documentModelsTemplate,\n editorsIndexTemplate,\n editorsTemplate,\n eslintConfigTemplate,\n factoryBuildersTemplate,\n geminiSettingsTemplate,\n gitIgnoreTemplate,\n indexHtmlTemplate,\n indexTsTemplate,\n licenseTemplate,\n mainTsxTemplate,\n ManifestTemplate,\n mcpTemplate,\n nginxConfTemplate,\n npmrcTemplate,\n processorsFactoryTemplate,\n processorsIndexTemplate,\n readmeTemplate,\n styleTemplate,\n subgraphsIndexTemplate,\n switchboardEntrypointTemplate,\n syncAndPublishWorkflowTemplate,\n tsConfigTemplate,\n vitestConfigTemplate,\n} from \"templates\";\nimport { runPrettier } from \"utils\";\nimport { upgradeManifestsTemplate } from \"../templates/boilerplate/document-models/upgrade-manifests.js\";\nimport { runCmd, writeFileEnsuringDir } from \"./utils.js\";\ntype CreateProjectArgs = {\n name: string;\n packageManager: string;\n tag?: string;\n version?: string;\n remoteDrive?: string;\n skipGitInit?: boolean;\n skipInstall?: boolean;\n};\nexport async function createProject({\n name,\n packageManager,\n tag,\n version,\n remoteDrive,\n skipGitInit,\n skipInstall,\n}: CreateProjectArgs) {\n const appPath = path.join(process.cwd(), name);\n\n try {\n fs.mkdirSync(appPath);\n } catch (err) {\n if ((err as { code: string }).code === \"EEXIST\") {\n console.error(\n `⛔ The folder \"${name}\" already exists in the current directory, please give it another name.`,\n );\n } else {\n console.error(err);\n }\n process.exit(1);\n }\n\n try {\n // Create a new directory for the project\n console.log(chalk.blue(`▶️ Creating directory for project \"${name}\"...\\n`));\n const appPath = path.join(process.cwd(), name);\n process.chdir(appPath);\n console.log(chalk.green(`✅ Project directory created\\n`));\n\n await writeFileEnsuringDir(\".gitignore\", gitIgnoreTemplate);\n if (!skipGitInit) {\n // Create a .gitignore file, then initialize the git repository\n console.log(chalk.blue(`▶️ Initializing git repository...\\n`));\n runCmd(`git init`);\n console.log(chalk.green(`\\n✅ Git repository initialized\\n`));\n }\n\n // Write the boilerplate files for the project\n console.log(chalk.blue(`▶️ Creating project boilerplate files...\\n`));\n await writeProjectRootFiles({ name, tag, version, remoteDrive });\n await writeModuleFiles();\n await writeAiConfigFiles();\n await writeCIFiles();\n console.log(chalk.green(`✅ Project boilerplate files created\\n`));\n\n if (!skipInstall) {\n // Install the project dependencies with the specified package manager\n console.log(\n chalk.blue(\n `▶️ Installing project dependencies with ${packageManager}...\\n`,\n ),\n );\n runCmd(`${packageManager} install`);\n console.log(chalk.green(`\\n✅ Project dependencies installed\\n`));\n }\n\n // Use the installed version of `prettier` to format the generated code\n console.log(chalk.blue(`▶️ Formatting boilerplate project files...\\n`));\n await runPrettier();\n console.log(chalk.green(`✅ Boilerplate files formatted\\n`));\n\n // Project creation complete\n console.log(chalk.bold(`🎉 Successfully created project \"${name}\" 🎉\\n`));\n } catch (error) {\n console.error(error);\n process.exit(1);\n }\n}\n\nasync function writeProjectRootFiles(args: {\n name: string;\n tag?: string;\n version?: string;\n remoteDrive?: string;\n}) {\n const { name, tag, version, remoteDrive } = args;\n await writeFileEnsuringDir(\"LICENSE\", licenseTemplate);\n await writeFileEnsuringDir(\"README.md\", readmeTemplate);\n await writeFileEnsuringDir(\".npmrc\", npmrcTemplate);\n const packageJson = await buildBoilerplatePackageJson({\n name,\n tag,\n version,\n });\n const Manifest = ManifestTemplate(name);\n await writeFileEnsuringDir(\"powerhouse.manifest.json\", Manifest);\n const powerhouseConfig = await buildPowerhouseConfigTemplate({\n tag,\n version,\n remoteDrive,\n });\n await writeFileEnsuringDir(\"powerhouse.config.json\", powerhouseConfig);\n await writeFileEnsuringDir(\"package.json\", packageJson);\n await writeFileEnsuringDir(\"tsconfig.json\", tsConfigTemplate);\n await writeFileEnsuringDir(\"index.html\", indexHtmlTemplate);\n await writeFileEnsuringDir(\"main.tsx\", mainTsxTemplate);\n await writeFileEnsuringDir(\"eslint.config.js\", eslintConfigTemplate);\n await writeFileEnsuringDir(\"index.ts\", indexTsTemplate);\n await writeFileEnsuringDir(\"style.css\", styleTemplate);\n await writeFileEnsuringDir(\"vitest.config.ts\", vitestConfigTemplate);\n}\n\nasync function writeModuleFiles() {\n await writeFileEnsuringDir(\n \"document-models/document-models.ts\",\n documentModelsTemplate,\n );\n await writeFileEnsuringDir(\n \"document-models/index.ts\",\n documentModelsIndexTemplate,\n );\n await writeFileEnsuringDir(\n \"document-models/upgrade-manifests.ts\",\n upgradeManifestsTemplate,\n );\n await writeFileEnsuringDir(\"editors/editors.ts\", editorsTemplate);\n await writeFileEnsuringDir(\"editors/index.ts\", editorsIndexTemplate);\n await writeFileEnsuringDir(\n \"processors/factory.ts\",\n processorsFactoryTemplate,\n );\n await writeFileEnsuringDir(\"processors/index.ts\", processorsIndexTemplate);\n await writeFileEnsuringDir(\"processors/connect.ts\", factoryBuildersTemplate);\n await writeFileEnsuringDir(\n \"processors/switchboard.ts\",\n factoryBuildersTemplate,\n );\n await writeFileEnsuringDir(\"subgraphs/index.ts\", subgraphsIndexTemplate);\n await writeFileEnsuringDir(\"processors/index.ts\", processorsIndexTemplate);\n}\n\nasync function writeAiConfigFiles() {\n await writeFileEnsuringDir(\"CLAUDE.md\", claudeTemplate);\n await writeFileEnsuringDir(\"AGENTS.md\", agentsTemplate);\n await writeFileEnsuringDir(\".mcp.json\", mcpTemplate);\n await writeFileEnsuringDir(\".gemini/settings.json\", geminiSettingsTemplate);\n await writeFileEnsuringDir(\".cursor/mcp.json\", cursorMcpTemplate);\n await writeFileEnsuringDir(\n \".claude/settings.local.json\",\n claudeSettingsLocalTemplate,\n );\n}\n\nasync function writeCIFiles() {\n await writeFileEnsuringDir(\n \".github/workflows/sync-and-publish.yml\",\n syncAndPublishWorkflowTemplate,\n );\n await writeFileEnsuringDir(\"Dockerfile\", dockerfileTemplate);\n await writeFileEnsuringDir(\"docker/nginx.conf\", nginxConfTemplate);\n await writeFileEnsuringDir(\n \"docker/connect-entrypoint.sh\",\n connectEntrypointTemplate,\n );\n await writeFileEnsuringDir(\n \"docker/switchboard-entrypoint.sh\",\n switchboardEntrypointTemplate,\n );\n}\n","import type { DeclarationManager } from \"../utilities/DeclarationManager.js\";\nimport type { DirectoryManager } from \"../utilities/DirectoryManager.js\";\nimport type { ImportManager } from \"../utilities/ImportManager.js\";\nimport type { GenerationContext } from \"./GenerationContext.js\";\n\nexport abstract class FileGenerator {\n constructor(\n protected importManager: ImportManager,\n protected directoryManager: DirectoryManager,\n protected declarationManager: DeclarationManager,\n ) {}\n\n abstract generate(context: GenerationContext): Promise<void>;\n}\n","import { camelCase, kebabCase, pascalCase } from \"change-case\";\nimport type { OperationErrorSpecification } from \"@powerhousedao/shared/document-model\";\nimport type {\n MethodDeclaration,\n ObjectLiteralExpression,\n SourceFile,\n} from \"ts-morph\";\nimport { SyntaxKind, VariableDeclarationKind } from \"ts-morph\";\nimport { FileGenerator } from \"./FileGenerator.js\";\nimport type {\n CodegenOperation,\n GenerationContext,\n} from \"./GenerationContext.js\";\n\nexport class ReducerGenerator extends FileGenerator {\n async generate(context: GenerationContext): Promise<void> {\n // Skip if no actions to generate\n if (context.operations.length === 0) return;\n\n const filePath = this.getOutputPath(context);\n const sourceFile = await this.directoryManager.createSourceFile(\n context.project,\n filePath,\n );\n\n const packageName = context.packageName;\n // Reducer-specific import logic\n const typeImportName = `${pascalCase(context.docModel.name)}${pascalCase(context.module.name)}Operations`;\n const typeImportPath = `${packageName}/document-models/${kebabCase(context.docModel.name)}`;\n\n // Import management (shared utility)\n this.importManager.replaceImportByName(\n sourceFile,\n typeImportName,\n typeImportPath,\n true,\n );\n\n // AST logic (specific to reducers)\n this.createReducerObject(sourceFile, typeImportName, context);\n\n // Detect and import error classes used in the actual reducer code (after generation)\n this.addErrorImports(sourceFile, context);\n\n await sourceFile.save();\n }\n\n private static getDefaultReducerCode(methodName: string): string[] {\n return [\n `// TODO: Implement \"${methodName}\" reducer`,\n `throw new Error('Reducer \"${methodName}\" not yet implemented');`,\n ];\n }\n\n private addErrorImports(\n sourceFile: SourceFile,\n context: GenerationContext,\n ): void {\n // Collect all errors from all operations\n const allErrors: OperationErrorSpecification[] = [];\n\n context.operations.forEach((operation) => {\n if (Array.isArray(operation.errors)) {\n operation.errors\n .filter((error) => error.name)\n .forEach((error) => {\n // Deduplicate errors by name\n if (!allErrors.find((e) => e.name === error.name)) {\n allErrors.push(error);\n }\n });\n }\n });\n\n if (allErrors.length === 0) return;\n\n // Analyze the actual source file content to find which errors are used\n const sourceFileContent = sourceFile.getFullText();\n const usedErrors = new Set<string>();\n\n allErrors.forEach((error) => {\n // Check if error class name is mentioned anywhere in the source file\n // Look for patterns like \"new ErrorName\" or \"throw ErrorName\" or \"ErrorName(\"\n const errorPattern = new RegExp(`\\\\b${error.name}\\\\b`, \"g\");\n if (errorPattern.test(sourceFileContent)) {\n usedErrors.add(error.name!);\n }\n });\n\n // Add imports for used errors (only if they're not already imported)\n if (usedErrors.size > 0) {\n const errorImportPath = `../../gen/${kebabCase(context.module.name)}/error.js`;\n const errorClassNames = Array.from(usedErrors);\n\n // Check if imports already exist to avoid duplicates\n const existingImports = sourceFile.getImportDeclarations();\n const existingErrorImport = existingImports.find(\n (importDecl) =>\n importDecl.getModuleSpecifierValue() === errorImportPath,\n );\n\n if (existingErrorImport) {\n // Get already imported error names\n const existingNamedImports = existingErrorImport\n .getNamedImports()\n .map((namedImport) => namedImport.getName());\n\n // Only import errors that aren't already imported\n const newErrorsToImport = errorClassNames.filter(\n (errorName) => !existingNamedImports.includes(errorName),\n );\n\n if (newErrorsToImport.length > 0) {\n // Add new named imports to existing import declaration\n existingErrorImport.addNamedImports(newErrorsToImport);\n }\n } else {\n // Create new import declaration\n this.importManager.addNamedImports(\n sourceFile,\n errorClassNames,\n errorImportPath,\n );\n }\n }\n }\n\n private getOutputPath(context: GenerationContext): string {\n return this.directoryManager.getReducerPath(\n context.rootDir,\n context.docModel.name,\n context.module.name,\n );\n }\n\n private createReducerObject(\n sourceFile: SourceFile,\n typeName: string,\n context: GenerationContext,\n ): void {\n const { operations, forceUpdate } = context;\n const operationHandlersObjectName = `${camelCase(context.docModel.name)}${pascalCase(context.module.name)}Operations`;\n const legacyReducerVar = sourceFile.getVariableDeclaration(\"reducer\");\n if (legacyReducerVar) {\n this.declarationManager.renameVariable(\n sourceFile,\n \"reducer\",\n operationHandlersObjectName,\n );\n }\n let reducerVar = sourceFile.getVariableDeclaration(\n operationHandlersObjectName,\n );\n if (!reducerVar) {\n sourceFile.addVariableStatement({\n declarationKind: VariableDeclarationKind.Const,\n isExported: true,\n declarations: [\n {\n name: operationHandlersObjectName,\n type: typeName,\n initializer: \"{}\",\n },\n ],\n });\n reducerVar = sourceFile.getVariableDeclarationOrThrow(\n operationHandlersObjectName,\n );\n } else {\n // Ensure correct type\n const typeNode = reducerVar.getTypeNode();\n if (!typeNode || typeNode.getText() !== typeName) {\n reducerVar.setType(typeName);\n }\n }\n\n const initializer = reducerVar.getInitializerIfKindOrThrow(\n SyntaxKind.ObjectLiteralExpression,\n );\n\n for (const operation of operations) {\n this.addReducerMethod(initializer, operation, forceUpdate);\n }\n }\n\n private addReducerMethod(\n objectLiteral: ObjectLiteralExpression,\n operation: CodegenOperation,\n forceUpdate = false,\n ): void {\n const actionName = camelCase(operation.name ?? \"\");\n if (!actionName) return;\n\n const methodName = `${actionName}Operation`;\n\n const reducerCode = operation.reducer?.trim();\n\n const existingReducer = objectLiteral\n .getProperty(methodName)\n ?.asKind(SyntaxKind.MethodDeclaration);\n\n // if reducer already exists but forceUpdate is true, update it\n if (existingReducer) {\n if (forceUpdate && reducerCode) {\n existingReducer.setBodyText(\"\");\n this.setReducerMethodCode(existingReducer, reducerCode);\n }\n return;\n }\n\n // if reducer doesn't exist, create it and set the code with the default code if no code is provided\n const method = objectLiteral.addMethod({\n name: methodName,\n parameters: [{ name: \"state\" }, { name: \"action\" }],\n });\n this.setReducerMethodCode(method, reducerCode);\n }\n\n private setReducerMethodCode(reducer: MethodDeclaration, code?: string) {\n reducer.addStatements(\n code ? [code] : ReducerGenerator.getDefaultReducerCode(reducer.getName()),\n );\n }\n}\n","import type { SourceFile } from \"ts-morph\";\n\nexport class DeclarationManager {\n renameVariable(\n sourceFile: SourceFile,\n oldName: string,\n newName: string,\n ): void {\n const variable = sourceFile.getVariableDeclaration(oldName);\n\n if (variable) {\n variable.getNameNode().replaceWithText(newName);\n sourceFile.saveSync();\n }\n }\n}\n","import type { PHProjectDirectories } from \"@powerhousedao/codegen\";\nimport { kebabCase, pascalCase } from \"change-case\";\nimport fs from \"fs/promises\";\nimport path from \"path\";\nimport type { Project, SourceFile } from \"ts-morph\";\n\nexport class DirectoryManager {\n private directories: Required<PHProjectDirectories> = {\n documentModelDir: \"document-model\",\n editorsDir: \"editors\",\n processorsDir: \"processors\",\n subgraphsDir: \"subgraphs\",\n };\n\n constructor(directories: PHProjectDirectories = {}) {\n this.directories = {\n ...this.directories,\n ...directories,\n };\n }\n async ensureExists(dirPath: string): Promise<void> {\n try {\n await fs.mkdir(dirPath, { recursive: true });\n } catch (err) {\n console.error(`Failed to create directory: ${dirPath}`, err);\n throw err;\n }\n }\n\n // Path builders for different file types\n getReducerPath(\n rootDir: string,\n docModelName: string,\n moduleName: string,\n ): string {\n return path.join(\n rootDir,\n this.directories.documentModelDir,\n kebabCase(docModelName),\n \"src\",\n \"reducers\",\n `${kebabCase(moduleName)}.ts`,\n );\n }\n\n getActionsPath(\n rootDir: string,\n docModelName: string,\n moduleName: string,\n ): string {\n return path.join(\n rootDir,\n this.directories.documentModelDir,\n kebabCase(docModelName),\n \"src\",\n \"actions\",\n `${kebabCase(moduleName)}.ts`,\n );\n }\n\n getComponentPath(\n rootDir: string,\n docModelName: string,\n componentName: string,\n ): string {\n return path.join(\n rootDir,\n this.directories.documentModelDir,\n kebabCase(docModelName),\n \"src\",\n \"components\",\n `${pascalCase(componentName)}.tsx`,\n );\n }\n\n getTypesPath(rootDir: string, docModelName: string): string {\n return path.join(\n rootDir,\n this.directories.documentModelDir,\n kebabCase(docModelName),\n \"src\",\n \"types.ts\",\n );\n }\n\n async createSourceFile(\n project: Project,\n filePath: string,\n ): Promise<SourceFile> {\n await this.ensureExists(path.dirname(filePath));\n return (\n project.addSourceFileAtPathIfExists(filePath) ??\n project.createSourceFile(filePath, \"\", { overwrite: false })\n );\n }\n}\n","import type { ImportDeclaration, SourceFile } from \"ts-morph\";\n\nexport interface ImportSpec {\n moduleSpecifier: string;\n namedImports?: string[];\n defaultImport?: string;\n isTypeOnly?: boolean;\n}\n\nexport class ImportManager {\n addImport(sourceFile: SourceFile, spec: ImportSpec): void {\n // Check if import already exists\n const existing = sourceFile.getImportDeclaration(\n (imp) => imp.getFullText() === spec.moduleSpecifier,\n );\n if (existing) {\n this.mergeImports(existing, spec);\n } else {\n sourceFile.addImportDeclaration(spec);\n }\n }\n\n addTypeImport(sourceFile: SourceFile, typeName: string, path: string): void {\n this.addImport(sourceFile, {\n moduleSpecifier: path,\n namedImports: [typeName],\n isTypeOnly: true,\n });\n }\n\n addNamedImports(\n sourceFile: SourceFile,\n imports: string[],\n path: string,\n ): void {\n this.addImport(sourceFile, {\n moduleSpecifier: path,\n namedImports: imports,\n });\n }\n\n private mergeImports(\n existingImport: ImportDeclaration,\n newSpec: ImportSpec,\n ): void {\n // Logic to merge named imports if they don't already exist\n if (newSpec.namedImports) {\n const existingNames = existingImport\n .getNamedImports()\n .map((ni) => ni.getName());\n const newNames = newSpec.namedImports.filter(\n (name) => !existingNames.includes(name),\n );\n\n if (newNames.length > 0) {\n existingImport.addNamedImports(newNames);\n }\n }\n }\n\n replaceImportByName(\n sourceFile: SourceFile,\n name: string,\n path: string,\n isTypeOnly = false,\n ): void {\n const existing = sourceFile\n .getImportDeclarations()\n .filter((imp) =>\n imp.getNamedImports().find((ni) => ni.getName() === name),\n );\n existing.forEach((imp) => imp.remove());\n sourceFile.addImportDeclaration({\n moduleSpecifier: path,\n namedImports: [name],\n isTypeOnly,\n });\n sourceFile.saveSync();\n }\n}\n","import type {\n DocumentModelGlobalState,\n ModuleSpecification,\n} from \"@powerhousedao/shared/document-model\";\nimport fs from \"fs/promises\";\nimport { Project } from \"ts-morph\";\nimport { DeclarationManager } from \"../utilities/DeclarationManager.js\";\nimport { DirectoryManager } from \"../utilities/DirectoryManager.js\";\nimport { ImportManager } from \"../utilities/ImportManager.js\";\nimport type { FileGenerator } from \"./FileGenerator.js\";\nimport type {\n CodeGeneratorOptions,\n CodegenOperation,\n GenerationContext,\n PHProjectDirectories,\n} from \"./GenerationContext.js\";\nimport { ReducerGenerator } from \"./ReducerGenerator.js\";\n\nexport class TSMorphCodeGenerator {\n private project = new Project();\n private generators = new Map<string, FileGenerator>();\n private directories: PHProjectDirectories = {\n documentModelDir: \"document-model\",\n editorsDir: \"editors\",\n processorsDir: \"processors\",\n subgraphsDir: \"subgraphs\",\n };\n private forceUpdate = false;\n\n constructor(\n private rootDir: string,\n private docModels: DocumentModelGlobalState[],\n private packageName: string,\n options: CodeGeneratorOptions = { directories: {}, forceUpdate: false },\n ) {\n this.directories = {\n ...this.directories,\n ...options.directories,\n };\n this.packageName = packageName;\n this.forceUpdate = options.forceUpdate ?? false;\n\n this.setupGenerators();\n }\n\n private setupGenerators(): void {\n const importManager = new ImportManager();\n const directoryManager = new DirectoryManager(this.directories);\n const declarationManager = new DeclarationManager();\n // Register all generators\n this.generators.set(\n \"reducers\",\n new ReducerGenerator(importManager, directoryManager, declarationManager),\n );\n }\n\n // Generate specific file types\n async generateReducers(): Promise<void> {\n await this.generateFileType(\"reducers\");\n }\n\n // Generate everything\n async generateAll(): Promise<void> {\n for (const [type] of this.generators) {\n await this.generateFileType(type);\n }\n }\n\n private async generateFileType(type: string): Promise<void> {\n const generator = this.generators.get(type);\n if (!generator) {\n throw new Error(`No generator registered for type: ${type}`);\n }\n\n await this.setupProject();\n\n for (const docModel of this.docModels) {\n const latestSpec =\n docModel.specifications[docModel.specifications.length - 1];\n\n for (const module of latestSpec.modules) {\n const context = this.createGenerationContext(\n docModel,\n module,\n this.forceUpdate,\n );\n\n await generator.generate(context);\n }\n }\n }\n\n private async setupProject(): Promise<void> {\n // Only load files from configured directories\n const sourcePaths: string[] = [];\n\n if (this.directories.documentModelDir) {\n const dirPath = `${this.rootDir}/${this.directories.documentModelDir}`;\n await this.ensureDirectoryExists(dirPath);\n sourcePaths.push(`${dirPath}/**/*.ts`);\n }\n if (this.directories.editorsDir) {\n const dirPath = `${this.rootDir}/${this.directories.editorsDir}`;\n await this.ensureDirectoryExists(dirPath);\n sourcePaths.push(`${dirPath}/**/*.ts`);\n }\n if (this.directories.processorsDir) {\n const dirPath = `${this.rootDir}/${this.directories.processorsDir}`;\n await this.ensureDirectoryExists(dirPath);\n sourcePaths.push(`${dirPath}/**/*.ts`);\n }\n if (this.directories.subgraphsDir) {\n const dirPath = `${this.rootDir}/${this.directories.subgraphsDir}`;\n await this.ensureDirectoryExists(dirPath);\n sourcePaths.push(`${dirPath}/**/*.ts`);\n }\n\n // Exclude node_modules from all paths\n sourcePaths.push(`!${this.rootDir}/**/node_modules/**`);\n\n if (sourcePaths.length > 0) {\n this.project.addSourceFilesAtPaths(sourcePaths);\n }\n }\n\n private createGenerationContext(\n docModel: DocumentModelGlobalState,\n module: ModuleSpecification,\n forceUpdate = false,\n ): GenerationContext {\n const operations: CodegenOperation[] = module.operations.map((op) => ({\n ...op,\n hasInput: op.schema !== null,\n hasAttachment: op.schema?.includes(\": Attachment\"),\n scope: op.scope || \"global\",\n state: op.scope === \"global\" ? \"\" : op.scope,\n }));\n\n return {\n rootDir: this.rootDir,\n packageName: this.packageName,\n docModel,\n module,\n project: this.project,\n operations,\n forceUpdate,\n };\n }\n\n private async ensureDirectoryExists(dirPath: string): Promise<void> {\n try {\n await fs.mkdir(dirPath, { recursive: true });\n } catch (err) {\n console.error(`Failed to create directory: ${dirPath}`, err);\n throw err;\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAaA,eAAsB,kBACpB,MACmC;CACnC,IAAI;AACJ,KAAI;AACF,MAAI,CAAC,KACH,OAAM,IAAI,MAAM,oCAAoC;WAC3C,KAAK,SAAS,OAAO,IAAI,KAAK,SAAS,OAAO,CAEvD,kBADa,MAAM,iBAAiB,MAAM,qBAAqB,EAC1C,MAAM;WAClB,KAAK,SAAS,QAAQ,EAAE;GACjC,MAAM,OAAO,MAAM,SAAS,MAAM,QAAQ;GAC1C,MAAM,aAAa,KAAK,MAAM,KAAK;AACnC,OAAI,WAAW,WACb,iBAAgB,WAAW,MAAM;OAEjC,iBAAgB;QAGlB,OAAM,IAAI,MAAM,sDAAsD;AAExE,SAAO;UACA,OAAO;AACd,QAAO,MAA4B,SAAS,qCACxC,IAAI,MAAM,4BAA4B,GACtC;;;AAIR,eAAsB,8BACpB,YACA,SACA;AAIA,QAHwB,MAAM,OAAO,SAAS,EAC5C,QAAQ,cACT,CAAC;;;AAKJ,SAAgB,oBACd,KACA,aAAa,UACK;CAClB,MAAM,mBAAqC,EACzC,6BAA6B;EAC3B,MAAM;EACN,YAAY;EACb,EACF;AAGD,KAAIA,KAAG,WAAW,IAAI,CACpB,MAAG,YAAY,KAAK,EAAE,eAAe,MAAM,CAAC,CACzC,QAAQ,WAAW,OAAO,aAAa,CAAC,CACxC,KAAK,WAAW,OAAO,KAAK,CAC5B,SAAS,SAAS;EACjB,MAAM,WAAW,QAAQ,KAAK,MAAM,GAAG,KAAK,OAAO;AACnD,MAAI,CAACA,KAAG,WAAW,SAAS,CAC1B;EAGF,MAAM,UAAUA,KAAG,aAAa,UAAU,QAAQ;AAClD,MAAI;GACF,MAAM,OAAO,KAAK,MAAM,QAAQ;AAChC,OAAI,KAAK,GACP,kBAAiB,KAAK,MAAM;IAC1B,MAAM,WAAW,KAAK;IACtB,YAAY,KAAK,YAAY,KAAK,MAAM,WAAW;IACpD;UAEG;AACN,WAAQ,MAAM,mBAAmB,WAAW;;GAE9C;AAGN,QAAO;;;;AC7DT,eAAsB,YAAY,MAQ/B;CACD,MAAM,EACJ,KACA,eACA,gBAAgB,OAChB,QAAQ,OACR,aAAa,OACb,UAAU,MACV,QAAQ,SACN;CACJ,MAAM,QAAQ,MAAM,QAAQ,KAAK,EAAE,eAAe,MAAM,CAAC;CACzD,MAAM,sBAAkD,EAAE;AAE1D,MAAK,MAAM,aAAa,MAAM,QAAQ,MAAM,EAAE,aAAa,CAAC,EAAE;EAC5D,MAAM,oBAAoBC,OAAK,KAC7B,KACA,UAAU,MACV,GAAG,UAAU,KAAK,OACnB;AAED,MAAI,CADe,MAAM,WAAW,kBAAkB,CAEpD;AAGF,MAAI;GACF,MAAM,qBAAqB,MAAM,kBAAkB,kBAAkB;AACrE,uBAAoB,KAAK,mBAAmB;AAE5C,SAAM,sBAAsB;IAC1B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACD,CAAC;WACK,OAAO;AACd,OAAI,QACF,SAAQ,MAAM,UAAU,MAAM,MAAM;;;;AAM5C,eAAsB,SACpB,QACA,eACA,gBAAgB,OAChB;CACA,MAAM,EAAE,YAAY,UAAU;AAC9B,OAAM,gBAAgB,OAAO,mBAAmB;EAAE;EAAY;EAAO,CAAC;AACtE,OAAM,YAAY;EAChB,KAAK,OAAO;EACZ;EACA;EACA;EACA;EACD,CAAC;;AAGJ,eAAsB,iBAAiB,MAMpC;CACD,MAAM,EAAE,MAAM,QAAQ,eAAe,eAAe,YAAY;AAKhE,OAAM,0BAA0B;EAC9B,oBAJyB,MAAM,kBAAkB,KAAK;EAKtD;EACA;EACA;EACA;EACD,CAAC;;;;;;;;;;;;;;;AAgBJ,eAAsB,qBAAqB,MAMxC;AAED,OAAM,0BAA0B,KAAK;;AAavC,eAAsB,sBAAsB,MAAiC;CAC3E,MAAM,EAAE,KAAK,oBAAoB,eAAe,kBAAkB;AAGlE,8BADwB,+BADJ,MAAM,aAAa,CAC4B,CACtB;AAG7C,OAAM,6BAA6B;EACjC,YAFiBA,OAAK,QAAQ,IAAI;EAGlC;EACA;EACA;EACD,CAAC;;AAqEJ,SAAS,+BACP,aACoB;AAMpB,QALqB;EACnB,GAAG,YAAY;EACf,GAAG,YAAY;EAChB,CACkC;;AAIrC,SAAS,6BAA6B,iBAAqC;AACzE,KAAI,CAAC,gBAAiB;CACtB,MAAM,UAAU,OAAO,MAAM,gBAAgB;AAC7C,KAAI,CAAC,QAAS;AAEd,KAAI,CADiB,OAAO,IAAI,SAAS,QAAQ,CAE/C,OAAM,IAAI,MACR,wBAAwB,gBAAgB,+DACzC;;AAWL,eAAsB,eAAe,MAA0B;CAC7D,MAAM,EACJ,YACA,eACA,UAAU,aACV,kBACE;CAEJ,MAAM,aAAaA,OAAK,QAAQ,UAAU;AAE1C,KAAI,cAAc,SAAS,EACzB,OAAM,IAAI,MAAM,gDAAgD;CAGlE,MAAM,kBAAkB,cAAc;CACtC,MAAM,WAAW,eAAe,UAAU,WAAW;AAGrD,OAAM,8BAA8B;EAClC;EACA,WAJgB,iBAAiB,UAAU,WAAW;EAKtD;EACA;EACA;EACD,CAAC;;AAKJ,eAAsB,YAAY,SAO/B;CACD,MAAM,EACJ,SACA,OACA,sBACA,sBACA,eACE;AAKJ,OAAM,mBAAmB;EACvB,YAHiBA,OAAK,QAFZ,UAEwB;EAIlC,WAAW,cAAc,UAAU,QAAQ;EAC3C,YAAY;EACZ,UAAU,SAAS,UAAU,QAAQ;EACrC,yBAAyB,wBAAwB,EAAE;EACnD,sBAAsB,wBAAwB;EAC/C,CAAC;;AAGJ,eAAsB,kCACpB,MACA,eACA,QACA;AACA,OAAM,wBAAwB;EAC5B,cAAc,OAAO;EACrB,cAAc;EACd;EACD,CAAC;AACF,OAAM,uBAAuB,EAC3B,YAAYA,OAAK,QAAQ,OAAO,aAAa,EAC9C,CAAC;;AAGJ,eAAsB,iBACpB,MACA,MACA,QACA;CACA,MAAM,qBACJ,SAAS,OAAO,MAAM,kBAAkB,KAAK,GAAG;AAElD,OAAM,wBAAwB;EAC5B,cAAc,OAAO;EACrB,cAAc;EACd,eAAe;EAChB,CAAC;AACF,OAAM,uBAAuB,EAC3B,YAAYA,OAAK,QAAQ,OAAO,aAAa,EAC9C,CAAC;;AAGJ,eAAsB,kBAAkB,MAOrC;CACD,MAAM,EAAE,UAAU,QAAQ,KAAK,KAAK;AACpC,QAAO,MAAM,yBAAyB;EACpC;EACA,GAAG;EACJ,CAAC;;AAGJ,eAAsB,qBACpB,OACA,SACA;AACA,OAAM,IAAI,MACR,iHACD;;AAGH,MAAM,kBAA4B;CAChC,MAAM;CACN,aAAa;CACb,UAAU;CACV,WAAW;EACT,MAAM;EACN,KAAK;EACN;CACD,gBAAgB,EAAE;CAClB,SAAS,EAAE;CACX,MAAM,EAAE;CACR,WAAW,EAAE;CACb,YAAY,EAAE;CACf;AAED,SAAgB,iBACd,cACA,aACA;CAEA,MAAM,eAAe,KADL,eAAe,QAAQ,KAAK,EACT,2BAA2B;CAK9D,IAAI,mBAA6B;AACjC,KAAIC,KAAG,WAAW,aAAa,CAC7B,KAAI;EACF,MAAM,eAAeA,KAAG,aAAa,cAAc,QAAQ;AAC3D,qBAAmB,KAAK,MAAM,aAAa;UACpC,OAAO;AACd,UAAQ,KAAK,sCAAsC,OAAO,MAAM,GAAG;AACnE,qBAAmB;;CAKvB,MAAM,kBACJ,eACA,aACQ;AACR,MAAI,CAAC,SAAU,QAAO;EAEtB,MAAM,SAAS,CAAC,GAAG,cAAc;AAEjC,WAAS,SAAS,YAAY;GAC5B,MAAM,gBAAgB,OAAO,WAAW,SAAS,KAAK,OAAO,QAAQ,GAAG;AACxE,OAAI,kBAAkB,GAEpB,QAAO,iBAAiB;OAGxB,QAAO,KAAK,QAAQ;IAEtB;AAEF,SAAO;;CAKT,MAAM,qBACJ,eACA,aACQ;AACR,MAAI,CAAC,SAAU,QAAO;EAEtB,MAAM,SAAS,CAAC,GAAG,cAAc;AAEjC,WAAS,SAAS,YAAY;GAC5B,MAAM,gBAAgB,OAAO,WAC1B,SAAS,KAAK,SAAS,QAAQ,KACjC;AACD,OAAI,kBAAkB,GACpB,QAAO,iBAAiB;OAExB,QAAO,KAAK,QAAQ;IAEtB;AAEF,SAAO;;CAIT,MAAM,kBAA4B;EAChC,GAAG;EACH,GAAG;EACH,WAAW;GACT,GAAG,iBAAiB;GACpB,GAAI,aAAa,aAAa,EAAE;GACjC;EACD,gBAAgB,eACd,iBAAiB,kBAAkB,EAAE,EACrC,aAAa,eACd;EACD,SAAS,eACP,iBAAiB,WAAW,EAAE,EAC9B,aAAa,QACd;EACD,MAAM,eAAe,iBAAiB,QAAQ,EAAE,EAAE,aAAa,KAAK;EACpE,WAAW,eACT,iBAAiB,aAAa,EAAE,EAChC,aAAa,UACd;EACD,QAAQ,kBACN,iBAAiB,UAAU,EAAE,EAC7B,aAAa,OACd;EACF;AAGD,MAAG,cAAc,cAAc,KAAK,UAAU,iBAAiB,MAAM,EAAE,CAAC;AAExE,QAAO;;;;;;;;;;;;;;AAeT,eAAe,0BAA0B,MAMtC;CACD,MAAM,EACJ,oBACA,QACA,eACA,eACA,UAAU,EAAE,KACV;CACJ,MAAM,EACJ,UAAU,OAAO,aAAa,aAC5B,OAAO,aAAa,WACpB,OAAO,aAAa,QACtB,QAAQ,UACN;CACJ,MAAM,OAAO,UAAU,mBAAmB,KAAK;CAC/C,MAAM,mBAAmB,KAAK,OAAO,mBAAmB,KAAK;AAE7D,MAAG,UAAU,kBAAkB,EAAE,WAAW,MAAM,CAAC;AACnD,MAAG,cACD,KAAK,kBAAkB,GAAG,KAAK,OAAO,EACtC,KAAK,UAAU,oBAAoB,MAAM,EAAE,CAC5C;AAED,OAAM,sBAAsB;EAC1B,KAAK,OAAO;EACZ;EACA,OAAO,OAAO;EACd,YAAY,OAAO;EACnB;EACA;EACA;EACA;EACD,CAAC;;;;AC7hBJ,SAAS,qBAA6B;CAGpC,MAAM,QAFU,cAAc,OAAO,KAAK,IAAI,CAExB,QAAQ,MAAM,gBAAgB;AACpD,KAAI,MACF,MAAK,MAAM,YAAY,OAAO;EAE5B,MAAM,UAAU,KADA,KAAK,UAAU,gBAAgB,EACjB,aAAa;AAE3C,MAAI,WAAW,QAAQ,CACrB,QAAO;;AAKb,OAAM,IAAI,MAAM,0CAA0C;;AAQ5D,SAAS,WACP,SACA,MACA,KACe;AACf,QAAO,IAAI,SAAS,SAAS,WAAW;EACtC,MAAM,QAAQ,MAAM,SAAS,MAAM;GACjC;GACA,OAAO;GACP,OAAO;GACR,CAAC;AAEF,QAAM,GAAG,UAAU,SAAS;AAC1B,OAAI,SAAS,EACX,UAAS;OAET,wBAAO,IAAI,MAAM,iCAAiC,OAAO,CAAC;IAE5D;AAEF,QAAM,GAAG,UAAU,UAAU;AAC3B,UAAO,MAAM;IACb;GACF;;AAGJ,eAAsB,iBAAiB,EACrC,eACA,cACW;CACX,MAAM,UAAU,cAAc,QAAQ,eAAe,eAAe;AAEpE,KAAI;AAGF,QAAM,WACJ,QACA;GAJoB,oBAAoB;GAIxB;GAAe;GAAa;GAAQ,EACpD,QAAQ,KAAK,CACd;AAED,UAAQ,IAAI,6BAA6B,UAAU;UAC5C,OAAO;AACd,UAAQ,MAAM,4BAA4B,MAAM;;;;;ACnEpD,MAAM,kBAAkB;CAAC;CAAO;CAAQ;CAAQ;CAAM;AACtD,MAAM,wBAAwB;AAI9B,SAAgB,kBAAkB,WAAoC;AACpE,KAAI,CAAC,UACH,QAAO;CAKT,MAAM,OAFU,UAAU,MAAM,IAAI,CAAC,GACV,MAAM,IAAI,CACb;AAExB,KAAI,gBAAgB,SAAS,KAAuB,CAClD,QAAO;KAEP,QAAO;;AAIsB,kBAC/B,QAAQ,IAAI,sBACb;AAED,SAAgB,OAAO,SAAiB;AACtC,KAAI;AACF,WAAS,SAAS,EAAE,OAAO,WAAW,CAAC;UAChC,OAAO;AACd,UAAQ,IAAI,YAAY,OAAO,UAAU;AACzC,QAAM;;;AAIV,eAAsB,qBACpB,UACA,UACA;AACA,OAAM,MAAM,QAAQ,SAAS,EAAE,EAAE,WAAW,MAAM,CAAC;AACnD,OAAM,UAAU,UAAU,UAAU,EAAE,UAAU,SAAS,CAAC;;;;;;;;;ACnC5D,SAAgB,gBAAgB,eAA+B;AAC7D,KAAI;AACF,UAAQ,IACN,YACA,2BAA2B,cAAc,MACzC,UACD;AACD,SAAO,aAAa,gBAAgB;EAIpC,MAAM,WAAW,cACd,MAAM,IAAI,CACV,KAAK,EACJ,QAAQ,UAAU,GAAG;AAEzB,MAAI,CAAC,SACH,OAAM,IAAI,MAAM,uDAAuD;AAIzE,SADoBC,OAAK,KAAK,QAAQ,KAAK,EAAE,SAAS;UAE/C,OAAO;AACd,UAAQ,IAAI,MAAM;AAClB,QAAM;;;;;;;;AASV,SAAgB,oBACd,aACA,gBACM;AACN,KAAI;AACF,UAAQ,MAAM,YAAY;AAE1B,UAAQ,IACN,YACA,gCAAgC,eAAe,MAC/C,UACD;AACD,SAAO,GAAG,eAAe,2BAA2B;AAEpD,UAAQ,IAAI,YAAY,wCAAwC,UAAU;AAC1E,UAAQ,KAAK;UACN,OAAO;AACd,UAAQ,IAAI,MAAM;AAClB,QAAM;;;;;ACzDV,MAAa,2BAA2B,IAAE;;;;EAIxC;;;AC4CF,eAAsB,cAAc,EAClC,MACA,gBACA,KACA,SACA,aACA,aACA,eACoB;CACpB,MAAM,UAAU,KAAK,KAAK,QAAQ,KAAK,EAAE,KAAK;AAE9C,KAAI;AACF,OAAG,UAAU,QAAQ;UACd,KAAK;AACZ,MAAK,IAAyB,SAAS,SACrC,SAAQ,MACN,iBAAiB,KAAK,yEACvB;MAED,SAAQ,MAAM,IAAI;AAEpB,UAAQ,KAAK,EAAE;;AAGjB,KAAI;AAEF,UAAQ,IAAI,MAAM,KAAK,sCAAsC,KAAK,QAAQ,CAAC;EAC3E,MAAM,UAAU,KAAK,KAAK,QAAQ,KAAK,EAAE,KAAK;AAC9C,UAAQ,MAAM,QAAQ;AACtB,UAAQ,IAAI,MAAM,MAAM,gCAAgC,CAAC;AAEzD,QAAM,qBAAqB,cAAc,kBAAkB;AAC3D,MAAI,CAAC,aAAa;AAEhB,WAAQ,IAAI,MAAM,KAAK,sCAAsC,CAAC;AAC9D,UAAO,WAAW;AAClB,WAAQ,IAAI,MAAM,MAAM,mCAAmC,CAAC;;AAI9D,UAAQ,IAAI,MAAM,KAAK,6CAA6C,CAAC;AACrE,QAAM,sBAAsB;GAAE;GAAM;GAAK;GAAS;GAAa,CAAC;AAChE,QAAM,kBAAkB;AACxB,QAAM,oBAAoB;AAC1B,QAAM,cAAc;AACpB,UAAQ,IAAI,MAAM,MAAM,wCAAwC,CAAC;AAEjE,MAAI,CAAC,aAAa;AAEhB,WAAQ,IACN,MAAM,KACJ,2CAA2C,eAAe,OAC3D,CACF;AACD,UAAO,GAAG,eAAe,UAAU;AACnC,WAAQ,IAAI,MAAM,MAAM,uCAAuC,CAAC;;AAIlE,UAAQ,IAAI,MAAM,KAAK,+CAA+C,CAAC;AACvE,QAAM,aAAa;AACnB,UAAQ,IAAI,MAAM,MAAM,kCAAkC,CAAC;AAG3D,UAAQ,IAAI,MAAM,KAAK,oCAAoC,KAAK,QAAQ,CAAC;UAClE,OAAO;AACd,UAAQ,MAAM,MAAM;AACpB,UAAQ,KAAK,EAAE;;;AAInB,eAAe,sBAAsB,MAKlC;CACD,MAAM,EAAE,MAAM,KAAK,SAAS,gBAAgB;AAC5C,OAAM,qBAAqB,WAAW,gBAAgB;AACtD,OAAM,qBAAqB,aAAa,eAAe;AACvD,OAAM,qBAAqB,UAAU,cAAc;CACnD,MAAM,cAAc,MAAM,4BAA4B;EACpD;EACA;EACA;EACD,CAAC;AAEF,OAAM,qBAAqB,4BADV,iBAAiB,KAAK,CACyB;AAMhE,OAAM,qBAAqB,0BALF,MAAM,8BAA8B;EAC3D;EACA;EACA;EACD,CAAC,CACoE;AACtE,OAAM,qBAAqB,gBAAgB,YAAY;AACvD,OAAM,qBAAqB,iBAAiB,iBAAiB;AAC7D,OAAM,qBAAqB,cAAc,kBAAkB;AAC3D,OAAM,qBAAqB,YAAY,gBAAgB;AACvD,OAAM,qBAAqB,oBAAoB,qBAAqB;AACpE,OAAM,qBAAqB,YAAY,gBAAgB;AACvD,OAAM,qBAAqB,aAAa,cAAc;AACtD,OAAM,qBAAqB,oBAAoB,qBAAqB;;AAGtE,eAAe,mBAAmB;AAChC,OAAM,qBACJ,sCACA,uBACD;AACD,OAAM,qBACJ,4BAAA,GAED;AACD,OAAM,qBACJ,wCACA,yBACD;AACD,OAAM,qBAAqB,sBAAsB,gBAAgB;AACjE,OAAM,qBAAqB,oBAAA,GAAyC;AACpE,OAAM,qBACJ,yBACA,0BACD;AACD,OAAM,qBAAqB,uBAAuB,wBAAwB;AAC1E,OAAM,qBAAqB,yBAAyB,wBAAwB;AAC5E,OAAM,qBACJ,6BACA,wBACD;AACD,OAAM,qBAAqB,sBAAA,GAA6C;AACxE,OAAM,qBAAqB,uBAAuB,wBAAwB;;AAG5E,eAAe,qBAAqB;AAClC,OAAM,qBAAqB,aAAaC,eAAe;AACvD,OAAM,qBAAqB,aAAa,eAAe;AACvD,OAAM,qBAAqB,aAAa,YAAY;AACpD,OAAM,qBAAqB,yBAAyB,uBAAuB;AAC3E,OAAM,qBAAqB,oBAAoB,kBAAkB;AACjE,OAAM,qBACJ,+BACA,4BACD;;AAGH,eAAe,eAAe;AAC5B,OAAM,qBACJ,0CACA,+BACD;AACD,OAAM,qBAAqB,cAAc,mBAAmB;AAC5D,OAAM,qBAAqB,qBAAqB,kBAAkB;AAClE,OAAM,qBACJ,gCACA,0BACD;AACD,OAAM,qBACJ,oCACA,8BACD;;;;AC5MH,IAAsB,gBAAtB,MAAoC;CAClC,YACE,eACA,kBACA,oBACA;AAHU,OAAA,gBAAA;AACA,OAAA,mBAAA;AACA,OAAA,qBAAA;;;;;ACKd,IAAa,mBAAb,MAAa,yBAAyB,cAAc;CAClD,MAAM,SAAS,SAA2C;AAExD,MAAI,QAAQ,WAAW,WAAW,EAAG;EAErC,MAAM,WAAW,KAAK,cAAc,QAAQ;EAC5C,MAAM,aAAa,MAAM,KAAK,iBAAiB,iBAC7C,QAAQ,SACR,SACD;EAED,MAAM,cAAc,QAAQ;EAE5B,MAAM,iBAAiB,GAAG,WAAW,QAAQ,SAAS,KAAK,GAAG,WAAW,QAAQ,OAAO,KAAK,CAAC;EAC9F,MAAM,iBAAiB,GAAG,YAAY,mBAAmB,UAAU,QAAQ,SAAS,KAAK;AAGzF,OAAK,cAAc,oBACjB,YACA,gBACA,gBACA,KACD;AAGD,OAAK,oBAAoB,YAAY,gBAAgB,QAAQ;AAG7D,OAAK,gBAAgB,YAAY,QAAQ;AAEzC,QAAM,WAAW,MAAM;;CAGzB,OAAe,sBAAsB,YAA8B;AACjE,SAAO,CACL,uBAAuB,WAAW,YAClC,6BAA6B,WAAW,0BACzC;;CAGH,gBACE,YACA,SACM;EAEN,MAAM,YAA2C,EAAE;AAEnD,UAAQ,WAAW,SAAS,cAAc;AACxC,OAAI,MAAM,QAAQ,UAAU,OAAO,CACjC,WAAU,OACP,QAAQ,UAAU,MAAM,KAAK,CAC7B,SAAS,UAAU;AAElB,QAAI,CAAC,UAAU,MAAM,MAAM,EAAE,SAAS,MAAM,KAAK,CAC/C,WAAU,KAAK,MAAM;KAEvB;IAEN;AAEF,MAAI,UAAU,WAAW,EAAG;EAG5B,MAAM,oBAAoB,WAAW,aAAa;EAClD,MAAM,6BAAa,IAAI,KAAa;AAEpC,YAAU,SAAS,UAAU;AAI3B,OADqB,IAAI,OAAO,MAAM,MAAM,KAAK,MAAM,IAAI,CAC1C,KAAK,kBAAkB,CACtC,YAAW,IAAI,MAAM,KAAM;IAE7B;AAGF,MAAI,WAAW,OAAO,GAAG;GACvB,MAAM,kBAAkB,aAAa,UAAU,QAAQ,OAAO,KAAK,CAAC;GACpE,MAAM,kBAAkB,MAAM,KAAK,WAAW;GAI9C,MAAM,sBADkB,WAAW,uBAAuB,CACd,MACzC,eACC,WAAW,yBAAyB,KAAK,gBAC5C;AAED,OAAI,qBAAqB;IAEvB,MAAM,uBAAuB,oBAC1B,iBAAiB,CACjB,KAAK,gBAAgB,YAAY,SAAS,CAAC;IAG9C,MAAM,oBAAoB,gBAAgB,QACvC,cAAc,CAAC,qBAAqB,SAAS,UAAU,CACzD;AAED,QAAI,kBAAkB,SAAS,EAE7B,qBAAoB,gBAAgB,kBAAkB;SAIxD,MAAK,cAAc,gBACjB,YACA,iBACA,gBACD;;;CAKP,cAAsB,SAAoC;AACxD,SAAO,KAAK,iBAAiB,eAC3B,QAAQ,SACR,QAAQ,SAAS,MACjB,QAAQ,OAAO,KAChB;;CAGH,oBACE,YACA,UACA,SACM;EACN,MAAM,EAAE,YAAY,gBAAgB;EACpC,MAAM,8BAA8B,GAAG,UAAU,QAAQ,SAAS,KAAK,GAAG,WAAW,QAAQ,OAAO,KAAK,CAAC;AAE1G,MADyB,WAAW,uBAAuB,UAAU,CAEnE,MAAK,mBAAmB,eACtB,YACA,WACA,4BACD;EAEH,IAAI,aAAa,WAAW,uBAC1B,4BACD;AACD,MAAI,CAAC,YAAY;AACf,cAAW,qBAAqB;IAC9B,iBAAiB,wBAAwB;IACzC,YAAY;IACZ,cAAc,CACZ;KACE,MAAM;KACN,MAAM;KACN,aAAa;KACd,CACF;IACF,CAAC;AACF,gBAAa,WAAW,8BACtB,4BACD;SACI;GAEL,MAAM,WAAW,WAAW,aAAa;AACzC,OAAI,CAAC,YAAY,SAAS,SAAS,KAAK,SACtC,YAAW,QAAQ,SAAS;;EAIhC,MAAM,cAAc,WAAW,4BAC7B,WAAW,wBACZ;AAED,OAAK,MAAM,aAAa,WACtB,MAAK,iBAAiB,aAAa,WAAW,YAAY;;CAI9D,iBACE,eACA,WACA,cAAc,OACR;EACN,MAAM,aAAa,UAAU,UAAU,QAAQ,GAAG;AAClD,MAAI,CAAC,WAAY;EAEjB,MAAM,aAAa,GAAG,WAAW;EAEjC,MAAM,cAAc,UAAU,SAAS,MAAM;EAE7C,MAAM,kBAAkB,cACrB,YAAY,WAAW,EACtB,OAAO,WAAW,kBAAkB;AAGxC,MAAI,iBAAiB;AACnB,OAAI,eAAe,aAAa;AAC9B,oBAAgB,YAAY,GAAG;AAC/B,SAAK,qBAAqB,iBAAiB,YAAY;;AAEzD;;EAIF,MAAM,SAAS,cAAc,UAAU;GACrC,MAAM;GACN,YAAY,CAAC,EAAE,MAAM,SAAS,EAAE,EAAE,MAAM,UAAU,CAAC;GACpD,CAAC;AACF,OAAK,qBAAqB,QAAQ,YAAY;;CAGhD,qBAA6B,SAA4B,MAAe;AACtE,UAAQ,cACN,OAAO,CAAC,KAAK,GAAG,iBAAiB,sBAAsB,QAAQ,SAAS,CAAC,CAC1E;;;;;AC3NL,IAAa,qBAAb,MAAgC;CAC9B,eACE,YACA,SACA,SACM;EACN,MAAM,WAAW,WAAW,uBAAuB,QAAQ;AAE3D,MAAI,UAAU;AACZ,YAAS,aAAa,CAAC,gBAAgB,QAAQ;AAC/C,cAAW,UAAU;;;;;;ACN3B,IAAa,mBAAb,MAA8B;CAC5B,cAAsD;EACpD,kBAAkB;EAClB,YAAY;EACZ,eAAe;EACf,cAAc;EACf;CAED,YAAY,cAAoC,EAAE,EAAE;AAClD,OAAK,cAAc;GACjB,GAAG,KAAK;GACR,GAAG;GACJ;;CAEH,MAAM,aAAa,SAAgC;AACjD,MAAI;AACF,SAAMC,KAAG,MAAM,SAAS,EAAE,WAAW,MAAM,CAAC;WACrC,KAAK;AACZ,WAAQ,MAAM,+BAA+B,WAAW,IAAI;AAC5D,SAAM;;;CAKV,eACE,SACA,cACA,YACQ;AACR,SAAO,KAAK,KACV,SACA,KAAK,YAAY,kBACjB,UAAU,aAAa,EACvB,OACA,YACA,GAAG,UAAU,WAAW,CAAC,KAC1B;;CAGH,eACE,SACA,cACA,YACQ;AACR,SAAO,KAAK,KACV,SACA,KAAK,YAAY,kBACjB,UAAU,aAAa,EACvB,OACA,WACA,GAAG,UAAU,WAAW,CAAC,KAC1B;;CAGH,iBACE,SACA,cACA,eACQ;AACR,SAAO,KAAK,KACV,SACA,KAAK,YAAY,kBACjB,UAAU,aAAa,EACvB,OACA,cACA,GAAG,WAAW,cAAc,CAAC,MAC9B;;CAGH,aAAa,SAAiB,cAA8B;AAC1D,SAAO,KAAK,KACV,SACA,KAAK,YAAY,kBACjB,UAAU,aAAa,EACvB,OACA,WACD;;CAGH,MAAM,iBACJ,SACA,UACqB;AACrB,QAAM,KAAK,aAAa,KAAK,QAAQ,SAAS,CAAC;AAC/C,SACE,QAAQ,4BAA4B,SAAS,IAC7C,QAAQ,iBAAiB,UAAU,IAAI,EAAE,WAAW,OAAO,CAAC;;;;;ACnFlE,IAAa,gBAAb,MAA2B;CACzB,UAAU,YAAwB,MAAwB;EAExD,MAAM,WAAW,WAAW,sBACzB,QAAQ,IAAI,aAAa,KAAK,KAAK,gBACrC;AACD,MAAI,SACF,MAAK,aAAa,UAAU,KAAK;MAEjC,YAAW,qBAAqB,KAAK;;CAIzC,cAAc,YAAwB,UAAkB,MAAoB;AAC1E,OAAK,UAAU,YAAY;GACzB,iBAAiB;GACjB,cAAc,CAAC,SAAS;GACxB,YAAY;GACb,CAAC;;CAGJ,gBACE,YACA,SACA,MACM;AACN,OAAK,UAAU,YAAY;GACzB,iBAAiB;GACjB,cAAc;GACf,CAAC;;CAGJ,aACE,gBACA,SACM;AAEN,MAAI,QAAQ,cAAc;GACxB,MAAM,gBAAgB,eACnB,iBAAiB,CACjB,KAAK,OAAO,GAAG,SAAS,CAAC;GAC5B,MAAM,WAAW,QAAQ,aAAa,QACnC,SAAS,CAAC,cAAc,SAAS,KAAK,CACxC;AAED,OAAI,SAAS,SAAS,EACpB,gBAAe,gBAAgB,SAAS;;;CAK9C,oBACE,YACA,MACA,MACA,aAAa,OACP;AACW,aACd,uBAAuB,CACvB,QAAQ,QACP,IAAI,iBAAiB,CAAC,MAAM,OAAO,GAAG,SAAS,KAAK,KAAK,CAC1D,CACM,SAAS,QAAQ,IAAI,QAAQ,CAAC;AACvC,aAAW,qBAAqB;GAC9B,iBAAiB;GACjB,cAAc,CAAC,KAAK;GACpB;GACD,CAAC;AACF,aAAW,UAAU;;;;;AC3DzB,IAAa,uBAAb,MAAkC;CAChC,UAAkB,IAAI,SAAS;CAC/B,6BAAqB,IAAI,KAA4B;CACrD,cAA4C;EAC1C,kBAAkB;EAClB,YAAY;EACZ,eAAe;EACf,cAAc;EACf;CACD,cAAsB;CAEtB,YACE,SACA,WACA,aACA,UAAgC;EAAE,aAAa,EAAE;EAAE,aAAa;EAAO,EACvE;AAJQ,OAAA,UAAA;AACA,OAAA,YAAA;AACA,OAAA,cAAA;AAGR,OAAK,cAAc;GACjB,GAAG,KAAK;GACR,GAAG,QAAQ;GACZ;AACD,OAAK,cAAc;AACnB,OAAK,cAAc,QAAQ,eAAe;AAE1C,OAAK,iBAAiB;;CAGxB,kBAAgC;EAC9B,MAAM,gBAAgB,IAAI,eAAe;EACzC,MAAM,mBAAmB,IAAI,iBAAiB,KAAK,YAAY;EAC/D,MAAM,qBAAqB,IAAI,oBAAoB;AAEnD,OAAK,WAAW,IACd,YACA,IAAI,iBAAiB,eAAe,kBAAkB,mBAAmB,CAC1E;;CAIH,MAAM,mBAAkC;AACtC,QAAM,KAAK,iBAAiB,WAAW;;CAIzC,MAAM,cAA6B;AACjC,OAAK,MAAM,CAAC,SAAS,KAAK,WACxB,OAAM,KAAK,iBAAiB,KAAK;;CAIrC,MAAc,iBAAiB,MAA6B;EAC1D,MAAM,YAAY,KAAK,WAAW,IAAI,KAAK;AAC3C,MAAI,CAAC,UACH,OAAM,IAAI,MAAM,qCAAqC,OAAO;AAG9D,QAAM,KAAK,cAAc;AAEzB,OAAK,MAAM,YAAY,KAAK,WAAW;GACrC,MAAM,aACJ,SAAS,eAAe,SAAS,eAAe,SAAS;AAE3D,QAAK,MAAM,UAAU,WAAW,SAAS;IACvC,MAAM,UAAU,KAAK,wBACnB,UACA,QACA,KAAK,YACN;AAED,UAAM,UAAU,SAAS,QAAQ;;;;CAKvC,MAAc,eAA8B;EAE1C,MAAM,cAAwB,EAAE;AAEhC,MAAI,KAAK,YAAY,kBAAkB;GACrC,MAAM,UAAU,GAAG,KAAK,QAAQ,GAAG,KAAK,YAAY;AACpD,SAAM,KAAK,sBAAsB,QAAQ;AACzC,eAAY,KAAK,GAAG,QAAQ,UAAU;;AAExC,MAAI,KAAK,YAAY,YAAY;GAC/B,MAAM,UAAU,GAAG,KAAK,QAAQ,GAAG,KAAK,YAAY;AACpD,SAAM,KAAK,sBAAsB,QAAQ;AACzC,eAAY,KAAK,GAAG,QAAQ,UAAU;;AAExC,MAAI,KAAK,YAAY,eAAe;GAClC,MAAM,UAAU,GAAG,KAAK,QAAQ,GAAG,KAAK,YAAY;AACpD,SAAM,KAAK,sBAAsB,QAAQ;AACzC,eAAY,KAAK,GAAG,QAAQ,UAAU;;AAExC,MAAI,KAAK,YAAY,cAAc;GACjC,MAAM,UAAU,GAAG,KAAK,QAAQ,GAAG,KAAK,YAAY;AACpD,SAAM,KAAK,sBAAsB,QAAQ;AACzC,eAAY,KAAK,GAAG,QAAQ,UAAU;;AAIxC,cAAY,KAAK,IAAI,KAAK,QAAQ,qBAAqB;AAEvD,MAAI,YAAY,SAAS,EACvB,MAAK,QAAQ,sBAAsB,YAAY;;CAInD,wBACE,UACA,QACA,cAAc,OACK;EACnB,MAAM,aAAiC,OAAO,WAAW,KAAK,QAAQ;GACpE,GAAG;GACH,UAAU,GAAG,WAAW;GACxB,eAAe,GAAG,QAAQ,SAAS,eAAe;GAClD,OAAO,GAAG,SAAS;GACnB,OAAO,GAAG,UAAU,WAAW,KAAK,GAAG;GACxC,EAAE;AAEH,SAAO;GACL,SAAS,KAAK;GACd,aAAa,KAAK;GAClB;GACA;GACA,SAAS,KAAK;GACd;GACA;GACD;;CAGH,MAAc,sBAAsB,SAAgC;AAClE,MAAI;AACF,SAAMC,KAAG,MAAM,SAAS,EAAE,WAAW,MAAM,CAAC;WACrC,KAAK;AACZ,WAAQ,MAAM,+BAA+B,WAAW,IAAI;AAC5D,SAAM"}
@@ -0,0 +1,3 @@
1
+ import { a as CommonMakeEditorComponentArgs, c as DocumentModelOperationsModuleVariableNames, d as DocumentModelVariableNames, f as EditorVariableNames, i as CommonGenerateEditorArgs, l as DocumentModelTemplateInputs, m as HelpTopic, n as CommandEntry, o as DocumentModelDocumentTypeMetadata, p as GenerateDocumentModelArgs, r as CommandHelpInfo, s as DocumentModelFileMakerArgs, t as ActionFromOperation, u as DocumentModelTemplateInputsWithModule } from "../../types-e2ztuDtG.mjs";
2
+ import { _ as buildBoilerplatePackageJson, a as makeEditorsModulesFile, c as makeUpgradeManifestsFile, d as tsMorphGenerateDocumentModel, f as tsMorphGenerateDocumentEditor, g as writeCliDocsMarkdownFile, h as makeCliDocsFromHelp, i as makeDocumentModelModulesFile, l as makeLegacyIndexFile, m as getCommandsHelpInfo, n as tsMorphGenerateSubgraph, o as makeModulesFile, p as getCommandHelpInfo, r as tsMorphGenerateProcessor, s as makeUpgradeManifestsExport, t as makeSubgraphsIndexFile, u as makeEditorModuleFile, v as tsMorphGenerateApp } from "../../index-CHAnPBj2.mjs";
3
+ export { ActionFromOperation, CommandEntry, CommandHelpInfo, CommonGenerateEditorArgs, CommonMakeEditorComponentArgs, DocumentModelDocumentTypeMetadata, DocumentModelFileMakerArgs, DocumentModelOperationsModuleVariableNames, DocumentModelTemplateInputs, DocumentModelTemplateInputsWithModule, DocumentModelVariableNames, EditorVariableNames, GenerateDocumentModelArgs, HelpTopic, buildBoilerplatePackageJson, getCommandHelpInfo, getCommandsHelpInfo, makeCliDocsFromHelp, makeDocumentModelModulesFile, makeEditorModuleFile, makeEditorsModulesFile, makeLegacyIndexFile, makeModulesFile, makeSubgraphsIndexFile, makeUpgradeManifestsExport, makeUpgradeManifestsFile, tsMorphGenerateApp, tsMorphGenerateDocumentEditor, tsMorphGenerateDocumentModel, tsMorphGenerateProcessor, tsMorphGenerateSubgraph, writeCliDocsMarkdownFile };
@@ -0,0 +1,3 @@
1
+ import "../../templates-BbNsigQX.mjs";
2
+ import { C as makeEditorModuleFile, S as makeLegacyIndexFile, _ as makeDocumentModelModulesFile, b as makeUpgradeManifestsExport, d as getCommandHelpInfo, f as getCommandsHelpInfo, g as tsMorphGenerateApp, h as buildBoilerplatePackageJson, i as tsMorphGenerateDocumentModel, m as writeCliDocsMarkdownFile, n as tsMorphGenerateSubgraph, p as makeCliDocsFromHelp, r as tsMorphGenerateProcessor, t as makeSubgraphsIndexFile, u as tsMorphGenerateDocumentEditor, v as makeEditorsModulesFile, x as makeUpgradeManifestsFile, y as makeModulesFile } from "../../file-builders-BV9wDPPZ.mjs";
3
+ export { buildBoilerplatePackageJson, getCommandHelpInfo, getCommandsHelpInfo, makeCliDocsFromHelp, makeDocumentModelModulesFile, makeEditorModuleFile, makeEditorsModulesFile, makeLegacyIndexFile, makeModulesFile, makeSubgraphsIndexFile, makeUpgradeManifestsExport, makeUpgradeManifestsFile, tsMorphGenerateApp, tsMorphGenerateDocumentEditor, tsMorphGenerateDocumentModel, tsMorphGenerateProcessor, tsMorphGenerateSubgraph, writeCliDocsMarkdownFile };
@@ -0,0 +1,2 @@
1
+ import { a as getEditorVariableNames, c as getActionInputName, d as getActionTypeName, i as getDocumentModelVariableNames, l as getActionInputTypeNames, n as getDocumentModelOperationsModuleVariableNames, o as getLatestDocumentModelSpec, r as getDocumentModelSpecByVersionNumber, s as getLatestDocumentModelSpecVersionNumber, t as getDocumentModelDirName, u as getActionType } from "../../index-CJZGVSYg.mjs";
2
+ export { getActionInputName, getActionInputTypeNames, getActionType, getActionTypeName, getDocumentModelDirName, getDocumentModelOperationsModuleVariableNames, getDocumentModelSpecByVersionNumber, getDocumentModelVariableNames, getEditorVariableNames, getLatestDocumentModelSpec, getLatestDocumentModelSpecVersionNumber };
@@ -0,0 +1,146 @@
1
+ import { camelCase, constantCase, kebabCase, pascalCase } from "change-case";
2
+ //#region src/name-builders/get-action-names.ts
3
+ function getActionTypeName(action) {
4
+ return `${pascalCase(action.name)}Action`;
5
+ }
6
+ function getActionInputName(action) {
7
+ if (!action.hasInput) return;
8
+ return `${pascalCase(action.name)}Input`;
9
+ }
10
+ function getActionType(action) {
11
+ return constantCase(action.name);
12
+ }
13
+ function getActionInputTypeNames(actions) {
14
+ return actions.map(getActionInputName).join(",\n");
15
+ }
16
+ //#endregion
17
+ //#region src/name-builders/get-variable-names.ts
18
+ function getEditorVariableNames({ documentModelDocumentTypeName }) {
19
+ return {
20
+ documentModelDocumentTypeName,
21
+ documentVariableName: camelCase(documentModelDocumentTypeName),
22
+ useSelectedDocumentHookName: `useSelected${documentModelDocumentTypeName}`,
23
+ documentNameVariableName: `${documentModelDocumentTypeName}Name`,
24
+ dispatchFunctionName: "dispatch",
25
+ onClickEditHandlerName: `onClickEdit${documentModelDocumentTypeName}Name`,
26
+ onCancelEditHandlerName: `onClickCancelEdit${documentModelDocumentTypeName}Name`,
27
+ setNameActionName: "setName",
28
+ isEditingVariableName: "isEditing",
29
+ setIsEditingFunctionName: "setIsEditing",
30
+ onSubmitSetNameFunctionName: `onSubmitSet${documentModelDocumentTypeName}Name`
31
+ };
32
+ }
33
+ function getDocumentModelDirName(documentModelState, existingDirName) {
34
+ if (existingDirName) return existingDirName;
35
+ return kebabCase(documentModelState.name);
36
+ }
37
+ function getLatestDocumentModelSpec({ specifications }) {
38
+ return specifications[specifications.length - 1];
39
+ }
40
+ function getDocumentModelSpecByVersionNumber({ specifications }, version) {
41
+ const specificationByIndex = specifications[version];
42
+ const specificationByNumber = specifications.find((spec) => spec.version === version);
43
+ if (!specificationByNumber) {
44
+ console.error(`Specification with version number ${version} does not exist in the document model specifications array`);
45
+ return specificationByIndex;
46
+ }
47
+ if (specificationByIndex.version !== specificationByNumber.version) {
48
+ console.error(`Specification with version ${version} does not match specifications array at index ${version}`);
49
+ return specificationByIndex;
50
+ }
51
+ return specificationByNumber;
52
+ }
53
+ function getLatestDocumentModelSpecVersionNumber(documentModelState) {
54
+ return getLatestDocumentModelSpec(documentModelState).version;
55
+ }
56
+ function getDocumentModelVariableNames(documentType) {
57
+ const kebabCaseDocumentType = kebabCase(documentType);
58
+ const pascalCaseDocumentType = pascalCase(documentType);
59
+ const camelCaseDocumentType = camelCase(documentType);
60
+ const documentTypeVariableName = `${camelCaseDocumentType}DocumentType`;
61
+ const stateName = `${pascalCaseDocumentType}State`;
62
+ const globalStateName = `${pascalCaseDocumentType}GlobalState`;
63
+ const localStateName = `${pascalCaseDocumentType}LocalState`;
64
+ const phStateName = `${pascalCaseDocumentType}PHState`;
65
+ const phDocumentTypeName = `${pascalCaseDocumentType}Document`;
66
+ const actionTypeName = `${pascalCaseDocumentType}Action`;
67
+ const actionsTypeName = `${actionTypeName}s`;
68
+ const actionsName = camelCase(actionsTypeName);
69
+ return {
70
+ kebabCaseDocumentType,
71
+ pascalCaseDocumentType,
72
+ camelCaseDocumentType,
73
+ documentTypeVariableName,
74
+ upgradeManifestName: `${camelCaseDocumentType}UpgradeManifest`,
75
+ stateName,
76
+ globalStateName,
77
+ localStateName,
78
+ phStateName,
79
+ phDocumentTypeName,
80
+ actionTypeName,
81
+ actionsTypeName,
82
+ actionsName,
83
+ stateSchemaName: `${stateName}Schema`,
84
+ phDocumentSchemaName: `${phDocumentTypeName}Schema`,
85
+ isPhStateOfTypeFunctionName: `is${stateName}`,
86
+ assertIsPhStateOfTypeFunctionName: `assertIs${stateName}`,
87
+ isPhDocumentOfTypeFunctionName: `is${phDocumentTypeName}`,
88
+ assertIsPhDocumentOfTypeFunctionName: `assertIs${phDocumentTypeName}`,
89
+ useByIdHookName: `use${phDocumentTypeName}ById`,
90
+ useSelectedHookName: `useSelected${phDocumentTypeName}`,
91
+ useInSelectedDriveHookName: `use${phDocumentTypeName}sInSelectedDrive`,
92
+ useInSelectedFolderHookName: `use${phDocumentTypeName}sInSelectedFolder`
93
+ };
94
+ }
95
+ function getDocumentModelOperationsModuleVariableNames(module) {
96
+ const actions = getActionsFromModule(module);
97
+ return {
98
+ actions,
99
+ errors: getErrorsFromActions(actions)
100
+ };
101
+ }
102
+ function getActionFromOperation(operation) {
103
+ const { name, schema, scope = "global", errors } = operation;
104
+ if (!name) throw new Error("Operation name is required");
105
+ const hasInput = schema !== null;
106
+ return {
107
+ name,
108
+ hasInput,
109
+ isEmptyInput: hasInput && schema.includes("_empty") && !schema.replace(/_empty:\s*Boolean/, "").match(/\w+:\s*\w+/),
110
+ hasAttachment: hasInput && schema.includes(": Attachment"),
111
+ scope,
112
+ state: scope === "global" ? "" : scope,
113
+ errors
114
+ };
115
+ }
116
+ function makeNormalizedError(error) {
117
+ if (!error.name) throw new Error("Error name is required");
118
+ const code = error.code || pascalCase(error.name);
119
+ return {
120
+ ...error,
121
+ code
122
+ };
123
+ }
124
+ function getErrorsFromAction(action) {
125
+ const errors = action.errors;
126
+ const errorCodeSet = /* @__PURE__ */ new Set();
127
+ const normalizedErrors = [];
128
+ for (const error of errors) {
129
+ const normalizedError = makeNormalizedError(error);
130
+ if (!errorCodeSet.has(normalizedError.code)) {
131
+ errorCodeSet.add(normalizedError.code);
132
+ normalizedErrors.push(normalizedError);
133
+ } else console.warn(`Warning: Duplicate error code "${error.code}" with different fields found`);
134
+ }
135
+ return normalizedErrors;
136
+ }
137
+ function getErrorsFromActions(actions) {
138
+ return actions.flatMap(getErrorsFromAction);
139
+ }
140
+ function getActionsFromModule(module) {
141
+ return module.operations.map(getActionFromOperation);
142
+ }
143
+ //#endregion
144
+ export { getActionInputName, getActionInputTypeNames, getActionType, getActionTypeName, getDocumentModelDirName, getDocumentModelOperationsModuleVariableNames, getDocumentModelSpecByVersionNumber, getDocumentModelVariableNames, getEditorVariableNames, getLatestDocumentModelSpec, getLatestDocumentModelSpecVersionNumber };
145
+
146
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/name-builders/get-action-names.ts","../../../src/name-builders/get-variable-names.ts"],"sourcesContent":["import type { ActionFromOperation } from \"@powerhousedao/codegen\";\nimport { constantCase, pascalCase } from \"change-case\";\n\nexport function getActionTypeName(action: ActionFromOperation) {\n return `${pascalCase(action.name)}Action`;\n}\n\nexport function getActionInputName(action: ActionFromOperation) {\n if (!action.hasInput) return;\n return `${pascalCase(action.name)}Input`;\n}\n\nexport function getActionType(action: ActionFromOperation) {\n return constantCase(action.name);\n}\n\nexport function getActionInputTypeNames(actions: ActionFromOperation[]) {\n return actions.map(getActionInputName).join(\",\\n\");\n}\n","import type {\n ActionFromOperation,\n DocumentModelDocumentTypeMetadata,\n} from \"@powerhousedao/codegen\";\nimport type {\n DocumentModelGlobalState,\n DocumentSpecification,\n ModuleSpecification,\n OperationErrorSpecification,\n OperationSpecification,\n} from \"@powerhousedao/shared\";\nimport { camelCase, kebabCase, pascalCase } from \"change-case\";\n\nexport function getEditorVariableNames({\n documentModelDocumentTypeName,\n}: DocumentModelDocumentTypeMetadata) {\n return {\n documentModelDocumentTypeName,\n documentVariableName: camelCase(documentModelDocumentTypeName),\n useSelectedDocumentHookName: `useSelected${documentModelDocumentTypeName}`,\n documentNameVariableName: `${documentModelDocumentTypeName}Name`,\n dispatchFunctionName: \"dispatch\",\n onClickEditHandlerName: `onClickEdit${documentModelDocumentTypeName}Name`,\n onCancelEditHandlerName: `onClickCancelEdit${documentModelDocumentTypeName}Name`,\n setNameActionName: \"setName\",\n isEditingVariableName: \"isEditing\",\n setIsEditingFunctionName: \"setIsEditing\",\n onSubmitSetNameFunctionName: `onSubmitSet${documentModelDocumentTypeName}Name`,\n };\n}\n\nexport function getDocumentModelDirName(\n documentModelState: DocumentModelGlobalState,\n existingDirName?: string,\n) {\n if (existingDirName) return existingDirName;\n return kebabCase(documentModelState.name);\n}\n\nexport function getLatestDocumentModelSpec({\n specifications,\n}: DocumentModelGlobalState) {\n return specifications[specifications.length - 1];\n}\n\nexport function getDocumentModelSpecByVersionNumber(\n { specifications }: DocumentModelGlobalState,\n version: number,\n): DocumentSpecification {\n const specificationByIndex = specifications[version];\n const specificationByNumber = specifications.find(\n (spec) => spec.version === version,\n );\n if (!specificationByNumber) {\n console.error(\n `Specification with version number ${version} does not exist in the document model specifications array`,\n );\n return specificationByIndex;\n }\n if (specificationByIndex.version !== specificationByNumber.version) {\n console.error(\n `Specification with version ${version} does not match specifications array at index ${version}`,\n );\n return specificationByIndex;\n }\n\n return specificationByNumber;\n}\n\nexport function getLatestDocumentModelSpecVersionNumber(\n documentModelState: DocumentModelGlobalState,\n) {\n return getLatestDocumentModelSpec(documentModelState).version;\n}\n\nexport function getDocumentModelVariableNames(documentType: string) {\n const kebabCaseDocumentType = kebabCase(documentType);\n const pascalCaseDocumentType = pascalCase(documentType);\n const camelCaseDocumentType = camelCase(documentType);\n const documentTypeVariableName = `${camelCaseDocumentType}DocumentType`;\n const stateName = `${pascalCaseDocumentType}State`;\n const globalStateName = `${pascalCaseDocumentType}GlobalState`;\n const localStateName = `${pascalCaseDocumentType}LocalState`;\n const phStateName = `${pascalCaseDocumentType}PHState`;\n const phDocumentTypeName = `${pascalCaseDocumentType}Document`;\n const actionTypeName = `${pascalCaseDocumentType}Action`;\n const actionsTypeName = `${actionTypeName}s`;\n const actionsName = camelCase(actionsTypeName);\n const upgradeManifestName = `${camelCaseDocumentType}UpgradeManifest`;\n\n const stateSchemaName = `${stateName}Schema`;\n const phDocumentSchemaName = `${phDocumentTypeName}Schema`;\n const isPhStateOfTypeFunctionName = `is${stateName}`;\n const assertIsPhStateOfTypeFunctionName = `assertIs${stateName}`;\n const isPhDocumentOfTypeFunctionName = `is${phDocumentTypeName}`;\n const assertIsPhDocumentOfTypeFunctionName = `assertIs${phDocumentTypeName}`;\n const useByIdHookName = `use${phDocumentTypeName}ById`;\n const useSelectedHookName = `useSelected${phDocumentTypeName}`;\n const useInSelectedDriveHookName = `use${phDocumentTypeName}sInSelectedDrive`;\n const useInSelectedFolderHookName = `use${phDocumentTypeName}sInSelectedFolder`;\n\n return {\n kebabCaseDocumentType,\n pascalCaseDocumentType,\n camelCaseDocumentType,\n documentTypeVariableName,\n upgradeManifestName,\n stateName,\n globalStateName,\n localStateName,\n phStateName,\n phDocumentTypeName,\n actionTypeName,\n actionsTypeName,\n actionsName,\n stateSchemaName,\n phDocumentSchemaName,\n isPhStateOfTypeFunctionName,\n assertIsPhStateOfTypeFunctionName,\n isPhDocumentOfTypeFunctionName,\n assertIsPhDocumentOfTypeFunctionName,\n useByIdHookName,\n useSelectedHookName,\n useInSelectedDriveHookName,\n useInSelectedFolderHookName,\n };\n}\n\nexport function getDocumentModelOperationsModuleVariableNames(\n module: ModuleSpecification,\n) {\n const actions = getActionsFromModule(module);\n const errors = getErrorsFromActions(actions);\n return { actions, errors };\n}\n\nfunction getActionFromOperation(\n operation: OperationSpecification,\n): ActionFromOperation {\n const { name, schema, scope = \"global\", errors } = operation;\n if (!name) {\n throw new Error(\"Operation name is required\");\n }\n const hasInput = schema !== null;\n const isEmptyInput =\n hasInput &&\n schema.includes(\"_empty\") &&\n !schema.replace(/_empty:\\s*Boolean/, \"\").match(/\\w+:\\s*\\w+/);\n const hasAttachment = hasInput && schema.includes(\": Attachment\");\n const state = scope === \"global\" ? \"\" : scope;\n\n return {\n name,\n hasInput,\n isEmptyInput,\n hasAttachment,\n scope,\n state,\n errors,\n };\n}\n\nfunction makeNormalizedError(error: OperationErrorSpecification) {\n if (!error.name) {\n throw new Error(\"Error name is required\");\n }\n const code = error.code || pascalCase(error.name);\n return {\n ...error,\n code,\n };\n}\n\nfunction getErrorsFromAction(action: ActionFromOperation) {\n const errors = action.errors;\n const errorCodeSet = new Set<string>();\n const normalizedErrors: OperationErrorSpecification[] = [];\n\n for (const error of errors) {\n const normalizedError = makeNormalizedError(error);\n if (!errorCodeSet.has(normalizedError.code)) {\n errorCodeSet.add(normalizedError.code);\n normalizedErrors.push(normalizedError);\n } else {\n console.warn(\n `Warning: Duplicate error code \"${error.code}\" with different fields found`,\n );\n }\n }\n\n return normalizedErrors;\n}\n\nfunction getErrorsFromActions(actions: ActionFromOperation[]) {\n return actions.flatMap(getErrorsFromAction);\n}\n\nfunction getActionsFromModule(module: ModuleSpecification) {\n return module.operations.map(getActionFromOperation);\n}\n"],"mappings":";;AAGA,SAAgB,kBAAkB,QAA6B;AAC7D,QAAO,GAAG,WAAW,OAAO,KAAK,CAAC;;AAGpC,SAAgB,mBAAmB,QAA6B;AAC9D,KAAI,CAAC,OAAO,SAAU;AACtB,QAAO,GAAG,WAAW,OAAO,KAAK,CAAC;;AAGpC,SAAgB,cAAc,QAA6B;AACzD,QAAO,aAAa,OAAO,KAAK;;AAGlC,SAAgB,wBAAwB,SAAgC;AACtE,QAAO,QAAQ,IAAI,mBAAmB,CAAC,KAAK,MAAM;;;;ACJpD,SAAgB,uBAAuB,EACrC,iCACoC;AACpC,QAAO;EACL;EACA,sBAAsB,UAAU,8BAA8B;EAC9D,6BAA6B,cAAc;EAC3C,0BAA0B,GAAG,8BAA8B;EAC3D,sBAAsB;EACtB,wBAAwB,cAAc,8BAA8B;EACpE,yBAAyB,oBAAoB,8BAA8B;EAC3E,mBAAmB;EACnB,uBAAuB;EACvB,0BAA0B;EAC1B,6BAA6B,cAAc,8BAA8B;EAC1E;;AAGH,SAAgB,wBACd,oBACA,iBACA;AACA,KAAI,gBAAiB,QAAO;AAC5B,QAAO,UAAU,mBAAmB,KAAK;;AAG3C,SAAgB,2BAA2B,EACzC,kBAC2B;AAC3B,QAAO,eAAe,eAAe,SAAS;;AAGhD,SAAgB,oCACd,EAAE,kBACF,SACuB;CACvB,MAAM,uBAAuB,eAAe;CAC5C,MAAM,wBAAwB,eAAe,MAC1C,SAAS,KAAK,YAAY,QAC5B;AACD,KAAI,CAAC,uBAAuB;AAC1B,UAAQ,MACN,qCAAqC,QAAQ,4DAC9C;AACD,SAAO;;AAET,KAAI,qBAAqB,YAAY,sBAAsB,SAAS;AAClE,UAAQ,MACN,8BAA8B,QAAQ,gDAAgD,UACvF;AACD,SAAO;;AAGT,QAAO;;AAGT,SAAgB,wCACd,oBACA;AACA,QAAO,2BAA2B,mBAAmB,CAAC;;AAGxD,SAAgB,8BAA8B,cAAsB;CAClE,MAAM,wBAAwB,UAAU,aAAa;CACrD,MAAM,yBAAyB,WAAW,aAAa;CACvD,MAAM,wBAAwB,UAAU,aAAa;CACrD,MAAM,2BAA2B,GAAG,sBAAsB;CAC1D,MAAM,YAAY,GAAG,uBAAuB;CAC5C,MAAM,kBAAkB,GAAG,uBAAuB;CAClD,MAAM,iBAAiB,GAAG,uBAAuB;CACjD,MAAM,cAAc,GAAG,uBAAuB;CAC9C,MAAM,qBAAqB,GAAG,uBAAuB;CACrD,MAAM,iBAAiB,GAAG,uBAAuB;CACjD,MAAM,kBAAkB,GAAG,eAAe;CAC1C,MAAM,cAAc,UAAU,gBAAgB;AAc9C,QAAO;EACL;EACA;EACA;EACA;EACA,qBAlB0B,GAAG,sBAAsB;EAmBnD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,iBAzBsB,GAAG,UAAU;EA0BnC,sBAzB2B,GAAG,mBAAmB;EA0BjD,6BAzBkC,KAAK;EA0BvC,mCAzBwC,WAAW;EA0BnD,gCAzBqC,KAAK;EA0B1C,sCAzB2C,WAAW;EA0BtD,iBAzBsB,MAAM,mBAAmB;EA0B/C,qBAzB0B,cAAc;EA0BxC,4BAzBiC,MAAM,mBAAmB;EA0B1D,6BAzBkC,MAAM,mBAAmB;EA0B5D;;AAGH,SAAgB,8CACd,QACA;CACA,MAAM,UAAU,qBAAqB,OAAO;AAE5C,QAAO;EAAE;EAAS,QADH,qBAAqB,QAAQ;EAClB;;AAG5B,SAAS,uBACP,WACqB;CACrB,MAAM,EAAE,MAAM,QAAQ,QAAQ,UAAU,WAAW;AACnD,KAAI,CAAC,KACH,OAAM,IAAI,MAAM,6BAA6B;CAE/C,MAAM,WAAW,WAAW;AAQ5B,QAAO;EACL;EACA;EACA,cATA,YACA,OAAO,SAAS,SAAS,IACzB,CAAC,OAAO,QAAQ,qBAAqB,GAAG,CAAC,MAAM,aAAa;EAQ5D,eAPoB,YAAY,OAAO,SAAS,eAAe;EAQ/D;EACA,OARY,UAAU,WAAW,KAAK;EAStC;EACD;;AAGH,SAAS,oBAAoB,OAAoC;AAC/D,KAAI,CAAC,MAAM,KACT,OAAM,IAAI,MAAM,yBAAyB;CAE3C,MAAM,OAAO,MAAM,QAAQ,WAAW,MAAM,KAAK;AACjD,QAAO;EACL,GAAG;EACH;EACD;;AAGH,SAAS,oBAAoB,QAA6B;CACxD,MAAM,SAAS,OAAO;CACtB,MAAM,+BAAe,IAAI,KAAa;CACtC,MAAM,mBAAkD,EAAE;AAE1D,MAAK,MAAM,SAAS,QAAQ;EAC1B,MAAM,kBAAkB,oBAAoB,MAAM;AAClD,MAAI,CAAC,aAAa,IAAI,gBAAgB,KAAK,EAAE;AAC3C,gBAAa,IAAI,gBAAgB,KAAK;AACtC,oBAAiB,KAAK,gBAAgB;QAEtC,SAAQ,KACN,kCAAkC,MAAM,KAAK,+BAC9C;;AAIL,QAAO;;AAGT,SAAS,qBAAqB,SAAgC;AAC5D,QAAO,QAAQ,QAAQ,oBAAoB;;AAG7C,SAAS,qBAAqB,QAA6B;AACzD,QAAO,OAAO,WAAW,IAAI,uBAAuB"}