akanjs 2.2.4 → 2.2.6

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 (609) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/base/base.ts +1 -1
  3. package/base/primitiveRegistry.ts +6 -10
  4. package/base/types.ts +1 -4
  5. package/capacitor.base.config.ts +1 -1
  6. package/client/capacitor.ts +1 -1
  7. package/client/cookie.ts +2 -4
  8. package/client/createFont.ts +2 -2
  9. package/client/csrTypes.ts +2 -8
  10. package/client/makePageProto.tsx +4 -10
  11. package/client/router.ts +3 -8
  12. package/client/translator.ts +4 -12
  13. package/common/Logger.ts +1 -4
  14. package/common/formatNumber.ts +2 -5
  15. package/common/hmrPhase.ts +1 -1
  16. package/common/isValidDate.ts +0 -3
  17. package/constant/fieldInfo.ts +3 -3
  18. package/constant/purify.ts +1 -2
  19. package/constant/types.ts +0 -4
  20. package/constant/via.ts +6 -12
  21. package/document/databaseRegistry.ts +0 -8
  22. package/document/into.ts +0 -1
  23. package/fetch/client/fetchClient.ts +1 -6
  24. package/fetch/client/httpClient.ts +1 -2
  25. package/fetch/fetchType/appliedReturn.type.ts +0 -1
  26. package/fetch/fetchType/endpointFetch.type.ts +0 -3
  27. package/fetch/fetchType/sliceFetch.type.ts +0 -8
  28. package/fetch/requestStorage.ts +2 -10
  29. package/package.json +67 -24
  30. package/server/akanApp.ts +2 -5
  31. package/server/akanLib.ts +0 -1
  32. package/server/akanServer.ts +3 -4
  33. package/server/artifact/builderRpc.ts +2 -2
  34. package/server/artifact/ipcTypes.ts +0 -4
  35. package/server/decorators.ts +1 -1
  36. package/server/di/diLifecycle.ts +3 -6
  37. package/server/hmr/clientScript.ts +2 -20
  38. package/server/hmr/devHmrController.ts +0 -4
  39. package/server/processMetricsCollector.ts +1 -1
  40. package/server/resolver/database.resolver.ts +2 -2
  41. package/server/resolver/resolver.contract.fixture.ts +0 -1
  42. package/server/resolver/signal.resolver.ts +2 -10
  43. package/server/routing/apiRouter.ts +2 -4
  44. package/server/rscClient.tsx +1 -7
  45. package/server/rscWorkerHost.ts +11 -33
  46. package/server/ssrFromRscRenderer.tsx +3 -35
  47. package/server/types/react-server-dom-webpack.d.ts +1 -7
  48. package/server/vendor/react-dom-client.ts +1 -1
  49. package/server/vendor/react-dom.ts +2 -3
  50. package/server/vendor/react-jsx-dev-runtime.ts +1 -1
  51. package/server/vendor/react-jsx-runtime.ts +1 -1
  52. package/server/vendor/react-refresh-runtime.ts +2 -2
  53. package/server/vendor/react-server-dom-webpack-client-browser.ts +1 -1
  54. package/server/vendor/react.ts +2 -9
  55. package/server/vendor/scheduler.ts +2 -3
  56. package/server/webRouter.ts +2 -3
  57. package/service/adapt.ts +1 -5
  58. package/service/predefinedAdaptor/cache.adaptor.ts +1 -2
  59. package/service/predefinedAdaptor/database.adaptor.ts +2 -2
  60. package/service/predefinedAdaptor/solidSqlite.ts +1 -2
  61. package/service/predefinedAdaptor/websocket.adaptor.ts +3 -15
  62. package/service/serve.ts +3 -7
  63. package/signal/base.signal.ts +0 -1
  64. package/signal/endpointInfo.ts +0 -7
  65. package/signal/intercept.ts +0 -2
  66. package/signal/middleware.ts +1 -2
  67. package/signal/serverSignal.ts +1 -15
  68. package/signal/signalContext.ts +1 -1
  69. package/signal/signalRegistry.ts +0 -5
  70. package/signal/sliceInfo.ts +0 -3
  71. package/signal/trace.ts +0 -11
  72. package/signal/types.ts +2 -11
  73. package/store/action.ts +3 -5
  74. package/store/stateBuilder.ts +0 -2
  75. package/store/stateInfo.ts +1 -2
  76. package/store/types.ts +1 -1
  77. package/test/playwright.config.base.ts +5 -28
  78. package/test/playwright.pageAgent.ts +1 -1
  79. package/test/sampleOf.ts +1 -1
  80. package/test/testServer.ts +1 -1
  81. package/types/base/base.d.ts +53 -0
  82. package/types/base/baseEnv.d.ts +68 -0
  83. package/types/base/index.d.ts +6 -0
  84. package/types/base/primitiveRegistry.d.ts +134 -0
  85. package/types/base/symbols.d.ts +11 -0
  86. package/types/base/types.d.ts +68 -0
  87. package/types/base/utils.d.ts +4 -0
  88. package/types/base.d.ts +1 -0
  89. package/types/capacitor.base.config.d.ts +3 -0
  90. package/types/client/capacitor.d.ts +233 -0
  91. package/types/client/clientRuntime.d.ts +63 -0
  92. package/types/client/cookie.d.ts +33 -0
  93. package/types/client/createFont.d.ts +6 -0
  94. package/types/client/csrTypes.d.ts +262 -0
  95. package/types/client/decorators.d.ts +7 -0
  96. package/types/client/device.d.ts +41 -0
  97. package/types/client/fetch.d.ts +1 -0
  98. package/types/client/index.d.ts +14 -0
  99. package/types/client/locale.d.ts +5 -0
  100. package/types/client/makePageProto.d.ts +17002 -0
  101. package/types/client/router.d.ts +66 -0
  102. package/types/client/rscNavigation.d.ts +19 -0
  103. package/types/client/storage.d.ts +5 -0
  104. package/types/client/translator.d.ts +18 -0
  105. package/types/client/types.d.ts +145 -0
  106. package/types/client/useClient.d.ts +1 -0
  107. package/types/client.d.ts +1 -0
  108. package/types/common/Logger.d.ts +41 -0
  109. package/types/common/applyMixins.d.ts +3 -0
  110. package/types/common/capitalize.d.ts +2 -0
  111. package/types/common/deepObjectify.d.ts +4 -0
  112. package/types/common/fileUpload.d.ts +28 -0
  113. package/types/common/formatNumber.d.ts +1 -0
  114. package/types/common/formatPhone.d.ts +2 -0
  115. package/types/common/getAllPropertyDescriptors.d.ts +5 -0
  116. package/types/common/hmrPhase.d.ts +6 -0
  117. package/types/common/httpClient.d.ts +20 -0
  118. package/types/common/index.d.ts +29 -0
  119. package/types/common/isDayjs.d.ts +2 -0
  120. package/types/common/isEmail.d.ts +2 -0
  121. package/types/common/isPhoneNumber.d.ts +2 -0
  122. package/types/common/isQueryEqual.d.ts +1 -0
  123. package/types/common/isValidDate.d.ts +2 -0
  124. package/types/common/jwtDecode.d.ts +2 -0
  125. package/types/common/localeConfig.d.ts +11 -0
  126. package/types/common/lowerlize.d.ts +2 -0
  127. package/types/common/mergeVersion.d.ts +10 -0
  128. package/types/common/objectify.d.ts +1 -0
  129. package/types/common/pathGet.d.ts +1 -0
  130. package/types/common/pathSet.d.ts +3 -0
  131. package/types/common/randomPick.d.ts +1 -0
  132. package/types/common/randomPicks.d.ts +1 -0
  133. package/types/common/routeConvention.d.ts +35 -0
  134. package/types/common/sleep.d.ts +2 -0
  135. package/types/common/splitVersion.d.ts +11 -0
  136. package/types/common/subRoute.d.ts +7 -0
  137. package/types/common/types.d.ts +14 -0
  138. package/types/common.d.ts +1 -0
  139. package/types/constant/constantRegistry.d.ts +89 -0
  140. package/types/constant/crystalize.d.ts +4 -0
  141. package/types/constant/deserialize.d.ts +7 -0
  142. package/types/constant/fieldInfo.d.ts +153 -0
  143. package/types/constant/getDefault.d.ts +3 -0
  144. package/types/constant/immerify.d.ts +2 -0
  145. package/types/constant/index.d.ts +10 -0
  146. package/types/constant/purify.d.ts +12 -0
  147. package/types/constant/serialize.d.ts +11 -0
  148. package/types/constant/types.d.ts +77 -0
  149. package/types/constant/via.d.ts +52 -0
  150. package/types/constant.d.ts +1 -0
  151. package/types/dictionary/base.dictionary.d.ts +1 -0
  152. package/types/dictionary/dictInfo.d.ts +206 -0
  153. package/types/dictionary/dictionary.d.ts +11 -0
  154. package/types/dictionary/index.d.ts +4 -0
  155. package/types/dictionary/locale.d.ts +128 -0
  156. package/types/dictionary/trans.d.ts +82 -0
  157. package/types/dictionary.d.ts +1 -0
  158. package/types/document/by.d.ts +20 -0
  159. package/types/document/dataLoader.d.ts +36 -0
  160. package/types/document/database.d.ts +96 -0
  161. package/types/document/databaseRegistry.d.ts +36 -0
  162. package/types/document/documentQuery.d.ts +105 -0
  163. package/types/document/documentSchema.d.ts +33 -0
  164. package/types/document/filterMeta.d.ts +84 -0
  165. package/types/document/index.d.ts +11 -0
  166. package/types/document/into.d.ts +65 -0
  167. package/types/document/loaderInfo.d.ts +35 -0
  168. package/types/document/schema.d.ts +5 -0
  169. package/types/document/types.d.ts +36 -0
  170. package/types/document.d.ts +1 -0
  171. package/types/fetch/client/fetchClient.d.ts +78 -0
  172. package/types/fetch/client/httpClient.d.ts +39 -0
  173. package/types/fetch/client/index.d.ts +3 -0
  174. package/types/fetch/client/wsClient.d.ts +37 -0
  175. package/types/fetch/client.d.ts +1 -0
  176. package/types/fetch/fetchType/appliedReturn.type.d.ts +67 -0
  177. package/types/fetch/fetchType/buildFetch.type.d.ts +11 -0
  178. package/types/fetch/fetchType/clientSignal.type.d.ts +16 -0
  179. package/types/fetch/fetchType/endpointFetch.type.d.ts +29 -0
  180. package/types/fetch/fetchType/index.d.ts +5 -0
  181. package/types/fetch/fetchType/sliceFetch.type.d.ts +76 -0
  182. package/types/fetch/fetchType.d.ts +1 -0
  183. package/types/fetch/index.d.ts +4 -0
  184. package/types/fetch/requestStorage.d.ts +29 -0
  185. package/types/fetch/serializer/fetch.serializer.d.ts +14 -0
  186. package/types/fetch/serializer/index.d.ts +1 -0
  187. package/types/fetch/serializer.d.ts +1 -0
  188. package/types/fetch/types.d.ts +19 -0
  189. package/types/fetch.d.ts +1 -0
  190. package/types/index.d.ts +213 -0
  191. package/types/server/akanApp.d.ts +17 -0
  192. package/types/server/akanAppHeaders.d.ts +1 -0
  193. package/types/server/akanLib.d.ts +33 -0
  194. package/types/server/akanOption.d.ts +15 -0
  195. package/types/server/akanServer.d.ts +47 -0
  196. package/types/server/artifact/builderRpc.d.ts +42 -0
  197. package/types/server/artifact/index.d.ts +6 -0
  198. package/types/server/artifact/ipcTypes.d.ts +73 -0
  199. package/types/server/artifact/manifestTypes.d.ts +16 -0
  200. package/types/server/artifact/routeClientCache.d.ts +45 -0
  201. package/types/server/artifact/routeSeedIndexStore.d.ts +43 -0
  202. package/types/server/artifact/routesManifestStore.d.ts +16 -0
  203. package/types/server/artifact.d.ts +1 -0
  204. package/types/server/decorators.d.ts +6 -0
  205. package/types/server/di/diLifecycle.d.ts +45 -0
  206. package/types/server/di/index.d.ts +4 -0
  207. package/types/server/di/predefinedAdaptor.d.ts +33 -0
  208. package/types/server/di/resolveAdaptorHierarchy.d.ts +21 -0
  209. package/types/server/di/resolveHierarchy.d.ts +11 -0
  210. package/types/server/di/resolveServiceHierarchy.d.ts +13 -0
  211. package/types/server/di/utils.d.ts +14 -0
  212. package/types/server/di.d.ts +1 -0
  213. package/types/server/hmr/changeBatch.d.ts +13 -0
  214. package/types/server/hmr/clientScript.d.ts +1 -0
  215. package/types/server/hmr/devHmrController.d.ts +24 -0
  216. package/types/server/hmr/index.d.ts +4 -0
  217. package/types/server/hmr/wsHub.d.ts +45 -0
  218. package/types/server/hmr.d.ts +1 -0
  219. package/types/server/imageOptimizer.d.ts +12 -0
  220. package/types/server/imageOptimizerError.d.ts +4 -0
  221. package/types/server/index.d.ts +14 -0
  222. package/types/server/lifecycle/shutdownManager.d.ts +13 -0
  223. package/types/server/logging/rotatingLogWriter.d.ts +20 -0
  224. package/types/server/processMetricsCollector.d.ts +10 -0
  225. package/types/server/proxy/akanResponse.d.ts +7 -0
  226. package/types/server/proxy/bunRequestFields.d.ts +1 -0
  227. package/types/server/proxy/hostBasePathWebProxy.d.ts +6 -0
  228. package/types/server/proxy/index.d.ts +6 -0
  229. package/types/server/proxy/localeWebProxy.d.ts +5 -0
  230. package/types/server/proxy/types.d.ts +37 -0
  231. package/types/server/proxy/webProxyRunner.d.ts +7 -0
  232. package/types/server/proxy.d.ts +1 -0
  233. package/types/server/resolver/database.resolver.d.ts +6 -0
  234. package/types/server/resolver/index.d.ts +3 -0
  235. package/types/server/resolver/service.resolver.d.ts +7 -0
  236. package/types/server/resolver/signal.resolver.d.ts +29 -0
  237. package/types/server/resolver.d.ts +1 -0
  238. package/types/server/robots.d.ts +1 -0
  239. package/types/server/routeElementComposer.d.ts +41 -0
  240. package/types/server/routeTreeBuilder.d.ts +28 -0
  241. package/types/server/routing/apiRouter.d.ts +61 -0
  242. package/types/server/rscClient.d.ts +15 -0
  243. package/types/server/rscWorker.d.ts +3 -0
  244. package/types/server/rscWorkerHost.d.ts +83 -0
  245. package/types/server/sitemap.d.ts +13 -0
  246. package/types/server/ssrFromRscRenderer.d.ts +6 -0
  247. package/types/server/ssrTypes.d.ts +47 -0
  248. package/types/server/systemPages.d.ts +27 -0
  249. package/types/server/types/react-server-dom-webpack.d.ts +91 -0
  250. package/types/server/types.d.ts +67 -0
  251. package/types/server/vendor/akanjs-base.d.ts +1 -0
  252. package/types/server/vendor/akanjs-common.d.ts +1 -0
  253. package/types/server/vendor/akanjs-constant.d.ts +1 -0
  254. package/types/server/vendor/akanjs-store.d.ts +1 -0
  255. package/types/server/vendor/react-dom-client.d.ts +3 -0
  256. package/types/server/vendor/react-dom.d.ts +3 -0
  257. package/types/server/vendor/react-jsx-dev-runtime.d.ts +3 -0
  258. package/types/server/vendor/react-jsx-runtime.d.ts +3 -0
  259. package/types/server/vendor/react-refresh-runtime.d.ts +3 -0
  260. package/types/server/vendor/react-server-dom-webpack-client-browser.d.ts +3 -0
  261. package/types/server/vendor/react.d.ts +11 -0
  262. package/types/server/vendor/scheduler.d.ts +3 -0
  263. package/types/server/webRouter.d.ts +44 -0
  264. package/types/server.d.ts +1 -0
  265. package/types/service/adapt.d.ts +15 -0
  266. package/types/service/base.service.d.ts +18 -0
  267. package/types/service/index.d.ts +10 -0
  268. package/types/service/injectInfo.d.ts +102 -0
  269. package/types/service/ipcTypes.d.ts +194 -0
  270. package/types/service/predefinedAdaptor/cache.adaptor.d.ts +46 -0
  271. package/types/service/predefinedAdaptor/compress.adaptor.d.ts +22 -0
  272. package/types/service/predefinedAdaptor/database.adaptor.d.ts +329 -0
  273. package/types/service/predefinedAdaptor/index.d.ts +13 -0
  274. package/types/service/predefinedAdaptor/logging.adaptor.d.ts +20 -0
  275. package/types/service/predefinedAdaptor/queue.adaptor.d.ts +22 -0
  276. package/types/service/predefinedAdaptor/role.adaptor.d.ts +17 -0
  277. package/types/service/predefinedAdaptor/schedule.adaptor.d.ts +60 -0
  278. package/types/service/predefinedAdaptor/solidCache.adaptor.d.ts +25 -0
  279. package/types/service/predefinedAdaptor/solidPubsub.adaptor.d.ts +20 -0
  280. package/types/service/predefinedAdaptor/solidQueue.adaptor.d.ts +19 -0
  281. package/types/service/predefinedAdaptor/solidSqlite.d.ts +24 -0
  282. package/types/service/predefinedAdaptor/sqlitePath.d.ts +9 -0
  283. package/types/service/predefinedAdaptor/storage.adaptor.d.ts +80 -0
  284. package/types/service/predefinedAdaptor/websocket.adaptor.d.ts +49 -0
  285. package/types/service/predefinedAdaptor.d.ts +1 -0
  286. package/types/service/serve.d.ts +31 -0
  287. package/types/service/serviceModule.d.ts +50 -0
  288. package/types/service/serviceRegistry.d.ts +9 -0
  289. package/types/service/types.d.ts +55 -0
  290. package/types/service.d.ts +1 -0
  291. package/types/signal/base.signal.d.ts +41 -0
  292. package/types/signal/endpoint.d.ts +28 -0
  293. package/types/signal/endpointInfo.d.ts +77 -0
  294. package/types/signal/exception.d.ts +54786 -0
  295. package/types/signal/guard.d.ts +10 -0
  296. package/types/signal/guards.d.ts +10 -0
  297. package/types/signal/index.d.ts +19 -0
  298. package/types/signal/intercept.d.ts +17 -0
  299. package/types/signal/internal.d.ts +18 -0
  300. package/types/signal/internalArg.d.ts +31 -0
  301. package/types/signal/internalInfo.d.ts +45 -0
  302. package/types/signal/middleware.d.ts +51 -0
  303. package/types/signal/serializer/fetch.serializer.d.ts +14 -0
  304. package/types/signal/serializer/index.d.ts +1 -0
  305. package/types/signal/serializer.d.ts +1 -0
  306. package/types/signal/serverSignal.d.ts +36 -0
  307. package/types/signal/signalContext.d.ts +96 -0
  308. package/types/signal/signalRegistry.d.ts +49 -0
  309. package/types/signal/slice.d.ts +42 -0
  310. package/types/signal/sliceInfo.d.ts +51 -0
  311. package/types/signal/trace.d.ts +97 -0
  312. package/types/signal/types.d.ts +142 -0
  313. package/types/signal.d.ts +1 -0
  314. package/types/store/action.d.ts +145 -0
  315. package/types/store/baseSt.d.ts +412 -0
  316. package/types/store/hooks.d.ts +1 -0
  317. package/types/store/index.d.ts +8 -0
  318. package/types/store/rootStore.d.ts +22 -0
  319. package/types/store/state.d.ts +91 -0
  320. package/types/store/stateBuilder.d.ts +141 -0
  321. package/types/store/stateInfo.d.ts +23 -0
  322. package/types/store/store.d.ts +36 -0
  323. package/types/store/storeInstance.d.ts +38 -0
  324. package/types/store/storeRegistry.d.ts +13 -0
  325. package/types/store/types.d.ts +42 -0
  326. package/types/store/withSelector.d.ts +42 -0
  327. package/types/store.d.ts +1 -0
  328. package/types/test/index.d.ts +4 -0
  329. package/types/test/playwright.config.base.d.ts +9 -0
  330. package/types/test/playwright.pageAgent.d.ts +12 -0
  331. package/types/test/sample.d.ts +15 -0
  332. package/types/test/sampleOf.d.ts +5 -0
  333. package/types/test/signalTest.preload.d.ts +1 -0
  334. package/types/test/signalTestRuntime.d.ts +29 -0
  335. package/types/test/testServer.d.ts +26 -0
  336. package/types/test.d.ts +1 -0
  337. package/types/ui/BottomSheet.d.ts +13 -0
  338. package/types/ui/Button.d.ts +11 -0
  339. package/types/ui/ClientSide.d.ts +8 -0
  340. package/types/ui/Clipboard.d.ts +7 -0
  341. package/types/ui/Constant/Doc.d.ts +29 -0
  342. package/types/ui/Constant/Mermaid.d.ts +8 -0
  343. package/types/ui/Constant/index.d.ts +6 -0
  344. package/types/ui/Constant/schemaDoc.d.ts +84 -0
  345. package/types/ui/Constant.d.ts +1 -0
  346. package/types/ui/Copy.d.ts +10 -0
  347. package/types/ui/CsrImage.d.ts +18 -0
  348. package/types/ui/Data/CardList.d.ts +36 -0
  349. package/types/ui/Data/Dashboard.d.ts +11 -0
  350. package/types/ui/Data/Insight.d.ts +9 -0
  351. package/types/ui/Data/Item.d.ts +75 -0
  352. package/types/ui/Data/ListContainer.d.ts +49 -0
  353. package/types/ui/Data/Pagination.d.ts +9 -0
  354. package/types/ui/Data/QueryMaker.d.ts +8 -0
  355. package/types/ui/Data/TableList.d.ts +26 -0
  356. package/types/ui/Data/index.d.ts +9 -0
  357. package/types/ui/Data/index_.d.ts +8 -0
  358. package/types/ui/Data.d.ts +1 -0
  359. package/types/ui/DatePicker.d.ts +36 -0
  360. package/types/ui/Dialog/Action.d.ts +5 -0
  361. package/types/ui/Dialog/Close.d.ts +6 -0
  362. package/types/ui/Dialog/Content.d.ts +6 -0
  363. package/types/ui/Dialog/Modal.d.ts +9 -0
  364. package/types/ui/Dialog/Provider.d.ts +11 -0
  365. package/types/ui/Dialog/Title.d.ts +5 -0
  366. package/types/ui/Dialog/Trigger.d.ts +6 -0
  367. package/types/ui/Dialog/context.d.ts +10 -0
  368. package/types/ui/Dialog/index.d.ts +9 -0
  369. package/types/ui/Dialog.d.ts +1 -0
  370. package/types/ui/DragAction.d.ts +24 -0
  371. package/types/ui/DraggableList.d.ts +31 -0
  372. package/types/ui/Dropdown.d.ts +14 -0
  373. package/types/ui/Empty.d.ts +12 -0
  374. package/types/ui/Field.d.ts +411 -0
  375. package/types/ui/FontFace.d.ts +6 -0
  376. package/types/ui/Image.d.ts +49 -0
  377. package/types/ui/InfiniteScroll.d.ts +10 -0
  378. package/types/ui/Input.d.ts +95 -0
  379. package/types/ui/KeyboardAvoiding.d.ts +8 -0
  380. package/types/ui/Layout/BottomAction.d.ts +6 -0
  381. package/types/ui/Layout/BottomInset.d.ts +7 -0
  382. package/types/ui/Layout/BottomTab.d.ts +14 -0
  383. package/types/ui/Layout/Header.d.ts +8 -0
  384. package/types/ui/Layout/LeftSider.d.ts +9 -0
  385. package/types/ui/Layout/Navbar.d.ts +11 -0
  386. package/types/ui/Layout/RightSider.d.ts +10 -0
  387. package/types/ui/Layout/Sider.d.ts +7 -0
  388. package/types/ui/Layout/Template.d.ts +7 -0
  389. package/types/ui/Layout/TopLeftAction.d.ts +6 -0
  390. package/types/ui/Layout/Unit.d.ts +9 -0
  391. package/types/ui/Layout/View.d.ts +8 -0
  392. package/types/ui/Layout/Zone.d.ts +6 -0
  393. package/types/ui/Layout/index.d.ts +14 -0
  394. package/types/ui/Layout.d.ts +1 -0
  395. package/types/ui/Link/Back.d.ts +7 -0
  396. package/types/ui/Link/Close.d.ts +7 -0
  397. package/types/ui/Link/CsrLink.d.ts +2 -0
  398. package/types/ui/Link/Lang.d.ts +8 -0
  399. package/types/ui/Link/SsrLink.d.ts +2 -0
  400. package/types/ui/Link/index.d.ts +10 -0
  401. package/types/ui/Link/types.d.ts +42 -0
  402. package/types/ui/Link.d.ts +1 -0
  403. package/types/ui/Load/Edit.d.ts +4 -0
  404. package/types/ui/Load/Edit_Client.d.ts +27 -0
  405. package/types/ui/Load/Page.d.ts +15 -0
  406. package/types/ui/Load/PageCSR.d.ts +3 -0
  407. package/types/ui/Load/Pagination.d.ts +8 -0
  408. package/types/ui/Load/Units.d.ts +30 -0
  409. package/types/ui/Load/View.d.ts +22 -0
  410. package/types/ui/Load/index.d.ts +8 -0
  411. package/types/ui/Load/index_.d.ts +3 -0
  412. package/types/ui/Load.d.ts +1 -0
  413. package/types/ui/Loading/Area.d.ts +1 -0
  414. package/types/ui/Loading/Button.d.ts +7 -0
  415. package/types/ui/Loading/Input.d.ts +7 -0
  416. package/types/ui/Loading/ProgressBar.d.ts +6 -0
  417. package/types/ui/Loading/Skeleton.d.ts +7 -0
  418. package/types/ui/Loading/Spin.d.ts +7 -0
  419. package/types/ui/Loading/index.d.ts +8 -0
  420. package/types/ui/Loading.d.ts +1 -0
  421. package/types/ui/Menu.d.ts +26 -0
  422. package/types/ui/Modal.d.ts +19 -0
  423. package/types/ui/Model/AdminPanel.d.ts +31 -0
  424. package/types/ui/Model/Edit.d.ts +16 -0
  425. package/types/ui/Model/EditModal.d.ts +52 -0
  426. package/types/ui/Model/EditWrapper.d.ts +13 -0
  427. package/types/ui/Model/LoadInit.d.ts +10 -0
  428. package/types/ui/Model/New.d.ts +16 -0
  429. package/types/ui/Model/NewWrapper.d.ts +13 -0
  430. package/types/ui/Model/NewWrapper_Client.d.ts +13 -0
  431. package/types/ui/Model/Remove.d.ts +13 -0
  432. package/types/ui/Model/RemoveWrapper.d.ts +12 -0
  433. package/types/ui/Model/SureToRemove.d.ts +11 -0
  434. package/types/ui/Model/View.d.ts +19 -0
  435. package/types/ui/Model/ViewEditModal.d.ts +12 -0
  436. package/types/ui/Model/ViewModal.d.ts +14 -0
  437. package/types/ui/Model/ViewWrapper.d.ts +12 -0
  438. package/types/ui/Model/index.d.ts +16 -0
  439. package/types/ui/Model/index_.d.ts +14 -0
  440. package/types/ui/Model.d.ts +1 -0
  441. package/types/ui/More.d.ts +12 -0
  442. package/types/ui/ObjectId.d.ts +5 -0
  443. package/types/ui/Pagination.d.ts +20 -0
  444. package/types/ui/Popconfirm.d.ts +28 -0
  445. package/types/ui/Portal.d.ts +6 -0
  446. package/types/ui/Radio.d.ts +19 -0
  447. package/types/ui/RecentTime.d.ts +12 -0
  448. package/types/ui/Refresh.d.ts +7 -0
  449. package/types/ui/ScreenNavigator.d.ts +18 -0
  450. package/types/ui/Select.d.ts +43 -0
  451. package/types/ui/Signal/Arg.d.ts +78 -0
  452. package/types/ui/Signal/Doc.d.ts +33 -0
  453. package/types/ui/Signal/Listener.d.ts +9 -0
  454. package/types/ui/Signal/Message.d.ts +23 -0
  455. package/types/ui/Signal/Object.d.ts +20 -0
  456. package/types/ui/Signal/PubSub.d.ts +24 -0
  457. package/types/ui/Signal/Request.d.ts +8 -0
  458. package/types/ui/Signal/Response.d.ts +14 -0
  459. package/types/ui/Signal/RestApi.d.ts +40 -0
  460. package/types/ui/Signal/WebSocket.d.ts +11 -0
  461. package/types/ui/Signal/index.d.ts +18 -0
  462. package/types/ui/Signal/makeExample.d.ts +4 -0
  463. package/types/ui/Signal/style.d.ts +15 -0
  464. package/types/ui/Signal.d.ts +1 -0
  465. package/types/ui/System/CSR.d.ts +32 -0
  466. package/types/ui/System/Client.d.ts +47 -0
  467. package/types/ui/System/Common.d.ts +47 -0
  468. package/types/ui/System/DevModeToggle.d.ts +1 -0
  469. package/types/ui/System/Gtag.d.ts +4 -0
  470. package/types/ui/System/Messages.d.ts +1 -0
  471. package/types/ui/System/Reconnect.d.ts +1 -0
  472. package/types/ui/System/Root.d.ts +6 -0
  473. package/types/ui/System/SSR.d.ts +24 -0
  474. package/types/ui/System/SelectLanguage.d.ts +5 -0
  475. package/types/ui/System/ThemeToggle.d.ts +4 -0
  476. package/types/ui/System/index.d.ts +12 -0
  477. package/types/ui/System.d.ts +1 -0
  478. package/types/ui/Tab/Menu.d.ts +12 -0
  479. package/types/ui/Tab/Menus.d.ts +6 -0
  480. package/types/ui/Tab/Panel.d.ts +8 -0
  481. package/types/ui/Tab/Provider.d.ts +10 -0
  482. package/types/ui/Tab/context.d.ts +9 -0
  483. package/types/ui/Tab/index.d.ts +7 -0
  484. package/types/ui/Tab.d.ts +1 -0
  485. package/types/ui/Table.d.ts +41 -0
  486. package/types/ui/ToggleSelect.d.ts +33 -0
  487. package/types/ui/Unauthorized.d.ts +9 -0
  488. package/types/ui/animated.d.ts +5 -0
  489. package/types/ui/fontCss.d.ts +11 -0
  490. package/types/ui/index.d.ts +44 -0
  491. package/types/ui.d.ts +1 -0
  492. package/types/webkit/bootCsr.d.ts +16 -0
  493. package/types/webkit/createRobotPage.d.ts +15 -0
  494. package/types/webkit/createSitemapPage.d.ts +4 -0
  495. package/types/webkit/index.d.ts +17 -0
  496. package/types/webkit/lazy.d.ts +11 -0
  497. package/types/webkit/types.d.ts +7 -0
  498. package/types/webkit/useCamera.d.ts +19 -0
  499. package/types/webkit/useCodepush.d.ts +16 -0
  500. package/types/webkit/useContact.d.ts +11 -0
  501. package/types/webkit/useCsrValues.d.ts +30 -0
  502. package/types/webkit/useDebounce.d.ts +2 -0
  503. package/types/webkit/useFetch.d.ts +18 -0
  504. package/types/webkit/useGeoLocation.d.ts +8 -0
  505. package/types/webkit/useHistory.d.ts +23 -0
  506. package/types/webkit/useInterval.d.ts +2 -0
  507. package/types/webkit/useLocation.d.ts +8 -0
  508. package/types/webkit/usePurchase.d.ts +19 -0
  509. package/types/webkit/usePushNoti.d.ts +7 -0
  510. package/types/webkit/useThrottle.d.ts +2 -0
  511. package/types/webkit.d.ts +1 -0
  512. package/ui/BottomSheet.tsx +1 -1
  513. package/ui/Clipboard.tsx +1 -1
  514. package/ui/CsrImage.tsx +3 -14
  515. package/ui/Data/ListContainer.tsx +1 -1
  516. package/ui/Data/Pagination.tsx +1 -1
  517. package/ui/Data/QueryMaker.tsx +0 -339
  518. package/ui/Data/index.ts +0 -1
  519. package/ui/DatePicker.tsx +1 -95
  520. package/ui/Dialog/Modal.tsx +1 -1
  521. package/ui/DraggableList.tsx +5 -5
  522. package/ui/Field.tsx +2 -3
  523. package/ui/Image.tsx +2 -3
  524. package/ui/InfiniteScroll.tsx +0 -1
  525. package/ui/Input.tsx +1 -8
  526. package/ui/Layout/BottomTab.tsx +2 -2
  527. package/ui/Link/SsrLink.tsx +1 -2
  528. package/ui/Load/Page.tsx +1 -1
  529. package/ui/Load/PageCSR.tsx +0 -1
  530. package/ui/Load/Units.tsx +1 -2
  531. package/ui/Load/View.tsx +1 -2
  532. package/ui/Menu.tsx +5 -8
  533. package/ui/Model/EditModal.tsx +2 -5
  534. package/ui/Popconfirm.tsx +2 -4
  535. package/ui/ScreenNavigator.tsx +2 -3
  536. package/ui/Signal/Message.tsx +2 -3
  537. package/ui/Signal/PubSub.tsx +0 -2
  538. package/ui/Signal/Response.tsx +1 -1
  539. package/ui/Signal/WebSocket.tsx +2 -11
  540. package/ui/System/Client.tsx +7 -41
  541. package/ui/System/Gtag.tsx +2 -5
  542. package/ui/System/Messages.tsx +2 -2
  543. package/ui/System/Reconnect.tsx +5 -6
  544. package/ui/System/Root.tsx +0 -1
  545. package/ui/System/SSR.tsx +1 -7
  546. package/ui/ToggleSelect.tsx +3 -8
  547. package/ui/Unauthorized.tsx +1 -1
  548. package/webkit/bootCsr.tsx +3 -6
  549. package/webkit/lazy.tsx +1 -8
  550. package/webkit/useCamera.tsx +0 -1
  551. package/webkit/useCodepush.tsx +4 -9
  552. package/webkit/useContact.tsx +0 -1
  553. package/webkit/useCsrValues.ts +6 -10
  554. package/webkit/useDebounce.ts +2 -2
  555. package/webkit/usePurchase.tsx +5 -9
  556. package/webkit/usePushNoti.tsx +0 -1
  557. package/base/base.test.ts +0 -135
  558. package/base/baseEnv.test.ts +0 -146
  559. package/base/primitiveRegistry.test.ts +0 -127
  560. package/base/symbols.test.ts +0 -29
  561. package/base/utils.test.ts +0 -30
  562. package/build.ts +0 -318
  563. package/capacitor.base.config.test.ts +0 -83
  564. package/client/client.auth-storage.test.ts +0 -210
  565. package/client/client.decorators.test.ts +0 -74
  566. package/client/client.device.test.ts +0 -181
  567. package/client/client.page.test.tsx +0 -175
  568. package/client/client.pure.test.ts +0 -146
  569. package/client/client.router.test.ts +0 -290
  570. package/common/Logger.test.ts +0 -45
  571. package/common/formatAndValidation.test.ts +0 -61
  572. package/common/httpClient.test.ts +0 -91
  573. package/common/objectPath.test.ts +0 -108
  574. package/common/routeConvention.test.ts +0 -132
  575. package/common/runtimeConfig.test.ts +0 -84
  576. package/constant/constant.test.ts +0 -374
  577. package/dictionary/dictionary.test.ts +0 -352
  578. package/document/document.test.ts +0 -698
  579. package/fetch/fetch.test.ts +0 -838
  580. package/server/akanApp.test.ts +0 -130
  581. package/server/akanServer.test.ts +0 -157
  582. package/server/artifact/routeClientCache.test.ts +0 -265
  583. package/server/artifact/routeSeedIndex.test.ts +0 -56
  584. package/server/artifact/routesManifest.test.ts +0 -64
  585. package/server/di/diLifecycle.contract.test.ts +0 -168
  586. package/server/logging/rotatingLogWriter.test.ts +0 -119
  587. package/server/processMetrics.test.ts +0 -24
  588. package/server/proxy/webProxyRunner.test.ts +0 -66
  589. package/server/resolver/resolver.contract.test.ts +0 -594
  590. package/server/robots.test.ts +0 -16
  591. package/server/routeTree.test.tsx +0 -198
  592. package/server/routing/apiRouter.test.ts +0 -136
  593. package/server/sitemap.test.ts +0 -61
  594. package/server/systemPages.test.tsx +0 -93
  595. package/server/webRouter.test.ts +0 -49
  596. package/service/predefinedAdaptor/compress.adaptor.test.ts +0 -184
  597. package/service/predefinedAdaptor/solidCache.adaptor.test.ts +0 -107
  598. package/service/predefinedAdaptor/solidSqlite.test.ts +0 -457
  599. package/service/service.test.ts +0 -732
  600. package/signal/signal.test.ts +0 -892
  601. package/store/stateBuilder.test.ts +0 -168
  602. package/store/store.test.ts +0 -427
  603. package/tsconfig.json +0 -5
  604. package/ui/Constant/schemaDoc.test.ts +0 -113
  605. package/ui/InfiniteScroll.test.tsx +0 -155
  606. package/ui/System/Common.test.ts +0 -37
  607. package/webkit/bootCsr.test.tsx +0 -153
  608. package/webkit/native.test.tsx +0 -341
  609. package/webkit/webkit.test.tsx +0 -531
@@ -0,0 +1,73 @@
1
+ export interface BuildRouteResultPayload {
2
+ manifestDelta: Record<string, {
3
+ id: string;
4
+ chunks: string[];
5
+ name: string;
6
+ async: boolean;
7
+ }>;
8
+ ssrManifestDelta: Record<string, Record<string, {
9
+ id: string;
10
+ chunks: string[];
11
+ name: string;
12
+ async: boolean;
13
+ }>>;
14
+ newEntries: string[];
15
+ discoveredEntries?: string[];
16
+ clientDeps: string[];
17
+ clientDepsByEntry?: Record<string, string[]>;
18
+ routeId?: string;
19
+ generation?: number;
20
+ }
21
+ export interface CssPayload {
22
+ cssAssets: Record<string, {
23
+ cssUrl: string;
24
+ cssRelPath: string;
25
+ }>;
26
+ cssBase64ByUrl: Record<string, string>;
27
+ generation?: number;
28
+ changedFiles?: string[];
29
+ }
30
+ export type BuilderReq = {
31
+ type: "build-route";
32
+ id: number;
33
+ routeId: string;
34
+ seeds: string[];
35
+ knownEntries: string[];
36
+ generation?: number;
37
+ };
38
+ export type BuilderRes = {
39
+ type: "build-route-res";
40
+ id: number;
41
+ ok: true;
42
+ data: BuildRouteResultPayload;
43
+ } | {
44
+ type: "build-route-res";
45
+ id: number;
46
+ ok: false;
47
+ error: string;
48
+ };
49
+ export interface PagesBundlePayload {
50
+ bundlePath: string;
51
+ buildId: number;
52
+ generation?: number;
53
+ changedFiles?: string[];
54
+ }
55
+ export type BuilderEvent = {
56
+ type: "builder-ready";
57
+ buildId: string;
58
+ } | {
59
+ type: "backend-ready";
60
+ pid: number;
61
+ } | {
62
+ type: "invalidate";
63
+ kinds: ("code" | "css" | "config")[];
64
+ files: string[];
65
+ generation?: number;
66
+ } | {
67
+ type: "css-updated";
68
+ data: CssPayload;
69
+ } | {
70
+ type: "pages-updated";
71
+ data: PagesBundlePayload;
72
+ };
73
+ export type BuilderMessage = BuilderReq | BuilderRes | BuilderEvent;
@@ -0,0 +1,16 @@
1
+ import type { SsrManifest } from "../ssrTypes.d.ts";
2
+ export interface ClientManifestEntry {
3
+ id: string;
4
+ chunks: string[];
5
+ name: string;
6
+ async?: boolean;
7
+ }
8
+ export type ClientManifest = Record<string, ClientManifestEntry>;
9
+ export interface BuildRouteClientResult {
10
+ manifestDelta: ClientManifest;
11
+ ssrManifestDelta: SsrManifest;
12
+ newEntries: string[];
13
+ discoveredEntries?: string[];
14
+ clientDeps: string[];
15
+ clientDepsByEntry?: Record<string, string[]>;
16
+ }
@@ -0,0 +1,45 @@
1
+ import type { SsrManifest } from "../ssrTypes.d.ts";
2
+ import type { BuildRouteClientResult, ClientManifest } from "./manifestTypes.d.ts";
3
+ import type { RoutesManifest } from "./routesManifestStore.d.ts";
4
+ /**
5
+ * Snapshot of every per-route build's accumulated output for one HMR
6
+ * generation. Callers should take a `snapshot()` before rendering so an
7
+ * invalidate cannot mutate the manifest while a request is consuming it.
8
+ */
9
+ export interface MergedManifest {
10
+ generation: number;
11
+ clientManifest: ClientManifest;
12
+ ssrManifest: SsrManifest;
13
+ /** Absolute entry-file paths seen across every build so far. */
14
+ knownEntries: Set<string>;
15
+ }
16
+ type RouteBuildFn = (routeId: string, info: {
17
+ seeds: string[];
18
+ knownEntries: Set<string>;
19
+ generation: number;
20
+ }) => Promise<BuildRouteClientResult>;
21
+ type OnMergeFn = (routeId: string, info: {
22
+ delta: BuildRouteClientResult;
23
+ merged: MergedManifest;
24
+ generation: number;
25
+ }) => void | Promise<void>;
26
+ interface RouteClientCacheOptions {
27
+ buildRoute: RouteBuildFn;
28
+ onMerge?: OnMergeFn;
29
+ }
30
+ export interface InvalidateClientEntriesOptions {
31
+ routePredicate: (routeId: string) => boolean;
32
+ staleEntries: Iterable<string>;
33
+ }
34
+ export declare class RouteClientCache {
35
+ #private;
36
+ merged: MergedManifest;
37
+ constructor({ buildRoute, onMerge }: RouteClientCacheOptions);
38
+ seed(manifest: RoutesManifest): void;
39
+ ensure(routeId: string, seeds: string[]): Promise<MergedManifest>;
40
+ snapshot(): MergedManifest;
41
+ invalidate(predicate: (routeId: string) => boolean): string[];
42
+ invalidateClientEntries({ routePredicate, staleEntries }: InvalidateClientEntriesOptions): string[];
43
+ clear(): string[];
44
+ }
45
+ export {};
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Runtime counterpart to `akanjs/devkit`'s `routeSeedIndex.ts`. The index
3
+ * itself is computed at build time by the CLI (which walks the `pages`
4
+ * registry and parses loader sources) and serialized to
5
+ * `route-seed-index.json`. The server only loads that JSON at boot and matches
6
+ * incoming pathnames against its route seed entries.
7
+ *
8
+ * Keeping this runtime-safe means `akanjs/server` never has to reach into
9
+ * `app/pages.ts` or Function.prototype.toString() — which is what made the
10
+ * previous in-process computation prone to drifting from the build pipeline.
11
+ */
12
+ export interface RouteSeedEntry {
13
+ routeId: string;
14
+ pattern: string;
15
+ seeds: string[];
16
+ }
17
+ export interface RouteSeedIndex {
18
+ entries: RouteSeedEntry[];
19
+ globalLayoutFiles: string[];
20
+ }
21
+ export interface MatchedRoute {
22
+ entry: RouteSeedEntry;
23
+ params: Record<string, string>;
24
+ }
25
+ type SerializedRouteSeedEntry = Pick<RouteSeedEntry, "routeId"> & Partial<Pick<RouteSeedEntry, "pattern" | "seeds">>;
26
+ interface SerializedRouteSeedIndex {
27
+ entries: SerializedRouteSeedEntry[];
28
+ globalLayoutFiles?: string[];
29
+ }
30
+ export declare const ROUTE_SEED_INDEX_JSON = "route-seed-index.json";
31
+ export declare class RouteSeedIndexStore {
32
+ #private;
33
+ static load(artifactDir: string): Promise<RouteSeedIndex>;
34
+ static normalize(index: SerializedRouteSeedIndex, artifactDir: string): RouteSeedIndex;
35
+ /**
36
+ * Match `pathname` against every registered route pattern using the same
37
+ * `:param` semantics as route tree matching. Returns the first entry that
38
+ * matches, along with the extracted parameters.
39
+ */
40
+ static match(pathname: string, entries: RouteSeedEntry[]): MatchedRoute | null;
41
+ static matchPrefix(pathname: string, entries: RouteSeedEntry[]): MatchedRoute | null;
42
+ }
43
+ export {};
@@ -0,0 +1,16 @@
1
+ import type { SsrManifest } from "../ssrTypes.d.ts";
2
+ import type { ClientManifest } from "./manifestTypes.d.ts";
3
+ export interface RoutesManifest {
4
+ routeIds: string[];
5
+ clientManifest: ClientManifest;
6
+ ssrManifest: SsrManifest;
7
+ knownEntries: string[];
8
+ }
9
+ type SerializedRoutesManifest = Omit<RoutesManifest, "knownEntries"> & Partial<Pick<RoutesManifest, "knownEntries">>;
10
+ export declare class RoutesManifestStore {
11
+ #private;
12
+ static serialize(manifest: RoutesManifest, artifactDir: string): RoutesManifest;
13
+ static read(artifactDir: string): Promise<RoutesManifest | null>;
14
+ static normalize(manifest: SerializedRoutesManifest, artifactDir: string): RoutesManifest;
15
+ }
16
+ export {};
@@ -0,0 +1 @@
1
+ export * from "./artifact/index.d.ts";
@@ -0,0 +1,6 @@
1
+ /** Method decorator that catches errors and logs a warning instead of throwing. */
2
+ export declare const Try: () => (_target: unknown, key: string, descriptor: PropertyDescriptor) => void;
3
+ /** Method decorator that runs the method inside the detected database transaction. */
4
+ export declare const Transaction: () => MethodDecorator;
5
+ /** Method decorator that caches method results for the given timeout in milliseconds. */
6
+ export declare const Cache: (timeout?: number, getCacheKey?: (...args: unknown[]) => string) => MethodDecorator;
@@ -0,0 +1,45 @@
1
+ import type { BaseEnv } from "akanjs/base";
2
+ import { Logger } from "akanjs/common";
3
+ import { type Adaptor, type AdaptorCls, type Service, type ServiceCls, type WebsocketAdaptor } from "akanjs/service";
4
+ import type { ServerSignal, ServerSignalCls } from "../../signal/serverSignal.d.ts";
5
+ import type { AkanLib } from "../akanLib.d.ts";
6
+ import type { WebProxyRegistration } from "../proxy.d.ts";
7
+ import type { SignalRoutes } from "../types.d.ts";
8
+ /**
9
+ * Owns the app's DI container state (registry + live maps + init order) and
10
+ * encapsulates every init / destroy step. `AkanServer` delegates to this so the
11
+ * top-level class can focus on HTTP / WS wiring and process lifecycle.
12
+ */
13
+ export declare class DiLifecycle {
14
+ #private;
15
+ readonly logger: Logger;
16
+ readonly registry: import("akanjs/service").InjectRegistry;
17
+ readonly live: import("akanjs/service").LiveRegistry;
18
+ readonly hierarchy: {
19
+ adaptorStages: string[][];
20
+ serviceStages: string[][];
21
+ };
22
+ readonly webProxies: WebProxyRegistration[];
23
+ constructor(env: BaseEnv, serverMode: "federation" | "batch" | "all", ...libs: AkanLib[]);
24
+ /** Run every init stage in dependency order and collect the generated routes. */
25
+ initializeAll(): Promise<SignalRoutes>;
26
+ destroyAll(): Promise<void>;
27
+ /** Register scheduled jobs declared on internal signals. */
28
+ registerSchedule(serverMode: "federation" | "batch" | "all"): void;
29
+ /** Run the framework-level scheduler's onInit hooks after routes come up. */
30
+ runSchedulerInit(): Promise<void>;
31
+ /** Run the framework-level scheduler's onDestroy hooks during shutdown. */
32
+ runSchedulerDestroy(): Promise<void>;
33
+ /** Destroy services in reverse init order. Errors are logged, not thrown. */
34
+ destroyServices(): Promise<void>;
35
+ /** Destroy adaptors in reverse init order. Errors are logged, not thrown. */
36
+ destroyAdaptors(): Promise<void>;
37
+ destroyUses(): Promise<void>;
38
+ getWebsocketAdaptor(): WebsocketAdaptor | undefined;
39
+ getByClass(cls: ServiceCls): Service;
40
+ getByClass(cls: ServerSignalCls): ServerSignal;
41
+ getByClass(cls: AdaptorCls): Adaptor;
42
+ getService<T = Service>(refName: string): T;
43
+ getSignal<T = ServerSignal>(refName: string): T;
44
+ getAdaptor<T = Adaptor>(refName: string): T;
45
+ }
@@ -0,0 +1,4 @@
1
+ export * from "./diLifecycle.d.ts";
2
+ export * from "./resolveAdaptorHierarchy.d.ts";
3
+ export * from "./resolveHierarchy.d.ts";
4
+ export * from "./resolveServiceHierarchy.d.ts";
@@ -0,0 +1,33 @@
1
+ import type { DatabaseMode } from "akanjs";
2
+ import { type AdaptorCls, BlobStorage, type CacheAdaptor, type CompressAdaptor, ConsoleLogger, type DatabaseAdaptor, JsonCompressor, type LoggingAdaptor, type QueueAdaptor, type ScheduleAdaptor, Scheduler, SolidCache, SolidPubSub, SolidQueue, SqliteDatabase, type StorageAdaptor, type WebsocketAdaptor } from "akanjs/service";
3
+ export interface PredefinedAdaptor {
4
+ database: AdaptorCls<DatabaseAdaptor>;
5
+ cache: AdaptorCls<CacheAdaptor>;
6
+ storage: AdaptorCls<StorageAdaptor>;
7
+ queue: AdaptorCls<QueueAdaptor>;
8
+ schedule: AdaptorCls<ScheduleAdaptor>;
9
+ logging: AdaptorCls<LoggingAdaptor>;
10
+ websocket: AdaptorCls<WebsocketAdaptor>;
11
+ compress: AdaptorCls<CompressAdaptor>;
12
+ }
13
+ export declare const predefinedAdaptorRole: {
14
+ database: AdaptorCls<DatabaseAdaptor>;
15
+ cache: AdaptorCls<CacheAdaptor>;
16
+ storage: AdaptorCls<StorageAdaptor>;
17
+ queue: AdaptorCls<QueueAdaptor>;
18
+ schedule: AdaptorCls<ScheduleAdaptor>;
19
+ logging: AdaptorCls<LoggingAdaptor>;
20
+ websocket: AdaptorCls<WebsocketAdaptor>;
21
+ compress: AdaptorCls<CompressAdaptor>;
22
+ };
23
+ export declare const predefinedAdaptor: {
24
+ database: typeof SqliteDatabase;
25
+ cache: typeof SolidCache;
26
+ storage: typeof BlobStorage;
27
+ queue: typeof SolidQueue;
28
+ schedule: typeof Scheduler;
29
+ logging: typeof ConsoleLogger;
30
+ websocket: typeof SolidPubSub;
31
+ compress: typeof JsonCompressor;
32
+ };
33
+ export declare const getPredefinedAdaptor: (mode?: DatabaseMode) => PredefinedAdaptor;
@@ -0,0 +1,21 @@
1
+ import { INJECT_META } from "akanjs/base";
2
+ import type { AdaptorCls, InjectInfo } from "akanjs/service";
3
+ import { type DependencyNode } from "./resolveHierarchy.d.ts";
4
+ interface AdaptorNode extends DependencyNode {
5
+ adaptor: AdaptorCls;
6
+ }
7
+ export interface AdaptorHierarchy {
8
+ graph: Map<string, AdaptorNode>;
9
+ classToKey: Map<AdaptorCls, string>;
10
+ /** Each stage contains adaptor map keys that can be initialized concurrently. Stages run sequentially. */
11
+ stages: string[][];
12
+ }
13
+ /**
14
+ * Recursively collects all AdaptorCls referenced via `plug` injections,
15
+ * starting from the given sources (services, adaptors, or anything with INJECT_META).
16
+ */
17
+ export declare function collectAdaptors(sources: {
18
+ [INJECT_META]: Record<string, InjectInfo>;
19
+ }[]): Set<AdaptorCls>;
20
+ export declare function resolveAdaptorHierarchy(adaptorMap: Map<string, AdaptorCls>, adaptorRole?: Map<AdaptorCls, AdaptorCls>): AdaptorHierarchy;
21
+ export {};
@@ -0,0 +1,11 @@
1
+ export interface DependencyNode {
2
+ key: string;
3
+ dependencies: string[];
4
+ }
5
+ /**
6
+ * Groups nodes into sequential stages where all nodes within a stage
7
+ * can be initialized concurrently (all their dependencies are satisfied
8
+ * by earlier stages).
9
+ */
10
+ export declare function topologicalStages<T extends DependencyNode>(graph: Map<string, T>): string[][];
11
+ export declare function traceCycle<T extends DependencyNode>(graph: Map<string, T>, candidates: string[]): string[];
@@ -0,0 +1,13 @@
1
+ import type { ServiceCls } from "akanjs/service";
2
+ import { type DependencyNode } from "./resolveHierarchy.d.ts";
3
+ interface ServiceNode extends DependencyNode {
4
+ service: ServiceCls;
5
+ }
6
+ export interface ServiceHierarchy {
7
+ graph: Map<string, ServiceNode>;
8
+ classToKey: Map<ServiceCls, string>;
9
+ /** Each stage contains service map keys that can be initialized concurrently. Stages run sequentially. */
10
+ stages: string[][];
11
+ }
12
+ export declare function resolveServiceHierarchy(serviceMap: Map<string, ServiceCls>): ServiceHierarchy;
13
+ export {};
@@ -0,0 +1,14 @@
1
+ interface StageTask {
2
+ label: string;
3
+ run: () => Promise<unknown>;
4
+ }
5
+ /**
6
+ * Run every task in parallel and, if any rejects, throw a single
7
+ * `AggregateError` that enumerates every failing label + cause. This replaces
8
+ * the previous `Promise.all` flow where a second concurrent failure in the
9
+ * same stage would hide the first, making boot errors hard to localize.
10
+ */
11
+ export declare const runStage: (stageLabel: string, tasks: StageTask[]) => Promise<void>;
12
+ export declare const toError: (reason: unknown) => Error;
13
+ export declare const reasonMessage: (reason: unknown) => string;
14
+ export {};
@@ -0,0 +1 @@
1
+ export * from "./di/index.d.ts";
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Runtime-safe change-classification types shared between the dev-time
3
+ * filesystem watcher (which lives in `akanjs/devkit/frontendBuild`) and
4
+ * the server-side HMR controller that consumes its batches over IPC.
5
+ *
6
+ * Keeping these as a types-only module lets the server package stay
7
+ * completely independent of `fs.watch` / `node:fs`.
8
+ */
9
+ export type ChangeKind = "code" | "css" | "config" | "ignore";
10
+ export interface ChangeBatch {
11
+ files: string[];
12
+ kinds: Set<Exclude<ChangeKind, "ignore">>;
13
+ }
@@ -0,0 +1 @@
1
+ export declare const HMR_CLIENT_SCRIPT = "(function(){\n if (self.__AKAN_HMR_INSTALLED__) return;\n self.__AKAN_HMR_INSTALLED__ = true;\n var proto = location.protocol === \"https:\" ? \"wss:\" : \"ws:\";\n var url = proto + \"//\" + location.host + \"/_akan/hmr\";\n var attempts = 0;\n var socket = null;\n var lastBuildId = null;\n var refreshRuntimePromise = null;\n var refreshQueue = Promise.resolve();\n var overlayEl = null;\n var overlayLabelEl = null;\n var overlayStyleEl = null;\n var overlayTimer = null;\n var overlayHideTimer = null;\n var overlayNextToken = 1;\n var overlayJobs = {};\n self.__AKAN_HMR_PHASE__ = null;\n\n // Bun's React Fast Refresh transform can emit top-level calls to these globals\n // even when we fall back to full reload instead of applying React Refresh.\n self.$RefreshReg$ = self.$RefreshReg$ || function(){};\n self.$RefreshSig$ = self.$RefreshSig$ || function(){ return function(type){ return type; }; };\n\n function connect(){\n try { socket = new WebSocket(url); }\n catch(e){ console.error(\"[akan-hmr] ws init failed\", e); schedule(); return; }\n socket.addEventListener(\"open\", function(){ attempts = 0; });\n socket.addEventListener(\"message\", function(ev){\n var msg;\n try { msg = JSON.parse(ev.data); } catch (e){ return; }\n if (!msg || typeof msg.type !== \"string\") return;\n if (msg.type === \"hello\") {\n if (lastBuildId !== null && msg.buildId !== lastBuildId) {\n location.reload();\n return;\n }\n lastBuildId = msg.buildId;\n return;\n }\n if (msg.type === \"reload\") {\n beginHmrOverlay(\"Reloading...\", true);\n try { self.__AKAN_RSC_CLEAR_CACHE__ && self.__AKAN_RSC_CLEAR_CACHE__(); } catch(e){}\n setTimeout(function(){ location.reload(); }, 30);\n return;\n }\n if (msg.type === \"rsc-refresh\") {\n reloadForHmr(msg);\n return;\n }\n if (msg.type === \"client-refresh\") {\n reloadForHmr(msg);\n return;\n }\n if (msg.type === \"css-update\") {\n var cssUrl = selectCssUrl(msg.cssAssets);\n if (cssUrl) swapCss(cssUrl);\n else {\n beginHmrOverlay(\"Reloading...\", true);\n location.reload();\n }\n return;\n }\n if (msg.type === \"error\") { console.error(\"[akan-hmr]\", msg.message); return; }\n });\n socket.addEventListener(\"close\", function(){ socket = null; schedule(); });\n socket.addEventListener(\"error\", function(){ try { socket && socket.close(); } catch(e){} });\n }\n\n function schedule(){\n attempts = Math.min(attempts + 1, 6);\n var delay = Math.min(30000, 250 * Math.pow(2, attempts - 1));\n setTimeout(connect, delay);\n }\n\n // goseoghyeon: CSR route registry keeps stale module refs, so JS/RSC HMR uses full reload for now.\n function reloadForHmr(msg){\n try { self.__AKAN_RSC_CLEAR_CACHE__ && self.__AKAN_RSC_CLEAR_CACHE__(); } catch(e){}\n if (msg && msg.buildId != null) lastBuildId = msg.buildId;\n location.reload();\n }\n\n function ensureOverlay(){\n if (overlayEl && overlayLabelEl) return overlayEl;\n if (!overlayStyleEl) {\n overlayStyleEl = document.createElement(\"style\");\n overlayStyleEl.textContent =\n \"@keyframes akan-hmr-spin{to{transform:rotate(360deg)}}\" +\n \".__akan_hmr_overlay{position:fixed;left:16px;bottom:16px;z-index:2147483647;display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:999px;background:rgba(17,24,39,.94);color:#fff;font:500 13px/1.2 ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;box-shadow:0 10px 28px rgba(0,0,0,.28);pointer-events:none;opacity:0;transform:translateY(6px);transition:opacity .15s ease,transform .15s ease;backdrop-filter:blur(8px)}\" +\n \".__akan_hmr_overlay[data-show=true]{opacity:1;transform:translateY(0)}\" +\n \".__akan_hmr_spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.32);border-top-color:#fff;border-radius:999px;animation:akan-hmr-spin .75s linear infinite;flex:none}\" +\n \"@media (prefers-reduced-motion:reduce){.__akan_hmr_overlay{transition:none}.__akan_hmr_spinner{animation:none}}\";\n document.head.appendChild(overlayStyleEl);\n }\n overlayEl = document.createElement(\"div\");\n overlayEl.className = \"__akan_hmr_overlay\";\n overlayEl.setAttribute(\"role\", \"status\");\n overlayEl.setAttribute(\"aria-live\", \"polite\");\n overlayEl.innerHTML = '<span class=\"__akan_hmr_spinner\" aria-hidden=\"true\"></span><span data-akan-hmr-label>Updating...</span>';\n overlayLabelEl = overlayEl.querySelector(\"[data-akan-hmr-label]\");\n (document.body || document.documentElement).appendChild(overlayEl);\n return overlayEl;\n }\n\n function activeOverlayTokens(){\n return Object.keys(overlayJobs);\n }\n\n function latestOverlayLabel(){\n var keys = activeOverlayTokens();\n if (keys.length === 0) return \"Updating...\";\n return overlayJobs[keys[keys.length - 1]] || \"Updating...\";\n }\n\n function showOverlayNow(){\n overlayTimer = null;\n if (activeOverlayTokens().length === 0) return;\n var el = ensureOverlay();\n if (overlayHideTimer) {\n clearTimeout(overlayHideTimer);\n overlayHideTimer = null;\n }\n if (overlayLabelEl) overlayLabelEl.textContent = latestOverlayLabel();\n requestAnimationFrame(function(){ el.setAttribute(\"data-show\", \"true\"); });\n }\n\n function beginHmrOverlay(label, immediate){\n var token = overlayNextToken++;\n overlayJobs[token] = label || \"Updating...\";\n if (overlayLabelEl) overlayLabelEl.textContent = latestOverlayLabel();\n if (overlayHideTimer) {\n clearTimeout(overlayHideTimer);\n overlayHideTimer = null;\n }\n if (immediate) {\n if (overlayTimer) clearTimeout(overlayTimer);\n showOverlayNow();\n } else if (!overlayTimer && (!overlayEl || overlayEl.getAttribute(\"data-show\") !== \"true\")) {\n overlayTimer = setTimeout(showOverlayNow, 120);\n }\n return token;\n }\n\n function setHmrOverlayLabel(token, label){\n if (!overlayJobs[token]) return;\n overlayJobs[token] = label || \"Updating...\";\n if (overlayLabelEl) overlayLabelEl.textContent = latestOverlayLabel();\n }\n\n function endHmrOverlay(token){\n delete overlayJobs[token];\n if (activeOverlayTokens().length > 0) {\n if (overlayLabelEl) overlayLabelEl.textContent = latestOverlayLabel();\n return;\n }\n if (overlayTimer) {\n clearTimeout(overlayTimer);\n overlayTimer = null;\n }\n if (!overlayEl) return;\n overlayEl.setAttribute(\"data-show\", \"false\");\n if (overlayHideTimer) clearTimeout(overlayHideTimer);\n overlayHideTimer = setTimeout(function(){\n if (overlayEl && activeOverlayTokens().length === 0 && overlayEl.parentNode) {\n overlayEl.parentNode.removeChild(overlayEl);\n overlayEl = null;\n overlayLabelEl = null;\n }\n }, 180);\n }\n\n function refreshRsc(msg){\n var started = performance.now();\n var overlayToken = beginHmrOverlay(\"Refreshing page...\");\n try { self.__AKAN_RSC_CLEAR_CACHE__ && self.__AKAN_RSC_CLEAR_CACHE__(); } catch(e){}\n if (!self.__AKAN_RSC_REFRESH__) {\n console.warn(\"[akan-hmr] RSC refresh API unavailable, falling back to full reload\");\n setHmrOverlayLabel(overlayToken, \"Reloading...\");\n setTimeout(function(){ location.reload(); }, 30);\n return;\n }\n Promise.resolve(self.__AKAN_RSC_REFRESH__({ buildId: msg.buildId })).then(function(){\n lastBuildId = msg.buildId;\n endHmrOverlay(overlayToken);\n console.debug && console.debug(\"[akan-hmr] RSC refreshed\", {\n buildId: msg.buildId,\n generation: msg.generation,\n routeIds: msg.routeIds,\n changedFiles: msg.changedFiles && msg.changedFiles.length,\n durationMs: Math.round(performance.now() - started)\n });\n }, function(err){\n console.error(\"[akan-hmr] RSC refresh failed, falling back to full reload\", err);\n setHmrOverlayLabel(overlayToken, \"Update failed, reloading...\");\n setTimeout(function(){ location.reload(); }, 250);\n });\n }\n\n function ensureRefreshRuntime(){\n if (refreshRuntimePromise) return refreshRuntimePromise;\n refreshRuntimePromise = import(\"react-refresh/runtime\").then(function(mod){\n var runtime = mod.default || mod;\n if (!self.__AKAN_REACT_REFRESH_READY__) {\n runtime.injectIntoGlobalHook(self);\n self.$RefreshReg$ = function(type, id){ runtime.register(type, id); };\n self.$RefreshSig$ = runtime.createSignatureFunctionForTransform;\n self.__AKAN_REACT_REFRESH_READY__ = true;\n self.__AKAN_REACT_REFRESH_RUNTIME__ = runtime;\n }\n return runtime;\n });\n return refreshRuntimePromise;\n }\n\n function refreshClient(msg){\n refreshQueue = refreshQueue.then(function(){ return doRefreshClient(msg); }, function(){ return doRefreshClient(msg); });\n }\n\n function setHmrPhase(phase){\n self.__AKAN_HMR_PHASE__ = phase;\n }\n\n function doRefreshClient(msg){\n var started = performance.now();\n var metadataAt = started;\n var importAt = started;\n var refreshAt = started;\n var overlayToken = beginHmrOverlay(\"Updating...\");\n var fallbackToRsc = false;\n return ensureRefreshRuntime().then(function(runtime){\n setHmrOverlayLabel(overlayToken, \"Fetching update...\");\n var endpoint = new URL(\"/_akan/hmr/client-refresh\", location.origin);\n endpoint.searchParams.set(\"url\", location.href);\n if (msg.buildId != null) endpoint.searchParams.set(\"buildId\", String(msg.buildId));\n return fetch(endpoint, { credentials: \"same-origin\", cache: \"no-store\" })\n .then(function(res){\n if (!res.ok) throw new Error(\"client-refresh metadata failed \" + res.status + \" \" + res.statusText);\n return res.json();\n })\n .then(function(info){\n metadataAt = performance.now();\n var chunks = Array.isArray(info.chunks) ? info.chunks : [];\n if (chunks.length === 0) throw new Error(\"no client chunks returned\");\n setHmrPhase(\"refresh-import\");\n setHmrOverlayLabel(overlayToken, \"Importing update...\");\n return Promise.all(chunks.map(function(chunk){ return import(chunk); })).then(function(){\n importAt = performance.now();\n setHmrPhase(\"react-refresh\");\n setHmrOverlayLabel(overlayToken, \"Applying update...\");\n try {\n runtime.performReactRefresh();\n } finally {\n setHmrPhase(null);\n }\n refreshAt = performance.now();\n lastBuildId = msg.buildId;\n console.debug && console.debug(\"[akan-hmr] React Fast Refresh applied\", {\n buildId: msg.buildId,\n generation: msg.generation,\n chunks: chunks.length,\n routeIds: info.routeIds || msg.routeIds,\n changedFiles: msg.changedFiles && msg.changedFiles.length,\n metadataMs: Math.round(metadataAt - started),\n importMs: Math.round(importAt - metadataAt),\n refreshMs: Math.round(refreshAt - importAt),\n durationMs: Math.round(refreshAt - started)\n });\n endHmrOverlay(overlayToken);\n }, function(err){\n setHmrPhase(null);\n throw err;\n });\n });\n }).catch(function(err){\n console.warn(\"[akan-hmr] React Fast Refresh failed, falling back to RSC refresh\", err);\n fallbackToRsc = true;\n endHmrOverlay(overlayToken);\n refreshRsc(msg);\n }).finally(function(){\n if (!fallbackToRsc) endHmrOverlay(overlayToken);\n });\n }\n\n function swapCss(href){\n var overlayToken = beginHmrOverlay(\"Updating styles...\");\n var link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = href;\n link.setAttribute(\"data-akan-css\", \"pending\");\n link.addEventListener(\"load\", function(){\n var prev = document.querySelectorAll(\"link[data-akan-css=active]\");\n for (var i = 0; i < prev.length; i++) prev[i].parentNode && prev[i].parentNode.removeChild(prev[i]);\n link.setAttribute(\"data-akan-css\", \"active\");\n endHmrOverlay(overlayToken);\n });\n link.addEventListener(\"error\", function(){\n if (link.parentNode) link.parentNode.removeChild(link);\n endHmrOverlay(overlayToken);\n });\n document.head.appendChild(link);\n }\n\n function selectCssUrl(cssAssets){\n if (!cssAssets || typeof cssAssets !== \"object\") return null;\n var parts = location.pathname.split(\"/\").filter(Boolean);\n for (var i = 0; i < parts.length; i++) {\n var asset = cssAssets[parts[i]];\n if (asset && asset.cssUrl) return asset.cssUrl;\n }\n return cssAssets[\"\"] && cssAssets[\"\"].cssUrl ? cssAssets[\"\"].cssUrl : null;\n }\n\n connect();\n})();";
@@ -0,0 +1,24 @@
1
+ import { BuilderRpc, type ClientManifest, RouteClientCache, type RouteSeedIndex } from "../artifact.d.ts";
2
+ import type { RscWorker } from "../rscWorkerHost.d.ts";
3
+ import type { RenderState } from "../types.d.ts";
4
+ import { type HmrWsData, HmrWsHub } from "./wsHub.d.ts";
5
+ export interface DevHmrControllerOptions {
6
+ renderState: RenderState;
7
+ rsc: RscWorker;
8
+ seedIndex: RouteSeedIndex;
9
+ upgradeHmrWs: (req: Request, data: HmrWsData) => boolean;
10
+ }
11
+ export declare class DevHmrController {
12
+ #private;
13
+ readonly routeCache: RouteClientCache;
14
+ constructor({ renderState, rsc, seedIndex, upgradeHmrWs }: DevHmrControllerOptions);
15
+ get hub(): HmrWsHub;
16
+ get builderRpc(): BuilderRpc;
17
+ dispose(): void;
18
+ broadcastError(message: string): void;
19
+ handleWs(req: Request): Response | undefined;
20
+ handleClientRefresh(req: Request): Promise<Response>;
21
+ ensureRoute(url: URL): Promise<import("..").MergedManifest>;
22
+ routeIdsForPath(pathname: string): string[] | undefined;
23
+ static clientChunkUrls(clientManifest: ClientManifest): string[];
24
+ }
@@ -0,0 +1,4 @@
1
+ export * from "./changeBatch.d.ts";
2
+ export * from "./clientScript.d.ts";
3
+ export * from "./devHmrController.d.ts";
4
+ export * from "./wsHub.d.ts";
@@ -0,0 +1,45 @@
1
+ export interface HmrWsData {
2
+ kind: "akan-hmr";
3
+ openedAt: number;
4
+ }
5
+ export type HmrMessage = {
6
+ type: "hello";
7
+ buildId: number;
8
+ cssAssets?: Record<string, {
9
+ cssUrl: string;
10
+ cssRelPath: string;
11
+ }>;
12
+ } | {
13
+ type: "reload";
14
+ buildId: number;
15
+ } | {
16
+ type: "rsc-refresh";
17
+ buildId: number;
18
+ generation?: number;
19
+ changedFiles?: string[];
20
+ routeIds?: string[];
21
+ } | {
22
+ type: "client-refresh";
23
+ buildId: number;
24
+ generation?: number;
25
+ changedFiles?: string[];
26
+ routeIds?: string[];
27
+ } | {
28
+ type: "css-update";
29
+ cssAssets?: Record<string, {
30
+ cssUrl: string;
31
+ cssRelPath: string;
32
+ }>;
33
+ } | {
34
+ type: "error";
35
+ message: string;
36
+ };
37
+ export declare const HMR_WS_TOPIC = "__akan_hmr";
38
+ export declare class HmrWsHub {
39
+ #private;
40
+ get size(): number;
41
+ setPublisher(publish: (topic: string, payload: string) => void): void;
42
+ attach(ws: Bun.ServerWebSocket<HmrWsData>): void;
43
+ detach(ws: Bun.ServerWebSocket<HmrWsData>): void;
44
+ broadcast(msg: HmrMessage): void;
45
+ }
@@ -0,0 +1 @@
1
+ export * from "./hmr/index.d.ts";
@@ -0,0 +1,12 @@
1
+ import { type AkanImageConfig } from "./types.d.ts";
2
+ export interface ImageOptimizerOptions {
3
+ publicDir: string;
4
+ cacheDir: string;
5
+ prodMode: boolean;
6
+ config?: Partial<AkanImageConfig>;
7
+ }
8
+ export declare class ImageOptimizer {
9
+ #private;
10
+ constructor({ publicDir, cacheDir, prodMode, config }: ImageOptimizerOptions);
11
+ handle(req: Request): Promise<Response>;
12
+ }
@@ -0,0 +1,4 @@
1
+ export declare class ImageOptimizerError extends Error {
2
+ readonly status: number;
3
+ constructor(status: number, message: string);
4
+ }
@@ -0,0 +1,14 @@
1
+ export * from "./akanApp.d.ts";
2
+ export * from "./akanLib.d.ts";
3
+ export * from "./akanOption.d.ts";
4
+ export * from "./akanServer.d.ts";
5
+ export * from "./artifact.d.ts";
6
+ export * from "./decorators.d.ts";
7
+ export type { ChangeBatch, ChangeKind } from "./hmr/changeBatch.d.ts";
8
+ export * from "./processMetricsCollector.d.ts";
9
+ export * from "./proxy.d.ts";
10
+ export * from "./routeElementComposer.d.ts";
11
+ export * from "./routeTreeBuilder.d.ts";
12
+ export * from "./sitemap.d.ts";
13
+ export type { SsrManifest, SsrManifestEntry } from "./ssrTypes.d.ts";
14
+ export * from "./types.d.ts";
@@ -0,0 +1,13 @@
1
+ import type { Logger } from "akanjs/common";
2
+ export declare class ShutdownManager {
3
+ #private;
4
+ /**
5
+ * Registers process-level handlers that drive `onShutdown` on:
6
+ * - SIGTERM / SIGINT (graceful stop → exit(0) on success, exit(1) on error)
7
+ * - uncaughtException / unhandledRejection (best-effort stop → exit(1))
8
+ *
9
+ * Kept separate from `AkanServer` so the server class doesn't have to know about
10
+ * Node-level process events, and so tests can opt out by not calling it.
11
+ */
12
+ static register(logger: Logger, onShutdown: () => Promise<void>): void;
13
+ }
@@ -0,0 +1,20 @@
1
+ export interface RotatingLogWriterOptions {
2
+ logDir: string;
3
+ appName: string;
4
+ environment: string;
5
+ operationMode: string;
6
+ maxSizeBytes?: number;
7
+ maxFiles?: number;
8
+ now?: () => Date;
9
+ warn?: (message: string) => void;
10
+ }
11
+ export declare class RotatingLogWriter {
12
+ #private;
13
+ static readonly defaultMaxSizeBytes: number;
14
+ static readonly defaultMaxFiles = 100;
15
+ constructor(options: RotatingLogWriterOptions);
16
+ static fromRuntimeDir(runtimeDir: string): RotatingLogWriter | null;
17
+ static sanitizeFilePart(value: string): string;
18
+ write(processKey: string, chunk: string): void;
19
+ close(): Promise<void>;
20
+ }
@@ -0,0 +1,10 @@
1
+ import type { AkanMetricsReport } from "akanjs/service";
2
+ export declare class ProcessMetricsCollector {
3
+ #private;
4
+ static parseMemoryLogIntervalMs(value?: string | undefined): number;
5
+ /** Begin sampling event-loop lag. Idempotent; safe to call from each server role. */
6
+ static startEventLoopLagMonitor(intervalMs?: number): void;
7
+ static collect(extra?: AkanMetricsReport): Promise<AkanMetricsReport>;
8
+ static formatBytes(bytes?: number): string;
9
+ static format(metrics: AkanMetricsReport): string;
10
+ }
@@ -0,0 +1,7 @@
1
+ import { type WebProxyNextInit, type WebProxyResult } from "./types.d.ts";
2
+ /** Helpers for returning next/rewrite/redirect results from Akan web proxies. */
3
+ export declare class AkanResponse {
4
+ static next(init?: WebProxyNextInit): WebProxyResult;
5
+ static redirect(url: string | URL, status?: number): Response;
6
+ static rewrite(url: string | URL, init?: WebProxyNextInit): WebProxyResult;
7
+ }
@@ -0,0 +1 @@
1
+ export declare const copyBunRequestFields: (target: Request, source: Request) => Request;
@@ -0,0 +1,6 @@
1
+ import type { WebProxy } from "./types.d.ts";
2
+ export declare class HostBasePathWebProxy implements WebProxy {
3
+ #private;
4
+ static readonly refName = "HostBasePathWebProxy";
5
+ use(request: Bun.BunRequest): Response | import("./types.d.ts").WebProxyResult | undefined;
6
+ }
@@ -0,0 +1,6 @@
1
+ export { AkanResponse } from "./akanResponse.d.ts";
2
+ export { copyBunRequestFields } from "./bunRequestFields.d.ts";
3
+ export { HostBasePathWebProxy } from "./hostBasePathWebProxy.d.ts";
4
+ export { LocaleWebProxy } from "./localeWebProxy.d.ts";
5
+ export type { WebProxy, WebProxyCls, WebProxyMatcher, WebProxyNextInit, WebProxyRegistration, WebProxyResult, WebProxyReturn, WebProxyRunResult, } from "./types.d.ts";
6
+ export { WebProxyRunner } from "./webProxyRunner.d.ts";
@@ -0,0 +1,5 @@
1
+ import type { WebProxy } from "./types.d.ts";
2
+ export declare class LocaleWebProxy implements WebProxy {
3
+ static readonly refName = "LocaleWebProxy";
4
+ use(request: Bun.BunRequest): Response | import("./types.d.ts").WebProxyResult;
5
+ }
@@ -0,0 +1,37 @@
1
+ import type { Cls, PromiseOrObject } from "akanjs/base";
2
+ export declare const WEB_PROXY_RESULT: unique symbol;
3
+ export type WebProxyNextInit = {
4
+ request?: {
5
+ headers?: HeadersInit;
6
+ };
7
+ };
8
+ export type WebProxyResult = {
9
+ readonly [WEB_PROXY_RESULT]: true;
10
+ readonly type: "next";
11
+ readonly request?: {
12
+ readonly headers?: HeadersInit;
13
+ };
14
+ } | {
15
+ readonly [WEB_PROXY_RESULT]: true;
16
+ readonly type: "rewrite";
17
+ readonly url: string | URL;
18
+ readonly request?: {
19
+ readonly headers?: HeadersInit;
20
+ };
21
+ };
22
+ export type WebProxyReturn = Response | WebProxyResult | undefined;
23
+ export interface WebProxy {
24
+ use(request: Bun.BunRequest): PromiseOrObject<WebProxyReturn>;
25
+ }
26
+ export type WebProxyCls = Cls<WebProxy, {
27
+ readonly refName: string;
28
+ }>;
29
+ export type WebProxyMatcher = string | RegExp | ((request: Request) => boolean);
30
+ export type WebProxyRegistration = WebProxyCls | {
31
+ proxy: WebProxyCls;
32
+ matcher?: WebProxyMatcher;
33
+ };
34
+ export interface WebProxyRunResult {
35
+ request: Request;
36
+ response?: Response;
37
+ }