@askrjs/askr 0.0.28 → 0.0.30

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 (457) hide show
  1. package/README.md +44 -172
  2. package/dist/_virtual/_rolldown/runtime.js +7 -0
  3. package/dist/bench/components/benchmark-row.d.ts +20 -0
  4. package/dist/bench/components/benchmark-row.d.ts.map +1 -0
  5. package/dist/bench/components/benchmark-row.js +42 -0
  6. package/dist/bench/components/benchmark-row.js.map +1 -0
  7. package/dist/bench/components/benchmark-table.js +25 -0
  8. package/dist/bench/components/benchmark-table.js.map +1 -0
  9. package/dist/benchmark.d.ts +22 -0
  10. package/dist/benchmark.d.ts.map +1 -0
  11. package/dist/benchmark.js +64 -1
  12. package/dist/benchmark.js.map +1 -0
  13. package/dist/bin/askr-ssg.d.ts +22 -26
  14. package/dist/bin/askr-ssg.d.ts.map +1 -1
  15. package/dist/bin/askr-ssg.js +149 -2
  16. package/dist/bin/askr-ssg.js.map +1 -0
  17. package/dist/boot/index.d.ts +64 -42
  18. package/dist/boot/index.d.ts.map +1 -1
  19. package/dist/boot/index.js +416 -2
  20. package/dist/boot/index.js.map +1 -0
  21. package/dist/common/component.d.ts +14 -13
  22. package/dist/common/component.d.ts.map +1 -1
  23. package/dist/common/control.d.ts +13 -0
  24. package/dist/common/control.d.ts.map +1 -0
  25. package/dist/common/control.js +14 -0
  26. package/dist/common/control.js.map +1 -0
  27. package/dist/common/env.js +47 -0
  28. package/dist/common/env.js.map +1 -0
  29. package/dist/common/jsx.d.ts +17 -15
  30. package/dist/common/jsx.d.ts.map +1 -1
  31. package/dist/common/jsx.js +8 -1
  32. package/dist/common/jsx.js.map +1 -0
  33. package/dist/common/props.d.ts +14 -11
  34. package/dist/common/props.d.ts.map +1 -1
  35. package/dist/common/router.d.ts +190 -32
  36. package/dist/common/router.d.ts.map +1 -1
  37. package/dist/common/ssr-errors.d.ts +6 -3
  38. package/dist/common/ssr-errors.d.ts.map +1 -1
  39. package/dist/common/ssr-errors.js +16 -1
  40. package/dist/common/ssr-errors.js.map +1 -0
  41. package/dist/common/ssr.d.ts +12 -9
  42. package/dist/common/ssr.d.ts.map +1 -1
  43. package/dist/common/vnode.d.ts +17 -15
  44. package/dist/common/vnode.d.ts.map +1 -1
  45. package/dist/common/vnode.js +10 -1
  46. package/dist/common/vnode.js.map +1 -0
  47. package/dist/components/link.d.ts +37 -25
  48. package/dist/components/link.d.ts.map +1 -1
  49. package/dist/components/link.js +64 -1
  50. package/dist/components/link.js.map +1 -0
  51. package/dist/control/case.d.ts +17 -0
  52. package/dist/control/case.d.ts.map +1 -0
  53. package/dist/control/case.js +69 -0
  54. package/dist/control/case.js.map +1 -0
  55. package/dist/control/for.d.ts +23 -0
  56. package/dist/control/for.d.ts.map +1 -0
  57. package/dist/control/for.js +62 -0
  58. package/dist/control/for.js.map +1 -0
  59. package/dist/control/index.d.ts +4 -0
  60. package/dist/control/index.js +4 -0
  61. package/dist/control/shared.js +20 -0
  62. package/dist/control/shared.js.map +1 -0
  63. package/dist/control/show.d.ts +14 -0
  64. package/dist/control/show.d.ts.map +1 -0
  65. package/dist/control/show.js +33 -0
  66. package/dist/control/show.js.map +1 -0
  67. package/dist/dev/invariant.js +29 -2
  68. package/dist/dev/invariant.js.map +1 -0
  69. package/dist/dev/logger.js +37 -1
  70. package/dist/dev/logger.js.map +1 -0
  71. package/dist/foundations/core.d.ts +15 -23
  72. package/dist/foundations/core.js +13 -1
  73. package/dist/foundations/icon/icon.d.ts +53 -0
  74. package/dist/foundations/icon/icon.d.ts.map +1 -0
  75. package/dist/foundations/icon/icon.js +88 -0
  76. package/dist/foundations/icon/icon.js.map +1 -0
  77. package/dist/foundations/icon/icon.types.d.ts +21 -0
  78. package/dist/foundations/icon/icon.types.d.ts.map +1 -0
  79. package/dist/foundations/index.d.ts +23 -3
  80. package/dist/foundations/index.js +22 -1
  81. package/dist/foundations/interactions/dismissable.d.ts +25 -17
  82. package/dist/foundations/interactions/dismissable.d.ts.map +1 -1
  83. package/dist/foundations/interactions/dismissable.js +26 -1
  84. package/dist/foundations/interactions/dismissable.js.map +1 -0
  85. package/dist/foundations/interactions/focusable.d.ts +13 -7
  86. package/dist/foundations/interactions/focusable.d.ts.map +1 -1
  87. package/dist/foundations/interactions/focusable.js +18 -1
  88. package/dist/foundations/interactions/focusable.js.map +1 -0
  89. package/dist/foundations/interactions/hoverable.d.ts +17 -10
  90. package/dist/foundations/interactions/hoverable.d.ts.map +1 -1
  91. package/dist/foundations/interactions/hoverable.js +15 -1
  92. package/dist/foundations/interactions/hoverable.js.map +1 -0
  93. package/dist/foundations/interactions/interaction-policy.d.ts +32 -78
  94. package/dist/foundations/interactions/interaction-policy.d.ts.map +1 -1
  95. package/dist/foundations/interactions/interaction-policy.js +122 -1
  96. package/dist/foundations/interactions/interaction-policy.js.map +1 -0
  97. package/dist/foundations/interactions/pressable.d.ts +25 -18
  98. package/dist/foundations/interactions/pressable.d.ts.map +1 -1
  99. package/dist/foundations/interactions/pressable.js +51 -1
  100. package/dist/foundations/interactions/pressable.js.map +1 -0
  101. package/dist/foundations/interactions/roving-focus.d.ts +49 -114
  102. package/dist/foundations/interactions/roving-focus.d.ts.map +1 -1
  103. package/dist/foundations/interactions/roving-focus.js +71 -1
  104. package/dist/foundations/interactions/roving-focus.js.map +1 -0
  105. package/dist/foundations/state/controllable.d.ts +22 -41
  106. package/dist/foundations/state/controllable.d.ts.map +1 -1
  107. package/dist/foundations/state/controllable.js +81 -1
  108. package/dist/foundations/state/controllable.js.map +1 -0
  109. package/dist/foundations/structures/collection.d.ts +25 -40
  110. package/dist/foundations/structures/collection.d.ts.map +1 -1
  111. package/dist/foundations/structures/collection.js +51 -1
  112. package/dist/foundations/structures/collection.js.map +1 -0
  113. package/dist/foundations/structures/layer.d.ts +47 -68
  114. package/dist/foundations/structures/layer.d.ts.map +1 -1
  115. package/dist/foundations/structures/layer.js +81 -1
  116. package/dist/foundations/structures/layer.js.map +1 -0
  117. package/dist/foundations/structures/layout.d.ts +6 -3
  118. package/dist/foundations/structures/layout.d.ts.map +1 -1
  119. package/dist/foundations/structures/layout.js +13 -1
  120. package/dist/foundations/structures/layout.js.map +1 -0
  121. package/dist/foundations/structures/portal.d.ts +17 -10
  122. package/dist/foundations/structures/portal.d.ts.map +1 -1
  123. package/dist/foundations/structures/portal.js +105 -1
  124. package/dist/foundations/structures/portal.js.map +1 -0
  125. package/dist/foundations/structures/presence.d.ts +11 -5
  126. package/dist/foundations/structures/presence.d.ts.map +1 -1
  127. package/dist/foundations/structures/presence.js +39 -1
  128. package/dist/foundations/structures/presence.js.map +1 -0
  129. package/dist/foundations/structures/slot.d.ts +11 -8
  130. package/dist/foundations/structures/slot.d.ts.map +1 -1
  131. package/dist/foundations/structures/slot.js +41 -1
  132. package/dist/foundations/structures/slot.js.map +1 -0
  133. package/dist/foundations/structures.d.ts +7 -14
  134. package/dist/foundations/structures.js +6 -1
  135. package/dist/foundations/utilities/aria.d.ts +9 -6
  136. package/dist/foundations/utilities/aria.d.ts.map +1 -1
  137. package/dist/foundations/utilities/aria.js +17 -1
  138. package/dist/foundations/utilities/aria.js.map +1 -0
  139. package/dist/foundations/utilities/compose-handlers.d.ts +10 -7
  140. package/dist/foundations/utilities/compose-handlers.d.ts.map +1 -1
  141. package/dist/foundations/utilities/compose-handlers.js +20 -1
  142. package/dist/foundations/utilities/compose-handlers.js.map +1 -0
  143. package/dist/foundations/utilities/compose-ref.d.ts +7 -4
  144. package/dist/foundations/utilities/compose-ref.d.ts.map +1 -1
  145. package/dist/foundations/utilities/compose-ref.js +18 -1
  146. package/dist/foundations/utilities/compose-ref.js.map +1 -0
  147. package/dist/foundations/utilities/event-types.d.ts +14 -11
  148. package/dist/foundations/utilities/event-types.d.ts.map +1 -1
  149. package/dist/foundations/utilities/merge-props.d.ts +4 -1
  150. package/dist/foundations/utilities/merge-props.d.ts.map +1 -1
  151. package/dist/foundations/utilities/merge-props.js +49 -1
  152. package/dist/foundations/utilities/merge-props.js.map +1 -0
  153. package/dist/foundations/utilities/use-id.d.ts +9 -6
  154. package/dist/foundations/utilities/use-id.d.ts.map +1 -1
  155. package/dist/foundations/utilities/use-id.js +29 -1
  156. package/dist/foundations/utilities/use-id.js.map +1 -0
  157. package/dist/fx/fx.d.ts +24 -21
  158. package/dist/fx/fx.d.ts.map +1 -1
  159. package/dist/fx/fx.js +212 -1
  160. package/dist/fx/fx.js.map +1 -0
  161. package/dist/fx/index.d.ts +4 -7
  162. package/dist/fx/index.js +4 -1
  163. package/dist/fx/noop.js +9 -1
  164. package/dist/fx/noop.js.map +1 -0
  165. package/dist/fx/timing.d.ts +24 -21
  166. package/dist/fx/timing.d.ts.map +1 -1
  167. package/dist/fx/timing.js +236 -1
  168. package/dist/fx/timing.js.map +1 -0
  169. package/dist/index.d.ts +21 -23
  170. package/dist/index.js +34 -1
  171. package/dist/index.js.map +1 -0
  172. package/dist/jsx/index.d.ts +1 -4
  173. package/dist/jsx/index.js +3 -1
  174. package/dist/jsx/types.d.ts +18 -25
  175. package/dist/jsx/types.d.ts.map +1 -1
  176. package/dist/jsx/types.js +1 -1
  177. package/dist/jsx/utils.d.ts +4 -3
  178. package/dist/jsx/utils.d.ts.map +1 -1
  179. package/dist/jsx/utils.js +19 -1
  180. package/dist/jsx/utils.js.map +1 -0
  181. package/dist/jsx-dev-runtime.d.ts +8 -0
  182. package/dist/jsx-dev-runtime.d.ts.map +1 -0
  183. package/dist/jsx-dev-runtime.js +32 -1
  184. package/dist/jsx-dev-runtime.js.map +1 -0
  185. package/dist/jsx-runtime.d.ts +12 -0
  186. package/dist/jsx-runtime.d.ts.map +1 -0
  187. package/dist/jsx-runtime.js +45 -1
  188. package/dist/jsx-runtime.js.map +1 -0
  189. package/dist/jsx-runtime2.d.ts +2 -0
  190. package/dist/jsx-runtime2.js +3 -0
  191. package/dist/renderer/children.js +293 -0
  192. package/dist/renderer/children.js.map +1 -0
  193. package/dist/renderer/cleanup.js +150 -1
  194. package/dist/renderer/cleanup.js.map +1 -0
  195. package/dist/renderer/dom.js +2439 -1
  196. package/dist/renderer/dom.js.map +1 -0
  197. package/dist/renderer/env.js +1 -0
  198. package/dist/renderer/evaluate.js +450 -1
  199. package/dist/renderer/evaluate.js.map +1 -0
  200. package/dist/renderer/fastpath.js +145 -1
  201. package/dist/renderer/fastpath.js.map +1 -0
  202. package/dist/renderer/index.js +24 -1
  203. package/dist/renderer/index.js.map +1 -0
  204. package/dist/renderer/keyed.js +119 -1
  205. package/dist/renderer/keyed.js.map +1 -0
  206. package/dist/renderer/reconcile.js +359 -1
  207. package/dist/renderer/reconcile.js.map +1 -0
  208. package/dist/renderer/types.js +1 -1
  209. package/dist/renderer/utils.js +220 -1
  210. package/dist/renderer/utils.js.map +1 -0
  211. package/dist/resources/index.d.ts +3 -9
  212. package/dist/resources/index.js +3 -1
  213. package/dist/router/index.d.ts +6 -10
  214. package/dist/router/index.js +5 -1
  215. package/dist/router/match.js +83 -1
  216. package/dist/router/match.js.map +1 -0
  217. package/dist/router/navigate.d.ts +20 -8
  218. package/dist/router/navigate.d.ts.map +1 -1
  219. package/dist/router/navigate.js +288 -1
  220. package/dist/router/navigate.js.map +1 -0
  221. package/dist/router/policy.d.ts +22 -0
  222. package/dist/router/policy.d.ts.map +1 -0
  223. package/dist/router/policy.js +116 -0
  224. package/dist/router/policy.js.map +1 -0
  225. package/dist/router/route-context.js +79 -0
  226. package/dist/router/route-context.js.map +1 -0
  227. package/dist/router/route.d.ts +101 -34
  228. package/dist/router/route.d.ts.map +1 -1
  229. package/dist/router/route.js +599 -1
  230. package/dist/router/route.js.map +1 -0
  231. package/dist/runtime/child-scope.d.ts +21 -0
  232. package/dist/runtime/child-scope.d.ts.map +1 -0
  233. package/dist/runtime/child-scope.js +77 -0
  234. package/dist/runtime/child-scope.js.map +1 -0
  235. package/dist/runtime/component.d.ts +67 -56
  236. package/dist/runtime/component.d.ts.map +1 -1
  237. package/dist/runtime/component.js +462 -1
  238. package/dist/runtime/component.js.map +1 -0
  239. package/dist/runtime/context.d.ts +28 -42
  240. package/dist/runtime/context.d.ts.map +1 -1
  241. package/dist/runtime/context.js +205 -1
  242. package/dist/runtime/context.js.map +1 -0
  243. package/dist/runtime/control.d.ts +43 -0
  244. package/dist/runtime/control.d.ts.map +1 -0
  245. package/dist/runtime/control.js +125 -0
  246. package/dist/runtime/control.js.map +1 -0
  247. package/dist/runtime/derive.d.ts +12 -9
  248. package/dist/runtime/derive.d.ts.map +1 -1
  249. package/dist/runtime/derive.js +134 -1
  250. package/dist/runtime/derive.js.map +1 -0
  251. package/dist/runtime/dev-namespace.js +57 -1
  252. package/dist/runtime/dev-namespace.js.map +1 -0
  253. package/dist/runtime/effect.d.ts +32 -0
  254. package/dist/runtime/effect.d.ts.map +1 -0
  255. package/dist/runtime/effect.js +146 -0
  256. package/dist/runtime/effect.js.map +1 -0
  257. package/dist/runtime/events.js +162 -1
  258. package/dist/runtime/events.js.map +1 -0
  259. package/dist/runtime/execution-model.js +15 -1
  260. package/dist/runtime/execution-model.js.map +1 -0
  261. package/dist/runtime/fastlane.js +204 -1
  262. package/dist/runtime/fastlane.js.map +1 -0
  263. package/dist/runtime/for-bench.d.ts +41 -0
  264. package/dist/runtime/for-bench.d.ts.map +1 -0
  265. package/dist/runtime/for-bench.js +173 -0
  266. package/dist/runtime/for-bench.js.map +1 -0
  267. package/dist/runtime/for.d.ts +62 -49
  268. package/dist/runtime/for.d.ts.map +1 -1
  269. package/dist/runtime/for.js +668 -1
  270. package/dist/runtime/for.js.map +1 -0
  271. package/dist/runtime/operations.d.ts +18 -15
  272. package/dist/runtime/operations.d.ts.map +1 -1
  273. package/dist/runtime/operations.js +209 -1
  274. package/dist/runtime/operations.js.map +1 -0
  275. package/dist/runtime/perf-metrics.js +64 -1
  276. package/dist/runtime/perf-metrics.js.map +1 -0
  277. package/dist/runtime/readable.d.ts +24 -18
  278. package/dist/runtime/readable.d.ts.map +1 -1
  279. package/dist/runtime/readable.js +118 -1
  280. package/dist/runtime/readable.js.map +1 -0
  281. package/dist/runtime/resource-cell.js +102 -1
  282. package/dist/runtime/resource-cell.js.map +1 -0
  283. package/dist/runtime/scheduler.d.ts +51 -50
  284. package/dist/runtime/scheduler.d.ts.map +1 -1
  285. package/dist/runtime/scheduler.js +328 -1
  286. package/dist/runtime/scheduler.js.map +1 -0
  287. package/dist/runtime/selector.d.ts +7 -5
  288. package/dist/runtime/selector.d.ts.map +1 -1
  289. package/dist/runtime/selector.js +188 -1
  290. package/dist/runtime/selector.js.map +1 -0
  291. package/dist/runtime/ssr-bridge.js +24 -1
  292. package/dist/runtime/ssr-bridge.js.map +1 -0
  293. package/dist/runtime/state.d.ts +11 -19
  294. package/dist/runtime/state.d.ts.map +1 -1
  295. package/dist/runtime/state.js +99 -1
  296. package/dist/runtime/state.js.map +1 -0
  297. package/dist/ssg/batch-render.d.ts +10 -10
  298. package/dist/ssg/batch-render.d.ts.map +1 -1
  299. package/dist/ssg/batch-render.js +84 -1
  300. package/dist/ssg/batch-render.js.map +1 -0
  301. package/dist/ssg/create-static-gen.d.ts +28 -29
  302. package/dist/ssg/create-static-gen.d.ts.map +1 -1
  303. package/dist/ssg/create-static-gen.js +282 -1
  304. package/dist/ssg/create-static-gen.js.map +1 -0
  305. package/dist/ssg/generate-metadata.d.ts +12 -15
  306. package/dist/ssg/generate-metadata.d.ts.map +1 -1
  307. package/dist/ssg/generate-metadata.js +94 -1
  308. package/dist/ssg/generate-metadata.js.map +1 -0
  309. package/dist/ssg/incremental-manifest.js +56 -1
  310. package/dist/ssg/incremental-manifest.js.map +1 -0
  311. package/dist/ssg/index.d.ts +8 -28
  312. package/dist/ssg/index.js +7 -1
  313. package/dist/ssg/resolve-ssg-data.d.ts +10 -13
  314. package/dist/ssg/resolve-ssg-data.d.ts.map +1 -1
  315. package/dist/ssg/resolve-ssg-data.js +46 -1
  316. package/dist/ssg/resolve-ssg-data.js.map +1 -0
  317. package/dist/ssg/route-utils.d.ts +14 -10
  318. package/dist/ssg/route-utils.d.ts.map +1 -1
  319. package/dist/ssg/route-utils.js +24 -1
  320. package/dist/ssg/route-utils.js.map +1 -0
  321. package/dist/ssg/types.d.ts +157 -144
  322. package/dist/ssg/types.d.ts.map +1 -1
  323. package/dist/ssg/write-static-files.d.ts +8 -14
  324. package/dist/ssg/write-static-files.d.ts.map +1 -1
  325. package/dist/ssg/write-static-files.js +73 -1
  326. package/dist/ssg/write-static-files.js.map +1 -0
  327. package/dist/ssr/attrs.js +93 -1
  328. package/dist/ssr/attrs.js.map +1 -0
  329. package/dist/ssr/context.d.ts +31 -35
  330. package/dist/ssr/context.d.ts.map +1 -1
  331. package/dist/ssr/context.js +63 -1
  332. package/dist/ssr/context.js.map +1 -0
  333. package/dist/ssr/errors.d.ts +6 -4
  334. package/dist/ssr/errors.d.ts.map +1 -1
  335. package/dist/ssr/errors.js +4 -1
  336. package/dist/ssr/errors.js.map +1 -0
  337. package/dist/ssr/escape.js +153 -1
  338. package/dist/ssr/escape.js.map +1 -0
  339. package/dist/ssr/index.d.ts +74 -72
  340. package/dist/ssr/index.d.ts.map +1 -1
  341. package/dist/ssr/index.js +543 -1
  342. package/dist/ssr/index.js.map +1 -0
  343. package/dist/ssr/render-keys.d.ts +27 -29
  344. package/dist/ssr/render-keys.d.ts.map +1 -1
  345. package/dist/ssr/render-keys.js +39 -1
  346. package/dist/ssr/render-keys.js.map +1 -0
  347. package/dist/ssr/sink.js +86 -1
  348. package/dist/ssr/sink.js.map +1 -0
  349. package/dist/ssr/stream-render.js +76 -1
  350. package/dist/ssr/stream-render.js.map +1 -0
  351. package/dist/ssr/types.d.ts +14 -13
  352. package/dist/ssr/types.d.ts.map +1 -1
  353. package/package.json +49 -69
  354. package/dist/_virtual/___vite-browser-external.js +0 -1
  355. package/dist/_virtual/__vite-browser-external.js +0 -1
  356. package/dist/_virtual/_commonjsHelpers.js +0 -1
  357. package/dist/_virtual/_fs.js +0 -1
  358. package/dist/_virtual/_path.js +0 -1
  359. package/dist/_virtual/main.js +0 -1
  360. package/dist/_virtual/preload-helper.js +0 -1
  361. package/dist/bench/benchmark-entry.d.ts +0 -14
  362. package/dist/bench/benchmark-entry.d.ts.map +0 -1
  363. package/dist/common/errors.d.ts +0 -53
  364. package/dist/common/errors.d.ts.map +0 -1
  365. package/dist/common/index.d.ts +0 -14
  366. package/dist/common/index.d.ts.map +0 -1
  367. package/dist/dev/invariant.d.ts +0 -83
  368. package/dist/dev/invariant.d.ts.map +0 -1
  369. package/dist/dev/logger.d.ts +0 -13
  370. package/dist/dev/logger.d.ts.map +0 -1
  371. package/dist/dev/vite-plugin-askr.d.ts +0 -25
  372. package/dist/dev/vite-plugin-askr.d.ts.map +0 -1
  373. package/dist/dev/warnings.d.ts +0 -5
  374. package/dist/dev/warnings.d.ts.map +0 -1
  375. package/dist/for/for.d.ts +0 -16
  376. package/dist/for/for.d.ts.map +0 -1
  377. package/dist/for/for.js +0 -1
  378. package/dist/for/index.d.ts +0 -2
  379. package/dist/for/index.d.ts.map +0 -1
  380. package/dist/for/index.js +0 -1
  381. package/dist/foundations/core.d.ts.map +0 -1
  382. package/dist/foundations/index.d.ts.map +0 -1
  383. package/dist/foundations/interactions/index.d.ts +0 -5
  384. package/dist/foundations/interactions/index.d.ts.map +0 -1
  385. package/dist/foundations/state/index.d.ts +0 -2
  386. package/dist/foundations/state/index.d.ts.map +0 -1
  387. package/dist/foundations/structures/index.d.ts +0 -5
  388. package/dist/foundations/structures/index.d.ts.map +0 -1
  389. package/dist/foundations/structures.d.ts.map +0 -1
  390. package/dist/foundations/utilities/index.d.ts +0 -7
  391. package/dist/foundations/utilities/index.d.ts.map +0 -1
  392. package/dist/fx/index.d.ts.map +0 -1
  393. package/dist/fx/noop.d.ts +0 -12
  394. package/dist/fx/noop.d.ts.map +0 -1
  395. package/dist/index.d.ts.map +0 -1
  396. package/dist/jsx/index.d.ts.map +0 -1
  397. package/dist/jsx/jsx-dev-runtime.d.ts +0 -4
  398. package/dist/jsx/jsx-dev-runtime.d.ts.map +0 -1
  399. package/dist/jsx/jsx-runtime.d.ts +0 -10
  400. package/dist/jsx/jsx-runtime.d.ts.map +0 -1
  401. package/dist/node_modules/esbuild/lib/main.js +0 -65
  402. package/dist/renderer/cleanup.d.ts +0 -28
  403. package/dist/renderer/cleanup.d.ts.map +0 -1
  404. package/dist/renderer/dom.d.ts +0 -64
  405. package/dist/renderer/dom.d.ts.map +0 -1
  406. package/dist/renderer/evaluate.d.ts +0 -4
  407. package/dist/renderer/evaluate.d.ts.map +0 -1
  408. package/dist/renderer/fastpath.d.ts +0 -7
  409. package/dist/renderer/fastpath.d.ts.map +0 -1
  410. package/dist/renderer/index.d.ts +0 -6
  411. package/dist/renderer/index.d.ts.map +0 -1
  412. package/dist/renderer/keyed.d.ts +0 -23
  413. package/dist/renderer/keyed.d.ts.map +0 -1
  414. package/dist/renderer/reconcile.d.ts +0 -88
  415. package/dist/renderer/reconcile.d.ts.map +0 -1
  416. package/dist/renderer/types.d.ts +0 -3
  417. package/dist/renderer/types.d.ts.map +0 -1
  418. package/dist/renderer/utils.d.ts +0 -63
  419. package/dist/renderer/utils.d.ts.map +0 -1
  420. package/dist/resources/index.d.ts.map +0 -1
  421. package/dist/router/index.d.ts.map +0 -1
  422. package/dist/router/match.d.ts +0 -22
  423. package/dist/router/match.d.ts.map +0 -1
  424. package/dist/runtime/dev-namespace.d.ts +0 -31
  425. package/dist/runtime/dev-namespace.d.ts.map +0 -1
  426. package/dist/runtime/events.d.ts +0 -53
  427. package/dist/runtime/events.d.ts.map +0 -1
  428. package/dist/runtime/execution-model.d.ts +0 -4
  429. package/dist/runtime/execution-model.d.ts.map +0 -1
  430. package/dist/runtime/fastlane.d.ts +0 -27
  431. package/dist/runtime/fastlane.d.ts.map +0 -1
  432. package/dist/runtime/hydration.d.ts +0 -25
  433. package/dist/runtime/hydration.d.ts.map +0 -1
  434. package/dist/runtime/perf-metrics.d.ts +0 -25
  435. package/dist/runtime/perf-metrics.d.ts.map +0 -1
  436. package/dist/runtime/resource-cell.d.ts +0 -35
  437. package/dist/runtime/resource-cell.d.ts.map +0 -1
  438. package/dist/runtime/snapshot.d.ts +0 -25
  439. package/dist/runtime/snapshot.d.ts.map +0 -1
  440. package/dist/runtime/ssr-bridge.d.ts +0 -10
  441. package/dist/runtime/ssr-bridge.d.ts.map +0 -1
  442. package/dist/ssg/discover-resources.d.ts +0 -15
  443. package/dist/ssg/discover-resources.d.ts.map +0 -1
  444. package/dist/ssg/incremental-manifest.d.ts +0 -23
  445. package/dist/ssg/incremental-manifest.d.ts.map +0 -1
  446. package/dist/ssg/index.d.ts.map +0 -1
  447. package/dist/ssr/attrs.d.ts +0 -26
  448. package/dist/ssr/attrs.d.ts.map +0 -1
  449. package/dist/ssr/create-ssr.d.ts +0 -19
  450. package/dist/ssr/create-ssr.d.ts.map +0 -1
  451. package/dist/ssr/escape.d.ts +0 -38
  452. package/dist/ssr/escape.d.ts.map +0 -1
  453. package/dist/ssr/sink.d.ts +0 -23
  454. package/dist/ssr/sink.d.ts.map +0 -1
  455. package/dist/ssr/stream-render.d.ts +0 -7
  456. package/dist/ssr/stream-render.d.ts.map +0 -1
  457. package/dist/vite/index.js +0 -4
@@ -1,5 +1,28 @@
1
1
  #!/usr/bin/env node
2
- import*as m from"path";import*as y from"fs";import"../ssg/index.js";import{createStaticGen as k}from"../ssg/create-static-gen.js";const{resolve:u}=m,{existsSync:$}=y;function d(e){const r=u(e).replace(/\\/g,"/");return`file://${r.startsWith("/")?"":"/"}${encodeURI(r)}`}const w={cwd:()=>process.cwd(),now:()=>performance.now(),existsSync:$,importConfig:async e=>await import(d(e)),createStaticGen:k},S=`
2
+ import { createStaticGen } from "../ssg/create-static-gen.js";
3
+ import "../ssg/index.js";
4
+ import * as pathModule from "path";
5
+ import * as fsModule from "fs";
6
+ //#region src/bin/askr-ssg.ts
7
+ /**
8
+ * askr-ssg CLI
9
+ *
10
+ * Usage: askr-ssg --config path/to/config.ts --output dist/static
11
+ */
12
+ const { resolve } = pathModule;
13
+ const { existsSync } = fsModule;
14
+ function toFileUrl(filePath) {
15
+ const normalized = resolve(filePath).replace(/\\/g, "/");
16
+ return `file://${normalized.startsWith("/") ? "" : "/"}${encodeURI(normalized)}`;
17
+ }
18
+ const defaultCliDeps = {
19
+ cwd: () => process.cwd(),
20
+ now: () => performance.now(),
21
+ existsSync,
22
+ importConfig: async (path) => await import(toFileUrl(path)),
23
+ createStaticGen
24
+ };
25
+ const helpText = `
3
26
  askr-ssg - Static Site Generation for Askr
4
27
 
5
28
  Usage:
@@ -21,4 +44,128 @@ Example:
21
44
  TypeScript config execution:
22
45
  Use tsx to run the CLI with TS config loading:
23
46
  tsx node_modules/@askrjs/askr/dist/bin/askr-ssg.js --config ./ssg.config.ts --output ./dist/static
24
- `;function v(e){const r={configPath:"",outputDir:"",workers:1,incremental:!1,changedKeys:[],changedRoutes:[],forceFull:!1,help:!1};for(let t=0;t<e.length;t++)e[t]==="--config"&&t+1<e.length?(r.configPath=e[t+1],t++):e[t]==="--output"&&t+1<e.length?(r.outputDir=e[t+1],t++):e[t]==="--workers"&&t+1<e.length?(r.workers=e[t+1]==="auto"?"auto":Number(e[t+1]),t++):e[t]==="--changed-key"&&t+1<e.length?(r.changedKeys.push(e[t+1]),t++):e[t]==="--changed-route"&&t+1<e.length?(r.changedRoutes.push(e[t+1]),t++):e[t]==="--incremental"?r.incremental=!0:e[t]==="--force-full"?r.forceFull=!0:(e[t]==="--help"||e[t]==="-h")&&(r.help=!0);return r}function x(e){return{mode:e.incremental?"incremental":"full",changedKeys:e.changedKeys,changedRoutes:e.changedRoutes,forceFull:e.forceFull}}function C(e,r,t,o){e.log(""),e.log(`Generation complete in ${t}s`),e.log(` Mode: ${o.mode}`),e.log(` Generated: ${o.successful}/${o.totalRoutes} routes`),e.log(` Failed: ${o.failed} routes`),e.log(` Rebuilt: ${o.rebuilt} routes`),e.log(` Skipped: ${o.skipped} routes`),e.log(` Removed: ${o.removed} routes`),e.log(` CacheHit: ${o.cacheHits} routes`),e.log(` Output: ${r}`),e.log(` Metadata: ${r}/metadata.json`),e.log("")}async function G(e,r={},t=console){const o=v(e);if(o.help)return t.log(S),0;if(!o.configPath)return t.error("Error: --config argument is required"),1;if(!o.configPath.endsWith(".ts"))return t.error("Error: --config must point to a TypeScript file (.ts)"),1;if(!o.outputDir)return t.error("Error: --output argument is required"),1;const s={...w,...r},a=u(s.cwd(),o.configPath),f=u(s.cwd(),o.outputDir);if(!s.existsSync(a))return t.error(`Error: Config file not found: ${a}`),1;try{t.log(`Loading config: ${a}`);const n=await s.importConfig(a),i=n.default||n;if(!Array.isArray(i.routes))return t.error("Error: Config must export routes array"),1;t.log(`Generating ${i.routes.length} routes...`);const g=s.createStaticGen({routes:i.routes,outputDir:f,seed:i.seed,dataOverrides:i.dataOverrides,concurrency:i.concurrency,parallelism:o.workers}),p=s.now(),c=await g.generate(x(o)),h=((s.now()-p)/1e3).toFixed(2);if(C(t,f,h,c),c.failed>0){t.log("Errors encountered:");for(const l of c.routes)l.status==="error"&&t.log(` ${l.path}: ${l.error}`);return t.log(""),1}return 0}catch(n){return t.error("Generation failed:"),t.error(n instanceof Error?n.message:String(n)),n instanceof Error&&n.stack&&t.error(n.stack),1}}async function b(){const e=await G(process.argv.slice(2));process.exit(e)}process.argv[1]&&import.meta.url===d(process.argv[1])&&b();export{v as parseCliArgs,G as runCli};
47
+ `;
48
+ function parseCliArgs(args) {
49
+ const parsed = {
50
+ configPath: "",
51
+ outputDir: "",
52
+ workers: 1,
53
+ incremental: false,
54
+ changedKeys: [],
55
+ changedRoutes: [],
56
+ forceFull: false,
57
+ help: false
58
+ };
59
+ for (let i = 0; i < args.length; i++) if (args[i] === "--config" && i + 1 < args.length) {
60
+ parsed.configPath = args[i + 1];
61
+ i++;
62
+ } else if (args[i] === "--output" && i + 1 < args.length) {
63
+ parsed.outputDir = args[i + 1];
64
+ i++;
65
+ } else if (args[i] === "--workers" && i + 1 < args.length) {
66
+ parsed.workers = args[i + 1] === "auto" ? "auto" : Number(args[i + 1]);
67
+ i++;
68
+ } else if (args[i] === "--changed-key" && i + 1 < args.length) {
69
+ parsed.changedKeys.push(args[i + 1]);
70
+ i++;
71
+ } else if (args[i] === "--changed-route" && i + 1 < args.length) {
72
+ parsed.changedRoutes.push(args[i + 1]);
73
+ i++;
74
+ } else if (args[i] === "--incremental") parsed.incremental = true;
75
+ else if (args[i] === "--force-full") parsed.forceFull = true;
76
+ else if (args[i] === "--help" || args[i] === "-h") parsed.help = true;
77
+ return parsed;
78
+ }
79
+ function toGenerateOptions(args) {
80
+ return {
81
+ mode: args.incremental ? "incremental" : "full",
82
+ changedKeys: args.changedKeys,
83
+ changedRoutes: args.changedRoutes,
84
+ forceFull: args.forceFull
85
+ };
86
+ }
87
+ function printSummary(io, outputDir, durationSeconds, result) {
88
+ io.log("");
89
+ io.log(`Generation complete in ${durationSeconds}s`);
90
+ io.log(` Mode: ${result.mode}`);
91
+ io.log(` Generated: ${result.successful}/${result.totalRoutes} routes`);
92
+ io.log(` Failed: ${result.failed} routes`);
93
+ io.log(` Rebuilt: ${result.rebuilt} routes`);
94
+ io.log(` Skipped: ${result.skipped} routes`);
95
+ io.log(` Removed: ${result.removed} routes`);
96
+ io.log(` CacheHit: ${result.cacheHits} routes`);
97
+ io.log(` Output: ${outputDir}`);
98
+ io.log(` Metadata: ${outputDir}/metadata.json`);
99
+ io.log("");
100
+ }
101
+ async function runCli(args, deps = {}, io = console) {
102
+ const parsed = parseCliArgs(args);
103
+ if (parsed.help) {
104
+ io.log(helpText);
105
+ return 0;
106
+ }
107
+ if (!parsed.configPath) {
108
+ io.error("Error: --config argument is required");
109
+ return 1;
110
+ }
111
+ if (!parsed.configPath.endsWith(".ts")) {
112
+ io.error("Error: --config must point to a TypeScript file (.ts)");
113
+ return 1;
114
+ }
115
+ if (!parsed.outputDir) {
116
+ io.error("Error: --output argument is required");
117
+ return 1;
118
+ }
119
+ const resolvedDeps = {
120
+ ...defaultCliDeps,
121
+ ...deps
122
+ };
123
+ const resolvedConfigPath = resolve(resolvedDeps.cwd(), parsed.configPath);
124
+ const resolvedOutputDir = resolve(resolvedDeps.cwd(), parsed.outputDir);
125
+ if (!resolvedDeps.existsSync(resolvedConfigPath)) {
126
+ io.error(`Error: Config file not found: ${resolvedConfigPath}`);
127
+ return 1;
128
+ }
129
+ try {
130
+ io.log(`Loading config: ${resolvedConfigPath}`);
131
+ const configModule = await resolvedDeps.importConfig(resolvedConfigPath);
132
+ const config = configModule.default || configModule;
133
+ if (!Array.isArray(config.routes)) {
134
+ io.error("Error: Config must export routes array");
135
+ return 1;
136
+ }
137
+ io.log(`Generating ${config.routes.length} routes...`);
138
+ const ssg = resolvedDeps.createStaticGen({
139
+ routes: config.routes,
140
+ outputDir: resolvedOutputDir,
141
+ seed: config.seed,
142
+ dataOverrides: config.dataOverrides,
143
+ concurrency: config.concurrency,
144
+ parallelism: parsed.workers
145
+ });
146
+ const startTime = resolvedDeps.now();
147
+ const result = await ssg.generate(toGenerateOptions(parsed));
148
+ printSummary(io, resolvedOutputDir, ((resolvedDeps.now() - startTime) / 1e3).toFixed(2), result);
149
+ if (result.failed > 0) {
150
+ io.log("Errors encountered:");
151
+ for (const route of result.routes) if (route.status === "error") io.log(` ${route.path}: ${route.error}`);
152
+ io.log("");
153
+ return 1;
154
+ }
155
+ return 0;
156
+ } catch (error) {
157
+ io.error("Generation failed:");
158
+ io.error(error instanceof Error ? error.message : String(error));
159
+ if (error instanceof Error && error.stack) io.error(error.stack);
160
+ return 1;
161
+ }
162
+ }
163
+ async function main() {
164
+ const exitCode = await runCli(process.argv.slice(2));
165
+ process.exit(exitCode);
166
+ }
167
+ if (process.argv[1] && import.meta.url === toFileUrl(process.argv[1])) main();
168
+ //#endregion
169
+ export { parseCliArgs, runCli };
170
+
171
+ //# sourceMappingURL=askr-ssg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"askr-ssg.js","names":[],"sources":["../../src/bin/askr-ssg.ts"],"sourcesContent":["#!/usr/bin/env node\n\n/**\n * askr-ssg CLI\n *\n * Usage: askr-ssg --config path/to/config.ts --output dist/static\n */\n\nimport * as pathModule from 'path';\nimport * as fsModule from 'fs';\nimport { createStaticGen } from '../ssg/index';\nimport type { RouteConfig } from '../ssg/types';\nimport type { SSGGenerateOptions, SSGResult } from '../ssg/types';\n\nconst { resolve } = pathModule;\nconst { existsSync } = fsModule;\n\nfunction toFileUrl(filePath: string): string {\n const normalized = resolve(filePath).replace(/\\\\/g, '/');\n const leadingSlash = normalized.startsWith('/') ? '' : '/';\n return `file://${leadingSlash}${encodeURI(normalized)}`;\n}\n\nexport interface ParsedCliArgs {\n configPath: string;\n outputDir: string;\n workers: number | 'auto';\n incremental: boolean;\n changedKeys: string[];\n changedRoutes: string[];\n forceFull: boolean;\n help: boolean;\n}\n\ninterface CliIo {\n log: (...args: unknown[]) => void;\n error: (...args: unknown[]) => void;\n}\n\ninterface CliDeps {\n cwd: () => string;\n now: () => number;\n existsSync: (path: string) => boolean;\n importConfig: (path: string) => Promise<Record<string, unknown>>;\n createStaticGen: typeof createStaticGen;\n}\n\ninterface CliConfig {\n routes: RouteConfig[];\n seed?: number;\n dataOverrides?: Record<string, unknown>;\n concurrency?: number;\n}\n\nconst defaultCliDeps: CliDeps = {\n cwd: () => process.cwd(),\n now: () => performance.now(),\n existsSync,\n importConfig: async (path: string) =>\n (await import(toFileUrl(path))) as Record<string, unknown>,\n createStaticGen,\n};\n\nconst helpText = `\naskr-ssg - Static Site Generation for Askr\n\nUsage:\n askr-ssg --config <path> --output <dir> [--incremental]\n\nOptions:\n --config <path> Path to SSG config file (TypeScript module)\n --output <dir> Output directory for generated HTML\n --workers <n|auto> Preferred render worker count for SSG throughput\n --incremental Use incremental generation if a manifest exists\n --changed-key <key> Mark an invalidation key as changed (repeatable)\n --changed-route <path> Mark a concrete route path as changed (repeatable)\n --force-full Force a full rebuild even with incremental flags\n --help Show this help message\n\nExample:\n askr-ssg --config ./ssg.config.ts --output ./dist/static --incremental --changed-key blog/post-123\n\nTypeScript config execution:\n Use tsx to run the CLI with TS config loading:\n tsx node_modules/@askrjs/askr/dist/bin/askr-ssg.js --config ./ssg.config.ts --output ./dist/static\n`;\n\nexport function parseCliArgs(args: string[]): ParsedCliArgs {\n const parsed: ParsedCliArgs = {\n configPath: '',\n outputDir: '',\n workers: 1,\n incremental: false,\n changedKeys: [],\n changedRoutes: [],\n forceFull: false,\n help: false,\n };\n\n for (let i = 0; i < args.length; i++) {\n if (args[i] === '--config' && i + 1 < args.length) {\n parsed.configPath = args[i + 1];\n i++;\n } else if (args[i] === '--output' && i + 1 < args.length) {\n parsed.outputDir = args[i + 1];\n i++;\n } else if (args[i] === '--workers' && i + 1 < args.length) {\n parsed.workers = args[i + 1] === 'auto' ? 'auto' : Number(args[i + 1]);\n i++;\n } else if (args[i] === '--changed-key' && i + 1 < args.length) {\n parsed.changedKeys.push(args[i + 1]);\n i++;\n } else if (args[i] === '--changed-route' && i + 1 < args.length) {\n parsed.changedRoutes.push(args[i + 1]);\n i++;\n } else if (args[i] === '--incremental') {\n parsed.incremental = true;\n } else if (args[i] === '--force-full') {\n parsed.forceFull = true;\n } else if (args[i] === '--help' || args[i] === '-h') {\n parsed.help = true;\n }\n }\n\n return parsed;\n}\n\nfunction toGenerateOptions(args: ParsedCliArgs): SSGGenerateOptions {\n return {\n mode: args.incremental ? 'incremental' : 'full',\n changedKeys: args.changedKeys,\n changedRoutes: args.changedRoutes,\n forceFull: args.forceFull,\n };\n}\n\nfunction printSummary(\n io: CliIo,\n outputDir: string,\n durationSeconds: string,\n result: SSGResult\n) {\n io.log('');\n io.log(`Generation complete in ${durationSeconds}s`);\n io.log(` Mode: ${result.mode}`);\n io.log(` Generated: ${result.successful}/${result.totalRoutes} routes`);\n io.log(` Failed: ${result.failed} routes`);\n io.log(` Rebuilt: ${result.rebuilt} routes`);\n io.log(` Skipped: ${result.skipped} routes`);\n io.log(` Removed: ${result.removed} routes`);\n io.log(` CacheHit: ${result.cacheHits} routes`);\n io.log(` Output: ${outputDir}`);\n io.log(` Metadata: ${outputDir}/metadata.json`);\n io.log('');\n}\n\nexport async function runCli(\n args: string[],\n deps: Partial<CliDeps> = {},\n io: CliIo = console\n): Promise<number> {\n const parsed = parseCliArgs(args);\n if (parsed.help) {\n io.log(helpText);\n return 0;\n }\n\n if (!parsed.configPath) {\n io.error('Error: --config argument is required');\n return 1;\n }\n\n if (!parsed.configPath.endsWith('.ts')) {\n io.error('Error: --config must point to a TypeScript file (.ts)');\n return 1;\n }\n\n if (!parsed.outputDir) {\n io.error('Error: --output argument is required');\n return 1;\n }\n\n const resolvedDeps = { ...defaultCliDeps, ...deps };\n const resolvedConfigPath = resolve(resolvedDeps.cwd(), parsed.configPath);\n const resolvedOutputDir = resolve(resolvedDeps.cwd(), parsed.outputDir);\n\n if (!resolvedDeps.existsSync(resolvedConfigPath)) {\n io.error(`Error: Config file not found: ${resolvedConfigPath}`);\n return 1;\n }\n\n try {\n io.log(`Loading config: ${resolvedConfigPath}`);\n\n const configModule = await resolvedDeps.importConfig(resolvedConfigPath);\n const config = (configModule.default || configModule) as Partial<CliConfig>;\n\n if (!Array.isArray(config.routes)) {\n io.error('Error: Config must export routes array');\n return 1;\n }\n\n io.log(`Generating ${config.routes.length} routes...`);\n\n const ssg = resolvedDeps.createStaticGen({\n routes: config.routes,\n outputDir: resolvedOutputDir,\n seed: config.seed,\n dataOverrides: config.dataOverrides,\n concurrency: config.concurrency,\n parallelism: parsed.workers,\n });\n\n const startTime = resolvedDeps.now();\n const result = await ssg.generate(toGenerateOptions(parsed));\n const duration = ((resolvedDeps.now() - startTime) / 1000).toFixed(2);\n\n printSummary(io, resolvedOutputDir, duration, result);\n\n if (result.failed > 0) {\n io.log('Errors encountered:');\n for (const route of result.routes) {\n if (route.status === 'error') {\n io.log(` ${route.path}: ${route.error}`);\n }\n }\n io.log('');\n return 1;\n }\n\n return 0;\n } catch (error) {\n io.error('Generation failed:');\n io.error(error instanceof Error ? error.message : String(error));\n if (error instanceof Error && error.stack) {\n io.error(error.stack);\n }\n return 1;\n }\n}\n\nasync function main() {\n const exitCode = await runCli(process.argv.slice(2));\n process.exit(exitCode);\n}\n\nif (process.argv[1] && import.meta.url === toFileUrl(process.argv[1])) {\n void main();\n}\n"],"mappings":"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"}
@@ -1,70 +1,92 @@
1
- /**
2
- * App bootstrap and mount
3
- */
4
- import { type ComponentFunction } from '../runtime/component';
5
- export interface AppConfig {
6
- root: Element | string;
7
- component: ComponentFunction;
8
- cleanupStrict?: boolean;
9
- }
1
+ import { ComponentFunction } from "../common/component.js";
2
+ import { Route, RouteAuthOptions, RouteManifest } from "../common/router.js";
3
+ import { ScrollRestorationOptions } from "../router/navigate.js";
4
+
5
+ //#region src/boot/index.d.ts
10
6
  /**
11
7
  * Explicitly teardown an app mounted on `root` if present. This is the
12
8
  * recommended API for deterministic cleanup rather than relying on overriding
13
9
  * `innerHTML` setter behavior.
14
10
  */
15
- export declare function teardownApp(_root: Element | string): void;
16
- import type { Route } from '../common/router';
17
- export type IslandConfig = {
18
- root: Element | string;
19
- component: ComponentFunction;
20
- cleanupStrict?: boolean;
21
- routes?: never;
11
+ declare function teardownApp(_root: Element | string): void;
12
+ type IslandConfig = {
13
+ root: Element | string;
14
+ component: ComponentFunction;
15
+ cleanupStrict?: boolean;
16
+ routes?: never;
22
17
  };
23
- export type IslandsConfig = {
24
- islands: IslandConfig[];
18
+ type IslandsConfig = {
19
+ islands: IslandConfig[];
25
20
  };
26
- export type SPAConfig = {
27
- root: Element | string;
28
- routes: Route[];
29
- cleanupStrict?: boolean;
30
- component?: never;
21
+ type SPAConfig = {
22
+ root: Element | string;
23
+ /**
24
+ * Preferred: pass the route manifest built via `registerRoutes(() => { ... })`.
25
+ * ```ts
26
+ * import { getManifest } from '@askrjs/askr/router';
27
+ * await createSPA({ root: '#app', manifest: getManifest() });
28
+ * ```
29
+ */
30
+ manifest?: RouteManifest; /** Legacy: flat route array — kept for backward compatibility and test fixtures. */
31
+ routes?: Route[];
32
+ auth?: RouteAuthOptions;
33
+ scrollRestoration?: boolean | ScrollRestorationOptions;
34
+ cleanupStrict?: boolean;
35
+ component?: never;
31
36
  };
32
- export type HydrateSPAConfig = {
33
- root: Element | string;
34
- routes: Route[];
35
- cleanupStrict?: boolean;
36
- hydrate?: {
37
- deferUntilIdle?: boolean;
38
- deferBelowFold?: boolean;
39
- foldThreshold?: number;
40
- skipSelectors?: string[];
41
- };
37
+ type HydrateSPAConfig = {
38
+ root: Element | string; /** Preferred manifest input — see `SPAConfig.manifest`. */
39
+ manifest?: RouteManifest; /** Legacy flat route array. */
40
+ routes?: Route[];
41
+ auth?: RouteAuthOptions;
42
+ scrollRestoration?: boolean | ScrollRestorationOptions;
43
+ cleanupStrict?: boolean;
44
+ hydrate?: {
45
+ verifyMarkup?: boolean;
46
+ deferUntilIdle?: boolean;
47
+ deferBelowFold?: boolean;
48
+ foldThreshold?: number;
49
+ skipSelectors?: string[];
50
+ };
42
51
  };
43
52
  /**
44
53
  * createIsland: Enhances existing DOM (no router, mounts once)
45
54
  */
46
- export declare function createIsland(config: IslandConfig): void;
55
+ declare function createIsland(config: IslandConfig): void;
47
56
  /**
48
57
  * createIslands: Enhances one or more existing DOM roots (no router).
49
58
  * The only public islands constructor.
50
59
  */
51
- export declare function createIslands(config: IslandsConfig): void;
60
+ declare function createIslands(config: IslandsConfig): void;
52
61
  /**
53
- * createSPA: Initializes router and mounts the app with provided route table
62
+ * createSPA: Initializes router and mounts the app with the provided route manifest or route table.
63
+ *
64
+ * Preferred usage with manifest:
65
+ * ```ts
66
+ * import { getManifest } from '@askrjs/askr/router';
67
+ * await createSPA({ root: '#app', manifest: getManifest() });
68
+ * ```
69
+ *
70
+ * Legacy usage with plain routes array (still supported):
71
+ * ```ts
72
+ * await createSPA({ root: '#app', routes: getRoutes() });
73
+ * ```
54
74
  */
55
- export declare function createSPA(config: SPAConfig): Promise<void>;
75
+ declare function createSPA(config: SPAConfig): Promise<void>;
56
76
  /**
57
- * hydrateSPA: Hydrate server-rendered HTML with explicit routes
77
+ * hydrateSPA: Hydrate server-rendered HTML.
78
+ * Accepts either a `manifest` (preferred) or a legacy `routes` array.
58
79
  */
59
- export declare function hydrateSPA(config: HydrateSPAConfig): Promise<void>;
60
- export declare function hydrate(_config: AppConfig): Promise<void>;
80
+ declare function hydrateSPA(config: HydrateSPAConfig): Promise<void>;
61
81
  /**
62
82
  * Cleanup an app mounted on a root element (element or id).
63
83
  * Safe to call multiple times — no-op when nothing is mounted.
64
84
  */
65
- export declare function cleanupApp(root: Element | string): void;
85
+ declare function cleanupApp(root: Element | string): void;
66
86
  /**
67
87
  * Check whether an app is mounted on the given root
68
88
  */
69
- export declare function hasApp(root: Element | string): boolean;
89
+ declare function hasApp(root: Element | string): boolean;
90
+ //#endregion
91
+ export { HydrateSPAConfig, IslandConfig, IslandsConfig, SPAConfig, cleanupApp, createIsland, createIslands, createSPA, hasApp, hydrateSPA, teardownApp };
70
92
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/boot/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAIL,KAAK,iBAAiB,EAEvB,MAAM,sBAAsB,CAAC;AAuB9B,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,SAAS,EAAE,iBAAiB,CAAC;IAE7B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAmHD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,QAIlD;AAkFD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG9C,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,SAAS,EAAE,iBAAiB,CAAC;IAE7B,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,MAAM,EAAE,KAAK,EAAE,CAAC;IAEhB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,KAAK,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,MAAM,EAAE,KAAK,EAAE,CAAC;IAEhB,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,OAAO,CAAC,EAAE;QACR,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAuCvD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAWzD;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA+DhE;AAgLD;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuFxE;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAYvD;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAMtD"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/boot/index.ts"],"mappings":";;;;;;AAmKA;;;;iBAAgB,WAAA,CAAY,KAAA,EAAO,OAAA;AAAA,KA4GvB,YAAA;EACV,IAAA,EAAM,OAAA;EACN,SAAA,EAAW,iBAAA;EAEX,aAAA;EAEA,MAAA;AAAA;AAAA,KAGU,aAAA;EACV,OAAA,EAAS,YAAA;AAAA;AAAA,KAGC,SAAA;EACV,IAAA,EAAM,OAAA;EALI;;;;;AAIZ;;EASE,QAAA,GAAW,aAAA,EARL;EAUN,MAAA,GAAS,KAAA;EACT,IAAA,GAAO,gBAAA;EACP,iBAAA,aAA8B,wBAAA;EAC9B,aAAA;EACA,SAAA;AAAA;AAAA,KAGU,gBAAA;EACV,IAAA,EAAM,OAAA,WAVN;EAYA,QAAA,GAAW,aAAA,EAVX;EAYA,MAAA,GAAS,KAAA;EACT,IAAA,GAAO,gBAAA;EACP,iBAAA,aAA8B,wBAAA;EAC9B,aAAA;EACA,OAAA;IACE,YAAA;IACA,cAAA;IACA,cAAA;IACA,aAAA;IACA,aAAA;EAAA;AAAA;;;;iBAOY,YAAA,CAAa,MAAA,EAAQ,YAAA;;;;;iBA6CrB,aAAA,CAAc,MAAA,EAAQ,aAAA;;;;;;;;;;;;;;;iBA2BhB,SAAA,CAAU,MAAA,EAAQ,SAAA,GAAY,OAAA;;;AAxEpD;;iBAiXsB,UAAA,CAAW,MAAA,EAAQ,gBAAA,GAAmB,OAAA;;;AApU5D;;iBAmbgB,UAAA,CAAW,IAAA,EAAM,OAAA;;;AAxZjC;iBAyagB,MAAA,CAAO,IAAA,EAAM,OAAA"}