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,173 @@
1
+ import type { GetStateObject, SLICE_META } from "akanjs/base";
2
+ import type { FetchPolicy } from "akanjs/common";
3
+ import type { ConstantModel, DefaultOf, ProtoFile, PurifiedModel } from "akanjs/constant";
4
+ import type { DatabaseModel, ExtractSort, FilterInstance } from "akanjs/document";
5
+ import type { SliceCls, SliceInfoArgs } from "akanjs/signal";
6
+ import type { ClientEdit, ClientInit, ClientView, EditReturn, InitReturn, ViewReturn } from "./appliedReturn.type";
7
+
8
+ type _SliceMap<S extends SliceCls> = S[typeof SLICE_META];
9
+ type _RefName<S extends SliceCls> = S["srv"]["cnst"]["refName"];
10
+ type _Cap<S extends SliceCls> = S["srv"]["cnst"]["_CapitalizedRefName"];
11
+ type _Input<S extends SliceCls> = S["srv"]["cnst"]["_Input"];
12
+ type _Full<S extends SliceCls> = S["srv"]["cnst"]["_Full"];
13
+ type _Light<S extends SliceCls> = S["srv"]["cnst"]["_Light"];
14
+ type _Insight<S extends SliceCls> = S["srv"]["cnst"]["_Insight"];
15
+ type _PurifiedInput<S extends SliceCls> = S["srv"]["cnst"]["_PurifiedInput"];
16
+ type _DefaultInput<S extends SliceCls> = S["srv"]["cnst"]["_DefaultInput"];
17
+ type _StateLight<S extends SliceCls> = S["srv"]["cnst"]["_StateLight"];
18
+ type _StateInsight<S extends SliceCls> = S["srv"]["cnst"]["_StateInsight"];
19
+ type _Filter<S extends SliceCls> = S["srv"]["db"]["_Filter"];
20
+ type _Sort<S extends SliceCls> = S["srv"]["db"]["_Sort"];
21
+ type _LightWithId<S extends SliceCls> = _Light<S> extends { id: string } ? _Light<S> : { id: string };
22
+ type _SliceFetchInitOption<S extends SliceCls> = FetchInitOption<_Input<S>, _Filter<S>, _DefaultInput<S>, _Sort<S>>;
23
+
24
+ type SliceListFetch<S extends SliceCls> = {
25
+ [Suffix in keyof _SliceMap<S> as Suffix extends string ? `${_RefName<S>}List${Capitalize<Suffix>}` : never]: (
26
+ ...args: [
27
+ ...SliceInfoArgs<_SliceMap<S>[Suffix]>,
28
+ skip?: number | null,
29
+ limit?: number | null,
30
+ sort?: _Sort<S> | null,
31
+ fetchPolicy?: FetchPolicy,
32
+ ]
33
+ ) => Promise<_Light<S>[]>;
34
+ };
35
+
36
+ type SliceInsightFetch<S extends SliceCls> = {
37
+ [Suffix in keyof _SliceMap<S> as Suffix extends string ? `${_RefName<S>}Insight${Capitalize<Suffix>}` : never]: (
38
+ ...args: [...SliceInfoArgs<_SliceMap<S>[Suffix]>, fetchPolicy?: FetchPolicy]
39
+ ) => Promise<_Insight<S>>;
40
+ };
41
+
42
+ type SliceInitFetch<S extends SliceCls> = {
43
+ [Suffix in keyof _SliceMap<S> as Suffix extends string ? `init${_Cap<S>}${Capitalize<Suffix>}` : never]: (
44
+ ...args: [...SliceInfoArgs<_SliceMap<S>[Suffix]>, option?: _SliceFetchInitOption<S>]
45
+ ) => Promise<
46
+ InitReturn<
47
+ _RefName<S>,
48
+ Suffix & string,
49
+ _Light<S>,
50
+ _Insight<S>,
51
+ SliceInfoArgs<_SliceMap<S>[Suffix]>,
52
+ _Filter<S>,
53
+ _Cap<S>,
54
+ Suffix extends string ? Capitalize<Suffix> : never,
55
+ _LightWithId<S>,
56
+ GetStateObject<_LightWithId<S>>,
57
+ GetStateObject<_Insight<S>>,
58
+ _Sort<S>
59
+ >
60
+ >;
61
+ };
62
+
63
+ type SliceGetInitFetch<S extends SliceCls> = {
64
+ [Suffix in keyof _SliceMap<S> as Suffix extends string ? `get${_Cap<S>}Init${Capitalize<Suffix>}` : never]: (
65
+ ...args: [...SliceInfoArgs<_SliceMap<S>[Suffix]>, option?: _SliceFetchInitOption<S>]
66
+ ) => ClientInit<
67
+ _RefName<S>,
68
+ _Light<S>,
69
+ _Insight<S>,
70
+ SliceInfoArgs<_SliceMap<S>[Suffix]>,
71
+ _Filter<S>,
72
+ _Cap<S>,
73
+ GetStateObject<_LightWithId<S>>,
74
+ GetStateObject<_Insight<S>>,
75
+ _Sort<S>
76
+ >;
77
+ };
78
+
79
+ export type GetFetchTypeFromSlice<SlceCls extends SliceCls> = SlceCls["srv"]["cnst"] extends ConstantModel
80
+ ? SlceCls["srv"]["db"] extends DatabaseModel
81
+ ? SliceListFetch<SlceCls> &
82
+ SliceInsightFetch<SlceCls> &
83
+ SliceInitFetch<SlceCls> &
84
+ SliceGetInitFetch<SlceCls> &
85
+ RawBaseSliceFetchType<
86
+ _RefName<SlceCls>,
87
+ _Input<SlceCls>,
88
+ _Full<SlceCls>,
89
+ _Light<SlceCls>,
90
+ _Cap<SlceCls>,
91
+ _PurifiedInput<SlceCls>
92
+ > &
93
+ AppliedBaseSliceFetchType<
94
+ _RefName<SlceCls>,
95
+ _Input<SlceCls>,
96
+ _Full<SlceCls>,
97
+ _Cap<SlceCls>,
98
+ _PurifiedInput<SlceCls>
99
+ >
100
+ : never
101
+ : never;
102
+
103
+ type RawBaseSliceFetchType<
104
+ RefName extends string,
105
+ Input,
106
+ Full,
107
+ Light,
108
+ _CapitalizedRefName extends string = Capitalize<RefName>,
109
+ _PurifiedInput = PurifiedModel<Input>,
110
+ > = {
111
+ [K in RefName]: (id: string, fetchPolicy?: FetchPolicy) => Promise<Full>;
112
+ } & {
113
+ [K in `light${_CapitalizedRefName}`]: (id: string, fetchPolicy?: FetchPolicy) => Promise<Light>;
114
+ } & {
115
+ [K in `create${_CapitalizedRefName}`]: (input: _PurifiedInput, fetchPolicy?: FetchPolicy) => Promise<Full>;
116
+ } & {
117
+ [K in `update${_CapitalizedRefName}`]: (
118
+ id: string,
119
+ input: _PurifiedInput,
120
+ fetchPolicy?: FetchPolicy,
121
+ ) => Promise<Full>;
122
+ } & {
123
+ [K in `remove${_CapitalizedRefName}`]: (id: string, fetchPolicy?: FetchPolicy) => Promise<void>;
124
+ };
125
+
126
+ type AppliedBaseSliceFetchType<
127
+ RefName extends string,
128
+ Input,
129
+ Full,
130
+ _CapitalizedRefName extends string = Capitalize<RefName>,
131
+ _PurifiedInput = PurifiedModel<Input>,
132
+ > = {
133
+ [K in `view${_CapitalizedRefName}`]: (id: string, option?: FetchPolicy) => Promise<ViewReturn<RefName, Full>>;
134
+ } & {
135
+ [K in `get${_CapitalizedRefName}View`]: (id: string, option?: FetchPolicy) => ClientView<RefName, Full>;
136
+ } & {
137
+ [K in `edit${_CapitalizedRefName}`]: (id: string, option?: FetchPolicy) => Promise<EditReturn<RefName, Full>>;
138
+ } & {
139
+ [K in `get${_CapitalizedRefName}Edit`]: (id: string, option?: FetchPolicy) => ClientEdit<RefName, Full>;
140
+ } & {
141
+ [K in `add${_CapitalizedRefName}Files`]: (
142
+ fileList: FileList,
143
+ parentId?: string,
144
+ option?: FetchPolicy,
145
+ ) => Promise<ProtoFile[]>;
146
+ } & {
147
+ [K in `merge${_CapitalizedRefName}`]: (
148
+ modelOrId: Full | string,
149
+ data: Partial<_PurifiedInput>,
150
+ option?: FetchPolicy,
151
+ ) => Promise<Full>;
152
+ };
153
+
154
+ export interface FetchInitForm<
155
+ Input,
156
+ Filter extends FilterInstance,
157
+ _DefaultInput = DefaultOf<Input>,
158
+ _Sort = ExtractSort<Filter>,
159
+ > {
160
+ page?: number;
161
+ limit?: number;
162
+ sort?: _Sort;
163
+ default?: Partial<_DefaultInput>;
164
+ invalidate?: boolean;
165
+ insight?: boolean;
166
+ }
167
+
168
+ type FetchInitOption<
169
+ Input,
170
+ Filter extends FilterInstance,
171
+ _DefaultInput = DefaultOf<Input>,
172
+ _Sort = ExtractSort<Filter>,
173
+ > = FetchPolicy & FetchInitForm<Input, Filter, _DefaultInput, _Sort>;
package/fetch/index.ts ADDED
@@ -0,0 +1,4 @@
1
+ export * from "./client";
2
+ export * from "./fetchType";
3
+ export * from "./requestStorage";
4
+ export * from "./types";
@@ -0,0 +1,127 @@
1
+ export interface RequestStorage {
2
+ run<T>(store: Request, callback: () => T): T;
3
+ getStore(): Request | undefined;
4
+ }
5
+
6
+ export type AkanTheme = "css" | "system" | (string & {});
7
+
8
+ declare global {
9
+ var __AKAN_REQUEST_STORAGE__: RequestStorage | undefined;
10
+ var __AKAN_REQUEST_THEME__: WeakMap<Request, AkanTheme> | undefined;
11
+ var __AKAN_REQUEST_QUERY_CACHE__: WeakMap<Request, Map<string, Promise<unknown>>> | undefined;
12
+ var __AKAN_REQUEST_FALLBACK_STACK__: Request[] | undefined;
13
+ }
14
+
15
+ let _requestStorage: RequestStorage | null = null;
16
+ if (typeof window === "undefined") {
17
+ try {
18
+
19
+ const { AsyncLocalStorage } = require("node:async_hooks") as typeof import("node:async_hooks");
20
+ globalThis.__AKAN_REQUEST_STORAGE__ ??= new AsyncLocalStorage() as RequestStorage;
21
+ _requestStorage = globalThis.__AKAN_REQUEST_STORAGE__;
22
+ } catch {}
23
+ }
24
+
25
+ export const requestStorage: RequestStorage | null = _requestStorage;
26
+
27
+ function requestThemeMap(): WeakMap<Request, AkanTheme> {
28
+ globalThis.__AKAN_REQUEST_THEME__ ??= new WeakMap<Request, AkanTheme>();
29
+ return globalThis.__AKAN_REQUEST_THEME__;
30
+ }
31
+
32
+ function requestQueryCacheMap(): WeakMap<Request, Map<string, Promise<unknown>>> {
33
+ globalThis.__AKAN_REQUEST_QUERY_CACHE__ ??= new WeakMap<Request, Map<string, Promise<unknown>>>();
34
+ return globalThis.__AKAN_REQUEST_QUERY_CACHE__;
35
+ }
36
+
37
+ /** Stores theme preference on the active request when server rendering. */
38
+ export function setRequestTheme(theme: AkanTheme | undefined): void {
39
+ const req = getRequest();
40
+ if (!req || theme === undefined) return;
41
+ requestThemeMap().set(req, theme);
42
+ }
43
+
44
+ export function getRequestTheme(): AkanTheme | undefined {
45
+ const req = getRequest();
46
+ if (!req) return undefined;
47
+ return requestThemeMap().get(req);
48
+ }
49
+
50
+ export function pushRequestFallback(req: Request): () => void {
51
+ globalThis.__AKAN_REQUEST_FALLBACK_STACK__ ??= [];
52
+ const stack = globalThis.__AKAN_REQUEST_FALLBACK_STACK__;
53
+ stack.push(req);
54
+ return () => {
55
+ const index = stack.lastIndexOf(req);
56
+ if (index >= 0) stack.splice(index, 1);
57
+ };
58
+ }
59
+
60
+ /** Returns the active server request from AsyncLocalStorage or the fallback stack. */
61
+ export function getRequest(): Request | undefined {
62
+ return requestStorage?.getStore() ?? globalThis.__AKAN_REQUEST_FALLBACK_STACK__?.at(-1);
63
+ }
64
+
65
+ /** Deduplicates a promise-producing query within the active request. */
66
+ export function memoizeRequestQuery<T>(key: string, factory: () => Promise<T>): Promise<T> {
67
+ const req = getRequest();
68
+ if (!req) return factory();
69
+ const cacheMap = requestQueryCacheMap();
70
+ let cache = cacheMap.get(req);
71
+ if (!cache) {
72
+ cache = new Map<string, Promise<unknown>>();
73
+ cacheMap.set(req, cache);
74
+ }
75
+ const existing = cache.get(key);
76
+ if (existing) return existing as Promise<T>;
77
+ const promise = factory();
78
+ cache.set(key, promise);
79
+ return promise;
80
+ }
81
+
82
+ /** Returns current request headers as a Map, or an empty Map outside a request. */
83
+ export function headers(): Map<string, string> {
84
+ const req = getRequest();
85
+ const map = new Map<string, string>();
86
+ if (!req) return map;
87
+ req.headers.forEach((value, key) => {
88
+ map.set(key, value);
89
+ });
90
+ return map;
91
+ }
92
+
93
+ export interface CookieEntry {
94
+ name: string;
95
+ value: string;
96
+ }
97
+
98
+ export function parseCookieHeader(cookieHeader: string): Map<string, CookieEntry> {
99
+ const out = new Map<string, CookieEntry>();
100
+ for (const segment of cookieHeader.split(";")) {
101
+ const trimmed = segment.trim();
102
+ if (!trimmed) continue;
103
+ const eq = trimmed.indexOf("=");
104
+ if (eq === -1) continue;
105
+ const name = trimmed.slice(0, eq).trim();
106
+ const raw = trimmed.slice(eq + 1).trim();
107
+
108
+ const value = raw.startsWith("j:")
109
+ ? (() => {
110
+ try {
111
+ return JSON.parse(raw.slice(2)) as string;
112
+ } catch {
113
+ return raw;
114
+ }
115
+ })()
116
+ : raw;
117
+ out.set(name, { name, value });
118
+ }
119
+ return out;
120
+ }
121
+
122
+ /** Returns parsed cookies from the current request, or an empty Map outside a request. */
123
+ export function cookies(): Map<string, CookieEntry> {
124
+ const req = getRequest();
125
+ if (!req) return new Map();
126
+ return parseCookieHeader(req.headers.get("cookie") ?? "");
127
+ }
@@ -0,0 +1,131 @@
1
+ import { type Cls, ENDPOINT_META, PrimitiveRegistry, type PrimitiveScalar, SLICE_META } from "akanjs/base";
2
+ import { Logger } from "akanjs/common";
3
+ import { ConstantRegistry, type ConstantType } from "akanjs/constant";
4
+ import type { LiveRegistry } from "akanjs/service";
5
+ import type {
6
+ ArgInfo,
7
+ EndpointArgProps,
8
+ EndpointCls,
9
+ EndpointInfo,
10
+ SerializedArg,
11
+ SerializedEndpoint,
12
+ SerializedReturns,
13
+ SerializedSignal,
14
+ SerializedSlice,
15
+ SliceCls,
16
+ SliceInfo,
17
+ } from "akanjs/signal";
18
+
19
+ export class FetchSerializer {
20
+ static logger = new Logger("FetchSerializer");
21
+
22
+ static #resolveRefInfo(modelRef: Cls): { refName: string; modelType?: ConstantType } {
23
+ if (PrimitiveRegistry.has(modelRef))
24
+ return { refName: PrimitiveRegistry.getName(modelRef as typeof PrimitiveScalar) };
25
+ const refName = ConstantRegistry.getRefName(modelRef);
26
+ const modelType = (modelRef as Cls<unknown, { modelType?: ConstantType }>).modelType;
27
+ return { refName, modelType };
28
+ }
29
+
30
+ static #serializeArg(argInfo: ArgInfo<EndpointArgProps<boolean>>): SerializedArg {
31
+ const { refName, modelType } = FetchSerializer.#resolveRefInfo(argInfo.argRef as Cls);
32
+ return {
33
+ type: argInfo.type,
34
+ refName,
35
+ name: argInfo.name,
36
+ ...(modelType ? { modelType: modelType as SerializedArg["modelType"] } : {}),
37
+ ...(argInfo.arrDepth ? { arrDepth: argInfo.arrDepth } : {}),
38
+ ...(argInfo.option?.nullable ? { nullable: true } : {}),
39
+ ...(argInfo.option?.example != null
40
+ ? {
41
+ example:
42
+ typeof argInfo.option.example === "object" ? argInfo.option.example.toDate() : argInfo.option.example,
43
+ }
44
+ : {}),
45
+ };
46
+ }
47
+
48
+ static #serializeReturns(endpointInfo: EndpointInfo): SerializedReturns {
49
+ const { refName, modelType } = FetchSerializer.#resolveRefInfo(endpointInfo.returns.returnRef as Cls);
50
+ return {
51
+ refName,
52
+ ...(modelType ? { modelType: modelType as SerializedReturns["modelType"] } : {}),
53
+ ...(endpointInfo.returns.arrDepth ? { arrDepth: endpointInfo.returns.arrDepth } : {}),
54
+ ...(endpointInfo.signalOption.partial?.length ? { partial: endpointInfo.signalOption.partial as string[] } : {}),
55
+ ...(endpointInfo.signalOption.nullable ? { nullable: true } : {}),
56
+ };
57
+ }
58
+
59
+ static #serializeEndpoint(endpointInfo: EndpointInfo): SerializedEndpoint {
60
+ const guards = endpointInfo.signalOption.guards?.map((g) => g.name);
61
+ return {
62
+ type: endpointInfo.type,
63
+ args: endpointInfo.args.map(FetchSerializer.#serializeArg),
64
+ returns: FetchSerializer.#serializeReturns(endpointInfo),
65
+ ...(endpointInfo.signalOption.path ? { path: endpointInfo.signalOption.path } : {}),
66
+ ...(endpointInfo.signalOption.prefix !== undefined ? { prefix: endpointInfo.signalOption.prefix } : {}),
67
+ ...(endpointInfo.signalOption.globalPrefix !== undefined
68
+ ? { globalPrefix: endpointInfo.signalOption.globalPrefix }
69
+ : {}),
70
+ ...(guards?.length ? { guards } : {}),
71
+ };
72
+ }
73
+
74
+ static #serializeSlice(sliceInfo: SliceInfo): SerializedSlice {
75
+ const guards = sliceInfo.signalOption.guards?.map((g) => g.name);
76
+ return {
77
+ args: sliceInfo.args.map(FetchSerializer.#serializeArg),
78
+ ...(sliceInfo.signalOption.path ? { path: sliceInfo.signalOption.path } : {}),
79
+ ...(guards?.length ? { guards } : {}),
80
+ };
81
+ }
82
+
83
+ static serializeDatabaseSignal(sliceCls: SliceCls, endpointCls: EndpointCls): SerializedSignal {
84
+ const sliceMeta = sliceCls[SLICE_META] as { [key: string]: SliceInfo };
85
+ const endpointMeta = endpointCls[ENDPOINT_META] as { [key: string]: EndpointInfo };
86
+ const prefix = sliceCls.srv.cnst?.refName;
87
+ const slice: { [key: string]: SerializedSlice } = {};
88
+ for (const [key, sliceInfo] of Object.entries(sliceMeta)) {
89
+ slice[key] = FetchSerializer.#serializeSlice(sliceInfo);
90
+ }
91
+ const endpoint: { [key: string]: SerializedEndpoint } = {};
92
+ for (const [key, endpointInfo] of Object.entries(endpointMeta)) {
93
+ endpoint[key] = FetchSerializer.#serializeEndpoint(endpointInfo);
94
+ }
95
+ return {
96
+ ...(prefix ? { prefix } : {}),
97
+ ...(Object.keys(slice).length ? { slice } : {}),
98
+ ...(sliceCls.getGuards.filter((g) => g.name !== "None").length
99
+ ? { getGuards: sliceCls.getGuards.map((g) => g.name) }
100
+ : {}),
101
+ ...(sliceCls.cruGuards.filter((g) => g.name !== "None").length
102
+ ? { cruGuards: sliceCls.cruGuards.map((g) => g.name) }
103
+ : {}),
104
+ endpoint,
105
+ };
106
+ }
107
+
108
+ static serializeServiceSignal(endpointCls: EndpointCls): SerializedSignal {
109
+ const endpointMeta = endpointCls[ENDPOINT_META] as { [key: string]: EndpointInfo };
110
+ const endpoint: { [key: string]: SerializedEndpoint } = {};
111
+ for (const [key, endpointInfo] of Object.entries(endpointMeta)) {
112
+ endpoint[key] = FetchSerializer.#serializeEndpoint(endpointInfo);
113
+ }
114
+ return { endpoint };
115
+ }
116
+
117
+ static serializeRegistry({ endpointCls, sliceCls }: LiveRegistry): { signal: { [key: string]: SerializedSignal } } {
118
+ const serializedSignals: { [key: string]: SerializedSignal } = {};
119
+ for (const [baseName, endpoint] of endpointCls.entries()) {
120
+ const cnst = endpoint.srv.cnst;
121
+ if (cnst) {
122
+ const slice = sliceCls.get(baseName);
123
+ if (!slice) throw new Error(`No slice found for service signal "${baseName}"`);
124
+ serializedSignals[baseName] = FetchSerializer.serializeDatabaseSignal(slice, endpoint);
125
+ } else {
126
+ serializedSignals[baseName] = FetchSerializer.serializeServiceSignal(endpoint);
127
+ }
128
+ }
129
+ return { signal: serializedSignals };
130
+ }
131
+ }
@@ -0,0 +1 @@
1
+ export * from "./fetch.serializer";
package/fetch/types.ts ADDED
@@ -0,0 +1,28 @@
1
+ import { type Environment, getEnv, type SLICE_META } from "akanjs/base";
2
+ import type { DatabaseSignal } from "akanjs/signal";
3
+ import type { SliceMeta } from "./fetchType/appliedReturn.type";
4
+
5
+ /** Account data made available to services for the current app/environment. */
6
+ export type Account<AddData = unknown> = {
7
+ appName: string;
8
+ environment: Environment;
9
+ } & AddData;
10
+ export const getDefaultAccount = (): Account => {
11
+ const env = getEnv();
12
+ return { appName: env.appName, environment: env.environment };
13
+ };
14
+
15
+ type GetSliceNameFromSignal<Signal> =
16
+ Signal extends DatabaseSignal<any, any, any, any>
17
+ ? `${Signal["slice"]["baseName"]}${Capitalize<keyof Signal["slice"][typeof SLICE_META] & string>}`
18
+ : Signal extends { slice: { [K in infer Key]: SliceMeta } }
19
+ ? Key
20
+ : never;
21
+ type GetSliceNamesFromSignals<Signals> = Signals extends [infer First, ...infer Rest]
22
+ ? Rest extends []
23
+ ? GetSliceNameFromSignal<First>
24
+ : GetSliceNamesFromSignals<Rest> | GetSliceNameFromSignal<First>
25
+ : never;
26
+ export type GetSliceMetaObjFromDatabaseSignals<Signals extends unknown[]> = {
27
+ [K in GetSliceNamesFromSignals<Signals>]: SliceMeta;
28
+ };
package/package.json CHANGED
@@ -1,10 +1,207 @@
1
1
  {
2
2
  "name": "akanjs",
3
- "version": "0.0.1",
4
- "type": "commonjs",
3
+ "version": "2.0.0-beta.1",
4
+ "sourceType": "module",
5
+ "type": "module",
5
6
  "bin": {
6
- "runtest": "src/run.js"
7
+ "akan": "./cli/index.js",
8
+ "akan2": "./cli/index.js"
7
9
  },
8
- "types": "./src/index.d.ts",
9
- "main": "./src/index.js"
10
+ "publishConfig": {
11
+ "access": "public"
12
+ },
13
+ "homepage": "https://akanjs.com",
14
+ "license": "MIT",
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "https://github.com/akan-team/akanjs.git",
18
+ "directory": "pkgs/akanjs"
19
+ },
20
+ "exports": {
21
+ ".": {
22
+ "import": "./index.ts",
23
+ "types": "./index.ts",
24
+ "default": "./index.ts"
25
+ },
26
+ "./package.json": "./package.json",
27
+ "./capacitor.base.config": {
28
+ "import": "./devkit/capacitor.base.config.ts",
29
+ "types": "./devkit/capacitor.base.config.ts",
30
+ "default": "./devkit/capacitor.base.config.ts"
31
+ },
32
+ "./base": {
33
+ "import": "./base/index.ts",
34
+ "types": "./base/index.ts",
35
+ "default": "./base/index.ts"
36
+ },
37
+ "./common": {
38
+ "import": "./common/index.ts",
39
+ "types": "./common/index.ts",
40
+ "default": "./common/index.ts"
41
+ },
42
+ "./common/*": "./common/*",
43
+ "./fetch": {
44
+ "import": "./fetch/index.ts",
45
+ "types": "./fetch/index.ts",
46
+ "default": "./fetch/index.ts"
47
+ },
48
+ "./document": {
49
+ "import": "./document/index.ts",
50
+ "types": "./document/index.ts",
51
+ "default": "./document/index.ts"
52
+ },
53
+ "./signal": {
54
+ "import": "./signal/index.ts",
55
+ "types": "./signal/index.ts",
56
+ "default": "./signal/index.ts"
57
+ },
58
+ "./store": {
59
+ "import": "./store/index.ts",
60
+ "types": "./store/index.ts",
61
+ "default": "./store/index.ts"
62
+ },
63
+ "./ui": {
64
+ "import": "./ui/index.ts",
65
+ "types": "./ui/index.ts",
66
+ "default": "./ui/index.ts"
67
+ },
68
+ "./ui/*": "./ui/*",
69
+ "./client": {
70
+ "import": "./client/index.ts",
71
+ "types": "./client/index.ts",
72
+ "default": "./client/index.ts"
73
+ },
74
+ "./webkit": {
75
+ "import": "./webkit/index.ts",
76
+ "types": "./webkit/index.ts",
77
+ "default": "./webkit/index.ts"
78
+ },
79
+ "./webkit/*": "./webkit/*",
80
+ "./server": {
81
+ "import": "./server/index.ts",
82
+ "types": "./server/index.ts",
83
+ "default": "./server/index.ts"
84
+ },
85
+ "./service": {
86
+ "import": "./service/index.ts",
87
+ "types": "./service/index.ts",
88
+ "default": "./service/index.ts"
89
+ },
90
+ "./constant": {
91
+ "import": "./constant/index.ts",
92
+ "types": "./constant/index.ts",
93
+ "default": "./constant/index.ts"
94
+ },
95
+ "./dictionary": {
96
+ "import": "./dictionary/index.ts",
97
+ "types": "./dictionary/index.ts",
98
+ "default": "./dictionary/index.ts"
99
+ },
100
+ "./devkit": {
101
+ "import": "./devkit/index.ts",
102
+ "types": "./devkit/index.ts",
103
+ "default": "./devkit/index.ts"
104
+ },
105
+ "./test": {
106
+ "import": "./test/index.ts",
107
+ "types": "./test/index.ts",
108
+ "default": "./test/index.ts"
109
+ },
110
+ "./cli": {
111
+ "import": "./cli/index.ts",
112
+ "types": "./cli/index.ts",
113
+ "default": "./cli/index.ts"
114
+ },
115
+ "./ui/styles.css": "./ui/styles.css",
116
+ "./server/rsc-worker": {
117
+ "import": "./server/rscWorker.tsx",
118
+ "types": "./server/rscWorker.tsx",
119
+ "default": "./server/rscWorker.tsx"
120
+ }
121
+ },
122
+ "dependencies": {
123
+ "@capacitor-community/contacts": "^7.2.0",
124
+ "@capacitor-community/fcm": "^8.1.0",
125
+ "@capacitor/app": "^8.1.0",
126
+ "@capacitor/browser": "^8.0.3",
127
+ "@capacitor/camera": "^8.2.0",
128
+ "@capacitor/core": "^8.3.4",
129
+ "@capacitor/device": "^8.0.2",
130
+ "@capacitor/geolocation": "^8.2.0",
131
+ "@capacitor/haptics": "^8.0.2",
132
+ "@capacitor/keyboard": "^8.0.3",
133
+ "@capacitor/preferences": "^8.0.1",
134
+ "@capacitor/push-notifications": "^8.1.1",
135
+ "@capgo/capacitor-updater": "^8.46.1",
136
+ "@formatjs/intl-localematcher": "^0.8.8",
137
+ "@inquirer/prompts": "^8.4.3",
138
+ "@langchain/core": "^1.1.47",
139
+ "@langchain/deepseek": "^1.0.26",
140
+ "@langchain/openai": "^1.4.6",
141
+ "@libsql/client": "^0.17.3",
142
+ "@playwright/test": "^1.60.0",
143
+ "@radix-ui/react-dialog": "^1.1.15",
144
+ "@react-spring/web": "^9.7.5",
145
+ "@trapezedev/project": "^7.1.4",
146
+ "@use-gesture/react": "^10.3.1",
147
+ "bullmq": "^5.76.10",
148
+ "capacitor-plugin-safe-area": "^5.0.0",
149
+ "chalk": "^5.6.2",
150
+ "chance": "^1.1.13",
151
+ "clsx": "^2.1.1",
152
+ "commander": "^14.0.3",
153
+ "compare-versions": "^6.1.1",
154
+ "cordova-plugin-purchase": "^13.16.0",
155
+ "croner": "^10.0.1",
156
+ "dataloader": "^2.2.3",
157
+ "dayjs": "^1.11.20",
158
+ "file-saver": "^2.0.5",
159
+ "fontaine": "^0.8.0",
160
+ "fonteditor-core": "^2.6.3",
161
+ "ignore": "^7.0.5",
162
+ "immer": "^11.1.8",
163
+ "ink": "^6.8.0",
164
+ "ioredis": "^5.10.1",
165
+ "js-cookie": "^3.0.7",
166
+ "js-yaml": "^4.1.1",
167
+ "jwt-decode": "^4.0.0",
168
+ "latest-version": "^9.0.0",
169
+ "lodash": "^4.18.1",
170
+ "mermaid": "^11.15.0",
171
+ "negotiator": "^1.0.0",
172
+ "open": "^11.0.0",
173
+ "ora": "^9.4.0",
174
+ "pluralize": "^8.0.0",
175
+ "postgres": "^3.4.9",
176
+ "protobufjs": "^8.4.0",
177
+ "qrcode": "^1.5.4",
178
+ "react": "19.2.4",
179
+ "react-copy-to-clipboard": "^5.1.1",
180
+ "react-datepicker": "^9.1.0",
181
+ "react-device-detect": "^2.2.3",
182
+ "react-dom": "19.2.4",
183
+ "react-icons": "^5.6.0",
184
+ "react-refresh": "^0.18.0",
185
+ "react-server-dom-webpack": "^19.2.6",
186
+ "react-simple-pull-to-refresh": "^1.3.4",
187
+ "react-spring": "^9.7.5",
188
+ "scheduler": "^0.27.0",
189
+ "sharp": "^0.34.5",
190
+ "ssh2": "^1.17.0",
191
+ "subset-font": "^2.5.0",
192
+ "tailwind-scrollbar": "^4.0.2",
193
+ "tailwindcss": "^4.3.0",
194
+ "typescript": "^6.0.3",
195
+ "uuid": "^13.0.2"
196
+ },
197
+ "devDependencies": {
198
+ "@capacitor/cli": "^8.3.4"
199
+ },
200
+ "bun": {
201
+ "platform": "bun"
202
+ },
203
+ "engines": {
204
+ "bun": ">=1.3.13"
205
+ },
206
+ "main": "./index.ts"
10
207
  }