akanjs 0.0.1 → 2.0.0-beta.1

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 (682) hide show
  1. package/CODE_OF_CONDUCT.md +54 -0
  2. package/CONTRIBUTING.md +83 -0
  3. package/LICENSE +21 -0
  4. package/README.ko.md +244 -0
  5. package/README.md +237 -6
  6. package/base/base.ts +194 -0
  7. package/base/baseEnv.ts +162 -0
  8. package/base/index.ts +6 -0
  9. package/base/primitiveRegistry.ts +342 -0
  10. package/base/symbols.ts +11 -0
  11. package/base/types.ts +137 -0
  12. package/base/utils.ts +30 -0
  13. package/cli/application/application.command.ts +213 -0
  14. package/cli/application/application.interface.tsx +225 -0
  15. package/cli/application/application.runner.ts +359 -0
  16. package/cli/application/application.script.ts +244 -0
  17. package/cli/build.ts +25 -0
  18. package/cli/cloud/cloud.command.ts +48 -0
  19. package/cli/cloud/cloud.runner.ts +158 -0
  20. package/cli/cloud/cloud.script.ts +40 -0
  21. package/cli/guideline/guideline.command.ts +31 -0
  22. package/cli/guideline/guideline.prompt.ts +212 -0
  23. package/cli/guideline/guideline.runner.ts +53 -0
  24. package/cli/guideline/guideline.script.ts +33 -0
  25. package/cli/guidelines/___library/sharedUiStructureDescription.en.md +767 -0
  26. package/cli/guidelines/___library/utilUiStructureDescription.en.md +395 -0
  27. package/cli/guidelines/___lint/lintRuleDescription.en.md +64 -0
  28. package/cli/guidelines/___module/moduleStructureDescription.en.md +80 -0
  29. package/cli/guidelines/componentRule/componentRule.generate.json +131 -0
  30. package/cli/guidelines/componentRule/componentRule.instruction.md +637 -0
  31. package/cli/guidelines/cssRule/cssRule.generate.json +93 -0
  32. package/cli/guidelines/cssRule/cssRule.instruction.md +435 -0
  33. package/cli/guidelines/databaseModule/databaseModule.generate.json +51 -0
  34. package/cli/guidelines/databaseModule/databaseModule.instruction.md +612 -0
  35. package/cli/guidelines/docPageRule/docPageRule.generate.json +72 -0
  36. package/cli/guidelines/docPageRule/docPageRule.instruction.md +389 -0
  37. package/cli/guidelines/enumConstant/enumConstant.generate.json +24 -0
  38. package/cli/guidelines/enumConstant/enumConstant.instruction.md +232 -0
  39. package/cli/guidelines/framework/framework.generate.json +119 -0
  40. package/cli/guidelines/framework/framework.instruction.md +1110 -0
  41. package/cli/guidelines/howToUseStore/howToUseStore.generate.json +0 -0
  42. package/cli/guidelines/modelConstant/modelConstant.generate.json +128 -0
  43. package/cli/guidelines/modelConstant/modelConstant.instruction.md +506 -0
  44. package/cli/guidelines/modelDictionary/modelDictionary.generate.json +108 -0
  45. package/cli/guidelines/modelDictionary/modelDictionary.instruction.md +547 -0
  46. package/cli/guidelines/modelDocument/modelDocument.generate.json +129 -0
  47. package/cli/guidelines/modelDocument/modelDocument.instruction.md +536 -0
  48. package/cli/guidelines/modelService/modelService.generate.json +135 -0
  49. package/cli/guidelines/modelService/modelService.instruction.md +708 -0
  50. package/cli/guidelines/modelSignal/modelSignal.generate.json +201 -0
  51. package/cli/guidelines/modelSignal/modelSignal.instruction.md +552 -0
  52. package/cli/guidelines/modelStore/modelStore.generate.json +130 -0
  53. package/cli/guidelines/modelStore/modelStore.instruction.md +585 -0
  54. package/cli/guidelines/modelTemplate/modelTemplate.generate.json +104 -0
  55. package/cli/guidelines/modelTemplate/modelTemplate.instruction.md +604 -0
  56. package/cli/guidelines/modelUnit/modelUnit.generate.json +92 -0
  57. package/cli/guidelines/modelUnit/modelUnit.instruction.md +541 -0
  58. package/cli/guidelines/modelUtil/modelUtil.generate.json +93 -0
  59. package/cli/guidelines/modelUtil/modelUtil.instruction.md +752 -0
  60. package/cli/guidelines/modelView/modelView.generate.json +80 -0
  61. package/cli/guidelines/modelView/modelView.instruction.md +1005 -0
  62. package/cli/guidelines/modelZone/modelZone.generate.json +126 -0
  63. package/cli/guidelines/modelZone/modelZone.instruction.md +528 -0
  64. package/cli/guidelines/scalarConstant/scalarConstant.generate.json +106 -0
  65. package/cli/guidelines/scalarConstant/scalarConstant.instruction.md +442 -0
  66. package/cli/guidelines/scalarDictionary/scalarDictionary.generate.json +83 -0
  67. package/cli/guidelines/scalarDictionary/scalarDictionary.instruction.md +273 -0
  68. package/cli/guidelines/scalarModule/scalarModule.generate.json +35 -0
  69. package/cli/guidelines/scalarModule/scalarModule.instruction.md +81 -0
  70. package/cli/guidelines/sharedUiUsage/sharedUiUsage.generate.json +108 -0
  71. package/cli/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +310 -0
  72. package/cli/guidelines/utilUiUsage/utilUiUsage.generate.json +140 -0
  73. package/cli/guidelines/utilUiUsage/utilUiUsage.instruction.md +339 -0
  74. package/cli/index.js +11399 -0
  75. package/cli/index.ts +24 -0
  76. package/cli/library/library.command.ts +28 -0
  77. package/cli/library/library.runner.ts +69 -0
  78. package/cli/library/library.script.ts +39 -0
  79. package/cli/module/module.command.ts +35 -0
  80. package/cli/module/module.prompt.ts +18 -0
  81. package/cli/module/module.request.ts +319 -0
  82. package/cli/module/module.runner.ts +76 -0
  83. package/cli/module/module.script.ts +161 -0
  84. package/cli/package/package.command.ts +32 -0
  85. package/cli/package/package.runner.ts +64 -0
  86. package/cli/package/package.script.ts +35 -0
  87. package/cli/page/page.command.ts +14 -0
  88. package/cli/page/page.runner.ts +14 -0
  89. package/cli/page/page.script.ts +12 -0
  90. package/cli/scalar/scalar.command.ts +21 -0
  91. package/cli/scalar/scalar.prompt.ts +131 -0
  92. package/cli/scalar/scalar.runner.ts +38 -0
  93. package/cli/scalar/scalar.script.ts +16 -0
  94. package/cli/templates/__scalar/__model__/__model__.constant.ts +15 -0
  95. package/cli/templates/__scalar/__model__/__model__.dictionary.ts +19 -0
  96. package/cli/templates/__scalar/__model__/__model__.document.ts +15 -0
  97. package/cli/templates/app/akan.config.ts +14 -0
  98. package/cli/templates/app/capacitor.config.ts.template +8 -0
  99. package/cli/templates/app/common/commonLogic.ts +12 -0
  100. package/cli/templates/app/common/index.ts +10 -0
  101. package/cli/templates/app/env/env.client.debug.ts.template +7 -0
  102. package/cli/templates/app/env/env.client.develop.ts.template +7 -0
  103. package/cli/templates/app/env/env.client.local.ts.template +7 -0
  104. package/cli/templates/app/env/env.client.main.ts.template +7 -0
  105. package/cli/templates/app/env/env.client.testing.ts.template +7 -0
  106. package/cli/templates/app/env/env.client.ts +21 -0
  107. package/cli/templates/app/env/env.client.type.ts +16 -0
  108. package/cli/templates/app/env/env.server.debug.ts.template +7 -0
  109. package/cli/templates/app/env/env.server.develop.ts.template +9 -0
  110. package/cli/templates/app/env/env.server.local.ts.template +14 -0
  111. package/cli/templates/app/env/env.server.main.ts.template +9 -0
  112. package/cli/templates/app/env/env.server.testing.ts.template +6 -0
  113. package/cli/templates/app/env/env.server.ts +20 -0
  114. package/cli/templates/app/lib/___appName__/__appName__.dictionary.ts +17 -0
  115. package/cli/templates/app/lib/___appName__/__appName__.service.ts +13 -0
  116. package/cli/templates/app/lib/___appName__/__appName__.signal.ts +17 -0
  117. package/cli/templates/app/lib/___appName__/__appName__.store.ts +15 -0
  118. package/cli/templates/app/lib/option.ts +17 -0
  119. package/cli/templates/app/main.ts +16 -0
  120. package/cli/templates/app/package.json.template +5 -0
  121. package/cli/templates/app/page/_index.tsx +172 -0
  122. package/cli/templates/app/page/_layout.tsx +32 -0
  123. package/cli/templates/app/page/styles.css.template +53 -0
  124. package/cli/templates/app/public/favicon.ico +0 -0
  125. package/cli/templates/app/public/logo.png +0 -0
  126. package/cli/templates/app/srvkit/backendLogic.ts +12 -0
  127. package/cli/templates/app/srvkit/index.ts +10 -0
  128. package/cli/templates/app/tsconfig.json.template +21 -0
  129. package/cli/templates/app/ui/UiComponent.ts +16 -0
  130. package/cli/templates/app/ui/index.ts +10 -0
  131. package/cli/templates/app/webkit/frontendLogic.ts +12 -0
  132. package/cli/templates/app/webkit/index.ts +10 -0
  133. package/cli/templates/client.ts +46 -0
  134. package/cli/templates/crudPages/[__model__Id]/edit/page.tsx +47 -0
  135. package/cli/templates/crudPages/[__model__Id]/page.tsx +52 -0
  136. package/cli/templates/crudPages/new/page.tsx +42 -0
  137. package/cli/templates/crudPages/page.tsx +43 -0
  138. package/cli/templates/crudSinglePage/page.tsx +37 -0
  139. package/cli/templates/env/_env.server.type.ts +16 -0
  140. package/cli/templates/facetIndex/index.ts +32 -0
  141. package/cli/templates/index.ts +10 -0
  142. package/cli/templates/lib/__lib/lib.constant.ts +38 -0
  143. package/cli/templates/lib/__lib/lib.dictionary.ts +33 -0
  144. package/cli/templates/lib/__lib/lib.document.ts +35 -0
  145. package/cli/templates/lib/__lib/lib.service.ts +33 -0
  146. package/cli/templates/lib/__lib/lib.signal.ts +34 -0
  147. package/cli/templates/lib/__lib/lib.store.ts +33 -0
  148. package/cli/templates/lib/cnst.ts +29 -0
  149. package/cli/templates/lib/db.ts +32 -0
  150. package/cli/templates/lib/dict.ts +49 -0
  151. package/cli/templates/lib/sig.ts +60 -0
  152. package/cli/templates/lib/srv.ts +34 -0
  153. package/cli/templates/lib/st.ts +31 -0
  154. package/cli/templates/lib/useClient.ts +19 -0
  155. package/cli/templates/lib/useServer.ts +7 -0
  156. package/cli/templates/libRoot/.gitignore.template +16 -0
  157. package/cli/templates/libRoot/akan.config.ts +12 -0
  158. package/cli/templates/libRoot/base/baseLogic.ts +10 -0
  159. package/cli/templates/libRoot/base/index.ts +8 -0
  160. package/cli/templates/libRoot/common/commonLogic.ts +10 -0
  161. package/cli/templates/libRoot/common/index.ts +8 -0
  162. package/cli/templates/libRoot/env/env.server.example.ts.template +6 -0
  163. package/cli/templates/libRoot/env/env.server.testing.ts.template +6 -0
  164. package/cli/templates/libRoot/lib/___libName__/__libName__.dictionary.ts +15 -0
  165. package/cli/templates/libRoot/lib/___libName__/__libName__.service.ts +11 -0
  166. package/cli/templates/libRoot/lib/___libName__/__libName__.store.ts +13 -0
  167. package/cli/templates/libRoot/lib/option.ts +17 -0
  168. package/cli/templates/libRoot/package.json.template +5 -0
  169. package/cli/templates/libRoot/srvkit/backendLogic.ts +10 -0
  170. package/cli/templates/libRoot/srvkit/index.ts +8 -0
  171. package/cli/templates/libRoot/tsconfig.json.template +11 -0
  172. package/cli/templates/libRoot/ui/index.ts +7 -0
  173. package/cli/templates/libRoot/webkit/frontendLogic.ts +10 -0
  174. package/cli/templates/libRoot/webkit/index.ts +8 -0
  175. package/cli/templates/localDev/docker-compose.yaml.template +37 -0
  176. package/cli/templates/module/__Model__.Template.tsx +36 -0
  177. package/cli/templates/module/__Model__.Unit.tsx +26 -0
  178. package/cli/templates/module/__Model__.Util.tsx +30 -0
  179. package/cli/templates/module/__Model__.View.tsx +29 -0
  180. package/cli/templates/module/__Model__.Zone.tsx +43 -0
  181. package/cli/templates/module/__model__.constant.ts +24 -0
  182. package/cli/templates/module/__model__.dictionary.ts +30 -0
  183. package/cli/templates/module/__model__.document.ts +23 -0
  184. package/cli/templates/module/__model__.service.ts +16 -0
  185. package/cli/templates/module/__model__.signal.ts +27 -0
  186. package/cli/templates/module/__model__.store.ts +19 -0
  187. package/cli/templates/module/index.tsx +44 -0
  188. package/cli/templates/moduleRoot/index.tsx +31 -0
  189. package/cli/templates/pkgRoot/tsconfig.json.template +10 -0
  190. package/cli/templates/server.ts +45 -0
  191. package/cli/templates/workspaceRoot/.env.template +14 -0
  192. package/cli/templates/workspaceRoot/.gitignore.template +130 -0
  193. package/cli/templates/workspaceRoot/.vscode/settings.json.template +23 -0
  194. package/cli/templates/workspaceRoot/biome.json.template +175 -0
  195. package/cli/templates/workspaceRoot/bunfig.toml +4 -0
  196. package/cli/templates/workspaceRoot/infra/app/Chart.yaml.template +6 -0
  197. package/cli/templates/workspaceRoot/infra/app/templates/frontend.yaml.template +182 -0
  198. package/cli/templates/workspaceRoot/infra/app/values/_common-values.yaml.template +183 -0
  199. package/cli/templates/workspaceRoot/package.json.template +7 -0
  200. package/cli/templates/workspaceRoot/tsconfig.json.template +26 -0
  201. package/cli/testHelpers.ts +171 -0
  202. package/cli/workspace/workspace.command.ts +59 -0
  203. package/cli/workspace/workspace.runner.ts +57 -0
  204. package/cli/workspace/workspace.script.ts +68 -0
  205. package/client/capacitor.ts +68 -0
  206. package/client/clientRuntime.ts +141 -0
  207. package/client/cookie.ts +121 -0
  208. package/client/createFont.ts +8 -0
  209. package/client/csrTypes.ts +259 -0
  210. package/client/decorators.ts +25 -0
  211. package/client/device.ts +147 -0
  212. package/client/fetch.ts +1 -0
  213. package/client/index.ts +15 -0
  214. package/client/locale.ts +4 -0
  215. package/client/makePageProto.tsx +178 -0
  216. package/client/router.ts +286 -0
  217. package/client/rscNavigation.ts +19 -0
  218. package/client/storage.ts +33 -0
  219. package/client/translator.ts +43 -0
  220. package/client/types.ts +228 -0
  221. package/client/useClient.ts +1 -0
  222. package/common/Logger.ts +177 -0
  223. package/common/applyMixins.ts +14 -0
  224. package/common/capitalize.ts +4 -0
  225. package/common/deepObjectify.ts +27 -0
  226. package/common/formatNumber.ts +14 -0
  227. package/common/formatPhone.ts +7 -0
  228. package/common/getAllPropertyDescriptors.ts +13 -0
  229. package/common/hmrPhase.ts +17 -0
  230. package/common/httpClient.ts +101 -0
  231. package/common/index.ts +50 -0
  232. package/common/isDayjs.ts +3 -0
  233. package/common/isEmail.ts +2 -0
  234. package/common/isPhoneNumber.ts +8 -0
  235. package/common/isQueryEqual.ts +23 -0
  236. package/common/isValidDate.ts +14 -0
  237. package/common/localeConfig.ts +41 -0
  238. package/common/lowerlize.ts +4 -0
  239. package/common/mergeVersion.ts +10 -0
  240. package/common/objectify.ts +7 -0
  241. package/common/pathGet.ts +13 -0
  242. package/common/pathSet.ts +16 -0
  243. package/common/randomPick.ts +1 -0
  244. package/common/randomPicks.ts +12 -0
  245. package/common/routeConvention.ts +203 -0
  246. package/common/sleep.ts +8 -0
  247. package/common/splitVersion.ts +11 -0
  248. package/common/subRoute.ts +34 -0
  249. package/common/types.ts +15 -0
  250. package/constant/constantRegistry.ts +334 -0
  251. package/constant/crystalize.ts +45 -0
  252. package/constant/deserialize.ts +70 -0
  253. package/constant/fieldInfo.ts +415 -0
  254. package/constant/getDefault.ts +18 -0
  255. package/constant/immerify.ts +16 -0
  256. package/constant/index.ts +10 -0
  257. package/constant/purify.ts +118 -0
  258. package/constant/serialize.ts +87 -0
  259. package/constant/types.ts +105 -0
  260. package/constant/via.ts +360 -0
  261. package/devkit/aiEditor.ts +299 -0
  262. package/devkit/akanApp/akanApp.host.ts +356 -0
  263. package/devkit/akanApp/index.ts +1 -0
  264. package/devkit/akanConfig/akanConfig.ts +332 -0
  265. package/devkit/akanConfig/index.ts +2 -0
  266. package/devkit/akanConfig/types.ts +187 -0
  267. package/devkit/applicationBuildReporter.ts +69 -0
  268. package/devkit/applicationBuildRunner.ts +302 -0
  269. package/devkit/applicationReleasePackager.ts +205 -0
  270. package/devkit/artifact/implicitRootLayout.ts +155 -0
  271. package/devkit/artifact/index.ts +1 -0
  272. package/devkit/artifact/routeSeedIndex.ts +128 -0
  273. package/devkit/auth.ts +41 -0
  274. package/devkit/builder.ts +164 -0
  275. package/devkit/capacitor.base.config.ts +74 -0
  276. package/devkit/capacitorApp.ts +385 -0
  277. package/devkit/commandDecorators/argMeta.ts +88 -0
  278. package/devkit/commandDecorators/command.ts +314 -0
  279. package/devkit/commandDecorators/commandBuilder.ts +188 -0
  280. package/devkit/commandDecorators/commandMeta.ts +6 -0
  281. package/devkit/commandDecorators/dependencyBuilder.ts +100 -0
  282. package/devkit/commandDecorators/helpFormatter.ts +217 -0
  283. package/devkit/commandDecorators/index.ts +8 -0
  284. package/devkit/commandDecorators/targetMeta.ts +31 -0
  285. package/devkit/commandDecorators/types.ts +10 -0
  286. package/devkit/constants.ts +25 -0
  287. package/devkit/createTunnel.ts +36 -0
  288. package/devkit/dependencyScanner.ts +339 -0
  289. package/devkit/executors.ts +1325 -0
  290. package/devkit/extractDeps.ts +85 -0
  291. package/devkit/fileEditor.ts +106 -0
  292. package/devkit/fileSys.ts +39 -0
  293. package/devkit/frontendBuild/allRoutesBuilder.ts +103 -0
  294. package/devkit/frontendBuild/clientBuildTypes.ts +114 -0
  295. package/devkit/frontendBuild/clientEntriesBundler.ts +300 -0
  296. package/devkit/frontendBuild/clientEntryDiscovery.ts +196 -0
  297. package/devkit/frontendBuild/csrArtifactBuilder.ts +237 -0
  298. package/devkit/frontendBuild/cssCompiler.ts +279 -0
  299. package/devkit/frontendBuild/cssImportResolver.ts +116 -0
  300. package/devkit/frontendBuild/fontOptimizer.ts +427 -0
  301. package/devkit/frontendBuild/hmrChangeClassifier.ts +28 -0
  302. package/devkit/frontendBuild/hmrWatcher.ts +101 -0
  303. package/devkit/frontendBuild/index.ts +18 -0
  304. package/devkit/frontendBuild/pagesBundleBuilder.ts +137 -0
  305. package/devkit/frontendBuild/pagesEntrySourceGenerator.ts +37 -0
  306. package/devkit/frontendBuild/precompressArtifacts.ts +59 -0
  307. package/devkit/frontendBuild/routeClientBuilder.ts +290 -0
  308. package/devkit/frontendBuild/routesManifestArtifactSerializer.ts +62 -0
  309. package/devkit/frontendBuild/ssrBaseArtifactBuilder.ts +139 -0
  310. package/devkit/frontendBuild/vendorSpecifiers.ts +16 -0
  311. package/devkit/frontendBuild/watchRootResolver.ts +28 -0
  312. package/devkit/getCredentials.ts +19 -0
  313. package/devkit/getDirname.ts +3 -0
  314. package/devkit/getModelFileData.ts +59 -0
  315. package/devkit/getRelatedCnsts.ts +300 -0
  316. package/devkit/guideline.ts +19 -0
  317. package/devkit/incrementalBuilder/incrementalBuilder.host.ts +78 -0
  318. package/devkit/incrementalBuilder/incrementalBuilder.proc.ts +330 -0
  319. package/devkit/incrementalBuilder/index.ts +1 -0
  320. package/devkit/index.ts +36 -0
  321. package/devkit/lint/no-import-client-functions.grit +32 -0
  322. package/devkit/lint/no-import-external-library.grit +21 -0
  323. package/devkit/lint/no-js-private-class-method.grit +42 -0
  324. package/devkit/lint/no-use-client-in-server.grit +7 -0
  325. package/devkit/lint/non-scalar-props-restricted.grit +13 -0
  326. package/devkit/linter.ts +248 -0
  327. package/devkit/mobile/index.ts +1 -0
  328. package/devkit/mobile/mobileTarget.ts +47 -0
  329. package/devkit/prompter.ts +71 -0
  330. package/devkit/scanInfo.ts +605 -0
  331. package/devkit/selectModel.ts +11 -0
  332. package/devkit/spinner.ts +54 -0
  333. package/devkit/sshTunnel.ts +151 -0
  334. package/devkit/streamAi.ts +45 -0
  335. package/devkit/transforms/barrelAnalyzer.ts +249 -0
  336. package/devkit/transforms/barrelImportsPlugin.ts +451 -0
  337. package/devkit/transforms/externalizeFrameworkPlugin.ts +159 -0
  338. package/devkit/transforms/index.ts +5 -0
  339. package/devkit/transforms/rscUseClientTransform.ts +52 -0
  340. package/devkit/transforms/useClientBundlePlugin.ts +47 -0
  341. package/devkit/typeChecker.ts +260 -0
  342. package/devkit/types.ts +42 -0
  343. package/devkit/ui/MultiScrollList.tsx +228 -0
  344. package/devkit/ui/ScrollList.tsx +106 -0
  345. package/devkit/ui/index.ts +2 -0
  346. package/devkit/uploadRelease.ts +95 -0
  347. package/devkit/useStdoutDimensions.ts +20 -0
  348. package/dictionary/base.dictionary.ts +91 -0
  349. package/dictionary/dictInfo.ts +1079 -0
  350. package/dictionary/dictionary.ts +10 -0
  351. package/dictionary/index.ts +12 -0
  352. package/dictionary/locale.ts +230 -0
  353. package/dictionary/trans.ts +196 -0
  354. package/document/by.ts +39 -0
  355. package/document/dataLoader.ts +91 -0
  356. package/document/database.ts +168 -0
  357. package/document/databaseRegistry.ts +113 -0
  358. package/document/documentQuery.ts +143 -0
  359. package/document/documentSchema.ts +91 -0
  360. package/document/filterMeta.ts +210 -0
  361. package/document/index.ts +11 -0
  362. package/document/into.ts +169 -0
  363. package/document/loaderInfo.ts +50 -0
  364. package/document/schema.ts +24 -0
  365. package/document/types.ts +41 -0
  366. package/fetch/client/fetchClient.ts +600 -0
  367. package/fetch/client/httpClient.ts +157 -0
  368. package/fetch/client/index.ts +3 -0
  369. package/fetch/client/wsClient.ts +246 -0
  370. package/fetch/fetchType/appliedReturn.type.ts +108 -0
  371. package/fetch/fetchType/buildFetch.type.ts +24 -0
  372. package/fetch/fetchType/clientSignal.type.ts +22 -0
  373. package/fetch/fetchType/endpointFetch.type.ts +56 -0
  374. package/fetch/fetchType/index.ts +5 -0
  375. package/fetch/fetchType/sliceFetch.type.ts +173 -0
  376. package/fetch/index.ts +4 -0
  377. package/fetch/requestStorage.ts +127 -0
  378. package/fetch/serializer/fetch.serializer.ts +131 -0
  379. package/fetch/serializer/index.ts +1 -0
  380. package/fetch/types.ts +28 -0
  381. package/package.json +202 -5
  382. package/server/SSR_MEMORY_DIAGNOSIS.md +107 -0
  383. package/server/akanApp.ts +855 -0
  384. package/server/akanLib.ts +43 -0
  385. package/server/akanOption.ts +42 -0
  386. package/server/akanServer.ts +369 -0
  387. package/server/artifact/builderRpc.ts +124 -0
  388. package/server/artifact/index.ts +6 -0
  389. package/server/artifact/ipcTypes.ts +46 -0
  390. package/server/artifact/manifestTypes.ts +19 -0
  391. package/server/artifact/routeClientCache.ts +224 -0
  392. package/server/artifact/routeSeedIndexStore.ts +89 -0
  393. package/server/artifact/routesManifestStore.ts +120 -0
  394. package/server/decorators.ts +95 -0
  395. package/server/di/diLifecycle.ts +520 -0
  396. package/server/di/index.ts +4 -0
  397. package/server/di/predefinedAdaptor.ts +77 -0
  398. package/server/di/resolveAdaptorHierarchy.ts +82 -0
  399. package/server/di/resolveHierarchy.ts +89 -0
  400. package/server/di/resolveServiceHierarchy.ts +47 -0
  401. package/server/di/utils.ts +40 -0
  402. package/server/hmr/changeBatch.ts +14 -0
  403. package/server/hmr/clientScript.ts +310 -0
  404. package/server/hmr/devHmrController.ts +395 -0
  405. package/server/hmr/index.ts +4 -0
  406. package/server/hmr/wsHub.ts +56 -0
  407. package/server/imageOptimizer.ts +427 -0
  408. package/server/imageOptimizerError.ts +8 -0
  409. package/server/index.ts +14 -0
  410. package/server/lifecycle/shutdownManager.ts +52 -0
  411. package/server/logging/rotatingLogWriter.ts +190 -0
  412. package/server/processMetricsCollector.ts +78 -0
  413. package/server/proxy/akanResponse.ts +16 -0
  414. package/server/proxy/bunRequestFields.ts +12 -0
  415. package/server/proxy/hostBasePathWebProxy.ts +112 -0
  416. package/server/proxy/index.ts +15 -0
  417. package/server/proxy/localeWebProxy.ts +71 -0
  418. package/server/proxy/types.ts +41 -0
  419. package/server/proxy/webProxyRunner.ts +90 -0
  420. package/server/resolver/database.resolver.ts +340 -0
  421. package/server/resolver/index.ts +3 -0
  422. package/server/resolver/resolver.contract.fixture.ts +222 -0
  423. package/server/resolver/service.resolver.ts +176 -0
  424. package/server/resolver/signal.resolver.ts +386 -0
  425. package/server/robots.ts +32 -0
  426. package/server/routeElementComposer.tsx +91 -0
  427. package/server/routeTreeBuilder.ts +279 -0
  428. package/server/routing/apiRouter.ts +226 -0
  429. package/server/rscClient.tsx +140 -0
  430. package/server/rscWorker.tsx +625 -0
  431. package/server/rscWorkerHost.ts +616 -0
  432. package/server/sitemap.ts +90 -0
  433. package/server/ssrFromRscRenderer.tsx +285 -0
  434. package/server/ssrTypes.ts +48 -0
  435. package/server/types/react-server-dom-webpack.d.ts +91 -0
  436. package/server/types.tsx +109 -0
  437. package/server/vendor/akanjs-base.ts +1 -0
  438. package/server/vendor/akanjs-common.ts +1 -0
  439. package/server/vendor/akanjs-constant.ts +1 -0
  440. package/server/vendor/akanjs-store.ts +1 -0
  441. package/server/vendor/react-dom-client.ts +5 -0
  442. package/server/vendor/react-dom.ts +21 -0
  443. package/server/vendor/react-jsx-dev-runtime.ts +5 -0
  444. package/server/vendor/react-jsx-runtime.ts +5 -0
  445. package/server/vendor/react-refresh-runtime.ts +6 -0
  446. package/server/vendor/react-server-dom-webpack-client-browser.ts +12 -0
  447. package/server/vendor/react.ts +51 -0
  448. package/server/vendor/scheduler.ts +23 -0
  449. package/server/webRouter.ts +712 -0
  450. package/service/adapt.ts +47 -0
  451. package/service/base.service.ts +18 -0
  452. package/service/index.ts +10 -0
  453. package/service/injectInfo.ts +393 -0
  454. package/service/ipcTypes.ts +127 -0
  455. package/service/predefinedAdaptor/cache.adaptor.ts +105 -0
  456. package/service/predefinedAdaptor/compress.adaptor.ts +357 -0
  457. package/service/predefinedAdaptor/database.adaptor.ts +1310 -0
  458. package/service/predefinedAdaptor/index.ts +13 -0
  459. package/service/predefinedAdaptor/logging.adaptor.ts +36 -0
  460. package/service/predefinedAdaptor/queue.adaptor.ts +42 -0
  461. package/service/predefinedAdaptor/role.adaptor.ts +18 -0
  462. package/service/predefinedAdaptor/schedule.adaptor.ts +188 -0
  463. package/service/predefinedAdaptor/solidCache.adaptor.ts +143 -0
  464. package/service/predefinedAdaptor/solidPubsub.adaptor.ts +98 -0
  465. package/service/predefinedAdaptor/solidQueue.adaptor.ts +203 -0
  466. package/service/predefinedAdaptor/solidSqlite.ts +85 -0
  467. package/service/predefinedAdaptor/sqlitePath.ts +20 -0
  468. package/service/predefinedAdaptor/storage.adaptor.ts +121 -0
  469. package/service/predefinedAdaptor/websocket.adaptor.ts +313 -0
  470. package/service/serve.ts +223 -0
  471. package/service/serviceModule.ts +221 -0
  472. package/service/serviceRegistry.ts +26 -0
  473. package/service/types.ts +113 -0
  474. package/signal/base.signal.ts +46 -0
  475. package/signal/endpoint.ts +122 -0
  476. package/signal/endpointInfo.ts +374 -0
  477. package/signal/exception.ts +50 -0
  478. package/signal/guard.ts +18 -0
  479. package/signal/guards.ts +16 -0
  480. package/signal/index.ts +18 -0
  481. package/signal/intercept.ts +39 -0
  482. package/signal/internal.ts +56 -0
  483. package/signal/internalArg.ts +38 -0
  484. package/signal/internalInfo.ts +208 -0
  485. package/signal/middleware.ts +108 -0
  486. package/signal/serializer/fetch.serializer.ts +128 -0
  487. package/signal/serializer/index.ts +1 -0
  488. package/signal/serverSignal.ts +114 -0
  489. package/signal/signalContext.ts +446 -0
  490. package/signal/signalRegistry.ts +82 -0
  491. package/signal/slice.ts +158 -0
  492. package/signal/sliceInfo.ts +254 -0
  493. package/signal/types.ts +131 -0
  494. package/store/action.ts +1067 -0
  495. package/store/baseSt.ts +81 -0
  496. package/store/hooks.ts +2 -0
  497. package/store/index.ts +8 -0
  498. package/store/rootStore.ts +26 -0
  499. package/store/state.ts +226 -0
  500. package/store/stateBuilder.ts +429 -0
  501. package/store/stateInfo.ts +66 -0
  502. package/store/store.ts +194 -0
  503. package/store/storeInstance.ts +382 -0
  504. package/store/storeRegistry.ts +84 -0
  505. package/store/types.ts +69 -0
  506. package/store/withSelector.ts +62 -0
  507. package/test/index.ts +16 -0
  508. package/test/playwright.config.base.ts +48 -0
  509. package/test/playwright.pageAgent.ts +41 -0
  510. package/test/sample.ts +19 -0
  511. package/test/sampleOf.ts +70 -0
  512. package/test/signalTest.preload.ts +10 -0
  513. package/test/signalTestRuntime.ts +126 -0
  514. package/test/testServer.ts +187 -0
  515. package/ui/BottomSheet.tsx +103 -0
  516. package/ui/Button.tsx +70 -0
  517. package/ui/ClientSide.tsx +11 -0
  518. package/ui/Clipboard.tsx +49 -0
  519. package/ui/Constant/Doc.tsx +696 -0
  520. package/ui/Constant/Mermaid.tsx +149 -0
  521. package/ui/Constant/index.ts +6 -0
  522. package/ui/Constant/schemaDoc.ts +324 -0
  523. package/ui/Copy.tsx +27 -0
  524. package/ui/CsrImage.tsx +38 -0
  525. package/ui/Data/CardList.tsx +141 -0
  526. package/ui/Data/Dashboard.tsx +72 -0
  527. package/ui/Data/Insight.tsx +35 -0
  528. package/ui/Data/Item.tsx +285 -0
  529. package/ui/Data/ListContainer.tsx +320 -0
  530. package/ui/Data/Pagination.tsx +54 -0
  531. package/ui/Data/QueryMaker.tsx +21 -0
  532. package/ui/Data/TableList.tsx +161 -0
  533. package/ui/Data/index.ts +11 -0
  534. package/ui/Data/index_.tsx +11 -0
  535. package/ui/DatePicker.tsx +184 -0
  536. package/ui/Dialog/Action.tsx +15 -0
  537. package/ui/Dialog/Close.tsx +22 -0
  538. package/ui/Dialog/Content.tsx +11 -0
  539. package/ui/Dialog/Modal.tsx +137 -0
  540. package/ui/Dialog/Provider.tsx +33 -0
  541. package/ui/Dialog/Title.tsx +15 -0
  542. package/ui/Dialog/Trigger.tsx +22 -0
  543. package/ui/Dialog/context.ts +20 -0
  544. package/ui/Dialog/index.tsx +15 -0
  545. package/ui/DragAction.tsx +129 -0
  546. package/ui/DraggableList.tsx +230 -0
  547. package/ui/Dropdown.tsx +51 -0
  548. package/ui/Empty.tsx +32 -0
  549. package/ui/Field.tsx +1556 -0
  550. package/ui/FontFace.tsx +26 -0
  551. package/ui/Image.tsx +185 -0
  552. package/ui/InfiniteScroll.tsx +67 -0
  553. package/ui/Input.tsx +636 -0
  554. package/ui/KeyboardAvoiding.tsx +62 -0
  555. package/ui/Layout/BottomAction.tsx +15 -0
  556. package/ui/Layout/BottomInset.tsx +42 -0
  557. package/ui/Layout/BottomTab.tsx +71 -0
  558. package/ui/Layout/Header.tsx +38 -0
  559. package/ui/Layout/LeftSider.tsx +34 -0
  560. package/ui/Layout/Navbar.tsx +46 -0
  561. package/ui/Layout/RightSider.tsx +41 -0
  562. package/ui/Layout/Sider.tsx +69 -0
  563. package/ui/Layout/Template.tsx +11 -0
  564. package/ui/Layout/TopLeftAction.tsx +28 -0
  565. package/ui/Layout/Unit.tsx +19 -0
  566. package/ui/Layout/View.tsx +12 -0
  567. package/ui/Layout/Zone.tsx +10 -0
  568. package/ui/Layout/index.ts +27 -0
  569. package/ui/Link/Back.tsx +15 -0
  570. package/ui/Link/Close.tsx +20 -0
  571. package/ui/Link/CsrLink.tsx +41 -0
  572. package/ui/Link/Lang.tsx +16 -0
  573. package/ui/Link/SsrLink.tsx +68 -0
  574. package/ui/Link/index.tsx +32 -0
  575. package/ui/Link/types.ts +47 -0
  576. package/ui/Load/Edit.tsx +19 -0
  577. package/ui/Load/Edit_Client.tsx +120 -0
  578. package/ui/Load/Page.tsx +40 -0
  579. package/ui/Load/PageCSR.tsx +39 -0
  580. package/ui/Load/Pagination.tsx +89 -0
  581. package/ui/Load/Units.tsx +330 -0
  582. package/ui/Load/View.tsx +115 -0
  583. package/ui/Load/index.ts +11 -0
  584. package/ui/Load/index_.tsx +6 -0
  585. package/ui/Loading/Area.tsx +10 -0
  586. package/ui/Loading/Button.tsx +17 -0
  587. package/ui/Loading/Input.tsx +17 -0
  588. package/ui/Loading/ProgressBar.tsx +14 -0
  589. package/ui/Loading/Skeleton.tsx +22 -0
  590. package/ui/Loading/Spin.tsx +22 -0
  591. package/ui/Loading/index.tsx +8 -0
  592. package/ui/Menu.tsx +273 -0
  593. package/ui/Modal.tsx +87 -0
  594. package/ui/Model/AdminPanel.tsx +51 -0
  595. package/ui/Model/Edit.tsx +46 -0
  596. package/ui/Model/EditModal.tsx +301 -0
  597. package/ui/Model/EditWrapper.tsx +48 -0
  598. package/ui/Model/LoadInit.tsx +11 -0
  599. package/ui/Model/New.tsx +46 -0
  600. package/ui/Model/NewWrapper.tsx +20 -0
  601. package/ui/Model/NewWrapper_Client.tsx +57 -0
  602. package/ui/Model/Remove.tsx +75 -0
  603. package/ui/Model/RemoveWrapper.tsx +38 -0
  604. package/ui/Model/SureToRemove.tsx +108 -0
  605. package/ui/Model/View.tsx +65 -0
  606. package/ui/Model/ViewEditModal.tsx +125 -0
  607. package/ui/Model/ViewModal.tsx +71 -0
  608. package/ui/Model/ViewWrapper.tsx +38 -0
  609. package/ui/Model/index.ts +33 -0
  610. package/ui/Model/index_.tsx +16 -0
  611. package/ui/More.tsx +56 -0
  612. package/ui/ObjectId.tsx +29 -0
  613. package/ui/Pagination.tsx +120 -0
  614. package/ui/Popconfirm.tsx +135 -0
  615. package/ui/Portal.tsx +10 -0
  616. package/ui/Radio.tsx +53 -0
  617. package/ui/RecentTime.tsx +123 -0
  618. package/ui/Refresh.tsx +24 -0
  619. package/ui/ScreenNavigator.tsx +129 -0
  620. package/ui/Select.tsx +322 -0
  621. package/ui/Signal/Arg.tsx +352 -0
  622. package/ui/Signal/Doc.tsx +231 -0
  623. package/ui/Signal/Listener.tsx +74 -0
  624. package/ui/Signal/Message.tsx +267 -0
  625. package/ui/Signal/Object.tsx +131 -0
  626. package/ui/Signal/PubSub.tsx +247 -0
  627. package/ui/Signal/Request.tsx +30 -0
  628. package/ui/Signal/Response.tsx +76 -0
  629. package/ui/Signal/RestApi.tsx +390 -0
  630. package/ui/Signal/WebSocket.tsx +47 -0
  631. package/ui/Signal/index.ts +10 -0
  632. package/ui/Signal/makeExample.ts +75 -0
  633. package/ui/System/CSR.tsx +420 -0
  634. package/ui/System/Client.tsx +296 -0
  635. package/ui/System/Common.tsx +83 -0
  636. package/ui/System/DevModeToggle.tsx +21 -0
  637. package/ui/System/Gtag.tsx +69 -0
  638. package/ui/System/Messages.tsx +175 -0
  639. package/ui/System/Reconnect.tsx +156 -0
  640. package/ui/System/Root.tsx +10 -0
  641. package/ui/System/SSR.tsx +163 -0
  642. package/ui/System/SelectLanguage.tsx +47 -0
  643. package/ui/System/ThemeToggle.tsx +98 -0
  644. package/ui/System/index.tsx +23 -0
  645. package/ui/Tab/Menu.tsx +56 -0
  646. package/ui/Tab/Menus.tsx +10 -0
  647. package/ui/Tab/Panel.tsx +25 -0
  648. package/ui/Tab/Provider.tsx +25 -0
  649. package/ui/Tab/context.ts +16 -0
  650. package/ui/Tab/index.tsx +11 -0
  651. package/ui/Table.tsx +131 -0
  652. package/ui/ToggleSelect.tsx +144 -0
  653. package/ui/Unauthorized.tsx +29 -0
  654. package/ui/animated.tsx +8 -0
  655. package/ui/fontCss.ts +86 -0
  656. package/ui/index.ts +44 -0
  657. package/ui/styles.css +617 -0
  658. package/webkit/bootCsr.tsx +275 -0
  659. package/webkit/createRobotPage.ts +15 -0
  660. package/webkit/createSitemapPage.ts +4 -0
  661. package/webkit/index.ts +19 -0
  662. package/webkit/lazy.tsx +37 -0
  663. package/webkit/types.ts +7 -0
  664. package/webkit/useCamera.tsx +99 -0
  665. package/webkit/useCodepush.tsx +99 -0
  666. package/webkit/useContact.tsx +48 -0
  667. package/webkit/useCsrValues.ts +661 -0
  668. package/webkit/useDebounce.ts +24 -0
  669. package/webkit/useFetch.ts +48 -0
  670. package/webkit/useGeoLocation.tsx +24 -0
  671. package/webkit/useHistory.ts +76 -0
  672. package/webkit/useInterval.ts +21 -0
  673. package/webkit/useLocation.ts +69 -0
  674. package/webkit/usePurchase.tsx +156 -0
  675. package/webkit/usePushNoti.tsx +48 -0
  676. package/webkit/useThrottle.ts +22 -0
  677. package/src/index.js +0 -2
  678. package/src/index.js.map +0 -1
  679. package/src/lib/akan2.js +0 -4
  680. package/src/lib/akan2.js.map +0 -1
  681. package/src/run.js +0 -4
  682. package/src/run.js.map +0 -1
@@ -0,0 +1,54 @@
1
+ # Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We want Akan.js to be a welcoming, useful, and respectful project for everyone who participates. We pledge to
6
+ make participation in this community harassment-free regardless of age, body size, disability, ethnicity, sex
7
+ characteristics, gender identity and expression, level of experience, education, socio-economic status,
8
+ nationality, personal appearance, race, religion, or sexual identity and orientation.
9
+
10
+ ## Our Standards
11
+
12
+ Examples of behavior that contributes to a positive environment:
13
+
14
+ - Using welcoming and inclusive language.
15
+ - Respecting different viewpoints and experiences.
16
+ - Giving and receiving constructive feedback gracefully.
17
+ - Focusing disagreement on ideas, trade-offs, and code rather than people.
18
+ - Showing empathy toward other community members.
19
+
20
+ Examples of unacceptable behavior:
21
+
22
+ - Harassment, intimidation, or discriminatory language.
23
+ - Personal attacks, trolling, insults, or sustained disruption.
24
+ - Publishing another person's private information without explicit permission.
25
+ - Sexualized language or imagery in community spaces.
26
+ - Any conduct that would reasonably be considered inappropriate in a professional setting.
27
+
28
+ ## Scope
29
+
30
+ This Code of Conduct applies within project spaces, including issues, pull requests, discussions, documentation,
31
+ community chat, events, and any public context where someone represents the Akan.js project.
32
+
33
+ ## Enforcement
34
+
35
+ Project maintainers are responsible for clarifying and enforcing acceptable behavior. Maintainers may remove,
36
+ edit, or reject comments, commits, code, issues, pull requests, or other contributions that do not follow this
37
+ Code of Conduct.
38
+
39
+ Maintainers may also temporarily or permanently limit participation for behavior they consider inappropriate,
40
+ threatening, offensive, or harmful.
41
+
42
+ ## Reporting
43
+
44
+ If you experience or witness unacceptable behavior, please report it to the project maintainers. If a dedicated
45
+ security or community contact is added later, this section should be updated with that email address or private
46
+ reporting channel.
47
+
48
+ All reports will be reviewed and investigated. Maintainers will respect the privacy and safety of the reporter
49
+ as much as possible.
50
+
51
+ ## Attribution
52
+
53
+ This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/),
54
+ version 2.1.
@@ -0,0 +1,83 @@
1
+ # Contributing to Akan.js
2
+
3
+ Thank you for your interest in contributing to Akan.js. This guide is a starting point for opening issues,
4
+ submitting pull requests, and keeping changes reviewable.
5
+
6
+ ## Project Shape
7
+
8
+ Akan.js is a Bun-first TypeScript monorepo.
9
+
10
+ - `pkgs/akanjs`: framework package, runtime surfaces, CLI, devkit, and tooling.
11
+ - `apps`: application examples and product surfaces built with Akan.
12
+ - `libs`: shared domain and utility libraries.
13
+ - `infra`: deployment, Helm, edge, and CI/CD assets.
14
+
15
+ When changing framework code, prefer existing package subpaths and keep the root `akanjs` entrypoint small.
16
+ Runtime boundaries are part of the package design.
17
+
18
+ ## Before You Start
19
+
20
+ - Search existing issues and pull requests before opening a new one.
21
+ - Keep changes focused on one concern at a time.
22
+ - Prefer existing patterns over new abstractions.
23
+ - Avoid broad formatting-only changes unless the pull request is explicitly about formatting.
24
+ - Do not commit secrets, generated credentials, local `.env` files, or private deployment values.
25
+
26
+ ## Development
27
+
28
+ Install dependencies with Bun:
29
+
30
+ ```bash
31
+ bun install
32
+ ```
33
+
34
+ Useful commands:
35
+
36
+ ```bash
37
+ bun run akan lint-all --fix=false
38
+ bun run akan build <appName>
39
+ bun run akan start <appName>
40
+ ```
41
+
42
+ After changing application source code, verify the affected app when practical:
43
+
44
+ ```bash
45
+ bun run akan start <appName>
46
+ bun run akan build <appName>
47
+ ```
48
+
49
+ ## Pull Request Guidelines
50
+
51
+ A good pull request should include:
52
+
53
+ - A short explanation of the problem and the approach.
54
+ - Screenshots or recordings for visible UI changes.
55
+ - Tests, examples, or manual verification notes for behavior changes.
56
+ - Notes about breaking changes, migration steps, or follow-up work.
57
+
58
+ Reviewers should be able to understand the change from the pull request description and the diff without
59
+ reverse-engineering unrelated context.
60
+
61
+ ## Coding Style
62
+
63
+ - Use TypeScript and Bun-first workflows.
64
+ - Follow the existing file layout, naming conventions, and module boundaries.
65
+ - Use Biome formatting conventions used by the repository.
66
+ - Keep code readable six months from now: clear declarations beat clever shortcuts.
67
+ - Add comments only when they explain non-obvious behavior or decisions.
68
+
69
+ ## Reporting Issues
70
+
71
+ When reporting a bug, include:
72
+
73
+ - The Akan.js version or commit.
74
+ - The Bun version and operating system.
75
+ - A minimal reproduction or the smallest code sample that shows the problem.
76
+ - Expected behavior and actual behavior.
77
+ - Relevant logs, stack traces, or screenshots.
78
+
79
+ For feature requests, describe the business problem first, then the API or behavior you would like to see.
80
+
81
+ ## License
82
+
83
+ By contributing to this repository, you agree that your contributions will be licensed under the MIT License.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Akan Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.ko.md ADDED
@@ -0,0 +1,244 @@
1
+ # Akan.js
2
+
3
+ [English](./README.md) | [Docs](https://akanjs.com/docs) | [npm](https://www.npmjs.com/package/akanjs)
4
+
5
+ **코드가 아니라, 비즈니스를 씁니다.**
6
+ **Write the business, not the plumbing.**
7
+
8
+ Akan.js는 비즈니스 정의가 곧 애플리케이션이 되도록 설계된 Bun-first 풀스택 TypeScript
9
+ 프레임워크입니다. 하나의 코드베이스에서 SEO 웹, iOS/Android 앱 화면, 서버, 데이터베이스 계약,
10
+ 인프라 산출물, 문서화까지 이어갑니다.
11
+
12
+ ```bash
13
+ bunx create-akan-workspace@latest
14
+ ```
15
+
16
+ ## 왜 Akan인가
17
+
18
+ Akan은 기술 계층마다 같은 의도를 다시 쓰는 대신, 비즈니스가 무엇을 하는지 또렷하게 선언하도록
19
+ 돕습니다. 도메인을 한 번 정의하면 schema, API, fetch client, store, UI, server, deployment
20
+ artifact, generated reference가 같은 의도에서 이어집니다.
21
+
22
+ - **Agents write**: 비즈니스 정의가 코드의 원천입니다. 반복적인 프레임워크 코드는 생성과 규칙이 맡습니다.
23
+ - **Keep it minimal**: 한 줄의 의도가 웹, 앱, 서버, 데이터베이스, 배포까지 이어집니다.
24
+ - **Always readable**: 적은 파일, 엄격한 규칙, 예측 가능한 선언 방식으로 6개월 뒤에도 읽히는 코드를 만듭니다.
25
+ - **Nice to review**: 군더더기 없는 도메인 변경은 확인하기 쉽고, 리뷰가 빠르며, 곧장 배포하기 좋습니다.
26
+
27
+ ## 요구사항
28
+
29
+ - [Bun](https://bun.sh) `>=1.3.13`
30
+ - TypeScript 중심의 애플리케이션 코드
31
+ - React 기반 UI surface
32
+
33
+ ## 빠른 시작
34
+
35
+ 바로 워크스페이스를 만들 수 있습니다.
36
+
37
+ ```bash
38
+ bunx create-akan-workspace@latest
39
+ ```
40
+
41
+ CLI를 전역으로 설치해서 사용할 수도 있습니다.
42
+
43
+ ```bash
44
+ bun install -g akanjs --latest
45
+ akan create-workspace
46
+ cd <workspace-name>
47
+ akan start <app-name> --open
48
+ ```
49
+
50
+ 가장 작은 앱은 설정이 거의 없어도 시작할 수 있습니다.
51
+
52
+ ```ts
53
+ import type { AppConfig } from "akanjs/devkit";
54
+
55
+ const config: AppConfig = {};
56
+
57
+ export default config;
58
+ ```
59
+
60
+ 프로덕션 앱은 `akan.config.ts`에서 routes, base paths, domains, mobile metadata, deployment options로
61
+ 자연스럽게 확장됩니다.
62
+
63
+ ## 오래 읽히는 코드
64
+
65
+ Akan은 오래 운영되는 애플리케이션을 이해하기 쉽게 유지하기 위해 중요한 결정을 명시적이고 반복
66
+ 가능한 형태로 둡니다.
67
+
68
+ - **하나의 설정 표면**: `akan.config.ts`가 앱 단위 설정의 중심입니다. routes, domains, base paths,
69
+ mobile settings, deployment options가 필요해질 때까지 비워둘 수 있습니다.
70
+ - **모노리포 기반 재사용**: shared library와 domain module이 기본 단위이므로 검증된 비즈니스 코드를
71
+ 앱마다 다시 만들지 않고 함께 사용할 수 있습니다.
72
+ - **엄격한 구조, 익숙한 코드**: 파일 위치, 파일명, 선언 방식, module boundary가 워크스페이스 전반에서
73
+ 같은 패턴을 따르므로 다른 사람이 짠 코드도 내가 짠 코드처럼 읽힙니다.
74
+
75
+ ## 도메인 모듈
76
+
77
+ Akan 개발의 중심 단위는 도메인 모듈입니다. 기술 계층별로 먼저 나누기보다 `user`, `product`,
78
+ `ticket`, `project`처럼 비즈니스 도메인별로 코드를 묶습니다.
79
+
80
+ ```text
81
+ lib/product/
82
+ ├── product.constant.ts # 모델, 스칼라, enum, 스키마 정의
83
+ ├── product.dictionary.ts # i18n 라벨, 설명, 에러
84
+ ├── product.signal.ts # 타입 안전한 endpoint 계약
85
+ ├── product.document.ts # 영속성과 document query
86
+ ├── product.service.ts # 비즈니스 로직
87
+ ├── product.store.ts # 도메인 상태와 action
88
+ ├── Product.Template.tsx # form 중심 UI
89
+ ├── Product.Unit.tsx # list/item UI
90
+ ├── Product.View.tsx # detail UI
91
+ └── Product.Zone.tsx # page/container UI
92
+ ```
93
+
94
+ ```mermaid
95
+ flowchart LR
96
+ ConstantDictionarySignal["constant + dictionary + signal"] --> DocumentService["document + service"]
97
+ ConstantDictionarySignal --> StoreComponents["store + UI components"]
98
+ DocumentService --> ServerRuntime["server runtime"]
99
+ StoreComponents --> ClientRuntime["client runtime"]
100
+ ServerRuntime --> DeployArtifacts["deploy artifacts"]
101
+ ClientRuntime --> DeployArtifacts
102
+ ```
103
+
104
+ 하나의 모델과 하나의 계약이 DB, 서버, API, 상태관리, UI까지 이어지기 때문에 계층마다 의도를
105
+ 반복해서 작성할 필요가 줄어듭니다.
106
+
107
+ ## Akan이 만드는 것
108
+
109
+ Akan은 보통 여러 프로젝트로 흩어지는 것들을 하나의 프레임워크로 묶습니다.
110
+
111
+ - SEO에 최적화된 server-side rendered web surface.
112
+ - 아름다운 페이지 전환을 가진 iOS/Android 친화 client-side rendered app surface.
113
+ - Bun 기반 HTTP/WebSocket server.
114
+ - SQLite-first 단순 서버 경로와 더 큰 시스템을 위한 Postgres/Redis 확장 경로.
115
+ - Schema validation, error handling, security helper, middleware.
116
+ - DB schema에서 server, API, state, UI까지 이어지는 type-safe flow.
117
+ - Schema, error, API description, UI copy에 걸친 i18n.
118
+ - 같은 정의에서 생성되는 DB/API 문서와 테스트 가능한 endpoint reference.
119
+ - Upload, authentication, admin, chat, board, notification 같은 조립 가능한 feature block.
120
+
121
+ 배포와 문서 작성에 하루를 쓰고 있다면 뭔가 잘못된 것입니다. Akan은 schema와 endpoint 정의가
122
+ table reference, runtime contract, API docs, testable endpoint reference가 되도록 설계됩니다.
123
+
124
+ ## 하나의 패키지, 여러 경계
125
+
126
+ Akan은 하나의 npm package인 `akanjs`로 배포됩니다.
127
+
128
+ root import는 의도적으로 작게 유지됩니다. server-only, client-only, UI, tooling surface를 명확히
129
+ 나누기 위해 subpath import를 사용하세요.
130
+
131
+ ```ts
132
+ import { Int, dayjs } from "akanjs/base";
133
+ import { via } from "akanjs/constant";
134
+ import { endpoint } from "akanjs/signal";
135
+ import { fetch } from "akanjs/fetch";
136
+ import { Button, Layout } from "akanjs/ui";
137
+ import type { PageConfig } from "akanjs/client";
138
+ ```
139
+
140
+ ```css
141
+ @import "akanjs/ui/styles.css";
142
+ ```
143
+
144
+ 이 구조는 설치와 업데이트를 단순하게 만들면서도 런타임 경계를 유지합니다. 프론트엔드 빌드는
145
+ UI barrel import를 leaf import로 다시 써서 클라이언트 번들을 작게 유지할 수 있습니다.
146
+
147
+ ## 패키지 Surface
148
+
149
+ | Subpath | 역할 |
150
+ | --- | --- |
151
+ | `akanjs/base` | core primitive, scalar helper, environment helper, symbol, common type. |
152
+ | `akanjs/common` | 여러 Akan surface에서 함께 쓰는 cross-runtime helper. |
153
+ | `akanjs/constant` | model declaration, schema shaping, serialization, default, `via` builder. |
154
+ | `akanjs/dictionary` | locale, translation, natural-language metadata helper. |
155
+ | `akanjs/document` | database document schema, query builder, loader, persistence utility. |
156
+ | `akanjs/signal` | endpoint, slice, guard, middleware, serializer, typed signal contract. |
157
+ | `akanjs/service` | service module, adaptor, dependency injection metadata, business logic runtime. |
158
+ | `akanjs/fetch` | typed fetch client, HTTP client, WebSocket client, request storage. |
159
+ | `akanjs/store` | domain state, action, store registry, root-store helper. |
160
+ | `akanjs/ui` | layout, form, modal, table, loading, model view 등 React UI component. |
161
+ | `akanjs/client` | client routing, cookie, storage, locale, device, CSR type, page helper. |
162
+ | `akanjs/client` | Akan page runtime에서 사용하는 client bootstrap과 location helper. |
163
+ | `akanjs/server` | server app runtime, route composition, SSR/RSC artifact, proxy, sitemap, server type. |
164
+ | `akanjs/devkit` | build runner, config loader, code generation, scanner, transform, CLI helper, tooling. |
165
+ | `akanjs/test` | test helper와 sample generation utility. |
166
+ | `akanjs/cli` | programmatic CLI entrypoint. 실행 명령은 `akan`입니다. |
167
+
168
+ 특수 public surface:
169
+
170
+ - `akanjs/ui/styles.css`
171
+ - `akanjs/capacitor.base.config`
172
+ - `akanjs/server/rsc-worker`
173
+ - `akanjs/package.json`
174
+
175
+ ## CLI 개요
176
+
177
+ `akan` 명령은 워크스페이스 전체 생명주기를 관리합니다.
178
+
179
+ ```bash
180
+ akan create-workspace
181
+ akan create-application <app-name>
182
+ akan create-module
183
+ akan create-scalar
184
+ akan start <app-name> --open
185
+ akan build <app-name>
186
+ akan lint-all
187
+ akan update
188
+ ```
189
+
190
+ 주요 영역:
191
+
192
+ - **Workspace**: workspace 생성, Mongo 설정 생성, lint, sync.
193
+ - **Application**: app start, build, typecheck, package, release.
194
+ - **Library**: shared library 생성, 설치, sync, push, pull.
195
+ - **Module and scalar**: domain module, model, view, unit, template, store 생성.
196
+ - **Cloud and release**: deployment asset 준비와 Akan package version update.
197
+ - **Guidelines**: agent와 contributor를 위한 framework coding guideline 생성과 확인.
198
+
199
+ ## 애플리케이션 설정
200
+
201
+ `akan.config.ts`는 앱 단위 설정의 중심입니다. 단순한 앱에서는 비어 있을 수 있고, 필요할 때만
202
+ routes, domains, base paths, mobile settings로 확장됩니다.
203
+
204
+ ```ts
205
+ import type { AppConfig } from "akanjs/devkit";
206
+
207
+ const config: AppConfig = {
208
+ routes: [
209
+ { domains: { main: ["example.com", "www.example.com"] }, basePath: "web" },
210
+ { domains: {}, basePath: "app" },
211
+ ],
212
+ mobile: {
213
+ appName: "Example",
214
+ appId: "com.example.app",
215
+ version: "1.0.0",
216
+ buildNum: 1,
217
+ },
218
+ };
219
+
220
+ export default config;
221
+ ```
222
+
223
+ ## Contributor Notes
224
+
225
+ 이 저장소는 Bun-first monorepo입니다. Framework code는 `pkgs/akanjs`, application은 `apps`,
226
+ shared library는 `libs`, deployment asset은 `infra`에 있습니다.
227
+
228
+ 유용한 명령:
229
+
230
+ ```bash
231
+ akan lint-all --fix=false
232
+ akan build <appName>
233
+ akan start <appName>
234
+ ```
235
+
236
+ framework code를 수정할 때는 기존 subpath를 우선 사용하고 root `akanjs` entrypoint는 작게 유지하세요.
237
+ 이 package boundary는 runtime design의 일부입니다.
238
+
239
+ ## 오픈소스 메모
240
+
241
+ - License: MIT. root `LICENSE`를 참고하세요.
242
+ - Repository: [akan-team/akanjs](https://github.com/akan-team/akanjs).
243
+ - Contribution guide: root `CONTRIBUTING.md`를 참고하세요.
244
+ - Code of conduct: root `CODE_OF_CONDUCT.md`를 참고하세요.
package/README.md CHANGED
@@ -1,11 +1,242 @@
1
- # akan
1
+ # Akan.js
2
2
 
3
- This library was generated with [Nx](https://nx.dev).
3
+ [한국어](./README.ko.md) | [Docs](https://akanjs.com/docs) | [npm](https://www.npmjs.com/package/akanjs)
4
4
 
5
- ## Building
5
+ **Write the business, not the plumbing.**
6
6
 
7
- Run `nx build akan` to build the library.
7
+ Akan.js is a Bun-first full-stack TypeScript framework for teams that want business definitions to be the
8
+ application. One cohesive codebase can produce SEO web surfaces, iOS and Android app surfaces, servers,
9
+ database contracts, infrastructure artifacts, and documentation.
8
10
 
9
- ## Running unit tests
11
+ ```bash
12
+ bunx create-akan-workspace@latest
13
+ ```
10
14
 
11
- Run `nx test akan` to execute the unit tests via [Jest](https://jestjs.io).
15
+ ## Why Akan
16
+
17
+ Akan is designed for teams and solo builders who would rather describe what the business does than keep
18
+ rewriting the same intent for each technical layer. Define the domain once, then let the framework connect
19
+ the schema, API, fetch client, store, UI, server, deployment artifacts, and generated references.
20
+
21
+ - **Agents write**: business definitions are the source of truth; generation handles repetitive framework code.
22
+ - **Keep it minimal**: one line of intent can flow across web, app, server, database, and deployment.
23
+ - **Always readable**: fewer files, strict conventions, and predictable declarations keep code clear months later.
24
+ - **Nice to review**: focused domain changes are easier to inspect, approve, and ship.
25
+
26
+ ## Requirements
27
+
28
+ - [Bun](https://bun.sh) `>=1.3.13`
29
+ - TypeScript-first application code
30
+ - React-based UI surfaces
31
+
32
+ ## Quick Start
33
+
34
+ Create a workspace directly:
35
+
36
+ ```bash
37
+ bunx create-akan-workspace@latest
38
+ ```
39
+
40
+ Or install the CLI globally:
41
+
42
+ ```bash
43
+ bun install -g akanjs --latest
44
+ akan create-workspace
45
+ cd <workspace-name>
46
+ akan start <app-name> --open
47
+ ```
48
+
49
+ A minimal app can start with almost no configuration:
50
+
51
+ ```ts
52
+ import type { AppConfig } from "akanjs/devkit";
53
+
54
+ const config: AppConfig = {};
55
+
56
+ export default config;
57
+ ```
58
+
59
+ Production apps can grow into routes, base paths, domains, mobile metadata, and deployment options through
60
+ `akan.config.ts`.
61
+
62
+ ## Readable By Design
63
+
64
+ Akan keeps long-lived applications understandable by making the important decisions explicit and repeatable.
65
+
66
+ - **One configuration surface**: `akan.config.ts` is the app-level control plane. It can stay empty until the
67
+ app actually needs routes, domains, base paths, mobile settings, or deployment options.
68
+ - **Monorepo-native reuse**: shared libraries and domain modules are first-class, so validated business code can
69
+ be reused without rebuilding the same wheel in each app.
70
+ - **Strict structure, familiar code**: file locations, names, declarations, and module boundaries follow the same
71
+ pattern across the workspace, so code written by another contributor still reads like local code.
72
+
73
+ ## The Domain Module
74
+
75
+ The domain module is the center of Akan development. Instead of organizing code by technical layer first,
76
+ Akan organizes code around business domains such as `user`, `product`, `ticket`, or `project`.
77
+
78
+ ```text
79
+ lib/product/
80
+ ├── product.constant.ts # model, scalar, enum, schema definition
81
+ ├── product.dictionary.ts # i18n labels, descriptions, errors
82
+ ├── product.signal.ts # typed endpoint contract
83
+ ├── product.document.ts # persistence and document queries
84
+ ├── product.service.ts # business logic
85
+ ├── product.store.ts # domain state and actions
86
+ ├── Product.Template.tsx # form-oriented UI
87
+ ├── Product.Unit.tsx # list/item UI
88
+ ├── Product.View.tsx # detail UI
89
+ └── Product.Zone.tsx # page/container UI
90
+ ```
91
+
92
+ ```mermaid
93
+ flowchart LR
94
+ ConstantDictionarySignal["constant + dictionary + signal"] --> DocumentService["document + service"]
95
+ ConstantDictionarySignal --> StoreComponents["store + UI components"]
96
+ DocumentService --> ServerRuntime["server runtime"]
97
+ StoreComponents --> ClientRuntime["client runtime"]
98
+ ServerRuntime --> DeployArtifacts["deploy artifacts"]
99
+ ClientRuntime --> DeployArtifacts
100
+ ```
101
+
102
+ This structure lets one model and one contract flow through the database, server, API, state management,
103
+ and UI without duplicating intent across layers.
104
+
105
+ ## What Akan Builds
106
+
107
+ Akan is one framework for the pieces that normally become separate projects:
108
+
109
+ - SEO-optimized server-side rendered web surfaces.
110
+ - iOS and Android friendly client-side rendered app surfaces with page transitions.
111
+ - Bun-powered HTTP and WebSocket servers.
112
+ - SQLite-first simple server paths, with Postgres and Redis expansion paths for larger systems.
113
+ - Schema validation, error handling, security helpers, and middleware.
114
+ - Type-safe flow from database schema to server, API, state, and UI.
115
+ - Internationalized schemas, errors, API descriptions, and UI copy.
116
+ - Generated database and API documentation from the same definitions that run the app.
117
+ - Composable feature blocks for upload, authentication, admin, chat, boards, and notifications.
118
+
119
+ Deployment and documentation should not consume a day of work. Akan is built so schema and endpoint
120
+ definitions can also become table references, runtime contracts, API docs, and testable endpoint references.
121
+
122
+ ## One Package, Many Boundaries
123
+
124
+ Akan is published as a single npm package: `akanjs`.
125
+
126
+ The root import is intentionally small. Use subpath imports to keep server-only, client-only, UI, and
127
+ tooling surfaces clear:
128
+
129
+ ```ts
130
+ import { Int, dayjs } from "akanjs/base";
131
+ import { via } from "akanjs/constant";
132
+ import { endpoint } from "akanjs/signal";
133
+ import { fetch } from "akanjs/fetch";
134
+ import { Button, Layout } from "akanjs/ui";
135
+ import type { PageConfig } from "akanjs/client";
136
+ ```
137
+
138
+ ```css
139
+ @import "akanjs/ui/styles.css";
140
+ ```
141
+
142
+ This model keeps install and update flows simple while preserving runtime boundaries and allowing the
143
+ frontend build to rewrite UI barrel imports into leaf imports.
144
+
145
+ ## Package Surface
146
+
147
+ | Subpath | Purpose |
148
+ | --- | --- |
149
+ | `akanjs/base` | Core primitives, scalar helpers, environment helpers, symbols, and common types. |
150
+ | `akanjs/common` | Shared cross-runtime helpers used by multiple Akan surfaces. |
151
+ | `akanjs/constant` | Model declarations, schema shaping, serialization, defaults, and the `via` builder. |
152
+ | `akanjs/dictionary` | Locale, translation, and dictionary helpers for natural-language metadata. |
153
+ | `akanjs/document` | Database document schemas, query builders, loaders, and persistence utilities. |
154
+ | `akanjs/signal` | Endpoint, slice, guard, middleware, serializer, and typed signal contracts. |
155
+ | `akanjs/service` | Service modules, adaptors, dependency injection metadata, and business logic runtime. |
156
+ | `akanjs/fetch` | Typed fetch clients, HTTP clients, WebSocket clients, and request storage. |
157
+ | `akanjs/store` | Domain state, actions, store registry, and root-store helpers. |
158
+ | `akanjs/ui` | React components and UI primitives such as layout, form, modal, table, loading, and model views. |
159
+ | `akanjs/client` | Client routing, cookies, storage, locale, device, CSR types, and page helpers. |
160
+ | `akanjs/client` | Client bootstrapping and location helpers used by Akan page runtimes. |
161
+ | `akanjs/server` | Server app runtime, route composition, SSR/RSC artifacts, proxying, sitemap, and server types. |
162
+ | `akanjs/devkit` | Build runners, config loaders, code generation, scanners, transforms, CLI helpers, and tooling. |
163
+ | `akanjs/test` | Test helpers and sample generation utilities. |
164
+ | `akanjs/cli` | Programmatic CLI entrypoint. The executable command is `akan`. |
165
+
166
+ Special public surfaces:
167
+
168
+ - `akanjs/ui/styles.css`
169
+ - `akanjs/capacitor.base.config`
170
+ - `akanjs/server/rsc-worker`
171
+ - `akanjs/package.json`
172
+
173
+ ## CLI Overview
174
+
175
+ The `akan` command manages the whole workspace lifecycle.
176
+
177
+ ```bash
178
+ akan create-workspace
179
+ akan create-application <app-name>
180
+ akan create-module
181
+ akan create-scalar
182
+ akan start <app-name> --open
183
+ akan build <app-name>
184
+ akan lint-all
185
+ akan update
186
+ ```
187
+
188
+ Common areas:
189
+
190
+ - **Workspace**: create workspaces, generate Mongo configuration, lint and sync projects.
191
+ - **Application**: start, build, typecheck, package, and release apps.
192
+ - **Library**: create, install, sync, push, and pull shared libraries.
193
+ - **Module and scalar**: generate domain modules, models, views, units, templates, and stores.
194
+ - **Cloud and release**: prepare deployment assets and update Akan package versions.
195
+ - **Guidelines**: generate and inspect framework coding guidelines for agents and contributors.
196
+
197
+ ## Application Configuration
198
+
199
+ `akan.config.ts` is the single place for app-level configuration. It can be empty for simple apps, then
200
+ grow only when the app needs routes, domains, base paths, or mobile settings.
201
+
202
+ ```ts
203
+ import type { AppConfig } from "akanjs/devkit";
204
+
205
+ const config: AppConfig = {
206
+ routes: [
207
+ { domains: { main: ["example.com", "www.example.com"] }, basePath: "web" },
208
+ { domains: {}, basePath: "app" },
209
+ ],
210
+ mobile: {
211
+ appName: "Example",
212
+ appId: "com.example.app",
213
+ version: "1.0.0",
214
+ buildNum: 1,
215
+ },
216
+ };
217
+
218
+ export default config;
219
+ ```
220
+
221
+ ## Contributor Notes
222
+
223
+ This repository is a Bun-first monorepo. Framework code lives under `pkgs/akanjs`, applications under
224
+ `apps`, shared libraries under `libs`, and deployment assets under `infra`.
225
+
226
+ Useful commands:
227
+
228
+ ```bash
229
+ akan lint-all --fix=false
230
+ akan build <appName>
231
+ akan start <appName>
232
+ ```
233
+
234
+ When editing framework code, prefer established subpaths and keep the root `akanjs` entrypoint small.
235
+ The package boundary is part of the runtime design.
236
+
237
+ ## Open Source Notes
238
+
239
+ - License: MIT. See the root `LICENSE`.
240
+ - Repository: [akan-team/akanjs](https://github.com/akan-team/akanjs).
241
+ - Contribution guide: see the root `CONTRIBUTING.md`.
242
+ - Code of conduct: see the root `CODE_OF_CONDUCT.md`.