akanjs 2.0.7 → 2.1.0-rc.0

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 (498) hide show
  1. package/README.ko.md +4 -4
  2. package/README.md +4 -4
  3. package/client/router.ts +10 -3
  4. package/document/documentSchema.ts +9 -1
  5. package/index.ts +187 -0
  6. package/package.json +6 -50
  7. package/server/akanApp.ts +2 -24
  8. package/server/akanAppHeaders.ts +30 -0
  9. package/server/di/predefinedAdaptor.ts +1 -1
  10. package/types/dictionary/base.dictionary.d.ts +1 -1
  11. package/types/dictionary/dictionary.d.ts +8 -8
  12. package/types/document/documentSchema.d.ts +33 -0
  13. package/types/document/index.d.ts +1 -1
  14. package/types/document/schema.d.ts +1 -1
  15. package/types/document/types.d.ts +1 -1
  16. package/types/{devkit/akanConfig/types.d.ts → index.d.ts} +45 -54
  17. package/types/server/akanAppHeaders.d.ts +1 -0
  18. package/types/server/di/predefinedAdaptor.d.ts +1 -1
  19. package/types/store/baseSt.d.ts +2 -2
  20. package/ui/Link/SsrLink.tsx +2 -2
  21. package/webkit/useCodepush.tsx +1 -1
  22. package/cli/application/application.command.ts +0 -224
  23. package/cli/application/application.interface.tsx +0 -225
  24. package/cli/application/application.runner.ts +0 -355
  25. package/cli/application/application.script.ts +0 -244
  26. package/cli/build.ts +0 -27
  27. package/cli/cloud/cloud.command.ts +0 -48
  28. package/cli/cloud/cloud.runner.ts +0 -157
  29. package/cli/cloud/cloud.script.ts +0 -40
  30. package/cli/guideline/guideline.command.ts +0 -31
  31. package/cli/guideline/guideline.prompt.ts +0 -212
  32. package/cli/guideline/guideline.runner.ts +0 -53
  33. package/cli/guideline/guideline.script.ts +0 -33
  34. package/cli/guidelines/___library/sharedUiStructureDescription.en.md +0 -767
  35. package/cli/guidelines/___library/utilUiStructureDescription.en.md +0 -395
  36. package/cli/guidelines/___lint/lintRuleDescription.en.md +0 -64
  37. package/cli/guidelines/___module/moduleStructureDescription.en.md +0 -80
  38. package/cli/guidelines/componentRule/componentRule.generate.json +0 -131
  39. package/cli/guidelines/componentRule/componentRule.instruction.md +0 -637
  40. package/cli/guidelines/cssRule/cssRule.generate.json +0 -93
  41. package/cli/guidelines/cssRule/cssRule.instruction.md +0 -435
  42. package/cli/guidelines/databaseModule/databaseModule.generate.json +0 -51
  43. package/cli/guidelines/databaseModule/databaseModule.instruction.md +0 -612
  44. package/cli/guidelines/docPageRule/docPageRule.generate.json +0 -72
  45. package/cli/guidelines/docPageRule/docPageRule.instruction.md +0 -389
  46. package/cli/guidelines/enumConstant/enumConstant.generate.json +0 -24
  47. package/cli/guidelines/enumConstant/enumConstant.instruction.md +0 -232
  48. package/cli/guidelines/framework/framework.generate.json +0 -119
  49. package/cli/guidelines/framework/framework.instruction.md +0 -1110
  50. package/cli/guidelines/howToUseStore/howToUseStore.generate.json +0 -0
  51. package/cli/guidelines/modelConstant/modelConstant.generate.json +0 -128
  52. package/cli/guidelines/modelConstant/modelConstant.instruction.md +0 -506
  53. package/cli/guidelines/modelDictionary/modelDictionary.generate.json +0 -108
  54. package/cli/guidelines/modelDictionary/modelDictionary.instruction.md +0 -547
  55. package/cli/guidelines/modelDocument/modelDocument.generate.json +0 -129
  56. package/cli/guidelines/modelDocument/modelDocument.instruction.md +0 -509
  57. package/cli/guidelines/modelService/modelService.generate.json +0 -135
  58. package/cli/guidelines/modelService/modelService.instruction.md +0 -708
  59. package/cli/guidelines/modelSignal/modelSignal.generate.json +0 -201
  60. package/cli/guidelines/modelSignal/modelSignal.instruction.md +0 -552
  61. package/cli/guidelines/modelStore/modelStore.generate.json +0 -130
  62. package/cli/guidelines/modelStore/modelStore.instruction.md +0 -585
  63. package/cli/guidelines/modelTemplate/modelTemplate.generate.json +0 -104
  64. package/cli/guidelines/modelTemplate/modelTemplate.instruction.md +0 -604
  65. package/cli/guidelines/modelUnit/modelUnit.generate.json +0 -92
  66. package/cli/guidelines/modelUnit/modelUnit.instruction.md +0 -541
  67. package/cli/guidelines/modelUtil/modelUtil.generate.json +0 -93
  68. package/cli/guidelines/modelUtil/modelUtil.instruction.md +0 -752
  69. package/cli/guidelines/modelView/modelView.generate.json +0 -80
  70. package/cli/guidelines/modelView/modelView.instruction.md +0 -1005
  71. package/cli/guidelines/modelZone/modelZone.generate.json +0 -126
  72. package/cli/guidelines/modelZone/modelZone.instruction.md +0 -528
  73. package/cli/guidelines/scalarConstant/scalarConstant.generate.json +0 -106
  74. package/cli/guidelines/scalarConstant/scalarConstant.instruction.md +0 -442
  75. package/cli/guidelines/scalarDictionary/scalarDictionary.generate.json +0 -83
  76. package/cli/guidelines/scalarDictionary/scalarDictionary.instruction.md +0 -273
  77. package/cli/guidelines/scalarModule/scalarModule.generate.json +0 -35
  78. package/cli/guidelines/scalarModule/scalarModule.instruction.md +0 -81
  79. package/cli/guidelines/sharedUiUsage/sharedUiUsage.generate.json +0 -108
  80. package/cli/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +0 -310
  81. package/cli/guidelines/utilUiUsage/utilUiUsage.generate.json +0 -140
  82. package/cli/guidelines/utilUiUsage/utilUiUsage.instruction.md +0 -339
  83. package/cli/index.js +0 -184444
  84. package/cli/index.ts +0 -24
  85. package/cli/library/library.command.ts +0 -28
  86. package/cli/library/library.runner.ts +0 -66
  87. package/cli/library/library.script.ts +0 -39
  88. package/cli/module/module.command.ts +0 -35
  89. package/cli/module/module.prompt.ts +0 -18
  90. package/cli/module/module.request.ts +0 -319
  91. package/cli/module/module.runner.ts +0 -76
  92. package/cli/module/module.script.ts +0 -161
  93. package/cli/npmRegistry.ts +0 -13
  94. package/cli/openBrowser.ts +0 -15
  95. package/cli/package/package.command.ts +0 -32
  96. package/cli/package/package.runner.ts +0 -94
  97. package/cli/package/package.script.ts +0 -35
  98. package/cli/page/page.command.ts +0 -14
  99. package/cli/page/page.runner.ts +0 -14
  100. package/cli/page/page.script.ts +0 -12
  101. package/cli/pluralizeName.ts +0 -5
  102. package/cli/scalar/scalar.command.ts +0 -21
  103. package/cli/scalar/scalar.prompt.ts +0 -131
  104. package/cli/scalar/scalar.runner.ts +0 -38
  105. package/cli/scalar/scalar.script.ts +0 -16
  106. package/cli/semver.ts +0 -18
  107. package/cli/templates/__scalar/__model__/__model__.constant.ts +0 -15
  108. package/cli/templates/__scalar/__model__/__model__.dictionary.ts +0 -19
  109. package/cli/templates/__scalar/__model__/__model__.document.ts +0 -15
  110. package/cli/templates/app/akan.config.ts +0 -14
  111. package/cli/templates/app/env/env.client.debug.ts.template +0 -7
  112. package/cli/templates/app/env/env.client.develop.ts.template +0 -7
  113. package/cli/templates/app/env/env.client.local.ts.template +0 -7
  114. package/cli/templates/app/env/env.client.main.ts.template +0 -7
  115. package/cli/templates/app/env/env.client.testing.ts.template +0 -7
  116. package/cli/templates/app/env/env.client.ts +0 -21
  117. package/cli/templates/app/env/env.client.type.ts +0 -16
  118. package/cli/templates/app/env/env.server.debug.ts.template +0 -7
  119. package/cli/templates/app/env/env.server.develop.ts.template +0 -7
  120. package/cli/templates/app/env/env.server.local.ts.template +0 -7
  121. package/cli/templates/app/env/env.server.main.ts.template +0 -7
  122. package/cli/templates/app/env/env.server.testing.ts.template +0 -6
  123. package/cli/templates/app/env/env.server.ts +0 -20
  124. package/cli/templates/app/lib/___appName__/__appName__.dictionary.ts +0 -17
  125. package/cli/templates/app/lib/___appName__/__appName__.service.ts +0 -13
  126. package/cli/templates/app/lib/___appName__/__appName__.signal.ts +0 -17
  127. package/cli/templates/app/lib/___appName__/__appName__.store.ts +0 -15
  128. package/cli/templates/app/lib/option.ts +0 -17
  129. package/cli/templates/app/main.ts +0 -16
  130. package/cli/templates/app/package.json.template +0 -5
  131. package/cli/templates/app/page/_index.tsx +0 -296
  132. package/cli/templates/app/page/_layout.tsx +0 -31
  133. package/cli/templates/app/page/styles.css.template +0 -53
  134. package/cli/templates/app/public/favicon.ico +0 -0
  135. package/cli/templates/app/public/logo.png +0 -0
  136. package/cli/templates/app/tsconfig.json.template +0 -21
  137. package/cli/templates/client.ts +0 -46
  138. package/cli/templates/crudPages/[__model__Id]/edit/page.tsx +0 -47
  139. package/cli/templates/crudPages/[__model__Id]/page.tsx +0 -52
  140. package/cli/templates/crudPages/new/page.tsx +0 -42
  141. package/cli/templates/crudPages/page.tsx +0 -43
  142. package/cli/templates/crudSinglePage/page.tsx +0 -37
  143. package/cli/templates/env/_env.server.type.ts +0 -16
  144. package/cli/templates/facetIndex/index.ts +0 -32
  145. package/cli/templates/index.ts +0 -10
  146. package/cli/templates/lib/__lib/lib.constant.ts +0 -38
  147. package/cli/templates/lib/__lib/lib.dictionary.ts +0 -33
  148. package/cli/templates/lib/__lib/lib.document.ts +0 -35
  149. package/cli/templates/lib/__lib/lib.service.ts +0 -33
  150. package/cli/templates/lib/__lib/lib.signal.ts +0 -34
  151. package/cli/templates/lib/__lib/lib.store.ts +0 -33
  152. package/cli/templates/lib/cnst.ts +0 -29
  153. package/cli/templates/lib/db.ts +0 -32
  154. package/cli/templates/lib/dict.ts +0 -49
  155. package/cli/templates/lib/sig.ts +0 -60
  156. package/cli/templates/lib/srv.ts +0 -34
  157. package/cli/templates/lib/st.ts +0 -31
  158. package/cli/templates/lib/useClient.ts +0 -19
  159. package/cli/templates/lib/useServer.ts +0 -7
  160. package/cli/templates/libRoot/.gitignore.template +0 -16
  161. package/cli/templates/libRoot/akan.config.ts +0 -12
  162. package/cli/templates/libRoot/base/baseLogic.ts +0 -10
  163. package/cli/templates/libRoot/base/index.ts +0 -8
  164. package/cli/templates/libRoot/common/commonLogic.ts +0 -10
  165. package/cli/templates/libRoot/common/index.ts +0 -8
  166. package/cli/templates/libRoot/env/env.server.example.ts.template +0 -6
  167. package/cli/templates/libRoot/env/env.server.testing.ts.template +0 -6
  168. package/cli/templates/libRoot/lib/___libName__/__libName__.dictionary.ts +0 -15
  169. package/cli/templates/libRoot/lib/___libName__/__libName__.service.ts +0 -11
  170. package/cli/templates/libRoot/lib/___libName__/__libName__.store.ts +0 -13
  171. package/cli/templates/libRoot/lib/option.ts +0 -17
  172. package/cli/templates/libRoot/package.json.template +0 -5
  173. package/cli/templates/libRoot/srvkit/backendLogic.ts +0 -10
  174. package/cli/templates/libRoot/srvkit/index.ts +0 -8
  175. package/cli/templates/libRoot/tsconfig.json.template +0 -11
  176. package/cli/templates/libRoot/ui/index.ts +0 -7
  177. package/cli/templates/libRoot/webkit/frontendLogic.ts +0 -10
  178. package/cli/templates/libRoot/webkit/index.ts +0 -8
  179. package/cli/templates/localDev/docker-compose.yaml.template +0 -37
  180. package/cli/templates/module/__Model__.Template.tsx +0 -36
  181. package/cli/templates/module/__Model__.Unit.tsx +0 -26
  182. package/cli/templates/module/__Model__.Util.tsx +0 -30
  183. package/cli/templates/module/__Model__.View.tsx +0 -29
  184. package/cli/templates/module/__Model__.Zone.tsx +0 -43
  185. package/cli/templates/module/__model__.constant.ts +0 -24
  186. package/cli/templates/module/__model__.dictionary.ts +0 -30
  187. package/cli/templates/module/__model__.document.ts +0 -23
  188. package/cli/templates/module/__model__.service.ts +0 -16
  189. package/cli/templates/module/__model__.signal.ts +0 -27
  190. package/cli/templates/module/__model__.store.ts +0 -19
  191. package/cli/templates/moduleRoot/index.tsx +0 -31
  192. package/cli/templates/pkgRoot/tsconfig.json.template +0 -10
  193. package/cli/templates/server.ts +0 -45
  194. package/cli/templates/workspaceRoot/.env.template +0 -14
  195. package/cli/templates/workspaceRoot/.gitignore.template +0 -120
  196. package/cli/templates/workspaceRoot/.vscode/settings.json.template +0 -23
  197. package/cli/templates/workspaceRoot/biome.json.template +0 -191
  198. package/cli/templates/workspaceRoot/bunfig.toml +0 -4
  199. package/cli/templates/workspaceRoot/package.json.template +0 -7
  200. package/cli/templates/workspaceRoot/tsconfig.json.template +0 -29
  201. package/cli/testHelpers.ts +0 -171
  202. package/cli/workspace/workspace.command.ts +0 -55
  203. package/cli/workspace/workspace.runner.ts +0 -79
  204. package/cli/workspace/workspace.script.ts +0 -74
  205. package/devkit/aiEditor.ts +0 -299
  206. package/devkit/akanApp/akanApp.host.ts +0 -393
  207. package/devkit/akanApp/index.ts +0 -1
  208. package/devkit/akanConfig/akanConfig.ts +0 -360
  209. package/devkit/akanConfig/index.ts +0 -2
  210. package/devkit/akanConfig/types.ts +0 -187
  211. package/devkit/applicationBuildReporter.ts +0 -69
  212. package/devkit/applicationBuildRunner.ts +0 -302
  213. package/devkit/applicationReleasePackager.ts +0 -205
  214. package/devkit/artifact/implicitRootLayout.ts +0 -155
  215. package/devkit/artifact/index.ts +0 -1
  216. package/devkit/artifact/routeSeedIndex.ts +0 -128
  217. package/devkit/auth.ts +0 -41
  218. package/devkit/builder.ts +0 -164
  219. package/devkit/capacitor.base.config.ts +0 -88
  220. package/devkit/capacitorApp.ts +0 -443
  221. package/devkit/commandDecorators/argMeta.ts +0 -102
  222. package/devkit/commandDecorators/command.ts +0 -340
  223. package/devkit/commandDecorators/commandBuilder.ts +0 -224
  224. package/devkit/commandDecorators/commandMeta.ts +0 -6
  225. package/devkit/commandDecorators/dependencyBuilder.ts +0 -100
  226. package/devkit/commandDecorators/helpFormatter.ts +0 -220
  227. package/devkit/commandDecorators/index.ts +0 -8
  228. package/devkit/commandDecorators/targetMeta.ts +0 -31
  229. package/devkit/commandDecorators/types.ts +0 -10
  230. package/devkit/constants.ts +0 -25
  231. package/devkit/createTunnel.ts +0 -36
  232. package/devkit/dependencyScanner.ts +0 -339
  233. package/devkit/executors.ts +0 -1362
  234. package/devkit/extractDeps.ts +0 -85
  235. package/devkit/fileEditor.ts +0 -106
  236. package/devkit/fileSys.ts +0 -39
  237. package/devkit/frontendBuild/allRoutesBuilder.ts +0 -103
  238. package/devkit/frontendBuild/clientBuildTypes.ts +0 -114
  239. package/devkit/frontendBuild/clientEntriesBundler.ts +0 -300
  240. package/devkit/frontendBuild/clientEntryDiscovery.ts +0 -196
  241. package/devkit/frontendBuild/csrArtifactBuilder.ts +0 -237
  242. package/devkit/frontendBuild/cssCompiler.ts +0 -285
  243. package/devkit/frontendBuild/cssImportResolver.ts +0 -116
  244. package/devkit/frontendBuild/fontOptimizer.ts +0 -427
  245. package/devkit/frontendBuild/hmrChangeClassifier.ts +0 -28
  246. package/devkit/frontendBuild/hmrWatcher.ts +0 -101
  247. package/devkit/frontendBuild/index.ts +0 -18
  248. package/devkit/frontendBuild/pagesBundleBuilder.ts +0 -137
  249. package/devkit/frontendBuild/pagesEntrySourceGenerator.ts +0 -37
  250. package/devkit/frontendBuild/precompressArtifacts.ts +0 -59
  251. package/devkit/frontendBuild/routeClientBuilder.ts +0 -290
  252. package/devkit/frontendBuild/routesManifestArtifactSerializer.ts +0 -62
  253. package/devkit/frontendBuild/ssrBaseArtifactBuilder.ts +0 -139
  254. package/devkit/frontendBuild/vendorSpecifiers.ts +0 -16
  255. package/devkit/frontendBuild/watchRootResolver.ts +0 -28
  256. package/devkit/getCredentials.ts +0 -19
  257. package/devkit/getDirname.ts +0 -3
  258. package/devkit/getModelFileData.ts +0 -59
  259. package/devkit/getRelatedCnsts.ts +0 -300
  260. package/devkit/guideline.ts +0 -19
  261. package/devkit/incrementalBuilder/incrementalBuilder.host.ts +0 -152
  262. package/devkit/incrementalBuilder/incrementalBuilder.proc.ts +0 -331
  263. package/devkit/incrementalBuilder/index.ts +0 -1
  264. package/devkit/index.ts +0 -36
  265. package/devkit/lint/no-deep-internal-import.grit +0 -25
  266. package/devkit/lint/no-import-client-functions.grit +0 -32
  267. package/devkit/lint/no-import-external-library.grit +0 -21
  268. package/devkit/lint/no-js-private-class-method.grit +0 -42
  269. package/devkit/lint/no-use-client-in-server.grit +0 -7
  270. package/devkit/lint/non-scalar-props-restricted.grit +0 -13
  271. package/devkit/linter.ts +0 -248
  272. package/devkit/mobile/index.ts +0 -1
  273. package/devkit/mobile/mobileTarget.ts +0 -88
  274. package/devkit/prompter.ts +0 -71
  275. package/devkit/scanInfo.ts +0 -606
  276. package/devkit/selectModel.ts +0 -11
  277. package/devkit/spinner.ts +0 -54
  278. package/devkit/src/capacitorApp.ts +0 -277
  279. package/devkit/sshTunnel.ts +0 -151
  280. package/devkit/streamAi.ts +0 -45
  281. package/devkit/transforms/barrelAnalyzer.ts +0 -249
  282. package/devkit/transforms/barrelImportsPlugin.ts +0 -457
  283. package/devkit/transforms/externalizeFrameworkPlugin.ts +0 -159
  284. package/devkit/transforms/index.ts +0 -5
  285. package/devkit/transforms/rscUseClientTransform.ts +0 -52
  286. package/devkit/transforms/useClientBundlePlugin.ts +0 -47
  287. package/devkit/typeChecker.ts +0 -260
  288. package/devkit/types.ts +0 -44
  289. package/devkit/ui/MultiScrollList.tsx +0 -228
  290. package/devkit/ui/ScrollList.tsx +0 -106
  291. package/devkit/ui/index.ts +0 -2
  292. package/devkit/uploadRelease.ts +0 -95
  293. package/devkit/useStdoutDimensions.ts +0 -20
  294. package/types/cli/application/application.command.d.ts +0 -7
  295. package/types/cli/application/application.interface.d.ts +0 -40
  296. package/types/cli/application/application.runner.d.ts +0 -66
  297. package/types/cli/application/application.script.d.ts +0 -72
  298. package/types/cli/build.d.ts +0 -1
  299. package/types/cli/cloud/cloud.command.d.ts +0 -7
  300. package/types/cli/cloud/cloud.runner.d.ts +0 -13
  301. package/types/cli/cloud/cloud.script.d.ts +0 -23
  302. package/types/cli/guideline/guideline.command.d.ts +0 -7
  303. package/types/cli/guideline/guideline.prompt.d.ts +0 -29
  304. package/types/cli/guideline/guideline.runner.d.ts +0 -21
  305. package/types/cli/guideline/guideline.script.d.ts +0 -16
  306. package/types/cli/index.d.ts +0 -2
  307. package/types/cli/library/library.command.d.ts +0 -7
  308. package/types/cli/library/library.runner.d.ts +0 -11
  309. package/types/cli/library/library.script.d.ts +0 -13
  310. package/types/cli/module/module.command.d.ts +0 -7
  311. package/types/cli/module/module.prompt.d.ts +0 -13
  312. package/types/cli/module/module.request.d.ts +0 -63
  313. package/types/cli/module/module.runner.d.ts +0 -55
  314. package/types/cli/module/module.script.d.ts +0 -22
  315. package/types/cli/npmRegistry.d.ts +0 -1
  316. package/types/cli/openBrowser.d.ts +0 -1
  317. package/types/cli/package/package.command.d.ts +0 -7
  318. package/types/cli/package/package.runner.d.ts +0 -13
  319. package/types/cli/package/package.script.d.ts +0 -18
  320. package/types/cli/page/page.command.d.ts +0 -7
  321. package/types/cli/page/page.runner.d.ts +0 -10
  322. package/types/cli/page/page.script.d.ts +0 -13
  323. package/types/cli/pluralizeName.d.ts +0 -1
  324. package/types/cli/scalar/scalar.command.d.ts +0 -7
  325. package/types/cli/scalar/scalar.prompt.d.ts +0 -23
  326. package/types/cli/scalar/scalar.runner.d.ts +0 -16
  327. package/types/cli/scalar/scalar.script.d.ts +0 -11
  328. package/types/cli/semver.d.ts +0 -1
  329. package/types/cli/templates/__scalar/__model__/__model__.constant.d.ts +0 -7
  330. package/types/cli/templates/__scalar/__model__/__model__.dictionary.d.ts +0 -7
  331. package/types/cli/templates/__scalar/__model__/__model__.document.d.ts +0 -7
  332. package/types/cli/templates/app/akan.config.d.ts +0 -6
  333. package/types/cli/templates/app/env/env.client.d.ts +0 -6
  334. package/types/cli/templates/app/env/env.client.type.d.ts +0 -6
  335. package/types/cli/templates/app/env/env.server.d.ts +0 -6
  336. package/types/cli/templates/app/lib/___appName__/__appName__.dictionary.d.ts +0 -7
  337. package/types/cli/templates/app/lib/___appName__/__appName__.service.d.ts +0 -7
  338. package/types/cli/templates/app/lib/___appName__/__appName__.signal.d.ts +0 -7
  339. package/types/cli/templates/app/lib/___appName__/__appName__.store.d.ts +0 -7
  340. package/types/cli/templates/app/lib/option.d.ts +0 -6
  341. package/types/cli/templates/app/main.d.ts +0 -6
  342. package/types/cli/templates/app/page/_index.d.ts +0 -9
  343. package/types/cli/templates/app/page/_layout.d.ts +0 -11
  344. package/types/cli/templates/client.d.ts +0 -4
  345. package/types/cli/templates/crudPages/[__model__Id]/edit/page.d.ts +0 -11
  346. package/types/cli/templates/crudPages/[__model__Id]/page.d.ts +0 -11
  347. package/types/cli/templates/crudPages/new/page.d.ts +0 -11
  348. package/types/cli/templates/crudPages/page.d.ts +0 -11
  349. package/types/cli/templates/crudSinglePage/page.d.ts +0 -11
  350. package/types/cli/templates/env/_env.server.type.d.ts +0 -7
  351. package/types/cli/templates/facetIndex/index.d.ts +0 -13
  352. package/types/cli/templates/facetIndex.d.ts +0 -1
  353. package/types/cli/templates/index.d.ts +0 -6
  354. package/types/cli/templates/lib/__lib/lib.constant.d.ts +0 -4
  355. package/types/cli/templates/lib/__lib/lib.dictionary.d.ts +0 -4
  356. package/types/cli/templates/lib/__lib/lib.document.d.ts +0 -4
  357. package/types/cli/templates/lib/__lib/lib.service.d.ts +0 -4
  358. package/types/cli/templates/lib/__lib/lib.signal.d.ts +0 -4
  359. package/types/cli/templates/lib/__lib/lib.store.d.ts +0 -4
  360. package/types/cli/templates/lib/cnst.d.ts +0 -4
  361. package/types/cli/templates/lib/db.d.ts +0 -4
  362. package/types/cli/templates/lib/dict.d.ts +0 -4
  363. package/types/cli/templates/lib/sig.d.ts +0 -4
  364. package/types/cli/templates/lib/srv.d.ts +0 -4
  365. package/types/cli/templates/lib/st.d.ts +0 -4
  366. package/types/cli/templates/lib/useClient.d.ts +0 -4
  367. package/types/cli/templates/lib/useServer.d.ts +0 -4
  368. package/types/cli/templates/libRoot/akan.config.d.ts +0 -5
  369. package/types/cli/templates/libRoot/base/baseLogic.d.ts +0 -5
  370. package/types/cli/templates/libRoot/base/index.d.ts +0 -5
  371. package/types/cli/templates/libRoot/base.d.ts +0 -1
  372. package/types/cli/templates/libRoot/common/commonLogic.d.ts +0 -5
  373. package/types/cli/templates/libRoot/common/index.d.ts +0 -5
  374. package/types/cli/templates/libRoot/common.d.ts +0 -1
  375. package/types/cli/templates/libRoot/lib/___libName__/__libName__.dictionary.d.ts +0 -6
  376. package/types/cli/templates/libRoot/lib/___libName__/__libName__.service.d.ts +0 -6
  377. package/types/cli/templates/libRoot/lib/___libName__/__libName__.store.d.ts +0 -6
  378. package/types/cli/templates/libRoot/lib/option.d.ts +0 -6
  379. package/types/cli/templates/libRoot/srvkit/backendLogic.d.ts +0 -5
  380. package/types/cli/templates/libRoot/srvkit/index.d.ts +0 -5
  381. package/types/cli/templates/libRoot/srvkit.d.ts +0 -1
  382. package/types/cli/templates/libRoot/ui/index.d.ts +0 -5
  383. package/types/cli/templates/libRoot/ui.d.ts +0 -1
  384. package/types/cli/templates/libRoot/webkit/frontendLogic.d.ts +0 -5
  385. package/types/cli/templates/libRoot/webkit/index.d.ts +0 -5
  386. package/types/cli/templates/libRoot/webkit.d.ts +0 -1
  387. package/types/cli/templates/module/__Model__.Template.d.ts +0 -11
  388. package/types/cli/templates/module/__Model__.Unit.d.ts +0 -11
  389. package/types/cli/templates/module/__Model__.Util.d.ts +0 -11
  390. package/types/cli/templates/module/__Model__.View.d.ts +0 -11
  391. package/types/cli/templates/module/__Model__.Zone.d.ts +0 -11
  392. package/types/cli/templates/module/__model__.constant.d.ts +0 -8
  393. package/types/cli/templates/module/__model__.dictionary.d.ts +0 -8
  394. package/types/cli/templates/module/__model__.document.d.ts +0 -8
  395. package/types/cli/templates/module/__model__.service.d.ts +0 -8
  396. package/types/cli/templates/module/__model__.signal.d.ts +0 -9
  397. package/types/cli/templates/module/__model__.store.d.ts +0 -8
  398. package/types/cli/templates/moduleRoot/index.d.ts +0 -11
  399. package/types/cli/templates/moduleRoot.d.ts +0 -1
  400. package/types/cli/templates/server.d.ts +0 -4
  401. package/types/cli/templates.d.ts +0 -1
  402. package/types/cli/testHelpers.d.ts +0 -64
  403. package/types/cli/workspace/workspace.command.d.ts +0 -7
  404. package/types/cli/workspace/workspace.runner.d.ts +0 -14
  405. package/types/cli/workspace/workspace.script.d.ts +0 -29
  406. package/types/cli.d.ts +0 -1
  407. package/types/devkit/aiEditor.d.ts +0 -50
  408. package/types/devkit/akanApp/akanApp.host.d.ts +0 -16
  409. package/types/devkit/akanApp/index.d.ts +0 -1
  410. package/types/devkit/akanApp.d.ts +0 -1
  411. package/types/devkit/akanConfig/akanConfig.d.ts +0 -36
  412. package/types/devkit/akanConfig/index.d.ts +0 -2
  413. package/types/devkit/akanConfig.d.ts +0 -1
  414. package/types/devkit/applicationBuildReporter.d.ts +0 -25
  415. package/types/devkit/applicationBuildRunner.d.ts +0 -29
  416. package/types/devkit/applicationReleasePackager.d.ts +0 -17
  417. package/types/devkit/artifact/implicitRootLayout.d.ts +0 -17
  418. package/types/devkit/artifact/index.d.ts +0 -1
  419. package/types/devkit/artifact/routeSeedIndex.d.ts +0 -38
  420. package/types/devkit/artifact.d.ts +0 -1
  421. package/types/devkit/auth.d.ts +0 -9
  422. package/types/devkit/builder.d.ts +0 -18
  423. package/types/devkit/capacitor.base.config.d.ts +0 -3
  424. package/types/devkit/capacitorApp.d.ts +0 -58
  425. package/types/devkit/commandDecorators/argMeta.d.ts +0 -68
  426. package/types/devkit/commandDecorators/command.d.ts +0 -2
  427. package/types/devkit/commandDecorators/commandBuilder.d.ts +0 -60
  428. package/types/devkit/commandDecorators/commandMeta.d.ts +0 -2
  429. package/types/devkit/commandDecorators/dependencyBuilder.d.ts +0 -22
  430. package/types/devkit/commandDecorators/helpFormatter.d.ts +0 -3
  431. package/types/devkit/commandDecorators/index.d.ts +0 -8
  432. package/types/devkit/commandDecorators/targetMeta.d.ts +0 -21
  433. package/types/devkit/commandDecorators/types.d.ts +0 -8
  434. package/types/devkit/commandDecorators.d.ts +0 -1
  435. package/types/devkit/constants.d.ts +0 -25
  436. package/types/devkit/createTunnel.d.ts +0 -8
  437. package/types/devkit/dependencyScanner.d.ts +0 -33
  438. package/types/devkit/executors.d.ts +0 -320
  439. package/types/devkit/extractDeps.d.ts +0 -7
  440. package/types/devkit/fileEditor.d.ts +0 -16
  441. package/types/devkit/fileSys.d.ts +0 -12
  442. package/types/devkit/frontendBuild/allRoutesBuilder.d.ts +0 -18
  443. package/types/devkit/frontendBuild/clientBuildTypes.d.ts +0 -107
  444. package/types/devkit/frontendBuild/clientEntriesBundler.d.ts +0 -12
  445. package/types/devkit/frontendBuild/clientEntryDiscovery.d.ts +0 -19
  446. package/types/devkit/frontendBuild/csrArtifactBuilder.d.ts +0 -16
  447. package/types/devkit/frontendBuild/cssCompiler.d.ts +0 -25
  448. package/types/devkit/frontendBuild/cssImportResolver.d.ts +0 -9
  449. package/types/devkit/frontendBuild/fontOptimizer.d.ts +0 -14
  450. package/types/devkit/frontendBuild/hmrChangeClassifier.d.ts +0 -5
  451. package/types/devkit/frontendBuild/hmrWatcher.d.ts +0 -21
  452. package/types/devkit/frontendBuild/index.d.ts +0 -18
  453. package/types/devkit/frontendBuild/pagesBundleBuilder.d.ts +0 -28
  454. package/types/devkit/frontendBuild/pagesEntrySourceGenerator.d.ts +0 -9
  455. package/types/devkit/frontendBuild/precompressArtifacts.d.ts +0 -7
  456. package/types/devkit/frontendBuild/routeClientBuilder.d.ts +0 -50
  457. package/types/devkit/frontendBuild/routesManifestArtifactSerializer.d.ts +0 -12
  458. package/types/devkit/frontendBuild/ssrBaseArtifactBuilder.d.ts +0 -16
  459. package/types/devkit/frontendBuild/vendorSpecifiers.d.ts +0 -2
  460. package/types/devkit/frontendBuild/watchRootResolver.d.ts +0 -6
  461. package/types/devkit/frontendBuild.d.ts +0 -1
  462. package/types/devkit/getCredentials.d.ts +0 -12
  463. package/types/devkit/getDirname.d.ts +0 -1
  464. package/types/devkit/getModelFileData.d.ts +0 -16
  465. package/types/devkit/getRelatedCnsts.d.ts +0 -53
  466. package/types/devkit/guideline.d.ts +0 -19
  467. package/types/devkit/incrementalBuilder/incrementalBuilder.host.d.ts +0 -30
  468. package/types/devkit/incrementalBuilder/incrementalBuilder.proc.d.ts +0 -1
  469. package/types/devkit/incrementalBuilder/index.d.ts +0 -1
  470. package/types/devkit/incrementalBuilder.d.ts +0 -1
  471. package/types/devkit/index.d.ts +0 -36
  472. package/types/devkit/linter.d.ts +0 -108
  473. package/types/devkit/mobile/index.d.ts +0 -1
  474. package/types/devkit/mobile/mobileTarget.d.ts +0 -14
  475. package/types/devkit/mobile.d.ts +0 -1
  476. package/types/devkit/prompter.d.ts +0 -15
  477. package/types/devkit/scanInfo.d.ts +0 -82
  478. package/types/devkit/selectModel.d.ts +0 -1
  479. package/types/devkit/spinner.d.ts +0 -20
  480. package/types/devkit/src/capacitorApp.d.ts +0 -39
  481. package/types/devkit/sshTunnel.d.ts +0 -14
  482. package/types/devkit/streamAi.d.ts +0 -6
  483. package/types/devkit/transforms/barrelAnalyzer.d.ts +0 -27
  484. package/types/devkit/transforms/barrelImportsPlugin.d.ts +0 -26
  485. package/types/devkit/transforms/externalizeFrameworkPlugin.d.ts +0 -49
  486. package/types/devkit/transforms/index.d.ts +0 -5
  487. package/types/devkit/transforms/rscUseClientTransform.d.ts +0 -10
  488. package/types/devkit/transforms/useClientBundlePlugin.d.ts +0 -19
  489. package/types/devkit/transforms.d.ts +0 -1
  490. package/types/devkit/typeChecker.d.ts +0 -62
  491. package/types/devkit/types.d.ts +0 -43
  492. package/types/devkit/ui/MultiScrollList.d.ts +0 -13
  493. package/types/devkit/ui/ScrollList.d.ts +0 -7
  494. package/types/devkit/ui/index.d.ts +0 -2
  495. package/types/devkit/ui.d.ts +0 -1
  496. package/types/devkit/uploadRelease.d.ts +0 -10
  497. package/types/devkit/useStdoutDimensions.d.ts +0 -1
  498. package/types/devkit.d.ts +0 -1
@@ -1,225 +0,0 @@
1
- "use client";
2
- import type { ChildProcess } from "node:child_process";
3
- import type EventEmitter from "node:events";
4
- import { type App as AppType, MultiScrollList, useStdoutDimensions } from "akanjs/devkit";
5
- import { Box, render, Text, useApp } from "ink";
6
- import type React from "react";
7
- import { useCallback, useEffect, useState } from "react";
8
-
9
- interface BackendProps {
10
- appName: string;
11
- childProcess: ChildProcess;
12
- onExit: () => void;
13
- }
14
-
15
- const Backend = ({ appName, childProcess, onExit }: BackendProps) => {
16
- const [width, height] = useStdoutDimensions();
17
- useEffect(() => {
18
-
19
- return () => {
20
- childProcess.kill();
21
- onExit();
22
- };
23
- }, [childProcess, onExit]);
24
-
25
- return (
26
- <Box width={width} height={height}>
27
- <Text bold>Akan.JS Backend</Text>
28
- </Box>
29
- );
30
- };
31
-
32
- interface FrontendProps {
33
- appName: string;
34
- childProcess: ChildProcess;
35
- onExit: () => void;
36
- }
37
-
38
- const Frontend = ({ appName, childProcess, onExit }: FrontendProps) => {
39
- const [logs, setLogs] = useState<string[]>([]);
40
- const [width, height] = useStdoutDimensions();
41
-
42
- useEffect(() => {
43
- childProcess.stdout?.on("data", (data: Buffer) => {
44
- const newOutput = data.toString().split("\n");
45
- setLogs((prevLogs) => [...prevLogs, ...newOutput]);
46
- });
47
- childProcess.stderr?.on("data", (data: Buffer) => {
48
- const newOutput = data.toString().split("\n");
49
- setLogs((prevLogs) => [...prevLogs, ...newOutput]);
50
- });
51
-
52
- return () => {
53
- childProcess.kill();
54
- onExit();
55
- };
56
- }, [childProcess, onExit]);
57
-
58
- return (
59
- <Box width={width} height={height} flexDirection="column">
60
- <Text bold>{appName} Frontend</Text>
61
- {logs.map((log) => (
62
- <Text key={log}>{log}</Text>
63
- ))}
64
- </Box>
65
- );
66
- };
67
-
68
- interface CsrProps {
69
- app: AppType;
70
- event: EventEmitter;
71
- onExit: () => void;
72
- }
73
-
74
- const Csr = ({ app, event, onExit }: CsrProps) => {
75
- const [logs, setLogs] = useState<string[]>([]);
76
- const [width, height] = useStdoutDimensions();
77
- useEffect(() => {
78
- event.on("info", (msg: string) => {
79
- setLogs((prevLogs) => [...prevLogs, msg]);
80
- });
81
- event.on("warn", (msg: string) => {
82
- setLogs((prevLogs) => [...prevLogs, msg]);
83
- });
84
- event.on("warnOnce", (msg: string) => {
85
- setLogs((prevLogs) => [...prevLogs, msg]);
86
- });
87
- event.on("error", (msg: string) => {
88
- setLogs((prevLogs) => [...prevLogs, msg]);
89
- });
90
- event.on("clearScreen", (type: string) => {
91
- setLogs((prevLogs) => [...prevLogs, type]);
92
- });
93
- }, [event]);
94
- return (
95
- <Box width={width} height={height} flexDirection="column">
96
- <Text bold>Akan.JS CSR</Text>
97
- <Text>{logs}</Text>
98
- </Box>
99
- );
100
- };
101
-
102
- const filterLogData = (data: Buffer | string) => {
103
- return typeof data === "string"
104
- ? data.split(/\r?\n/).filter((line) => line !== "")
105
- : data
106
- .toString()
107
- .split(/\r?\n/)
108
- .filter((line) => line !== "");
109
- };
110
-
111
- interface StartProps {
112
- maxLength?: number;
113
- appName: string;
114
- bcp: ChildProcess;
115
- }
116
-
117
- /**
118
- * Akan application 통합 실행 컴포넌트 (백엔드, 프론트엔드, React(CSR))
119
- *
120
- * @param maxLength 로그 최대 길이
121
- * @param appName 앱 이름
122
- * @param bcp 백엔드 차일드 프로세스
123
- * @param onExit 종료 함수
124
- */
125
- const Start = ({ appName, bcp, maxLength = 100 }: StartProps) => {
126
- const [width, height] = useStdoutDimensions();
127
- const [backendLogs, setBackendLogs] = useState<{ type: string; content: string }[]>([]);
128
- const { exit } = useApp();
129
-
130
- const saveLog = useCallback(
131
- (
132
- type: string,
133
- data: Buffer | string,
134
- setLog: React.Dispatch<React.SetStateAction<{ type: string; content: string }[]>>,
135
- ) => {
136
- const newOutput = filterLogData(data);
137
- const logs = newOutput.map((line) => ({ type: type, content: line }));
138
- setLog((currentLogs) => {
139
- if (currentLogs.length >= maxLength) {
140
- return [...currentLogs.slice(logs.length, maxLength), ...logs];
141
- } else if (currentLogs.length < maxLength && currentLogs.length + logs.length > maxLength) {
142
- return [...currentLogs.slice(Math.abs(maxLength - currentLogs.length - logs.length), maxLength), ...logs];
143
- } else return [...currentLogs, ...logs];
144
- });
145
- },
146
- [maxLength],
147
- );
148
-
149
- useEffect(() => {
150
- bcp.stdout?.on("data", (data: Buffer) => {
151
- saveLog("info", data, setBackendLogs);
152
- });
153
-
154
- bcp.stderr?.on("data", (data: Buffer) => {
155
- saveLog("error", data, setBackendLogs);
156
- });
157
-
158
- return () => {
159
- exit();
160
- };
161
- }, [bcp, saveLog, exit]);
162
-
163
- return (
164
- <Box borderColor="#ff493b" height={height} width={width} flexDirection="row">
165
- <MultiScrollList
166
- logList={[
167
- {
168
- title: `${appName} backend`,
169
- logs: backendLogs,
170
- color: "#e535ab",
171
- },
172
- ]}
173
- maxLength={maxLength}
174
- />
175
- </Box>
176
- );
177
- };
178
-
179
- export const Interface = {
180
- /**
181
- * Akan CSR 실행 컴포넌트
182
- *
183
- * @param app 앱 정보
184
- * @param event CSR 이벤트 발생기
185
- * @param onExit 종료 함수
186
- */
187
- Csr: (app: AppType, event: EventEmitter, onExit: () => void) =>
188
- renderManager(<Csr app={app} event={event} onExit={onExit} />),
189
- /**
190
- * Akan Backend 실행 컴포넌트
191
- *
192
- * @param appName 앱 이름
193
- * @param childProcess 백엔드 차일드 프로세스
194
- * @param onExit 종료 함수
195
- */
196
- Backend: (appName: string, childProcess: ChildProcess, onExit: () => void) =>
197
- renderManager(<Backend appName={appName} childProcess={childProcess} onExit={onExit} />),
198
- /**
199
- * Akan Frontend 실행 컴포넌트
200
- *
201
- * @param appName 앱 이름
202
- * @param childProcess 프론트엔드 차일드 프로세스
203
- * @param onExit 종료 함수
204
- */
205
- Frontend: (appName: string, childProcess: ChildProcess, onExit: () => void) =>
206
- renderManager(<Frontend appName={appName} childProcess={childProcess} onExit={onExit} />),
207
- /**
208
- * Akan application 통합 실행 컴포넌트 (백엔드, 프론트엔드, React(CSR))
209
- *
210
- * @param maxLength 로그 최대 길이
211
- * @param appName 앱 이름
212
- * @param bcp 백엔드 차일드 프로세스
213
- * @param fcp 프론트엔드 차일드 프로세스
214
- * @param csr CSR 이벤트 발생기
215
- * @param onExit 종료 함수
216
- */
217
- Start: (appName: string, bcp: ChildProcess) => renderManager(<Start appName={appName} bcp={bcp} />),
218
- };
219
-
220
- const renderManager = (component: React.ReactNode) => {
221
-
222
- const renderFn = render(component);
223
-
224
- return renderFn;
225
- };
@@ -1,355 +0,0 @@
1
- import path from "node:path";
2
- import { confirm, input, select } from "@inquirer/prompts";
3
- import { StringOutputParser } from "@langchain/core/output_parsers";
4
- import { PromptTemplate } from "@langchain/core/prompts";
5
- import { RunnableSequence } from "@langchain/core/runnables";
6
- import { ChatOpenAI } from "@langchain/openai";
7
- import { Logger } from "akanjs/common";
8
- import {
9
- AkanAppHost,
10
- type App,
11
- AppExecutor,
12
- ApplicationBuildRunner,
13
- ApplicationReleasePackager,
14
- type BuildProgressReporter,
15
- type BuildResult,
16
- CapacitorApp,
17
- type DatabaseMode,
18
- type Exec,
19
- LibExecutor,
20
- type MobileEnv,
21
- type ReleaseSourceOptions,
22
- type ResolvedMobileTarget,
23
- resolveMobileTargets,
24
- runner,
25
- type TypecheckOptions,
26
- type Workspace,
27
- } from "akanjs/devkit";
28
- import ora from "ora";
29
- import { openBrowser } from "../openBrowser";
30
-
31
- export class ApplicationRunner extends runner("application") {
32
- async createApplication(appName: string, workspace: Workspace, libs: string[] = []) {
33
- await workspace.applyTemplate({
34
- basePath: `apps/${appName}`,
35
- template: "app",
36
- dict: { appName, companyName: workspace.repoName, startDomain: "localhost" },
37
- options: { libs },
38
- });
39
- return AppExecutor.from(workspace, appName);
40
- }
41
- async removeApplication(app: App) {
42
- await app.workspace.exec(`rm -rf apps/${app.name}`);
43
- }
44
- async getConfig(app: App) {
45
- return await app.getConfig();
46
- }
47
-
48
- async getScriptFilename(app: App) {
49
- if (!(await app.exists("script"))) {
50
- await app.mkdir("script");
51
- throw new Error(`No script files found. make a script file in apps/${app.name}/script folder`);
52
- }
53
- const scriptFiles = (await app.readdir("script")).filter((file) => file.endsWith(".ts"));
54
- const scriptFile = await select({
55
- message: "Select script to run",
56
- choices: scriptFiles.map((file) => ({ name: file, value: file.replace(".ts", "") })),
57
- });
58
- return scriptFile;
59
- }
60
- async runScript(app: App, filename: string) {
61
- const scriptName = filename.endsWith(".ts") ? filename.slice(0, -3) : filename;
62
- if (scriptName.includes("/") || scriptName.includes("\\") || scriptName.includes("..")) {
63
- throw new Error(`Invalid script filename: ${filename}`);
64
- }
65
- const scriptPath = `script/${scriptName}.ts`;
66
- if (!(await app.exists(scriptPath))) throw new Error(`Script file not found: apps/${app.name}/${scriptPath}`);
67
- await app.spawn("bun", [scriptPath], {
68
- env: app.getCommandEnv({ AKAN_COMMAND_TYPE: "script" }),
69
- stdio: "inherit",
70
- });
71
- }
72
- async typecheck(app: App, options: TypecheckOptions = {}) {
73
- await new ApplicationBuildRunner(app).typecheck(options);
74
- }
75
- async test(exec: Exec) {
76
- const isSignalTarget = exec instanceof AppExecutor || exec instanceof LibExecutor;
77
- const preloadPath = path.join(exec.cwdPath, "../../pkgs/akanjs/test/signalTest.preload.ts");
78
- const env = isSignalTarget
79
- ? {
80
- AKAN_TEST_SIGNAL: "1",
81
- AKAN_TEST_TARGET_TYPE: exec.type,
82
- AKAN_TEST_TARGET_NAME: exec.name,
83
- AKAN_TEST_LIBS: exec.getScanInfo({ allowEmpty: true })?.getLibs().join(",") ?? "",
84
- }
85
- : {};
86
- const args = isSignalTarget ? ["test", "--isolate", "--preload", preloadPath] : ["test", "--isolate"];
87
- await exec.spawn("bun", args, {
88
- ...(isSignalTarget ? { env: { ...process.env, ...env } } : {}),
89
- stdio: "inherit",
90
- });
91
- }
92
- async build(
93
- app: App,
94
- {
95
- fast = false,
96
- reporter,
97
- spinner = false,
98
- }: { fast?: boolean; reporter?: BuildProgressReporter; spinner?: boolean } = {},
99
- ): Promise<BuildResult> {
100
- return new ApplicationBuildRunner(app, { fast, reporter }).build({ spinner });
101
- }
102
- async start(
103
- app: App,
104
- { open = false, onStart, withInk = false }: { open?: boolean; onStart?: () => void; withInk?: boolean } = {},
105
- ) {
106
- const { env } = await app.prepareCommand("start");
107
- const appHost = await new AkanAppHost(app, { env, withInk }).start();
108
- onStart?.();
109
- if (open) setTimeout(() => openBrowser("http://localhost:8282"), 3000);
110
- return appHost;
111
- }
112
-
113
- async buildIos(
114
- app: App,
115
- { target, env = "debug", regenerate = false }: { target?: string; env?: MobileEnv; regenerate?: boolean } = {},
116
- ) {
117
- const targets = await resolveMobileTargets(app, target);
118
- await this.#buildMobileCsr(app, env);
119
- await this.#runMobileTargets(targets, async (mobileTarget) => {
120
- await new CapacitorApp(app, mobileTarget.config).buildIos({ env, regenerate });
121
- });
122
- }
123
- async startIos(
124
- app: App,
125
- {
126
- open = false,
127
- operation = "local",
128
- env = "local",
129
- target,
130
- regenerate = false,
131
- }: {
132
- open?: boolean;
133
- operation?: "local" | "release";
134
- env?: MobileEnv;
135
- target?: string;
136
- regenerate?: boolean;
137
- } = {},
138
- ) {
139
- const targets = await resolveMobileTargets(app, target);
140
- if (operation === "release") await this.#buildMobileCsr(app, env);
141
- else await this.start(app);
142
- await this.#runMobileTargets(targets, async (mobileTarget) => {
143
- const capacitorApp = new CapacitorApp(app, mobileTarget.config);
144
- await capacitorApp.runIos({ operation, env, regenerate });
145
- if (open) await capacitorApp.openIos();
146
- });
147
- }
148
- async releaseIos(
149
- app: App,
150
- { target, env = "main", regenerate = false }: { target?: string; env?: MobileEnv; regenerate?: boolean } = {},
151
- ) {
152
- const targets = await resolveMobileTargets(app, target);
153
- await this.#buildMobileCsr(app, env);
154
- for (const mobileTarget of targets) {
155
- await new CapacitorApp(app, mobileTarget.config).buildIos({ env, regenerate });
156
- }
157
- }
158
-
159
- async buildAndroid(
160
- app: App,
161
- { target, env = "debug", regenerate = false }: { target?: string; env?: MobileEnv; regenerate?: boolean } = {},
162
- ) {
163
- const targets = await resolveMobileTargets(app, target);
164
- await this.#buildMobileCsr(app, env);
165
- await this.#runMobileTargets(targets, async (mobileTarget) => {
166
- await new CapacitorApp(app, mobileTarget.config).buildAndroid("apk", { env, regenerate });
167
- });
168
- }
169
-
170
- async startAndroid(
171
- app: App,
172
- {
173
- open = false,
174
- operation = "local",
175
- env = "local",
176
- target,
177
- regenerate = false,
178
- }: {
179
- open?: boolean;
180
- operation?: "local" | "release";
181
- env?: MobileEnv;
182
- target?: string;
183
- regenerate?: boolean;
184
- } = {},
185
- ) {
186
- const targets = await resolveMobileTargets(app, target);
187
- if (operation === "release") await this.#buildMobileCsr(app, env);
188
- else await this.start(app);
189
- await this.#runMobileTargets(targets, async (mobileTarget) => {
190
- const capacitorApp = new CapacitorApp(app, mobileTarget.config);
191
- await capacitorApp.runAndroid({ operation, env, regenerate });
192
- if (open) await capacitorApp.openAndroid();
193
- });
194
- }
195
-
196
- async releaseAndroid(
197
- app: App,
198
- assembleType: "apk" | "aab",
199
- { target, env = "main", regenerate = false }: { target?: string; env?: MobileEnv; regenerate?: boolean } = {},
200
- ) {
201
- const targets = await resolveMobileTargets(app, target);
202
- await this.#buildMobileCsr(app, env);
203
- for (const mobileTarget of targets) {
204
- await new CapacitorApp(app, mobileTarget.config).buildAndroid(assembleType, { env, regenerate });
205
- app.log(`Release Android ${app.name}/${mobileTarget.name} ${assembleType} Completed.`);
206
- app.log(`Path : ${app.cwdPath}/android/app/build/outputs/${assembleType === "apk" ? "apk" : "bundle"}/release`);
207
- }
208
- }
209
-
210
- async #buildMobileCsr(app: App, env: MobileEnv) {
211
- const prevEnv = {
212
- AKAN_PUBLIC_ENV: process.env.AKAN_PUBLIC_ENV,
213
- AKAN_PUBLIC_OPERATION_MODE: process.env.AKAN_PUBLIC_OPERATION_MODE,
214
- APP_OPERATION_MODE: process.env.APP_OPERATION_MODE,
215
- };
216
- Object.assign(process.env, {
217
- AKAN_PUBLIC_ENV: env,
218
- AKAN_PUBLIC_OPERATION_MODE: env === "local" ? "local" : "cloud",
219
- APP_OPERATION_MODE: "release",
220
- });
221
- try {
222
- await new ApplicationBuildRunner(app).build({ spinner: true });
223
- } finally {
224
- for (const [key, value] of Object.entries(prevEnv)) {
225
- if (value === undefined) delete process.env[key];
226
- else process.env[key] = value;
227
- }
228
- }
229
- }
230
- async #runMobileTargets(targets: ResolvedMobileTarget[], task: (target: ResolvedMobileTarget) => Promise<void>) {
231
- const results: { target: string; error?: unknown }[] = [];
232
- for (const target of targets) {
233
- try {
234
- await task(target);
235
- results.push({ target: target.name });
236
- } catch (error) {
237
- results.push({ target: target.name, error });
238
- }
239
- }
240
- const failures = results.filter((result) => result.error);
241
- if (failures.length === 0) return;
242
- for (const failure of failures) {
243
- const message = failure.error instanceof Error ? failure.error.message : String(failure.error);
244
- Logger.rawLog(`Mobile target ${failure.target} failed: ${message}`, undefined, "error");
245
- }
246
- throw new Error(`${failures.length}/${results.length} mobile targets failed`);
247
- }
248
-
249
- async codepush(app: App, os: "ios" | "android") {
250
- const [target] = await resolveMobileTargets(app, undefined);
251
- if (!target) throw new Error(`No mobile target configured for ${app.name}`);
252
- const capacitorApp = new CapacitorApp(app, target.config);
253
- await capacitorApp.init();
254
-
255
- }
256
-
257
- #getLocalDatabaseServices(mode: DatabaseMode): string[] {
258
- if (mode === "single") return [];
259
- if (mode === "multiple") return ["redis", "libsql"];
260
- return ["redis", "postgres"];
261
- }
262
- async #isLocalDatabaseUp(workspace: Workspace, mode: DatabaseMode) {
263
- const requiredServices = this.#getLocalDatabaseServices(mode);
264
- if (!requiredServices.length) return true;
265
- const output = await workspace.spawn("docker", ["compose", "ps", "--services", "--status", "running"], {
266
- cwd: `${workspace.workspaceRoot}/local`,
267
- });
268
- const runningServices = new Set(output.split(/\s+/).filter(Boolean));
269
- return requiredServices.every((service) => runningServices.has(service));
270
- }
271
- async dbup(workspace: Workspace, mode: DatabaseMode = "multiple"): Promise<boolean> {
272
- if (mode === "single") return true;
273
- try {
274
- await workspace.applyTemplate({
275
- basePath: "local",
276
- template: "localDev",
277
- dict: { repoName: workspace.repoName },
278
- overwrite: false,
279
- });
280
- const wasAlreadyUp = await this.#isLocalDatabaseUp(workspace, mode);
281
- if (!wasAlreadyUp)
282
- await workspace.spawn(`docker`, ["compose", "up", "-d", ...this.#getLocalDatabaseServices(mode)], {
283
- cwd: `${workspace.workspaceRoot}/local`,
284
- });
285
- return wasAlreadyUp;
286
- } catch {
287
- throw new Error(`Docker daemon is not running. Please install docker or start docker daemon and try again.`);
288
- }
289
- }
290
- async dbdown(workspace: Workspace) {
291
- await workspace.spawn(`docker`, ["compose", "down"], { cwd: `${workspace.workspaceRoot}/local` });
292
- }
293
-
294
- async configureApp(app: App) {
295
- const [target] = await resolveMobileTargets(app, undefined);
296
- if (!target) throw new Error(`No mobile target configured for ${app.name}`);
297
- const capacitorApp = new CapacitorApp(app, target.config);
298
- await capacitorApp.init();
299
-
300
- if (await confirm({ message: "want to add camera permission?" })) await capacitorApp.addCamera();
301
- if (await confirm({ message: "want to add contact permission?" })) await capacitorApp.addContact();
302
- if (await confirm({ message: "want to add location permission?" })) await capacitorApp.addLocation();
303
- await capacitorApp.save();
304
- }
305
-
306
- async releaseSource(
307
- app: App,
308
- { rebuild, buildNum = 0, environment = "debug", local = true }: ReleaseSourceOptions = {},
309
- ) {
310
- await new ApplicationReleasePackager(app, { build: () => this.build(app).then(() => undefined) }).releaseSource({
311
- rebuild,
312
- buildNum,
313
- environment,
314
- local,
315
- });
316
- return;
317
- }
318
-
319
- async createApplicationTemplate(workspace: Workspace, appName: string) {
320
- await workspace.applyTemplate({ basePath: `apps/${appName}`, template: "appRoot", dict: { appName } });
321
- }
322
-
323
- async compressProjectFiles(
324
- app: App,
325
- { rebuild, buildNum = 0, environment = "debug", local = true }: ReleaseSourceOptions = {},
326
- ) {
327
- await new ApplicationReleasePackager(app, {
328
- build: () => this.build(app).then(() => undefined),
329
- }).compressProjectFiles({
330
- rebuild,
331
- buildNum,
332
- environment,
333
- local,
334
- });
335
- return;
336
- }
337
-
338
- async generateApplicationTemplate(app: App) {
339
- const openAIApiKey = process.env.OPENAI_API_KEY;
340
- if (!openAIApiKey) throw new Error("OPENAI_API_KEY is not set");
341
- const chatModel = new ChatOpenAI({ modelName: "gpt-4o", openAIApiKey });
342
- const projectName = await input({ message: "please enter project name." });
343
- const projectDesc = await input({ message: "please enter project description. (40 ~ 60 characters)" });
344
- const spinner = ora("Gerating project files...");
345
-
346
- const mainPrompt = PromptTemplate.fromTemplate(`prompt.requestApplication()`);
347
- const chain = RunnableSequence.from([mainPrompt, chatModel, new StringOutputParser()]);
348
- await chain.invoke({ projectName, projectDesc });
349
- spinner.succeed("Loading complete!");
350
-
351
- }
352
-
353
- async testApplication(app: App) {
354
- }
355
- }