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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (470) hide show
  1. package/dist/src/codegen/__tests__/config.d.ts +0 -1
  2. package/dist/src/codegen/__tests__/config.d.ts.map +1 -1
  3. package/dist/src/codegen/__tests__/config.js +0 -1
  4. package/dist/src/codegen/__tests__/config.js.map +1 -1
  5. package/dist/src/codegen/__tests__/fixtures/typecheck.js +1 -1
  6. package/dist/src/codegen/__tests__/fixtures/typecheck.js.map +1 -1
  7. package/dist/src/codegen/__tests__/generate-doc-model.test.js +162 -212
  8. package/dist/src/codegen/__tests__/generate-doc-model.test.js.map +1 -1
  9. package/dist/src/codegen/__tests__/generate-drive-editor.test.js +70 -49
  10. package/dist/src/codegen/__tests__/generate-drive-editor.test.js.map +1 -1
  11. package/dist/src/codegen/__tests__/generate-editor.test.js +27 -27
  12. package/dist/src/codegen/__tests__/generate-editor.test.js.map +1 -1
  13. package/dist/src/codegen/__tests__/generate-manifest.test.js +17 -16
  14. package/dist/src/codegen/__tests__/generate-manifest.test.js.map +1 -1
  15. package/dist/src/codegen/__tests__/generate-processor.test.d.ts +2 -0
  16. package/dist/src/codegen/__tests__/generate-processor.test.d.ts.map +1 -0
  17. package/dist/src/codegen/__tests__/generate-processor.test.js +295 -0
  18. package/dist/src/codegen/__tests__/generate-processor.test.js.map +1 -0
  19. package/dist/src/codegen/__tests__/generate-subgraph.test.d.ts +2 -0
  20. package/dist/src/codegen/__tests__/generate-subgraph.test.d.ts.map +1 -0
  21. package/dist/src/codegen/__tests__/generate-subgraph.test.js +197 -0
  22. package/dist/src/codegen/__tests__/generate-subgraph.test.js.map +1 -0
  23. package/dist/src/codegen/__tests__/global-setup.d.ts +1 -1
  24. package/dist/src/codegen/__tests__/global-setup.d.ts.map +1 -1
  25. package/dist/src/codegen/__tests__/global-setup.js +3 -15
  26. package/dist/src/codegen/__tests__/global-setup.js.map +1 -1
  27. package/dist/src/codegen/__tests__/ts-morph-generator.test.js +4 -4
  28. package/dist/src/codegen/__tests__/ts-morph-generator.test.js.map +1 -1
  29. package/dist/src/codegen/__tests__/utils.d.ts +2 -2
  30. package/dist/src/codegen/__tests__/utils.d.ts.map +1 -1
  31. package/dist/src/codegen/__tests__/utils.js +11 -12
  32. package/dist/src/codegen/__tests__/utils.js.map +1 -1
  33. package/dist/src/codegen/generate.d.ts +25 -19
  34. package/dist/src/codegen/generate.d.ts.map +1 -1
  35. package/dist/src/codegen/generate.js +68 -113
  36. package/dist/src/codegen/generate.js.map +1 -1
  37. package/dist/src/codegen/graphql.d.ts +1 -1
  38. package/dist/src/codegen/graphql.d.ts.map +1 -1
  39. package/dist/src/codegen/graphql.js +15 -9
  40. package/dist/src/codegen/graphql.js.map +1 -1
  41. package/dist/src/codegen/index.d.ts +0 -1
  42. package/dist/src/codegen/index.d.ts.map +1 -1
  43. package/dist/src/codegen/index.js +0 -1
  44. package/dist/src/codegen/index.js.map +1 -1
  45. package/dist/src/codegen/utils.d.ts +2 -2
  46. package/dist/src/codegen/utils.d.ts.map +1 -1
  47. package/dist/src/codegen/utils.js +3 -2
  48. package/dist/src/codegen/utils.js.map +1 -1
  49. package/dist/src/create-lib/create-project.d.ts.map +1 -1
  50. package/dist/src/create-lib/create-project.js +15 -2
  51. package/dist/src/create-lib/create-project.js.map +1 -1
  52. package/dist/src/file-builders/boilerplate/build-package-json.test.js +4 -1
  53. package/dist/src/file-builders/boilerplate/build-package-json.test.js.map +1 -1
  54. package/dist/src/file-builders/boilerplate/ci-templates.test.d.ts +2 -0
  55. package/dist/src/file-builders/boilerplate/ci-templates.test.d.ts.map +1 -0
  56. package/dist/src/file-builders/boilerplate/ci-templates.test.js +114 -0
  57. package/dist/src/file-builders/boilerplate/ci-templates.test.js.map +1 -0
  58. package/dist/src/file-builders/boilerplate/package.json.js +1 -1
  59. package/dist/src/file-builders/boilerplate/package.json.js.map +1 -1
  60. package/dist/src/file-builders/clis/generate-cli-docs.d.ts +17 -0
  61. package/dist/src/file-builders/clis/generate-cli-docs.d.ts.map +1 -0
  62. package/dist/src/file-builders/clis/generate-cli-docs.js +36 -0
  63. package/dist/src/file-builders/clis/generate-cli-docs.js.map +1 -0
  64. package/dist/src/file-builders/document-editor.d.ts +1 -1
  65. package/dist/src/file-builders/document-editor.d.ts.map +1 -1
  66. package/dist/src/file-builders/document-editor.js +9 -7
  67. package/dist/src/file-builders/document-editor.js.map +1 -1
  68. package/dist/src/file-builders/document-model/document-model.d.ts +1 -1
  69. package/dist/src/file-builders/document-model/document-model.d.ts.map +1 -1
  70. package/dist/src/file-builders/document-model/document-model.js +67 -65
  71. package/dist/src/file-builders/document-model/document-model.js.map +1 -1
  72. package/dist/src/file-builders/document-model/gen-dir.d.ts +1 -1
  73. package/dist/src/file-builders/document-model/gen-dir.d.ts.map +1 -1
  74. package/dist/src/file-builders/document-model/gen-dir.js +67 -58
  75. package/dist/src/file-builders/document-model/gen-dir.js.map +1 -1
  76. package/dist/src/file-builders/document-model/migrate-legacy.d.ts +19 -0
  77. package/dist/src/file-builders/document-model/migrate-legacy.d.ts.map +1 -0
  78. package/dist/src/file-builders/document-model/migrate-legacy.js +104 -0
  79. package/dist/src/file-builders/document-model/migrate-legacy.js.map +1 -0
  80. package/dist/src/file-builders/document-model/root-dir.d.ts +1 -1
  81. package/dist/src/file-builders/document-model/root-dir.d.ts.map +1 -1
  82. package/dist/src/file-builders/document-model/root-dir.js +17 -17
  83. package/dist/src/file-builders/document-model/root-dir.js.map +1 -1
  84. package/dist/src/file-builders/document-model/src-dir.d.ts +1 -1
  85. package/dist/src/file-builders/document-model/src-dir.d.ts.map +1 -1
  86. package/dist/src/file-builders/document-model/src-dir.js +78 -19
  87. package/dist/src/file-builders/document-model/src-dir.js.map +1 -1
  88. package/dist/src/file-builders/document-model/tests-dir.d.ts +1 -1
  89. package/dist/src/file-builders/document-model/tests-dir.d.ts.map +1 -1
  90. package/dist/src/file-builders/document-model/tests-dir.js +11 -11
  91. package/dist/src/file-builders/document-model/tests-dir.js.map +1 -1
  92. package/dist/src/file-builders/document-model/upgrades-dir.d.ts +6 -4
  93. package/dist/src/file-builders/document-model/upgrades-dir.d.ts.map +1 -1
  94. package/dist/src/file-builders/document-model/upgrades-dir.js +19 -27
  95. package/dist/src/file-builders/document-model/upgrades-dir.js.map +1 -1
  96. package/dist/src/file-builders/drive-editor.d.ts +1 -1
  97. package/dist/src/file-builders/drive-editor.d.ts.map +1 -1
  98. package/dist/src/file-builders/drive-editor.js +37 -35
  99. package/dist/src/file-builders/drive-editor.js.map +1 -1
  100. package/dist/src/file-builders/editor-common.d.ts.map +1 -1
  101. package/dist/src/file-builders/editor-common.js +0 -1
  102. package/dist/src/file-builders/editor-common.js.map +1 -1
  103. package/dist/src/file-builders/index.d.ts +2 -0
  104. package/dist/src/file-builders/index.d.ts.map +1 -1
  105. package/dist/src/file-builders/index.js +2 -0
  106. package/dist/src/file-builders/index.js.map +1 -1
  107. package/dist/src/file-builders/module-files.d.ts +11 -5
  108. package/dist/src/file-builders/module-files.d.ts.map +1 -1
  109. package/dist/src/file-builders/module-files.js +37 -28
  110. package/dist/src/file-builders/module-files.js.map +1 -1
  111. package/dist/src/file-builders/processors/analytics.d.ts +3 -0
  112. package/dist/src/file-builders/processors/analytics.d.ts.map +1 -0
  113. package/dist/src/file-builders/processors/analytics.js +35 -0
  114. package/dist/src/file-builders/processors/analytics.js.map +1 -0
  115. package/dist/src/file-builders/processors/processor.d.ts +9 -0
  116. package/dist/src/file-builders/processors/processor.d.ts.map +1 -0
  117. package/dist/src/file-builders/processors/processor.js +142 -0
  118. package/dist/src/file-builders/processors/processor.js.map +1 -0
  119. package/dist/src/file-builders/processors/relational-db.d.ts +3 -0
  120. package/dist/src/file-builders/processors/relational-db.d.ts.map +1 -0
  121. package/dist/src/file-builders/processors/relational-db.js +53 -0
  122. package/dist/src/file-builders/processors/relational-db.js.map +1 -0
  123. package/dist/src/file-builders/processors/types.d.ts +13 -0
  124. package/dist/src/file-builders/processors/types.d.ts.map +1 -0
  125. package/dist/src/file-builders/processors/types.js +2 -0
  126. package/dist/src/file-builders/processors/types.js.map +1 -0
  127. package/dist/src/file-builders/subgraph.d.ts +10 -0
  128. package/dist/src/file-builders/subgraph.d.ts.map +1 -0
  129. package/dist/src/file-builders/subgraph.js +121 -0
  130. package/dist/src/file-builders/subgraph.js.map +1 -0
  131. package/dist/src/file-builders/subgraphs.d.ts +1 -1
  132. package/dist/src/file-builders/subgraphs.d.ts.map +1 -1
  133. package/dist/src/file-builders/subgraphs.js +2 -2
  134. package/dist/src/file-builders/subgraphs.js.map +1 -1
  135. package/dist/src/file-builders/types.d.ts +20 -1
  136. package/dist/src/file-builders/types.d.ts.map +1 -1
  137. package/dist/src/name-builders/get-variable-names.d.ts +5 -4
  138. package/dist/src/name-builders/get-variable-names.d.ts.map +1 -1
  139. package/dist/src/name-builders/get-variable-names.js +6 -4
  140. package/dist/src/name-builders/get-variable-names.js.map +1 -1
  141. package/dist/src/templates/boilerplate/AGENTS.md.d.ts.map +1 -1
  142. package/dist/src/templates/boilerplate/AGENTS.md.js +138 -9
  143. package/dist/src/templates/boilerplate/AGENTS.md.js.map +1 -1
  144. package/dist/src/templates/boilerplate/CLAUDE.md.d.ts +1 -1
  145. package/dist/src/templates/boilerplate/CLAUDE.md.d.ts.map +1 -1
  146. package/dist/src/templates/boilerplate/CLAUDE.md.js +1 -407
  147. package/dist/src/templates/boilerplate/CLAUDE.md.js.map +1 -1
  148. package/dist/src/templates/boilerplate/docker/Dockerfile.d.ts +2 -0
  149. package/dist/src/templates/boilerplate/docker/Dockerfile.d.ts.map +1 -0
  150. package/dist/src/templates/boilerplate/docker/Dockerfile.js +144 -0
  151. package/dist/src/templates/boilerplate/docker/Dockerfile.js.map +1 -0
  152. package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.d.ts +2 -0
  153. package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.d.ts.map +1 -0
  154. package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.js +18 -0
  155. package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.js.map +1 -0
  156. package/dist/src/templates/boilerplate/docker/nginx.conf.d.ts +2 -0
  157. package/dist/src/templates/boilerplate/docker/nginx.conf.d.ts.map +1 -0
  158. package/dist/src/templates/boilerplate/docker/nginx.conf.js +79 -0
  159. package/dist/src/templates/boilerplate/docker/nginx.conf.js.map +1 -0
  160. package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.d.ts +2 -0
  161. package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.d.ts.map +1 -0
  162. package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.js +19 -0
  163. package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.js.map +1 -0
  164. package/dist/src/templates/boilerplate/document-models/document-models.js +1 -1
  165. package/dist/src/templates/boilerplate/document-models/upgrade-manifests.d.ts +2 -0
  166. package/dist/src/templates/boilerplate/document-models/upgrade-manifests.d.ts.map +1 -0
  167. package/dist/src/templates/boilerplate/document-models/upgrade-manifests.js +7 -0
  168. package/dist/src/templates/boilerplate/document-models/upgrade-manifests.js.map +1 -0
  169. package/dist/src/templates/boilerplate/editors/editors.js +1 -1
  170. package/dist/src/templates/boilerplate/github/sync-and-publish.yml.d.ts +2 -0
  171. package/dist/src/templates/boilerplate/github/sync-and-publish.yml.d.ts.map +1 -0
  172. package/dist/src/templates/boilerplate/github/sync-and-publish.yml.js +376 -0
  173. package/dist/src/templates/boilerplate/github/sync-and-publish.yml.js.map +1 -0
  174. package/dist/src/templates/boilerplate/index.d.ts.map +1 -1
  175. package/dist/src/templates/boilerplate/index.html.d.ts.map +1 -1
  176. package/dist/src/templates/boilerplate/index.html.js +2 -7
  177. package/dist/src/templates/boilerplate/index.html.js.map +1 -1
  178. package/dist/src/templates/boilerplate/index.js +4 -1
  179. package/dist/src/templates/boilerplate/index.js.map +1 -1
  180. package/dist/src/templates/boilerplate/main.tsx.d.ts +2 -0
  181. package/dist/src/templates/boilerplate/main.tsx.d.ts.map +1 -0
  182. package/dist/src/templates/boilerplate/main.tsx.js +8 -0
  183. package/dist/src/templates/boilerplate/main.tsx.js.map +1 -0
  184. package/dist/src/templates/boilerplate/package.json.d.ts.map +1 -1
  185. package/dist/src/templates/boilerplate/package.json.js +14 -5
  186. package/dist/src/templates/boilerplate/package.json.js.map +1 -1
  187. package/dist/src/templates/boilerplate/powerhouse.config.json.js +2 -2
  188. package/dist/src/templates/boilerplate/powerhouse.config.json.js.map +1 -1
  189. package/dist/src/templates/boilerplate/style.css.d.ts.map +1 -1
  190. package/dist/src/templates/boilerplate/style.css.js +1 -0
  191. package/dist/src/templates/boilerplate/style.css.js.map +1 -1
  192. package/dist/src/templates/boilerplate/tsconfig.json.d.ts.map +1 -1
  193. package/dist/src/templates/boilerplate/tsconfig.json.js +0 -1
  194. package/dist/src/templates/boilerplate/tsconfig.json.js.map +1 -1
  195. package/dist/src/templates/cli-docs/docs-from-cli-help.d.ts +8 -0
  196. package/dist/src/templates/cli-docs/docs-from-cli-help.d.ts.map +1 -0
  197. package/dist/src/templates/cli-docs/docs-from-cli-help.js +86 -0
  198. package/dist/src/templates/cli-docs/docs-from-cli-help.js.map +1 -0
  199. package/dist/src/templates/document-editor/editor.js +1 -1
  200. package/dist/src/templates/document-editor/module.js +1 -1
  201. package/dist/src/templates/document-model/actions.d.ts.map +1 -1
  202. package/dist/src/templates/document-model/actions.js +11 -11
  203. package/dist/src/templates/document-model/actions.js.map +1 -1
  204. package/dist/src/templates/document-model/gen/actions.js +5 -5
  205. package/dist/src/templates/document-model/gen/controller.d.ts +3 -0
  206. package/dist/src/templates/document-model/gen/controller.d.ts.map +1 -0
  207. package/dist/src/templates/document-model/gen/controller.js +12 -0
  208. package/dist/src/templates/document-model/gen/controller.js.map +1 -0
  209. package/dist/src/templates/document-model/gen/creators.d.ts.map +1 -1
  210. package/dist/src/templates/document-model/gen/creators.js +11 -8
  211. package/dist/src/templates/document-model/gen/creators.js.map +1 -1
  212. package/dist/src/templates/document-model/gen/document-schema.js +1 -1
  213. package/dist/src/templates/document-model/gen/index.d.ts.map +1 -1
  214. package/dist/src/templates/document-model/gen/index.js +3 -2
  215. package/dist/src/templates/document-model/gen/index.js.map +1 -1
  216. package/dist/src/templates/document-model/gen/modules/creators.js +1 -1
  217. package/dist/src/templates/document-model/gen/modules/error.d.ts.map +1 -1
  218. package/dist/src/templates/document-model/gen/modules/error.js +8 -2
  219. package/dist/src/templates/document-model/gen/modules/error.js.map +1 -1
  220. package/dist/src/templates/document-model/gen/ph-factories.js +5 -5
  221. package/dist/src/templates/document-model/gen/ph-factories.js.map +1 -1
  222. package/dist/src/templates/document-model/gen/reducer.d.ts.map +1 -1
  223. package/dist/src/templates/document-model/gen/reducer.js +6 -7
  224. package/dist/src/templates/document-model/gen/reducer.js.map +1 -1
  225. package/dist/src/templates/document-model/gen/utils.d.ts.map +1 -1
  226. package/dist/src/templates/document-model/gen/utils.js +4 -17
  227. package/dist/src/templates/document-model/gen/utils.js.map +1 -1
  228. package/dist/src/templates/document-model/module.d.ts +1 -2
  229. package/dist/src/templates/document-model/module.d.ts.map +1 -1
  230. package/dist/src/templates/document-model/module.js +9 -12
  231. package/dist/src/templates/document-model/module.js.map +1 -1
  232. package/dist/src/templates/document-model/tests/document-model.test.d.ts.map +1 -0
  233. package/dist/src/templates/document-model/tests/document-model.test.js.map +1 -0
  234. package/dist/src/templates/document-model/tests/module.test.d.ts.map +1 -0
  235. package/dist/src/templates/document-model/{src/tests → tests}/module.test.js +1 -1
  236. package/dist/src/templates/document-model/tests/module.test.js.map +1 -0
  237. package/dist/src/templates/document-model/upgrades/upgrade-manifest.d.ts +5 -0
  238. package/dist/src/templates/document-model/upgrades/upgrade-manifest.d.ts.map +1 -0
  239. package/dist/src/templates/document-model/upgrades/upgrade-manifest.js +13 -0
  240. package/dist/src/templates/document-model/upgrades/upgrade-manifest.js.map +1 -0
  241. package/dist/src/templates/document-model/upgrades/upgrade-transition.js +1 -1
  242. package/dist/src/templates/document-model/utils.js +2 -2
  243. package/dist/src/templates/document-model/utils.js.map +1 -1
  244. package/dist/src/templates/drive-editor/components/DriveExplorer.js +1 -1
  245. package/dist/src/templates/drive-editor/components/FolderTree.js +1 -1
  246. package/dist/src/templates/drive-editor/editor.d.ts.map +1 -1
  247. package/dist/src/templates/drive-editor/editor.js +4 -2
  248. package/dist/src/templates/drive-editor/editor.js.map +1 -1
  249. package/dist/src/templates/index.d.ts +20 -3
  250. package/dist/src/templates/index.d.ts.map +1 -1
  251. package/dist/src/templates/index.js +20 -3
  252. package/dist/src/templates/index.js.map +1 -1
  253. package/dist/src/templates/processors/analytics/factory.d.ts +6 -0
  254. package/dist/src/templates/processors/analytics/factory.d.ts.map +1 -0
  255. package/dist/src/templates/processors/analytics/factory.js +26 -0
  256. package/dist/src/templates/processors/analytics/factory.js.map +1 -0
  257. package/dist/src/templates/processors/analytics/index.d.ts +4 -0
  258. package/dist/src/templates/processors/analytics/index.d.ts.map +1 -0
  259. package/dist/src/templates/processors/analytics/index.js +34 -0
  260. package/dist/src/templates/processors/analytics/index.js.map +1 -0
  261. package/dist/src/templates/processors/factory.d.ts +2 -0
  262. package/dist/src/templates/processors/factory.d.ts.map +1 -0
  263. package/dist/src/templates/processors/factory.js +60 -0
  264. package/dist/src/templates/processors/factory.js.map +1 -0
  265. package/dist/src/templates/processors/index.d.ts +2 -0
  266. package/dist/src/templates/processors/index.d.ts.map +1 -0
  267. package/dist/src/templates/processors/index.js +10 -0
  268. package/dist/src/templates/processors/index.js.map +1 -0
  269. package/dist/src/templates/processors/relational-db/factory.d.ts +6 -0
  270. package/dist/src/templates/processors/relational-db/factory.d.ts.map +1 -0
  271. package/dist/src/templates/processors/relational-db/factory.js +40 -0
  272. package/dist/src/templates/processors/relational-db/factory.js.map +1 -0
  273. package/dist/src/templates/processors/relational-db/index.d.ts +4 -0
  274. package/dist/src/templates/processors/relational-db/index.d.ts.map +1 -0
  275. package/dist/src/templates/processors/relational-db/index.js +28 -0
  276. package/dist/src/templates/processors/relational-db/index.js.map +1 -0
  277. package/dist/src/templates/processors/relational-db/migrations.d.ts +2 -0
  278. package/dist/src/templates/processors/relational-db/migrations.d.ts.map +1 -0
  279. package/dist/src/{codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/migrations.esm.t → templates/processors/relational-db/migrations.js} +5 -5
  280. package/dist/src/templates/processors/relational-db/migrations.js.map +1 -0
  281. package/dist/src/templates/processors/relational-db/schema.d.ts +2 -0
  282. package/dist/src/templates/processors/relational-db/schema.d.ts.map +1 -0
  283. package/dist/src/templates/processors/relational-db/schema.js +12 -0
  284. package/dist/src/templates/processors/relational-db/schema.js.map +1 -0
  285. package/dist/src/templates/processors/utils.d.ts +2 -0
  286. package/dist/src/templates/processors/utils.d.ts.map +1 -0
  287. package/dist/src/templates/processors/utils.js +6 -0
  288. package/dist/src/templates/processors/utils.js.map +1 -0
  289. package/dist/src/templates/subgraphs/custom-resolvers.d.ts +5 -0
  290. package/dist/src/templates/subgraphs/custom-resolvers.d.ts.map +1 -0
  291. package/dist/src/templates/subgraphs/custom-resolvers.js +20 -0
  292. package/dist/src/templates/subgraphs/custom-resolvers.js.map +1 -0
  293. package/dist/src/templates/subgraphs/custom-schema.d.ts +5 -0
  294. package/dist/src/templates/subgraphs/custom-schema.d.ts.map +1 -0
  295. package/dist/src/templates/subgraphs/custom-schema.js +20 -0
  296. package/dist/src/templates/subgraphs/custom-schema.js.map +1 -0
  297. package/dist/src/templates/subgraphs/document-model-resolvers.d.ts +15 -0
  298. package/dist/src/templates/subgraphs/document-model-resolvers.d.ts.map +1 -0
  299. package/dist/src/{codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/resolvers.esm.t → templates/subgraphs/document-model-resolvers.js} +55 -47
  300. package/dist/src/templates/subgraphs/document-model-resolvers.js.map +1 -0
  301. package/dist/src/templates/subgraphs/document-model-schema.d.ts +12 -0
  302. package/dist/src/templates/subgraphs/document-model-schema.d.ts.map +1 -0
  303. package/dist/src/templates/subgraphs/document-model-schema.js +54 -0
  304. package/dist/src/templates/subgraphs/document-model-schema.js.map +1 -0
  305. package/dist/src/templates/subgraphs/index-file.d.ts +5 -0
  306. package/dist/src/templates/subgraphs/index-file.d.ts.map +1 -0
  307. package/dist/src/{codegen/.hygen/templates/powerhouse/generate-subgraph/index.esm.t → templates/subgraphs/index-file.js} +7 -7
  308. package/dist/src/templates/subgraphs/index-file.js.map +1 -0
  309. package/dist/src/templates/subgraphs/index.d.ts +7 -0
  310. package/dist/src/templates/subgraphs/index.d.ts.map +1 -0
  311. package/dist/src/templates/subgraphs/index.js +7 -0
  312. package/dist/src/templates/subgraphs/index.js.map +1 -0
  313. package/dist/src/templates/subgraphs/lib-file.d.ts +2 -0
  314. package/dist/src/templates/subgraphs/lib-file.d.ts.map +1 -0
  315. package/dist/src/templates/subgraphs/lib-file.js +8 -0
  316. package/dist/src/templates/subgraphs/lib-file.js.map +1 -0
  317. package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.js +4 -4
  318. package/dist/src/ts-morph-generator/core/GenerationContext.d.ts +1 -1
  319. package/dist/src/ts-morph-generator/core/GenerationContext.d.ts.map +1 -1
  320. package/dist/src/ts-morph-generator/core/ReducerGenerator.js +3 -3
  321. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts +1 -1
  322. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts.map +1 -1
  323. package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts +1 -1
  324. package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts.map +1 -1
  325. package/dist/src/ts-morph-generator/utilities/DirectoryManager.js +5 -5
  326. package/dist/src/ts-morph-generator/utilities/DirectoryManager.js.map +1 -1
  327. package/dist/src/utils/cli.d.ts +0 -6
  328. package/dist/src/utils/cli.d.ts.map +1 -1
  329. package/dist/src/utils/cli.js +0 -18
  330. package/dist/src/utils/cli.js.map +1 -1
  331. package/dist/src/utils/constants.d.ts +0 -2
  332. package/dist/src/utils/constants.d.ts.map +1 -1
  333. package/dist/src/utils/constants.js +0 -18
  334. package/dist/src/utils/constants.js.map +1 -1
  335. package/dist/src/utils/document-type-metadata.d.ts.map +1 -1
  336. package/dist/src/utils/document-type-metadata.js +5 -2
  337. package/dist/src/utils/document-type-metadata.js.map +1 -1
  338. package/dist/src/utils/format-with-prettier.d.ts +1 -1
  339. package/dist/src/utils/format-with-prettier.d.ts.map +1 -1
  340. package/dist/src/utils/format-with-prettier.js +5 -11
  341. package/dist/src/utils/format-with-prettier.js.map +1 -1
  342. package/dist/src/utils/graphql-type-prefixes.d.ts +10 -0
  343. package/dist/src/utils/graphql-type-prefixes.d.ts.map +1 -0
  344. package/dist/src/utils/graphql-type-prefixes.js +51 -0
  345. package/dist/src/utils/graphql-type-prefixes.js.map +1 -0
  346. package/dist/src/utils/index.d.ts +2 -3
  347. package/dist/src/utils/index.d.ts.map +1 -1
  348. package/dist/src/utils/index.js +2 -3
  349. package/dist/src/utils/index.js.map +1 -1
  350. package/dist/src/utils/source-files.d.ts +8 -1
  351. package/dist/src/utils/source-files.d.ts.map +1 -1
  352. package/dist/src/utils/source-files.js +19 -2
  353. package/dist/src/utils/source-files.js.map +1 -1
  354. package/dist/src/utils/syntax-getters.d.ts +2 -1
  355. package/dist/src/utils/syntax-getters.d.ts.map +1 -1
  356. package/dist/src/utils/syntax-getters.js +12 -0
  357. package/dist/src/utils/syntax-getters.js.map +1 -1
  358. package/dist/src/utils/ts-morph-project.d.ts +14 -5
  359. package/dist/src/utils/ts-morph-project.d.ts.map +1 -1
  360. package/dist/src/utils/ts-morph-project.js +12 -12
  361. package/dist/src/utils/ts-morph-project.js.map +1 -1
  362. package/dist/src/utils/validation.d.ts +1 -1
  363. package/dist/src/utils/validation.d.ts.map +1 -1
  364. package/dist/tsconfig.tsbuildinfo +1 -1
  365. package/dist/vitest.config.d.ts.map +1 -1
  366. package/dist/vitest.config.js +4 -0
  367. package/dist/vitest.config.js.map +1 -1
  368. package/package.json +32 -43
  369. package/dist/src/codegen/.hygen/package.json +0 -6
  370. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/index.js +0 -10
  371. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/resolvers.esm.t +0 -17
  372. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/schema.esm.t +0 -16
  373. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/actions.esm.t +0 -16
  374. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/creators.esm.t +0 -9
  375. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/customUtils.esm.t +0 -5
  376. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/document-schema.esm.t +0 -56
  377. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/document-type.esm.t +0 -6
  378. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/documentModel.esm.t +0 -7
  379. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/documentModelTest.esm.t +0 -121
  380. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/hooks.esm.t +0 -49
  381. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.esm.t +0 -23
  382. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.js +0 -127
  383. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/module.esm.t +0 -22
  384. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/ph-factories.esm.t +0 -93
  385. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/reducer.esm.t +0 -46
  386. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/root-utils.esm.t +0 -11
  387. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/rootActions.esm.t +0 -13
  388. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/rootIndex.esm.t +0 -14
  389. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/schema.esm.t +0 -6
  390. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/src-index.esm.t +0 -5
  391. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/types.esm.t +0 -31
  392. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/utils.esm.t +0 -77
  393. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/actions.esm.t +0 -22
  394. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/creators.esm.t +0 -37
  395. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/customTest.esm.t +0 -44
  396. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/error.esm.t +0 -36
  397. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js +0 -71
  398. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/operations.esm.t +0 -17
  399. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.js +0 -118
  400. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/schema.esm.t +0 -44
  401. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/CreateDocument.esm.t +0 -58
  402. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveContents.esm.t +0 -23
  403. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveExplorer.esm.t +0 -32
  404. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/EmptyState.esm.t +0 -19
  405. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/Files.esm.t +0 -29
  406. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderTree.esm.t +0 -108
  407. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/Folders.esm.t +0 -28
  408. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/NavigationBreadcrumbs.esm.t +0 -14
  409. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/config.esm.t +0 -11
  410. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editor.esm.t +0 -18
  411. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.js +0 -25
  412. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/module.esm.t +0 -15
  413. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/editor.esm.t +0 -80
  414. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js +0 -90
  415. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/module.esm.t +0 -16
  416. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.esm.t +0 -59
  417. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.js +0 -9
  418. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/utils.esm.t +0 -100
  419. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/factory.esm.t +0 -22
  420. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.esm.t +0 -62
  421. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.js +0 -12
  422. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.root.esm.t +0 -10
  423. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.root.inject.esm.t +0 -12
  424. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.esm.t +0 -34
  425. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_call.esm.t +0 -7
  426. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_export.esm.t +0 -7
  427. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_import.esm.t +0 -7
  428. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/factory.esm.t +0 -40
  429. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.esm.t +0 -47
  430. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.js +0 -12
  431. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.root.esm.t +0 -10
  432. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.root.inject.esm.t +0 -12
  433. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.esm.t +0 -34
  434. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.inject_call.esm.t +0 -7
  435. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.inject_export.esm.t +0 -9
  436. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.inject_import.esm.t +0 -7
  437. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/schema.esm.t +0 -13
  438. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.js +0 -10
  439. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/lib.esm.t +0 -9
  440. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.d.ts +0 -2
  441. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.d.ts.map +0 -1
  442. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.js +0 -159
  443. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.js.map +0 -1
  444. package/dist/src/codegen/hygen.d.ts +0 -47
  445. package/dist/src/codegen/hygen.d.ts.map +0 -1
  446. package/dist/src/codegen/hygen.js +0 -230
  447. package/dist/src/codegen/hygen.js.map +0 -1
  448. package/dist/src/file-builders/boilerplate/package-json-versions.test.d.ts +0 -2
  449. package/dist/src/file-builders/boilerplate/package-json-versions.test.d.ts.map +0 -1
  450. package/dist/src/file-builders/boilerplate/package-json-versions.test.js +0 -34
  451. package/dist/src/file-builders/boilerplate/package-json-versions.test.js.map +0 -1
  452. package/dist/src/templates/boilerplate/processors/index.d.ts +0 -2
  453. package/dist/src/templates/boilerplate/processors/index.d.ts.map +0 -1
  454. package/dist/src/templates/boilerplate/processors/index.js +0 -2
  455. package/dist/src/templates/boilerplate/processors/index.js.map +0 -1
  456. package/dist/src/templates/document-model/src/tests/document-model.test.d.ts.map +0 -1
  457. package/dist/src/templates/document-model/src/tests/document-model.test.js.map +0 -1
  458. package/dist/src/templates/document-model/src/tests/module.test.d.ts.map +0 -1
  459. package/dist/src/templates/document-model/src/tests/module.test.js.map +0 -1
  460. package/dist/src/utils/dependencies.d.ts +0 -12
  461. package/dist/src/utils/dependencies.d.ts.map +0 -1
  462. package/dist/src/utils/dependencies.js +0 -34
  463. package/dist/src/utils/dependencies.js.map +0 -1
  464. package/dist/src/utils/spawn-async.d.ts +0 -5
  465. package/dist/src/utils/spawn-async.d.ts.map +0 -1
  466. package/dist/src/utils/spawn-async.js +0 -29
  467. package/dist/src/utils/spawn-async.js.map +0 -1
  468. /package/dist/src/templates/document-model/{src/tests → tests}/document-model.test.d.ts +0 -0
  469. /package/dist/src/templates/document-model/{src/tests → tests}/document-model.test.js +0 -0
  470. /package/dist/src/templates/document-model/{src/tests → tests}/module.test.d.ts +0 -0
@@ -1,44 +0,0 @@
1
- ---
2
- to: "<%= rootDir %>/<%= h.changeCase.param(subgraph) %>/schema.ts"
3
- force: true
4
- ---
5
- import { gql } from "graphql-tag";
6
- import type { DocumentNode } from "graphql";
7
-
8
- export const schema: DocumentNode = gql`
9
- """
10
- Queries: <%= h.changeCase.pascal(documentType) %> Document
11
- """
12
-
13
- type <%- h.changeCase.pascal(documentType) %>Queries {
14
- getDocument(docId: PHID!, driveId: PHID): <%- h.changeCase.pascal(documentType) %>
15
- getDocuments(driveId: String!): [<%- h.changeCase.pascal(documentType) %>!]
16
- }
17
-
18
- type Query {
19
- <%- h.changeCase.pascal(documentType) %>: <%- h.changeCase.pascal(documentType) %>Queries
20
- }
21
-
22
- """
23
- Mutations: <%= h.changeCase.pascal(documentType) %>
24
- """
25
- type Mutation {
26
-
27
- <%- h.changeCase.pascal(documentType) %>_createDocument(name:String!, driveId:String): String
28
-
29
- <% modules.forEach(module => { _%>
30
- <% module.operations.forEach(op => { _%>
31
- <%- h.changeCase.pascal(documentType) + '_' + h.changeCase.camel(op.name)
32
- %>(driveId:String, docId:PHID, input:<%-
33
- h.changeCase.pascal(documentType) + '_' + h.changeCase.pascal(op.name) %>Input): Int
34
- <%_ })}); %>}
35
-
36
- <% modules.forEach(module => { _%>
37
-
38
- """
39
- Module: <%= h.changeCase.pascal(module.name) %>
40
- """
41
- <% module.operations.forEach(op => { _%>
42
- <%- op.schema %>
43
- <%_ })}); %>
44
- `
@@ -1,58 +0,0 @@
1
- ---
2
- to: "<%= driveEditorDir %>/components/CreateDocument.tsx"
3
- unless_exists: true
4
- ---
5
- import type { VetraDocumentModelModule } from "@powerhousedao/reactor-browser";
6
- import {
7
- showCreateDocumentModal,
8
- useAllowedDocumentModelModules,
9
- } from "@powerhousedao/reactor-browser";
10
-
11
- /**
12
- * Document creation UI component.
13
- * Displays available document types as clickable buttons.
14
- */
15
- export function CreateDocument() {
16
- const allowedDocumentModelModules = useAllowedDocumentModelModules();
17
-
18
- return (
19
- <div>
20
- {/* Customize section title here */}
21
- <h3 className="mb-3 mt-4 text-sm font-bold text-gray-600">
22
- Create document
23
- </h3>
24
- {/* Customize layout by changing flex-wrap, gap, or grid layout */}
25
- <div className="flex w-full flex-wrap gap-4">
26
- {allowedDocumentModelModules?.map((documentModelModule) => {
27
- return (
28
- <CreateDocumentButton
29
- key={documentModelModule.documentModel.global.id}
30
- documentModelModule={documentModelModule}
31
- />
32
- );
33
- })}
34
- </div>
35
- </div>
36
- );
37
- }
38
-
39
- type Props = {
40
- documentModelModule: VetraDocumentModelModule;
41
- };
42
- function CreateDocumentButton({ documentModelModule }: Props) {
43
- const documentType = documentModelModule.documentModel.global.id;
44
- const documentModelName =
45
- documentModelModule.documentModel.global.name || documentType;
46
- const documentModelDescription =
47
- documentModelModule.documentModel.global.description;
48
- return (
49
- <button
50
- className="cursor-pointer rounded-md bg-gray-200 py-2 px-3 hover:bg-gray-300"
51
- title={documentModelName}
52
- aria-description={documentModelDescription}
53
- onClick={() => showCreateDocumentModal(documentType)}
54
- >
55
- {documentModelName}
56
- </button>
57
- );
58
- }
@@ -1,23 +0,0 @@
1
- ---
2
- to: "<%= driveEditorDir %>/components/DriveContents.tsx"
3
- unless_exists: true
4
- ---
5
- import { CreateDocument } from "./CreateDocument.js";
6
- import { EmptyState } from "./EmptyState.js";
7
- import { Files } from "./Files.js";
8
- import { Folders } from "./Folders.js";
9
- import { NavigationBreadcrumbs } from "./NavigationBreadcrumbs.js";
10
-
11
- /** Shows the documents and folders in the selected drive */
12
- export function DriveContents() {
13
- return (
14
- <div className="space-y-6 px-6">
15
- <NavigationBreadcrumbs />
16
- <Folders />
17
- <Files />
18
- <EmptyState />
19
- <CreateDocument />
20
- </div>
21
- );
22
- }
23
-
@@ -1,32 +0,0 @@
1
- ---
2
- to: "<%= driveEditorDir %>/components/DriveExplorer.tsx"
3
- unless_exists: true
4
- ---
5
- import type { EditorProps } from "document-model";
6
- import { FolderTree } from "./FolderTree.js";
7
- import { DriveContents } from "./DriveContents.js";
8
-
9
- /**
10
- * Main drive explorer component with sidebar navigation and content area.
11
- * Layout: Left sidebar (folder tree) + Right content area (files/folders + document editor)
12
- */
13
- export function DriveExplorer({ children }: EditorProps) {
14
- // if a document is selected then it's editor will be passed as children
15
- const showDocumentEditor = !!children;
16
-
17
- return (
18
- <div className="flex h-full">
19
- <FolderTree />
20
- <div className="flex-1 overflow-y-auto p-4">
21
- {/* Conditional rendering: Document editor or folder contents */}
22
- {showDocumentEditor ? (
23
- /* Document editor view */
24
- children
25
- ) : (
26
- /* Folder contents view */
27
- <DriveContents />
28
- )}
29
- </div>
30
- </div>
31
- );
32
- }
@@ -1,19 +0,0 @@
1
- ---
2
- to: "<%= driveEditorDir %>/components/EmptyState.tsx"
3
- unless_exists: true
4
- ---
5
- import { useNodesInSelectedDriveOrFolder } from "@powerhousedao/reactor-browser";
6
-
7
- /** Shows a message when the selected drive or folder is empty */
8
- export function EmptyState() {
9
- const nodes = useNodesInSelectedDriveOrFolder();
10
- const hasNodes = nodes.length > 0;
11
- if (hasNodes) return null;
12
-
13
- return (
14
- <div className="py-12 text-center text-gray-500">
15
- <p className="text-lg">This folder is empty</p>
16
- <p className="mt-2 text-sm">Create your first document or folder below</p>
17
- </div>
18
- );
19
- }
@@ -1,29 +0,0 @@
1
- ---
2
- to: "<%= driveEditorDir %>/components/Files.tsx"
3
- unless_exists: true
4
- ---
5
- import { FileItem } from "@powerhousedao/design-system/connect";
6
- import {
7
- useNodesInSelectedDriveOrFolder,
8
- isFileNodeKind,
9
- } from "@powerhousedao/reactor-browser";
10
-
11
- /** Shows the files in the selected drive or folder */
12
- export function Files() {
13
- const nodes = useNodesInSelectedDriveOrFolder();
14
- const fileNodes = nodes.filter((n) => isFileNodeKind(n));
15
- const hasFiles = fileNodes.length > 0;
16
-
17
- if (!hasFiles) return null;
18
-
19
- return (
20
- <div>
21
- <h3 className="mb-2 text-sm font-semibold text-gray-600">Documents</h3>
22
- <div className="flex flex-wrap gap-4">
23
- {fileNodes.map((fileNode) => (
24
- <FileItem key={fileNode.id} fileNode={fileNode} />
25
- ))}
26
- </div>
27
- </div>
28
- );
29
- }
@@ -1,108 +0,0 @@
1
- ---
2
- to: "<%= driveEditorDir %>/components/FolderTree.tsx"
3
- unless_exists: true
4
- ---
5
- import {
6
- Sidebar,
7
- SidebarProvider,
8
- type SidebarNode,
9
- } from "@powerhousedao/document-engineering";
10
- import {
11
- setSelectedNode,
12
- useNodesInSelectedDrive,
13
- useSelectedDrive,
14
- useSelectedNode,
15
- } from "@powerhousedao/reactor-browser";
16
- import type { Node } from "document-drive";
17
- import { useMemo } from "react";
18
-
19
- function buildSidebarNodes(
20
- nodes: Node[],
21
- parentId: string | null | undefined,
22
- ): SidebarNode[] {
23
- return nodes
24
- .filter((n) => {
25
- if (parentId == null) {
26
- return n.parentFolder == null;
27
- }
28
- return n.parentFolder === parentId;
29
- })
30
- .map((node): SidebarNode => {
31
- if (node.kind === "folder") {
32
- return {
33
- id: node.id,
34
- title: node.name,
35
- icon: "FolderClose" as const,
36
- expandedIcon: "FolderOpen" as const,
37
- children: buildSidebarNodes(nodes, node.id),
38
- };
39
- }
40
- return {
41
- id: node.id,
42
- title: node.name,
43
- icon: "File" as const,
44
- };
45
- });
46
- }
47
-
48
- function transformNodesToSidebarNodes(
49
- nodes: Node[],
50
- driveName: string,
51
- ): SidebarNode[] {
52
- return [
53
- {
54
- id: "root",
55
- title: driveName,
56
- icon: "Drive" as const,
57
- children: buildSidebarNodes(nodes, null),
58
- },
59
- ];
60
- }
61
-
62
- /**
63
- * Hierarchical folder tree navigation component using Sidebar from document-engineering.
64
- * Displays folders and files in a tree structure with expand/collapse functionality, search, and resize support.
65
- */
66
- export function FolderTree() {
67
- const [selectedDrive] = useSelectedDrive();
68
- const nodes = useNodesInSelectedDrive();
69
- const selectedNode = useSelectedNode();
70
- const driveName = selectedDrive.header.name;
71
- // Transform Node[] to hierarchical SidebarNode structure
72
- const sidebarNodes = useMemo(
73
- () => transformNodesToSidebarNodes(nodes || [], driveName),
74
- [nodes, driveName],
75
- );
76
-
77
- const handleActiveNodeChange = (node: SidebarNode) => {
78
- // If root node is selected, pass undefined to match existing behavior
79
- if (node.id === "root") {
80
- setSelectedNode(undefined);
81
- } else {
82
- setSelectedNode(node.id);
83
- }
84
- };
85
- // Map selectedNodeId to activeNodeId (use "root" when undefined)
86
- const activeNodeId =
87
- !selectedNode || selectedNode.id === selectedDrive.header.id
88
- ? "root"
89
- : selectedNode.id;
90
-
91
- return (
92
- <SidebarProvider nodes={sidebarNodes}>
93
- <Sidebar
94
- className="pt-1"
95
- nodes={sidebarNodes}
96
- activeNodeId={activeNodeId}
97
- onActiveNodeChange={handleActiveNodeChange}
98
- sidebarTitle="Drive Explorer"
99
- showSearchBar={true}
100
- resizable={true}
101
- allowPinning={false}
102
- showStatusFilter={false}
103
- initialWidth={256}
104
- defaultLevel={2}
105
- />
106
- </SidebarProvider>
107
- );
108
- }
@@ -1,28 +0,0 @@
1
- ---
2
- to: "<%= driveEditorDir %>/components/Folders.tsx"
3
- unless_exists: true
4
- ---
5
- import { FolderItem } from "@powerhousedao/design-system/connect";
6
- import {
7
- useNodesInSelectedDriveOrFolder,
8
- isFolderNodeKind,
9
- } from "@powerhousedao/reactor-browser";
10
-
11
- /** Shows the folders in the selected drive or folder */
12
- export function Folders() {
13
- const nodes = useNodesInSelectedDriveOrFolder();
14
- const folderNodes = nodes.filter((n) => isFolderNodeKind(n));
15
- const hasFolders = folderNodes.length > 0;
16
- if (!hasFolders) return null;
17
-
18
- return (
19
- <div>
20
- <h3 className="mb-2 text-sm font-bold text-gray-600">Folders</h3>
21
- <div className="flex flex-wrap gap-4">
22
- {folderNodes.map((folderNode) => (
23
- <FolderItem key={folderNode.id} folderNode={folderNode} />
24
- ))}
25
- </div>
26
- </div>
27
- );
28
- }
@@ -1,14 +0,0 @@
1
- ---
2
- to: "<%= driveEditorDir %>/components/NavigationBreadcrumbs.tsx"
3
- unless_exists: true
4
- ---
5
- import { Breadcrumbs } from "@powerhousedao/design-system/connect";
6
-
7
- /** Shows the navigation breadcrumbs for the selected drive or folder */
8
- export function NavigationBreadcrumbs() {
9
- return (
10
- <div className="border-b border-gray-200 pb-3 space-y-3">
11
- <Breadcrumbs />
12
- </div>
13
- );
14
- }
@@ -1,11 +0,0 @@
1
- ---
2
- to: "<%= driveEditorDir %>/config.ts"
3
- unless_exists: true
4
- ---
5
- import type { PHDriveEditorConfig } from "@powerhousedao/reactor-browser";
6
-
7
- /** Editor config for the <%= pascalCaseDriveEditorName %> */
8
- export const editorConfig: PHDriveEditorConfig = {
9
- isDragAndDropEnabled: <%- isDragAndDropEnabled %>,
10
- allowedDocumentTypes: <%- allowedDocumentTypes %>
11
- };
@@ -1,18 +0,0 @@
1
- ---
2
- to: "<%= driveEditorDir %>/editor.tsx"
3
- unless_exists: true
4
- ---
5
- import { useSetPHDriveEditorConfig } from "@powerhousedao/reactor-browser";
6
- import type { EditorProps } from "document-model";
7
- import { DriveExplorer } from "./components/DriveExplorer.js";
8
- import { editorConfig } from "./config.js";
9
-
10
- /** Editor component for the <%= pascalCaseDriveEditorName %> drive editor */
11
- export default function Editor(props: EditorProps) {
12
- // set the config for this drive editor
13
- // you can update these configs in `./config.ts`
14
- useSetPHDriveEditorConfig(editorConfig);
15
- return (
16
- <DriveExplorer {...props} />
17
- );
18
- }
@@ -1,25 +0,0 @@
1
- const { pascalCase, paramCase } = require("change-case");
2
- const path = require("path");
3
-
4
- // @ts-check
5
- module.exports = {
6
- params: ({ args }) => {
7
- const name = args.name;
8
- const rootDir = args.rootDir;
9
- const driveEditorDirName = args.driveEditorDirName || paramCase(args.name);
10
- const driveEditorDir = path.join(rootDir, driveEditorDirName);
11
- const pascalCaseDriveEditorName = pascalCase(name);
12
- const paramCaseDriveEditorName = paramCase(name);
13
-
14
- return {
15
- rootDir,
16
- driveEditorDir,
17
- name: args.name,
18
- appId: args.appId,
19
- isDragAndDropEnabled: args.isDragAndDropEnabled,
20
- allowedDocumentTypes: args.allowedDocumentTypes,
21
- pascalCaseDriveEditorName,
22
- paramCaseDriveEditorName,
23
- };
24
- },
25
- };
@@ -1,15 +0,0 @@
1
- ---
2
- to: "<%= driveEditorDir %>/module.ts"
3
- force: true
4
- ---
5
- import { type EditorModule } from "document-model";
6
- import { lazy } from "react";
7
-
8
- export const <%= pascalCaseDriveEditorName %>: EditorModule = {
9
- Component: lazy(() => import("./editor.js")),
10
- documentTypes: ["powerhouse/document-drive"],
11
- config: {
12
- id: "<%= appId || paramCaseDriveEditorName %>",
13
- name: "<%= name %>",
14
- },
15
- };
@@ -1,80 +0,0 @@
1
- ---
2
- to: "<%= editorDir %>/editor.tsx"
3
- unless_exists: true
4
- ---
5
- import { DocumentToolbar } from "@powerhousedao/design-system/connect";
6
- import { setName } from "document-model";
7
- import { type FormEvent, useState } from "react";
8
- <% if(!documentType){ %>import { useSelectedDocument } from "@powerhousedao/reactor-browser";<% } else { %>import { <%= useSelectedHookName %> } from "<%= documentModelDir %>";<% } %>
9
-
10
- export default function Editor() {
11
- const [document, dispatch] = <%= useSelectedHookName %>();
12
- const [isEditing, setIsEditing] = useState(false);
13
-
14
- if (!document) return null;
15
-
16
- const handleSubmit = (event: FormEvent<HTMLFormElement>) => {
17
- event.preventDefault();
18
- const form = event.currentTarget;
19
- const nameInput = form.elements.namedItem("name") as HTMLInputElement;
20
- const name = nameInput.value.trim();
21
- if (!name) return;
22
- dispatch(setName(name));
23
- setIsEditing(false);
24
- };
25
-
26
- return (
27
- <div className="min-h-screen bg-gray-50">
28
- <DocumentToolbar />
29
- <div className="ph-default-styles">
30
- <div className="flex justify-center px-4 py-8">
31
- <div className="w-full max-w-md rounded-xl bg-white p-6 shadow-sm">
32
- <div className="mb-4 text-xs font-medium uppercase tracking-wide text-gray-400">
33
- <%= pascalCaseDocumentType %>
34
- </div>
35
-
36
- {isEditing ? (
37
- <form onSubmit={handleSubmit} className="space-y-4">
38
- <input
39
- type="text"
40
- name="name"
41
- defaultValue={document.header.name}
42
- autoFocus
43
- className="w-full rounded-lg border border-gray-200 px-4 py-3 text-lg font-semibold text-gray-900 outline-none transition-colors focus:border-blue-500 focus:ring-2 focus:ring-blue-100"
44
- placeholder="Enter name..."
45
- />
46
- <div className="flex gap-2">
47
- <button
48
- type="submit"
49
- className="flex-1 rounded-lg bg-blue-600 px-4 py-2.5 text-sm font-medium text-white transition-colors hover:bg-blue-700"
50
- >
51
- Save
52
- </button>
53
- <button
54
- type="button"
55
- onClick={() => setIsEditing(false)}
56
- className="flex-1 rounded-lg border border-gray-200 px-4 py-2.5 text-sm font-medium text-gray-600 transition-colors hover:bg-gray-50"
57
- >
58
- Cancel
59
- </button>
60
- </div>
61
- </form>
62
- ) : (
63
- <div className="flex items-center justify-between gap-4">
64
- <h2 className="truncate text-xl font-semibold text-gray-900">
65
- {document.header.name || "Untitled"}
66
- </h2>
67
- <button
68
- onClick={() => setIsEditing(true)}
69
- className="shrink-0 rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200"
70
- >
71
- Edit
72
- </button>
73
- </div>
74
- )}
75
- </div>
76
- </div>
77
- </div>
78
- </div>
79
- );
80
- }
@@ -1,90 +0,0 @@
1
- const {
2
- pascalCase,
3
- paramCase,
4
- capitalCase,
5
- camelCase,
6
- } = require("change-case");
7
- const { readdirSync, readFileSync } = require("fs");
8
- const { join } = require("path");
9
-
10
- // @ts-check
11
- module.exports = {
12
- params: ({ args }) => {
13
- const rootDir = args.rootDir;
14
- const editorDirName = args.editorDirName || paramCase(args.name);
15
- const editorDir = join(rootDir, editorDirName);
16
- const documentTypes = args.documentTypes
17
- .split(",")
18
- .map((type) => type.trim())
19
- .filter((type) => type !== "");
20
- const documentTypesMap = JSON.parse(args.documentTypesMap);
21
-
22
- // if this editor is for a single document type, then the boilerplate will be customized to it
23
- const singleDocumentType =
24
- documentTypes.length === 1 ? documentTypes[0] : undefined;
25
- const documentType = singleDocumentType
26
- ? { ...documentTypesMap[singleDocumentType], type: singleDocumentType }
27
- : undefined;
28
- const packageName = args.packageName;
29
- const pascalCaseEditorName = pascalCase(args.name);
30
- const paramCaseEditorName = paramCase(args.name);
31
- const pascalCaseDocumentType = pascalCase(documentType?.name);
32
- const paramCaseDocumentType = paramCase(documentType?.name);
33
- const camelCaseDocumentType = camelCase(documentType?.name);
34
- const documentVariableName = documentType
35
- ? `${camelCaseDocumentType}Document`
36
- : "document";
37
- const phDocumentTypeName = documentType
38
- ? `${pascalCaseDocumentType}Document`
39
- : "Document";
40
- const actionTypeName = `${pascalCaseDocumentType}Action`;
41
- const documentModelDir = `${packageName}/document-models/${paramCaseDocumentType}`;
42
- const hooksDir = `${packageName}/editors/hooks`;
43
- const isDocumentOfTypeFunctionName = `is${phDocumentTypeName}`;
44
- const assertIsDocumentOfTypeFunctionName = `assertIs${phDocumentTypeName}`;
45
- const useByIdHookName = documentType
46
- ? `use${phDocumentTypeName}ById`
47
- : "useDocumentById";
48
- const useSelectedHookName = documentType
49
- ? `useSelected${phDocumentTypeName}`
50
- : "useSelectedDocument";
51
- const useInSelectedDriveHookName = documentType
52
- ? `use${phDocumentTypeName}sInSelectedDrive`
53
- : "useDocumentsInSelectedDrive";
54
- const useInSelectedFolderHookName = documentType
55
- ? `use${phDocumentTypeName}sInSelectedFolder`
56
- : "useDocumentsInSelectedFolder";
57
- const editNameComponentName = "EditName"
58
-
59
- return {
60
- rootDir,
61
- editorDir,
62
- documentModelsDir: args.documentModelsDir,
63
- name: args.name,
64
- pascalCaseEditorName,
65
- paramCaseEditorName,
66
- pascalCaseDocumentType,
67
- paramCaseDocumentType,
68
- camelCaseDocumentType,
69
- documentVariableName,
70
- phDocumentTypeName,
71
- actionTypeName,
72
- hooksDir,
73
- documentModelDir,
74
- isDocumentOfTypeFunctionName,
75
- assertIsDocumentOfTypeFunctionName,
76
- useByIdHookName,
77
- useSelectedHookName,
78
- useInSelectedDriveHookName,
79
- useInSelectedFolderHookName,
80
- editNameComponentName,
81
- documentTypes: args.documentTypes
82
- .split(",")
83
- .filter((type) => type !== ""),
84
- documentTypesMap,
85
- editorId: args.editorId,
86
- documentType,
87
- packageName,
88
- };
89
- },
90
- };
@@ -1,16 +0,0 @@
1
- ---
2
- to: "<%= editorDir %>/module.ts"
3
- force: true
4
- ---
5
- import type { EditorModule } from "document-model";
6
- import { lazy } from "react";
7
-
8
- /** Document editor module for the Todo List document type */
9
- export const <%= pascalCaseEditorName %>: EditorModule = {
10
- Component: lazy(() => import("./editor.js")),
11
- documentTypes: [<% if(!documentTypes.length){ %>"*"<% } else { %><% documentTypes.forEach(type => { _%>"<%= type %>", %><% }); _%> <% } %>],
12
- config: {
13
- id: "<%= editorId || paramCaseEditorName %>",
14
- name: "<%= name || pascalCaseEditorName %>",
15
- },
16
- };