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,244 +0,0 @@
1
- import { Logger } from "akanjs/common";
2
- import {
3
- type App,
4
- ApplicationBuildReporter,
5
- type DatabaseMode,
6
- type Exec,
7
- type Lib,
8
- LibExecutor,
9
- type MobileEnv,
10
- PkgExecutor,
11
- type ReleaseSourceOptions,
12
- type Sys,
13
- script,
14
- type TypecheckOptions,
15
- type Workspace,
16
- } from "akanjs/devkit";
17
- import { LibraryScript } from "../library/library.script";
18
- import { ApplicationRunner } from "./application.runner";
19
-
20
- type MobileOperation = "local" | "release";
21
- type MobileCommandOptions = {
22
- target?: string;
23
- env?: MobileEnv;
24
- write?: boolean;
25
- regenerate?: boolean;
26
- };
27
- type MobileReleaseOptions = MobileCommandOptions & {
28
- allowLocalRelease?: boolean;
29
- };
30
-
31
- export class ApplicationScript extends script("application", [ApplicationRunner, LibraryScript]) {
32
- async createApplication(
33
- appName: string,
34
- workspace: Workspace,
35
- { start = false, libs = [] }: { start?: boolean; libs?: string[] } = {},
36
- ) {
37
- const spinner = workspace.spinning("Creating application...");
38
- const app = await this.applicationRunner.createApplication(appName, workspace, libs);
39
- spinner.succeed(`Application created in apps/${app.name}`);
40
- await app.scanSync();
41
- if (start) await this.start(app, { open: true });
42
- }
43
- async removeApplication(app: App) {
44
- const spinner = app.spinning("Removing application...");
45
- await this.applicationRunner.removeApplication(app);
46
- spinner.succeed(`Application ${app.name} (apps/${app.name}) removed`);
47
- }
48
- async sync(sys: Sys) {
49
- if (sys.type === "app") await (sys as App).scanSync();
50
- else await this.libraryScript.syncLibrary(sys as Lib);
51
- }
52
-
53
- async script(app: App, filename: string | null) {
54
- const scriptFilename = filename ?? (await this.applicationRunner.getScriptFilename(app));
55
- await app.scanSync();
56
- await this.applicationRunner.runScript(app, scriptFilename);
57
- }
58
-
59
- async build(
60
- app: App,
61
- { write = true, fast = false, quiet = false }: { write?: boolean; fast?: boolean; quiet?: boolean } = {},
62
- ) {
63
- await app.scanSync({ write });
64
- if (!quiet) Logger.rawLog(`Creating an optimized production build for ${app.name}...`);
65
- try {
66
- const result = await this.applicationRunner.build(app, {
67
- fast,
68
- spinner: !quiet,
69
- });
70
- Logger.rawLog(`${app.name} built in dist/apps/${app.name}`);
71
- if (!quiet) ApplicationBuildReporter.printSummary(result);
72
- } catch (error) {
73
- Logger.rawLog(`${app.name} build failed in dist/apps/${app.name}`, undefined, "error");
74
- Logger.rawLog(ApplicationBuildReporter.formatError(error), undefined, "error");
75
- throw error;
76
- }
77
- }
78
-
79
- async typecheck(
80
- app: App,
81
- { write = true, clean = false, incremental = true }: TypecheckOptions & { write?: boolean } = {},
82
- ) {
83
- await app.scanSync({ write });
84
- const spinner = app.spinning(`Typechecking ${app.name}...`);
85
- try {
86
- await this.applicationRunner.typecheck(app, { clean, incremental });
87
- spinner.succeed(`${app.name} typechecked`);
88
- } catch (error) {
89
- spinner.fail(`${app.name} typecheck failed`);
90
- Logger.rawLog(ApplicationBuildReporter.formatError(error), undefined, "error");
91
- throw error;
92
- }
93
- }
94
-
95
- async test(exec: Exec, { write = true }: { write?: boolean } = {}) {
96
- const spinner = exec.spinning(`Preparing ${exec.name}...`);
97
- try {
98
- if (exec instanceof PkgExecutor) await exec.scan({ refresh: true });
99
- else if (exec instanceof LibExecutor) await this.libraryScript.syncLibrary(exec);
100
- else await (exec as App).scanSync({ write });
101
- spinner.succeed(`${exec.name} prepared`);
102
- } catch (error) {
103
- spinner.fail(`${exec.name} prepare failed`);
104
- throw error;
105
- }
106
- await this.applicationRunner.test(exec);
107
- }
108
-
109
- async start(
110
- app: App,
111
- {
112
- open = false,
113
- dbup = true,
114
- withInk = false,
115
- write = true,
116
- }: { open?: boolean; dbup?: boolean; withInk?: boolean; write?: boolean } = {},
117
- ) {
118
- await app.scanSync({ write });
119
- const akanConfig = await app.getConfig();
120
- const databaseMode = (process.env.AKAN_DATABASE_MODE ?? akanConfig.defaultDatabaseMode ?? "single") as DatabaseMode;
121
- if (app.getEnv() === "local" && dbup && databaseMode !== "single") {
122
- const wasDbAlreadyUp = await this.dbup(app.workspace, databaseMode);
123
- if (!wasDbAlreadyUp)
124
- process.on("SIGINT", async () => {
125
- await this.dbdown(app.workspace);
126
- process.exit(0);
127
- });
128
- }
129
- const spinner = app.spinning("Preparing backend...");
130
- const akanAppHost = await this.applicationRunner.start(app, {
131
- open,
132
- onStart: () => {
133
- spinner.succeed(`${app.name} prepared, ready to start`);
134
- },
135
- withInk,
136
- });
137
- return akanAppHost;
138
- }
139
-
140
- async buildIos(app: App, { write = true, target, env = "debug", regenerate = false }: MobileCommandOptions = {}) {
141
- await app.scanSync({ write });
142
- await this.applicationRunner.buildIos(app, { target, env, regenerate });
143
- }
144
- async startIos(
145
- app: App,
146
- {
147
- open = false,
148
- operation = "local",
149
- env = "local",
150
- write = true,
151
- target,
152
- regenerate = false,
153
- }: {
154
- operation?: MobileOperation;
155
- env?: MobileEnv;
156
- open?: boolean;
157
- write?: boolean;
158
- target?: string;
159
- regenerate?: boolean;
160
- } = {},
161
- ) {
162
- await app.scanSync({ write });
163
- await this.applicationRunner.startIos(app, { open, operation, env, target, regenerate });
164
- }
165
- async releaseIos(
166
- app: App,
167
- { write = true, target, env = "main", regenerate = false, allowLocalRelease = false }: MobileReleaseOptions = {},
168
- ) {
169
- await app.scanSync({ write });
170
- if (env === "local" && !allowLocalRelease)
171
- throw new Error(
172
- "releaseIos --env local is blocked. Pass allowLocalRelease only for explicit local release testing.",
173
- );
174
- await this.applicationRunner.releaseIos(app, { target, env, regenerate });
175
- }
176
- async buildAndroid(app: App, { write = true, target, env = "debug", regenerate = false }: MobileCommandOptions = {}) {
177
- await app.scanSync({ write });
178
- await this.applicationRunner.buildAndroid(app, { target, env, regenerate });
179
- }
180
- async startAndroid(
181
- app: App,
182
- {
183
- open = false,
184
- operation = "local",
185
- env = "local",
186
- write = true,
187
- target,
188
- regenerate = false,
189
- }: {
190
- open?: boolean;
191
- env?: MobileEnv;
192
- operation?: MobileOperation;
193
- write?: boolean;
194
- target?: string;
195
- regenerate?: boolean;
196
- } = {},
197
- ) {
198
- await app.scanSync({ write });
199
- await this.applicationRunner.startAndroid(app, { open, operation, env, target, regenerate });
200
- }
201
-
202
- async releaseAndroid(
203
- app: App,
204
- assembleType: "apk" | "aab",
205
- { write = true, target, env = "main", regenerate = false, allowLocalRelease = false }: MobileReleaseOptions = {},
206
- ) {
207
- await app.scanSync({ write });
208
- if (env === "local" && !allowLocalRelease)
209
- throw new Error(
210
- "releaseAndroid --env local is blocked. Pass allowLocalRelease only for explicit local release testing.",
211
- );
212
- await this.applicationRunner.releaseAndroid(app, assembleType, { target, env, regenerate });
213
- }
214
-
215
- async configureApp(app: App) {
216
- await this.applicationRunner.configureApp(app);
217
- }
218
- async releaseSource(app: App, options: ReleaseSourceOptions) {
219
- await this.applicationRunner.releaseSource(app, options);
220
- }
221
- async codepush(app: App, os: "ios" | "android") {
222
- await this.applicationRunner.codepush(app, os);
223
- }
224
- async dbup(workspace: Workspace, mode: DatabaseMode = "multiple"): Promise<boolean> {
225
- const spinner = workspace.spinning(`Starting local database (${mode})...`);
226
- const wasAlreadyUp = await this.applicationRunner.dbup(workspace, mode);
227
- spinner.succeed(wasAlreadyUp ? `Local database (${mode}) was already up` : `Local database (${mode}) is up`);
228
- return wasAlreadyUp;
229
- }
230
- async dbdown(workspace: Workspace) {
231
- const spinner = workspace.spinning("Stopping local database...");
232
- await this.applicationRunner.dbdown(workspace);
233
- spinner.succeed("Local database (/local/docker-compose.yaml) is down");
234
- }
235
- async testSys(sys: Sys) {
236
- if (sys.type === "app") await this.testApplication(sys as App);
237
- else await this.libraryScript.testLibrary(sys as Lib);
238
- }
239
- async testApplication(app: App) {
240
- const spinner = app.spinning("Testing application...");
241
- await this.applicationRunner.testApplication(app);
242
- spinner.succeed(`Application ${app.name} (apps/${app.name}) test is successful`);
243
- }
244
- }
package/cli/build.ts DELETED
@@ -1,27 +0,0 @@
1
- import { $ } from "bun";
2
-
3
- const CLI_DIR = import.meta.dir;
4
- const PACKAGE_DIR = `${CLI_DIR}/..`;
5
- const WORKSPACE_ROOT = process.env.WORKSPACE_ROOT ?? process.cwd();
6
- const OUT_DIR = process.env.DIST_DIR ?? `${WORKSPACE_ROOT}/dist/pkgs/akanjs`;
7
-
8
- const build = async () => {
9
- try {
10
- const packageJson = await Bun.file(`${PACKAGE_DIR}/package.json`).json();
11
- await $`rm -rf ${OUT_DIR}/cli`;
12
- await Bun.build({
13
- entrypoints: [`${CLI_DIR}/index.ts`],
14
- splitting: false,
15
- target: "bun",
16
- outdir: `${OUT_DIR}/cli`,
17
- external: Object.keys({ ...packageJson.dependencies, ...packageJson.peerDependencies }),
18
- plugins: [],
19
- });
20
- await $`cp -R ${CLI_DIR}/templates ${OUT_DIR}/cli/templates`;
21
- } catch (error) {
22
- console.error(error);
23
- process.exit(1);
24
- }
25
- };
26
-
27
- build();
@@ -1,48 +0,0 @@
1
- import { command, Workspace } from "akanjs/devkit";
2
-
3
- import { CloudScript } from "./cloud.script";
4
-
5
- export class CloudCommand extends command("cloud", [CloudScript], ({ public: target }) => ({
6
- login: target({ desc: "Login to Akan Cloud services" })
7
- .with(Workspace)
8
- .exec(async function (workspace) {
9
- await this.cloudScript.login(workspace);
10
- }),
11
- logout: target({ desc: "Logout from Akan Cloud services" })
12
- .with(Workspace)
13
- .exec(async function (workspace) {
14
- await this.cloudScript.logout(workspace);
15
- }),
16
- setLlm: target({ desc: "Configure LLM (Large Language Model) API key" })
17
- .with(Workspace)
18
- .exec(async function (workspace) {
19
- await this.cloudScript.setLlm(workspace);
20
- }),
21
- resetLlm: target({ desc: "Reset LLM configuration to default" })
22
- .with(Workspace)
23
- .exec(function (workspace) {
24
- this.cloudScript.resetLlm(workspace);
25
- }),
26
- ask: target({ desc: "Ask AI assistant a question about your project" })
27
- .option("question", String, { ask: "question to ask" })
28
- .with(Workspace)
29
- .exec(async function (question, workspace) {
30
- await this.cloudScript.ask(question, workspace);
31
- }),
32
- deployAkan: target({ devOnly: true, desc: "Deploy Akan.js framework to cloud (internal use)" })
33
- .option("test", Boolean, { desc: "test the deployment", default: true })
34
- .with(Workspace)
35
- .exec(async function (test, workspace) {
36
- await this.cloudScript.deployAkan(workspace, { test });
37
- }),
38
- update: target({ desc: "Update Akan.js framework to the latest version" })
39
- .with(Workspace)
40
- .option("tag", String, {
41
- desc: "tag of the update",
42
- default: "latest",
43
- enum: ["latest", "dev", "canary", "beta", "rc", "alpha"],
44
- })
45
- .exec(async function (workspace, tag) {
46
- await this.cloudScript.update(workspace, tag);
47
- }),
48
- })) {}
@@ -1,157 +0,0 @@
1
- import { confirm } from "@inquirer/prompts";
2
- import { Logger, sleep } from "akanjs/common";
3
- import {
4
- AiSession,
5
- akanCloudHost,
6
- akanCloudUrl,
7
- getHostConfig,
8
- getSelf,
9
- runner,
10
- setHostConfig,
11
- type Workspace,
12
- } from "akanjs/devkit";
13
- import chalk from "chalk";
14
- import * as QRcode from "qrcode";
15
- import { getLatestPackageVersion } from "../npmRegistry";
16
- import { openBrowser } from "../openBrowser";
17
-
18
- export class CloudRunner extends runner("cloud") {
19
- async login() {
20
- const config = await getHostConfig();
21
- const self = config.auth ? await getSelf(config.auth.token) : null;
22
- if (self) {
23
- Logger.rawLog(chalk.green(`\n✓ Already logged in akan cloud as ${self.nickname}\n`));
24
- return true;
25
- }
26
- const remoteId = crypto.randomUUID();
27
- const signinUrl = `${akanCloudUrl}/signin?remoteId=${remoteId}`;
28
-
29
- Logger.rawLog(chalk.bold(`\n${chalk.green("➤")} Authentication Required`));
30
- Logger.rawLog(chalk.dim("Please visit or click the following URL:"));
31
- Logger.rawLog(`${chalk.cyan.underline(signinUrl)}\n`);
32
-
33
- try {
34
- const qrcode = await new Promise<string>((resolve, reject) => {
35
- QRcode.toString(signinUrl, { type: "terminal", small: true }, (err, data) => {
36
- if (err) reject(err);
37
- resolve(data);
38
- });
39
- });
40
- Logger.rawLog(qrcode);
41
- await openBrowser(signinUrl);
42
- Logger.rawLog(chalk.dim("Opening browser..."));
43
- } catch {
44
- Logger.rawLog(chalk.yellow("Could not open browser. Please visit the URL manually."));
45
- }
46
-
47
- Logger.rawLog(chalk.dim("Waiting for authentication..."));
48
- const MAX_RETRY = 300;
49
- for (let i = 0; i < MAX_RETRY; i++) {
50
- const res = await fetch(`${akanCloudUrl}/user/getRemoteAuthToken/${remoteId}`);
51
- const { jwt } = (await res.json()) as { jwt: string | null };
52
- const self = jwt ? await getSelf(jwt) : null;
53
- if (jwt && self) {
54
- setHostConfig(akanCloudHost, { auth: { token: jwt, self } });
55
- Logger.rawLog(chalk.green(`\r✓ Authentication successful!`));
56
- Logger.rawLog(chalk.green.bold(`\n✨ Welcome aboard, ${self.nickname}!`));
57
- Logger.rawLog(chalk.dim("You're now ready to use Akan CLI!\n"));
58
- return true;
59
- }
60
- await sleep(2000);
61
- }
62
- throw new Error(chalk.red("✖ Authentication timed out after 10 minutes. Please try again."));
63
- }
64
- async logout() {
65
- const config = await getHostConfig();
66
- if (config.auth) {
67
- setHostConfig(akanCloudHost, {});
68
- Logger.rawLog(chalk.magenta.bold(`\n👋 Goodbye, ${config.auth.self.nickname}!`));
69
- Logger.rawLog(chalk.dim("───────────────────────────────────────────────\n"));
70
- Logger.rawLog(chalk.cyan("You have been successfully logged out."));
71
- Logger.rawLog(chalk.dim("Thank you for using Akan CLI. Come back soon! 🌟\n"));
72
- } else {
73
- Logger.rawLog(chalk.yellow.bold("\n⚠️ No active session found"));
74
- Logger.rawLog(chalk.dim("You were not logged in to begin with\n"));
75
- }
76
- }
77
- async setLlm() {
78
- await AiSession.init({ useExisting: true });
79
- }
80
- resetLlm() {
81
- AiSession.setLlmConfig(null);
82
- Logger.rawLog(chalk.green("☑️ LLM model config is cleared. Please run `akan set-llm` to set a new LLM model."));
83
- }
84
- async getAkanPkgs(workspace: Workspace) {
85
- const pkgs = await workspace.getPkgs();
86
- return pkgs.filter((pkg) => pkg === "akanjs" || pkg === "create-akan-workspace");
87
- }
88
- async deployAkan(workspace: Workspace, akanPkgs: string[]) {
89
- const akanPackageJson = (await workspace.readJson("pkgs/akanjs/package.json")) as { version: string };
90
- const [majorVersion, minorVersion, patchVersion, devPatchVersion] = akanPackageJson.version.split(".");
91
- const isOfficialRelease = !devPatchVersion;
92
- const targetVersionPrefix = isOfficialRelease
93
- ? `${majorVersion}.${minorVersion}`
94
- : `${majorVersion}.${minorVersion}.${patchVersion}`;
95
- const tag = isOfficialRelease ? "latest" : (patchVersion.split("-").at(1) ?? "dev");
96
- const getNextVersion = async (prefix: string, tag: string) => {
97
- try {
98
- const latestPublishedVersion = await getLatestPackageVersion("akanjs", tag);
99
- const latestPatch = latestPublishedVersion.startsWith(prefix)
100
- ? parseInt(latestPublishedVersion.split(".").at(-1) ?? "-1")
101
- : -1;
102
- const nextVersion = `${prefix}.${latestPatch + 1}`;
103
- return { nextVersion, latestPublishedVersion };
104
- } catch {
105
- return { nextVersion: `${prefix}.0`, latestPublishedVersion: null };
106
- }
107
- };
108
- const { nextVersion, latestPublishedVersion } = await getNextVersion(targetVersionPrefix, tag);
109
- Logger.info(`Latest published version of akanjs: ${latestPublishedVersion ?? "none"}`);
110
- Logger.info(`Next version of akanjs: ${nextVersion}`);
111
- for (const library of akanPkgs) {
112
- const packageJson = (await workspace.readJson(`pkgs/${library}/package.json`)) as { version: string };
113
- const newPackageJsonStr = JSON.stringify({ ...packageJson, version: nextVersion }, null, 2);
114
- await workspace.writeFile(`pkgs/${library}/package.json`, newPackageJsonStr);
115
- const distPackageJson = (await workspace.readJson(`dist/pkgs/${library}/package.json`)) as {
116
- version: string;
117
- dependencies?: Record<string, string>;
118
- };
119
- const newDistPackageJson = { ...distPackageJson, version: nextVersion };
120
- await workspace.writeJson(`dist/pkgs/${library}/package.json`, newDistPackageJson);
121
- }
122
- const isDeployConfirmed = await confirm({
123
- message: "Are you sure you want to deploy the libraries?",
124
- });
125
- if (!isDeployConfirmed) {
126
- Logger.error("Deployment cancelled");
127
- return;
128
- }
129
-
130
- await Promise.all(
131
- akanPkgs.map(async (library) => {
132
- Logger.info(`Publishing ${library}@${nextVersion} to npm...`);
133
- await workspace.exec(`npm publish --tag ${tag}`, { cwd: `dist/pkgs/${library}` });
134
- Logger.info(`${library}@${nextVersion} is published to npm`);
135
- }),
136
- );
137
- Logger.info("All libraries are published to npm");
138
- }
139
- async update(workspace: Workspace, tag: string = "latest") {
140
- if (!(await workspace.exists("package.json")))
141
- await workspace.spawn("npm", ["update", "-g", "akanjs", "--latest", `--tag=${tag}`]);
142
- else
143
- await Promise.all([
144
- workspace.spawn("npm", ["update", "-g", "akanjs", "--latest", `--tag=${tag}`]),
145
- this.#updateAkanPkgs(workspace, tag),
146
- ]);
147
- }
148
- async #updateAkanPkgs(workspace: Workspace, tag: string = "latest") {
149
- const latestPublishedVersion = await getLatestPackageVersion("akanjs", tag);
150
- const rootPackageJson = await workspace.getPackageJson();
151
- if (!rootPackageJson.dependencies) throw new Error("No dependencies found in package.json");
152
- if (rootPackageJson.dependencies.akanjs) rootPackageJson.dependencies.akanjs = latestPublishedVersion;
153
- if (rootPackageJson.devDependencies?.akanjs) rootPackageJson.devDependencies.akanjs = latestPublishedVersion;
154
- workspace.setPackageJson(rootPackageJson);
155
- await workspace.spawn("bun", ["install"]);
156
- }
157
- }
@@ -1,40 +0,0 @@
1
- import { Logger } from "akanjs/common";
2
- import { AiSession, PkgExecutor, script, type Workspace } from "akanjs/devkit";
3
- import { ApplicationScript } from "../application/application.script";
4
- import { PackageScript } from "../package/package.script";
5
- import { CloudRunner } from "./cloud.runner";
6
-
7
- export class CloudScript extends script("cloud", [CloudRunner, ApplicationScript, PackageScript]) {
8
- async login(workspace: Workspace) {
9
- await this.cloudRunner.login();
10
- }
11
- async logout(workspace: Workspace) {
12
- await this.cloudRunner.logout();
13
- }
14
- async setLlm(workspace: Workspace) {
15
- await this.cloudRunner.setLlm();
16
- }
17
- resetLlm(workspace: Workspace) {
18
- this.cloudRunner.resetLlm();
19
- }
20
- async ask(question: string, workspace: Workspace) {
21
- const session = new AiSession("general", { workspace, isContinued: true });
22
- await session.ask(question);
23
- }
24
- async deployAkan(workspace: Workspace, { test = true }: { test?: boolean } = {}) {
25
- const akanPkgs = await this.cloudRunner.getAkanPkgs(workspace);
26
- await this.packageScript.updateWorskpaceRootPackageJson(workspace);
27
- const pkgs = akanPkgs.map((pkgName) => PkgExecutor.from(workspace, pkgName));
28
- if (test) for (const pkg of pkgs) if (pkg.name !== "@akanjs/test") await this.applicationScript.test(pkg);
29
- for (const pkg of pkgs) await this.packageScript.buildPackage(pkg);
30
-
31
- await this.cloudRunner.deployAkan(workspace, akanPkgs);
32
- }
33
- async update(workspace: Workspace, tag: string = "latest") {
34
- const spinner = workspace.spinning("Updating Akan.js packages and CLI...");
35
- await this.cloudRunner.update(workspace, tag);
36
- spinner.succeed("Akan.js packages and CLI updated, global version is below");
37
- Logger.raw("> Akan version: ");
38
- await workspace.spawn("akan", ["--version"], { stdio: "inherit" });
39
- }
40
- }
@@ -1,31 +0,0 @@
1
- import { command, Workspace } from "akanjs/devkit";
2
-
3
- import { GuidelineScript } from "./guideline.script";
4
-
5
- export class GuidelineCommand extends command("guideline", [GuidelineScript], ({ public: target }) => ({
6
- generateInstruction: target({ devOnly: true, desc: "Generate AI development guideline/instruction for your project" })
7
- .arg("name", String, { ask: "name of the instruction", nullable: true })
8
- .with(Workspace)
9
- .exec(async function (name, workspace) {
10
- await this.guidelineScript.generateInstruction(workspace, name);
11
- }),
12
- updateInstruction: target({ devOnly: true, desc: "Update existing AI guideline/instruction" })
13
- .arg("name", String, { ask: "name of the instruction", nullable: true })
14
- .option("request", String, { ask: "What do you want to update?" })
15
- .with(Workspace)
16
- .exec(async function (name, request, workspace) {
17
- await this.guidelineScript.updateInstruction(workspace, name, request);
18
- }),
19
- generateDocument: target({ devOnly: true, desc: "Generate documentation from guideline/instruction" })
20
- .arg("name", String, { ask: "name of the instruction", nullable: true })
21
- .with(Workspace)
22
- .exec(async function (name, workspace) {
23
- await this.guidelineScript.generateDocument(workspace, name);
24
- }),
25
- reapplyInstruction: target({ devOnly: true, desc: "Re-apply guideline/instruction to codebase" })
26
- .arg("name", String, { ask: "name of the instruction", nullable: true })
27
- .with(Workspace)
28
- .exec(async function (name, workspace) {
29
- await this.guidelineScript.reapplyInstruction(workspace, name);
30
- }),
31
- })) {}