@askrjs/askr 0.0.28 → 0.0.29

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 (451) 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/icon/icon.d.ts +53 -0
  72. package/dist/foundations/icon/icon.d.ts.map +1 -0
  73. package/dist/foundations/icon/icon.js +88 -0
  74. package/dist/foundations/icon/icon.js.map +1 -0
  75. package/dist/foundations/icon/icon.types.d.ts +21 -0
  76. package/dist/foundations/icon/icon.types.d.ts.map +1 -0
  77. package/dist/foundations/index.d.ts +10 -3
  78. package/dist/foundations/index.js +9 -1
  79. package/dist/foundations/interactions/interaction-policy.js +93 -1
  80. package/dist/foundations/interactions/interaction-policy.js.map +1 -0
  81. package/dist/foundations/interactions/pressable.js +51 -1
  82. package/dist/foundations/interactions/pressable.js.map +1 -0
  83. package/dist/foundations/structures/collection.d.ts +25 -40
  84. package/dist/foundations/structures/collection.d.ts.map +1 -1
  85. package/dist/foundations/structures/collection.js +51 -1
  86. package/dist/foundations/structures/collection.js.map +1 -0
  87. package/dist/foundations/structures/layer.d.ts +47 -68
  88. package/dist/foundations/structures/layer.d.ts.map +1 -1
  89. package/dist/foundations/structures/layer.js +81 -1
  90. package/dist/foundations/structures/layer.js.map +1 -0
  91. package/dist/foundations/structures/layout.d.ts +6 -3
  92. package/dist/foundations/structures/layout.d.ts.map +1 -1
  93. package/dist/foundations/structures/layout.js +13 -1
  94. package/dist/foundations/structures/layout.js.map +1 -0
  95. package/dist/foundations/structures/portal.d.ts +17 -10
  96. package/dist/foundations/structures/portal.d.ts.map +1 -1
  97. package/dist/foundations/structures/portal.js +105 -1
  98. package/dist/foundations/structures/portal.js.map +1 -0
  99. package/dist/foundations/structures/presence.d.ts +11 -5
  100. package/dist/foundations/structures/presence.d.ts.map +1 -1
  101. package/dist/foundations/structures/presence.js +39 -1
  102. package/dist/foundations/structures/presence.js.map +1 -0
  103. package/dist/foundations/structures/slot.d.ts +11 -8
  104. package/dist/foundations/structures/slot.d.ts.map +1 -1
  105. package/dist/foundations/structures/slot.js +41 -1
  106. package/dist/foundations/structures/slot.js.map +1 -0
  107. package/dist/foundations/structures.d.ts +7 -14
  108. package/dist/foundations/structures.js +6 -1
  109. package/dist/foundations/utilities/aria.js +11 -1
  110. package/dist/foundations/utilities/aria.js.map +1 -0
  111. package/dist/foundations/utilities/compose-handlers.js +20 -1
  112. package/dist/foundations/utilities/compose-handlers.js.map +1 -0
  113. package/dist/foundations/utilities/compose-ref.d.ts +7 -4
  114. package/dist/foundations/utilities/compose-ref.d.ts.map +1 -1
  115. package/dist/foundations/utilities/compose-ref.js +18 -1
  116. package/dist/foundations/utilities/compose-ref.js.map +1 -0
  117. package/dist/foundations/utilities/merge-props.js +49 -1
  118. package/dist/foundations/utilities/merge-props.js.map +1 -0
  119. package/dist/fx/fx.d.ts +24 -21
  120. package/dist/fx/fx.d.ts.map +1 -1
  121. package/dist/fx/fx.js +212 -1
  122. package/dist/fx/fx.js.map +1 -0
  123. package/dist/fx/index.d.ts +4 -7
  124. package/dist/fx/index.js +4 -1
  125. package/dist/fx/noop.js +9 -1
  126. package/dist/fx/noop.js.map +1 -0
  127. package/dist/fx/timing.d.ts +24 -21
  128. package/dist/fx/timing.d.ts.map +1 -1
  129. package/dist/fx/timing.js +236 -1
  130. package/dist/fx/timing.js.map +1 -0
  131. package/dist/index.d.ts +21 -23
  132. package/dist/index.js +34 -1
  133. package/dist/index.js.map +1 -0
  134. package/dist/jsx/index.d.ts +1 -4
  135. package/dist/jsx/index.js +3 -1
  136. package/dist/jsx/types.d.ts +18 -25
  137. package/dist/jsx/types.d.ts.map +1 -1
  138. package/dist/jsx/types.js +1 -1
  139. package/dist/jsx/utils.d.ts +4 -3
  140. package/dist/jsx/utils.d.ts.map +1 -1
  141. package/dist/jsx/utils.js +19 -1
  142. package/dist/jsx/utils.js.map +1 -0
  143. package/dist/jsx-dev-runtime.d.ts +8 -0
  144. package/dist/jsx-dev-runtime.d.ts.map +1 -0
  145. package/dist/jsx-dev-runtime.js +32 -1
  146. package/dist/jsx-dev-runtime.js.map +1 -0
  147. package/dist/jsx-runtime.d.ts +12 -0
  148. package/dist/jsx-runtime.d.ts.map +1 -0
  149. package/dist/jsx-runtime.js +45 -1
  150. package/dist/jsx-runtime.js.map +1 -0
  151. package/dist/jsx-runtime2.d.ts +2 -0
  152. package/dist/jsx-runtime2.js +3 -0
  153. package/dist/renderer/children.js +293 -0
  154. package/dist/renderer/children.js.map +1 -0
  155. package/dist/renderer/cleanup.js +150 -1
  156. package/dist/renderer/cleanup.js.map +1 -0
  157. package/dist/renderer/dom.js +2439 -1
  158. package/dist/renderer/dom.js.map +1 -0
  159. package/dist/renderer/env.js +1 -0
  160. package/dist/renderer/evaluate.js +450 -1
  161. package/dist/renderer/evaluate.js.map +1 -0
  162. package/dist/renderer/fastpath.js +145 -1
  163. package/dist/renderer/fastpath.js.map +1 -0
  164. package/dist/renderer/index.js +24 -1
  165. package/dist/renderer/index.js.map +1 -0
  166. package/dist/renderer/keyed.js +119 -1
  167. package/dist/renderer/keyed.js.map +1 -0
  168. package/dist/renderer/reconcile.js +359 -1
  169. package/dist/renderer/reconcile.js.map +1 -0
  170. package/dist/renderer/types.js +1 -1
  171. package/dist/renderer/utils.js +220 -1
  172. package/dist/renderer/utils.js.map +1 -0
  173. package/dist/resources/index.d.ts +3 -9
  174. package/dist/resources/index.js +3 -1
  175. package/dist/router/index.d.ts +6 -10
  176. package/dist/router/index.js +5 -1
  177. package/dist/router/match.js +83 -1
  178. package/dist/router/match.js.map +1 -0
  179. package/dist/router/navigate.d.ts +20 -8
  180. package/dist/router/navigate.d.ts.map +1 -1
  181. package/dist/router/navigate.js +288 -1
  182. package/dist/router/navigate.js.map +1 -0
  183. package/dist/router/policy.d.ts +22 -0
  184. package/dist/router/policy.d.ts.map +1 -0
  185. package/dist/router/policy.js +116 -0
  186. package/dist/router/policy.js.map +1 -0
  187. package/dist/router/route-context.js +79 -0
  188. package/dist/router/route-context.js.map +1 -0
  189. package/dist/router/route.d.ts +101 -34
  190. package/dist/router/route.d.ts.map +1 -1
  191. package/dist/router/route.js +599 -1
  192. package/dist/router/route.js.map +1 -0
  193. package/dist/runtime/child-scope.d.ts +21 -0
  194. package/dist/runtime/child-scope.d.ts.map +1 -0
  195. package/dist/runtime/child-scope.js +77 -0
  196. package/dist/runtime/child-scope.js.map +1 -0
  197. package/dist/runtime/component.d.ts +67 -56
  198. package/dist/runtime/component.d.ts.map +1 -1
  199. package/dist/runtime/component.js +462 -1
  200. package/dist/runtime/component.js.map +1 -0
  201. package/dist/runtime/context.d.ts +28 -42
  202. package/dist/runtime/context.d.ts.map +1 -1
  203. package/dist/runtime/context.js +205 -1
  204. package/dist/runtime/context.js.map +1 -0
  205. package/dist/runtime/control.d.ts +43 -0
  206. package/dist/runtime/control.d.ts.map +1 -0
  207. package/dist/runtime/control.js +125 -0
  208. package/dist/runtime/control.js.map +1 -0
  209. package/dist/runtime/derive.d.ts +12 -9
  210. package/dist/runtime/derive.d.ts.map +1 -1
  211. package/dist/runtime/derive.js +134 -1
  212. package/dist/runtime/derive.js.map +1 -0
  213. package/dist/runtime/dev-namespace.js +57 -1
  214. package/dist/runtime/dev-namespace.js.map +1 -0
  215. package/dist/runtime/effect.d.ts +32 -0
  216. package/dist/runtime/effect.d.ts.map +1 -0
  217. package/dist/runtime/effect.js +146 -0
  218. package/dist/runtime/effect.js.map +1 -0
  219. package/dist/runtime/events.js +162 -1
  220. package/dist/runtime/events.js.map +1 -0
  221. package/dist/runtime/execution-model.js +15 -1
  222. package/dist/runtime/execution-model.js.map +1 -0
  223. package/dist/runtime/fastlane.js +204 -1
  224. package/dist/runtime/fastlane.js.map +1 -0
  225. package/dist/runtime/for-bench.d.ts +41 -0
  226. package/dist/runtime/for-bench.d.ts.map +1 -0
  227. package/dist/runtime/for-bench.js +173 -0
  228. package/dist/runtime/for-bench.js.map +1 -0
  229. package/dist/runtime/for.d.ts +62 -49
  230. package/dist/runtime/for.d.ts.map +1 -1
  231. package/dist/runtime/for.js +668 -1
  232. package/dist/runtime/for.js.map +1 -0
  233. package/dist/runtime/operations.d.ts +18 -15
  234. package/dist/runtime/operations.d.ts.map +1 -1
  235. package/dist/runtime/operations.js +209 -1
  236. package/dist/runtime/operations.js.map +1 -0
  237. package/dist/runtime/perf-metrics.js +64 -1
  238. package/dist/runtime/perf-metrics.js.map +1 -0
  239. package/dist/runtime/readable.d.ts +24 -18
  240. package/dist/runtime/readable.d.ts.map +1 -1
  241. package/dist/runtime/readable.js +118 -1
  242. package/dist/runtime/readable.js.map +1 -0
  243. package/dist/runtime/resource-cell.js +102 -1
  244. package/dist/runtime/resource-cell.js.map +1 -0
  245. package/dist/runtime/scheduler.d.ts +51 -50
  246. package/dist/runtime/scheduler.d.ts.map +1 -1
  247. package/dist/runtime/scheduler.js +328 -1
  248. package/dist/runtime/scheduler.js.map +1 -0
  249. package/dist/runtime/selector.d.ts +7 -5
  250. package/dist/runtime/selector.d.ts.map +1 -1
  251. package/dist/runtime/selector.js +188 -1
  252. package/dist/runtime/selector.js.map +1 -0
  253. package/dist/runtime/ssr-bridge.js +24 -1
  254. package/dist/runtime/ssr-bridge.js.map +1 -0
  255. package/dist/runtime/state.d.ts +11 -19
  256. package/dist/runtime/state.d.ts.map +1 -1
  257. package/dist/runtime/state.js +99 -1
  258. package/dist/runtime/state.js.map +1 -0
  259. package/dist/ssg/batch-render.d.ts +10 -10
  260. package/dist/ssg/batch-render.d.ts.map +1 -1
  261. package/dist/ssg/batch-render.js +84 -1
  262. package/dist/ssg/batch-render.js.map +1 -0
  263. package/dist/ssg/create-static-gen.d.ts +28 -29
  264. package/dist/ssg/create-static-gen.d.ts.map +1 -1
  265. package/dist/ssg/create-static-gen.js +282 -1
  266. package/dist/ssg/create-static-gen.js.map +1 -0
  267. package/dist/ssg/generate-metadata.d.ts +12 -15
  268. package/dist/ssg/generate-metadata.d.ts.map +1 -1
  269. package/dist/ssg/generate-metadata.js +94 -1
  270. package/dist/ssg/generate-metadata.js.map +1 -0
  271. package/dist/ssg/incremental-manifest.js +56 -1
  272. package/dist/ssg/incremental-manifest.js.map +1 -0
  273. package/dist/ssg/index.d.ts +8 -28
  274. package/dist/ssg/index.js +7 -1
  275. package/dist/ssg/resolve-ssg-data.d.ts +10 -13
  276. package/dist/ssg/resolve-ssg-data.d.ts.map +1 -1
  277. package/dist/ssg/resolve-ssg-data.js +46 -1
  278. package/dist/ssg/resolve-ssg-data.js.map +1 -0
  279. package/dist/ssg/route-utils.d.ts +14 -10
  280. package/dist/ssg/route-utils.d.ts.map +1 -1
  281. package/dist/ssg/route-utils.js +24 -1
  282. package/dist/ssg/route-utils.js.map +1 -0
  283. package/dist/ssg/types.d.ts +157 -144
  284. package/dist/ssg/types.d.ts.map +1 -1
  285. package/dist/ssg/write-static-files.d.ts +8 -14
  286. package/dist/ssg/write-static-files.d.ts.map +1 -1
  287. package/dist/ssg/write-static-files.js +73 -1
  288. package/dist/ssg/write-static-files.js.map +1 -0
  289. package/dist/ssr/attrs.js +93 -1
  290. package/dist/ssr/attrs.js.map +1 -0
  291. package/dist/ssr/context.d.ts +31 -35
  292. package/dist/ssr/context.d.ts.map +1 -1
  293. package/dist/ssr/context.js +63 -1
  294. package/dist/ssr/context.js.map +1 -0
  295. package/dist/ssr/errors.d.ts +6 -4
  296. package/dist/ssr/errors.d.ts.map +1 -1
  297. package/dist/ssr/errors.js +4 -1
  298. package/dist/ssr/errors.js.map +1 -0
  299. package/dist/ssr/escape.js +153 -1
  300. package/dist/ssr/escape.js.map +1 -0
  301. package/dist/ssr/index.d.ts +74 -72
  302. package/dist/ssr/index.d.ts.map +1 -1
  303. package/dist/ssr/index.js +543 -1
  304. package/dist/ssr/index.js.map +1 -0
  305. package/dist/ssr/render-keys.d.ts +27 -29
  306. package/dist/ssr/render-keys.d.ts.map +1 -1
  307. package/dist/ssr/render-keys.js +39 -1
  308. package/dist/ssr/render-keys.js.map +1 -0
  309. package/dist/ssr/sink.js +86 -1
  310. package/dist/ssr/sink.js.map +1 -0
  311. package/dist/ssr/stream-render.js +76 -1
  312. package/dist/ssr/stream-render.js.map +1 -0
  313. package/dist/ssr/types.d.ts +14 -13
  314. package/dist/ssr/types.d.ts.map +1 -1
  315. package/package.json +49 -69
  316. package/dist/_virtual/___vite-browser-external.js +0 -1
  317. package/dist/_virtual/__vite-browser-external.js +0 -1
  318. package/dist/_virtual/_commonjsHelpers.js +0 -1
  319. package/dist/_virtual/_fs.js +0 -1
  320. package/dist/_virtual/_path.js +0 -1
  321. package/dist/_virtual/main.js +0 -1
  322. package/dist/_virtual/preload-helper.js +0 -1
  323. package/dist/bench/benchmark-entry.d.ts +0 -14
  324. package/dist/bench/benchmark-entry.d.ts.map +0 -1
  325. package/dist/common/errors.d.ts +0 -53
  326. package/dist/common/errors.d.ts.map +0 -1
  327. package/dist/common/index.d.ts +0 -14
  328. package/dist/common/index.d.ts.map +0 -1
  329. package/dist/dev/invariant.d.ts +0 -83
  330. package/dist/dev/invariant.d.ts.map +0 -1
  331. package/dist/dev/logger.d.ts +0 -13
  332. package/dist/dev/logger.d.ts.map +0 -1
  333. package/dist/dev/vite-plugin-askr.d.ts +0 -25
  334. package/dist/dev/vite-plugin-askr.d.ts.map +0 -1
  335. package/dist/dev/warnings.d.ts +0 -5
  336. package/dist/dev/warnings.d.ts.map +0 -1
  337. package/dist/for/for.d.ts +0 -16
  338. package/dist/for/for.d.ts.map +0 -1
  339. package/dist/for/for.js +0 -1
  340. package/dist/for/index.d.ts +0 -2
  341. package/dist/for/index.d.ts.map +0 -1
  342. package/dist/for/index.js +0 -1
  343. package/dist/foundations/core.d.ts +0 -23
  344. package/dist/foundations/core.d.ts.map +0 -1
  345. package/dist/foundations/core.js +0 -1
  346. package/dist/foundations/index.d.ts.map +0 -1
  347. package/dist/foundations/interactions/dismissable.d.ts +0 -58
  348. package/dist/foundations/interactions/dismissable.d.ts.map +0 -1
  349. package/dist/foundations/interactions/dismissable.js +0 -1
  350. package/dist/foundations/interactions/focusable.d.ts +0 -16
  351. package/dist/foundations/interactions/focusable.d.ts.map +0 -1
  352. package/dist/foundations/interactions/focusable.js +0 -1
  353. package/dist/foundations/interactions/hoverable.d.ts +0 -19
  354. package/dist/foundations/interactions/hoverable.d.ts.map +0 -1
  355. package/dist/foundations/interactions/hoverable.js +0 -1
  356. package/dist/foundations/interactions/index.d.ts +0 -5
  357. package/dist/foundations/interactions/index.d.ts.map +0 -1
  358. package/dist/foundations/interactions/interaction-policy.d.ts +0 -96
  359. package/dist/foundations/interactions/interaction-policy.d.ts.map +0 -1
  360. package/dist/foundations/interactions/pressable.d.ts +0 -54
  361. package/dist/foundations/interactions/pressable.d.ts.map +0 -1
  362. package/dist/foundations/interactions/roving-focus.d.ts +0 -117
  363. package/dist/foundations/interactions/roving-focus.d.ts.map +0 -1
  364. package/dist/foundations/interactions/roving-focus.js +0 -1
  365. package/dist/foundations/state/controllable.d.ts +0 -53
  366. package/dist/foundations/state/controllable.d.ts.map +0 -1
  367. package/dist/foundations/state/controllable.js +0 -1
  368. package/dist/foundations/state/index.d.ts +0 -2
  369. package/dist/foundations/state/index.d.ts.map +0 -1
  370. package/dist/foundations/structures/index.d.ts +0 -5
  371. package/dist/foundations/structures/index.d.ts.map +0 -1
  372. package/dist/foundations/structures.d.ts.map +0 -1
  373. package/dist/foundations/utilities/aria.d.ts +0 -13
  374. package/dist/foundations/utilities/aria.d.ts.map +0 -1
  375. package/dist/foundations/utilities/compose-handlers.d.ts +0 -34
  376. package/dist/foundations/utilities/compose-handlers.d.ts.map +0 -1
  377. package/dist/foundations/utilities/event-types.d.ts +0 -17
  378. package/dist/foundations/utilities/event-types.d.ts.map +0 -1
  379. package/dist/foundations/utilities/index.d.ts +0 -7
  380. package/dist/foundations/utilities/index.d.ts.map +0 -1
  381. package/dist/foundations/utilities/merge-props.d.ts +0 -2
  382. package/dist/foundations/utilities/merge-props.d.ts.map +0 -1
  383. package/dist/foundations/utilities/use-id.d.ts +0 -29
  384. package/dist/foundations/utilities/use-id.d.ts.map +0 -1
  385. package/dist/foundations/utilities/use-id.js +0 -1
  386. package/dist/fx/index.d.ts.map +0 -1
  387. package/dist/fx/noop.d.ts +0 -12
  388. package/dist/fx/noop.d.ts.map +0 -1
  389. package/dist/index.d.ts.map +0 -1
  390. package/dist/jsx/index.d.ts.map +0 -1
  391. package/dist/jsx/jsx-dev-runtime.d.ts +0 -4
  392. package/dist/jsx/jsx-dev-runtime.d.ts.map +0 -1
  393. package/dist/jsx/jsx-runtime.d.ts +0 -10
  394. package/dist/jsx/jsx-runtime.d.ts.map +0 -1
  395. package/dist/node_modules/esbuild/lib/main.js +0 -65
  396. package/dist/renderer/cleanup.d.ts +0 -28
  397. package/dist/renderer/cleanup.d.ts.map +0 -1
  398. package/dist/renderer/dom.d.ts +0 -64
  399. package/dist/renderer/dom.d.ts.map +0 -1
  400. package/dist/renderer/evaluate.d.ts +0 -4
  401. package/dist/renderer/evaluate.d.ts.map +0 -1
  402. package/dist/renderer/fastpath.d.ts +0 -7
  403. package/dist/renderer/fastpath.d.ts.map +0 -1
  404. package/dist/renderer/index.d.ts +0 -6
  405. package/dist/renderer/index.d.ts.map +0 -1
  406. package/dist/renderer/keyed.d.ts +0 -23
  407. package/dist/renderer/keyed.d.ts.map +0 -1
  408. package/dist/renderer/reconcile.d.ts +0 -88
  409. package/dist/renderer/reconcile.d.ts.map +0 -1
  410. package/dist/renderer/types.d.ts +0 -3
  411. package/dist/renderer/types.d.ts.map +0 -1
  412. package/dist/renderer/utils.d.ts +0 -63
  413. package/dist/renderer/utils.d.ts.map +0 -1
  414. package/dist/resources/index.d.ts.map +0 -1
  415. package/dist/router/index.d.ts.map +0 -1
  416. package/dist/router/match.d.ts +0 -22
  417. package/dist/router/match.d.ts.map +0 -1
  418. package/dist/runtime/dev-namespace.d.ts +0 -31
  419. package/dist/runtime/dev-namespace.d.ts.map +0 -1
  420. package/dist/runtime/events.d.ts +0 -53
  421. package/dist/runtime/events.d.ts.map +0 -1
  422. package/dist/runtime/execution-model.d.ts +0 -4
  423. package/dist/runtime/execution-model.d.ts.map +0 -1
  424. package/dist/runtime/fastlane.d.ts +0 -27
  425. package/dist/runtime/fastlane.d.ts.map +0 -1
  426. package/dist/runtime/hydration.d.ts +0 -25
  427. package/dist/runtime/hydration.d.ts.map +0 -1
  428. package/dist/runtime/perf-metrics.d.ts +0 -25
  429. package/dist/runtime/perf-metrics.d.ts.map +0 -1
  430. package/dist/runtime/resource-cell.d.ts +0 -35
  431. package/dist/runtime/resource-cell.d.ts.map +0 -1
  432. package/dist/runtime/snapshot.d.ts +0 -25
  433. package/dist/runtime/snapshot.d.ts.map +0 -1
  434. package/dist/runtime/ssr-bridge.d.ts +0 -10
  435. package/dist/runtime/ssr-bridge.d.ts.map +0 -1
  436. package/dist/ssg/discover-resources.d.ts +0 -15
  437. package/dist/ssg/discover-resources.d.ts.map +0 -1
  438. package/dist/ssg/incremental-manifest.d.ts +0 -23
  439. package/dist/ssg/incremental-manifest.d.ts.map +0 -1
  440. package/dist/ssg/index.d.ts.map +0 -1
  441. package/dist/ssr/attrs.d.ts +0 -26
  442. package/dist/ssr/attrs.d.ts.map +0 -1
  443. package/dist/ssr/create-ssr.d.ts +0 -19
  444. package/dist/ssr/create-ssr.d.ts.map +0 -1
  445. package/dist/ssr/escape.d.ts +0 -38
  446. package/dist/ssr/escape.d.ts.map +0 -1
  447. package/dist/ssr/sink.d.ts +0 -23
  448. package/dist/ssr/sink.d.ts.map +0 -1
  449. package/dist/ssr/stream-render.d.ts +0 -7
  450. package/dist/ssr/stream-render.d.ts.map +0 -1
  451. package/dist/vite/index.js +0 -4
package/README.md CHANGED
@@ -1,223 +1,95 @@
1
1
  # Askr
2
2
 
3
- Deterministic UI runtime with runtime enforcement.
3
+ Askr is an actor-backed UI runtime for TypeScript applications.
4
+ It provides explicit reactivity, routed application startup, server-side rendering,
5
+ and static-site generation entrypoints.
4
6
 
5
7
  ## Quick Start
6
8
 
7
- ```typescript
9
+ ```ts
8
10
  import { createIsland, state } from '@askrjs/askr';
9
11
 
10
12
  function Counter() {
11
13
  const [count, setCount] = state(0);
12
- return <button onClick={() => setCount(count() + 1)}>{count()}</button>;
14
+
15
+ return <button onClick={() => setCount((value) => value + 1)}>{count()}</button>;
13
16
  }
14
17
 
15
18
  createIsland({ root: document.body, component: Counter });
16
19
  ```
17
20
 
18
- ---
21
+ ## What It Provides
19
22
 
20
- ## Core Features
23
+ ### Runtime
21
24
 
22
- ### Runtime Enforcement
25
+ `@askrjs/askr` exports the core runtime primitives: `state()`, `derive()`,
26
+ `selector()`, `resource()`, routing helpers, JSX control-flow helpers, and SSR/SSG
27
+ entrypoints.
23
28
 
24
- Askr validates component structure as it runs, catching mistakes with clear error messages.
29
+ ### Explicit reactivity
25
30
 
26
- ```typescript
27
- // This error is caught immediately:
28
- if (condition) {
29
- const [x, setX] = state(0); // ❌ Hook order violation
30
- }
31
+ State is read through getter functions and updated through setter functions.
31
32
 
32
- // Error shows the fix:
33
- const [x, setX] = state(0);
34
- if (condition) {
35
- setX(newValue); // ✅ Correct
36
- }
33
+ ```ts
34
+ const [count, setCount] = state(0);
35
+ console.log(count());
36
+ setCount(1);
37
37
  ```
38
38
 
39
- ### Deterministic Execution
39
+ ### Routing and app startup
40
40
 
41
- Events serialize through a scheduler. State updates are atomic. Renders follow strict ordering.
41
+ Startup belongs in `@askrjs/askr/boot`. Routing helpers live in
42
+ `@askrjs/askr/router`.
42
43
 
43
- ```typescript
44
- // Event 1 completes (handler + state + DOM)
45
- // Then Event 2 starts
46
- // No race conditions
47
- ```
44
+ ```ts
45
+ import { createIsland, createSPA } from '@askrjs/askr/boot';
46
+ import { getRoutes, route } from '@askrjs/askr/router';
48
47
 
49
- Proven with 524 tests covering:
48
+ route('/', () => <Home />);
49
+ route('/about', () => <About />);
50
50
 
51
- - Event ordering (12 tests)
52
- - State atomicity (12 tests)
53
- - Transaction semantics (30 tests)
51
+ createSPA({
52
+ root: document.body,
53
+ routes: getRoutes(),
54
+ });
55
+ ```
54
56
 
55
- ### Automatic Cleanup
57
+ ### Async resources
56
58
 
57
- Every component gets an AbortSignal for automatic cancellation.
59
+ `resource()` manages async work with cancellation support.
58
60
 
59
- ```typescript
61
+ ```ts
60
62
  import { resource } from '@askrjs/askr/resources';
61
63
 
62
- function Data({ id }) {
64
+ function Data({ id }: { id: string }) {
63
65
  const data = resource(async ({ signal }) => {
64
- const res = await fetch(`/api/${id}`, { signal });
65
- return res.json();
66
+ const response = await fetch(`/api/${id}`, { signal });
67
+ return response.json();
66
68
  }, [id]);
67
69
 
68
- if (data.pending || !data.value) return <div>Loading...</div>;
70
+ if (data.pending) return <div>Loading...</div>;
69
71
  if (data.error) return <div>Failed to load</div>;
70
72
  return <div>{data.value.name}</div>;
71
73
  }
72
- // Async work is cancelled automatically on unmount/navigation
73
- ```
74
-
75
- ### Explicit Reactivity
76
-
77
- Getters and setters are functions. Call the getter to read and the setter to update — this makes reactivity explicit in your code.
78
-
79
- ```typescript
80
- const [count, setCount] = state(0);
81
- console.log(count()); // getter: read
82
- setCount(1); // setter: write
83
- ```
84
-
85
- Clear data flow. No hidden subscriptions.
86
-
87
- ---
88
-
89
- ## API
90
-
91
- ### State
92
-
93
- ```typescript
94
- const [value, setValue] = state(initialValue);
95
-
96
- // Read
97
- value();
98
-
99
- // Write
100
- setValue(newValue);
101
-
102
- // Update
103
- setValue((prev) => prev + 1);
104
- ```
105
-
106
- ### Derived State
107
-
108
- ```typescript
109
- function Counter() {
110
- const [count, setCount] = state(0);
111
- const doubled = derive(() => count() * 2);
112
-
113
- return (
114
- <button onClick={() => setCount((prev) => prev + 1)}>
115
- {count()} -> {doubled()}
116
- </button>
117
- );
118
- }
119
- ```
120
-
121
- `derive()` now returns a getter. Migrate `const doubled = derive(...); {doubled}` to `const doubled = derive(...); {doubled()}`.
122
-
123
- ### Keyed Selectors
124
-
125
- ```typescript
126
- function Table({ rows }) {
127
- const [selectedId, setSelectedId] = state<number | null>(null);
128
- const isSelected = selector(selectedId);
129
-
130
- return For(
131
- () => rows(),
132
- (row) => row.id,
133
- (row) => (
134
- <tr class={() => (isSelected(row.id) ? 'danger' : '')}>
135
- <td>
136
- <a onClick={() => setSelectedId(row.id)}>{row.id}</a>
137
- </td>
138
- </tr>
139
- )
140
- );
141
- }
142
- ```
143
-
144
- Use `selector()` for row selection, active-route checks, and similar keyed fanout hotspots. Create it once in the owner component and reuse the keyed predicate across rows.
145
-
146
- ### Lists
147
-
148
- ```typescript
149
- const [items, setItems] = state([...]);
150
-
151
- For(
152
- items,
153
- (item) => item.id,
154
- (item) => <Item {...item} />
155
- )
156
- ```
157
-
158
- ### Apps
159
-
160
- ```typescript
161
- // Single component
162
- createIsland({
163
- root: document.body,
164
- component: MyComponent,
165
- });
166
-
167
- // Routed app
168
- route('/', () => <Home />);
169
- route('/about', () => <About />);
170
-
171
- createSPA({
172
- root: document.body,
173
- routes: getRoutes(),
174
- });
175
74
  ```
176
75
 
177
- ---
178
-
179
76
  ## Documentation
180
77
 
181
78
  - [Documentation Index](docs/index.md)
182
- - [Install](docs/getting-started/installation.md)
79
+ - [Installation](docs/getting-started/installation.md)
183
80
  - [Quick Start](docs/getting-started/quick-start.md)
184
- - [State Management](docs/guides/state.md)
81
+ - [State Guide](docs/guides/state.md)
185
82
  - [Router Guide](docs/guides/router.md)
186
83
  - [Resources Guide](docs/guides/resources.md)
187
- - [SSG Guide (Advanced)](docs/guides/ssg.md)
84
+ - [SSG Guide](docs/guides/ssg.md)
188
85
  - [Runtime Enforcement](docs/concepts/runtime-enforcement.md)
189
- - [Deterministic Execution](docs/concepts/determinism.md)
86
+ - [Determinism](docs/concepts/determinism.md)
190
87
  - [API Reference](docs/reference/api.md)
191
88
 
192
- ---
193
-
194
- ## Guarantees
195
-
196
- Askr provides provable guarantees, tested with 524 tests:
197
-
198
- - Hook order enforcement (12 tests)
199
- - Event serialization (12 tests)
200
- - Atomic transactions (30 tests)
201
- - Keyed reconciliation (12 tests)
202
- - Memory safety (8 tests)
203
-
204
- [See test suite →](tests/README.md)
205
-
206
- ---
207
-
208
- ## Migration
209
-
210
- ### Coming from React
211
-
212
- | React | Askr |
213
- | ------------------------------- | ---------------------------- |
214
- | `const [x, setX] = useState(0)` | `const [x, setX] = state(0)` |
215
- | `x` | `x()` |
216
- | `setX(1)` | `setX(1)` |
217
-
218
- The main difference: values are functions that you call to read.
89
+ ## Release Notes
219
90
 
220
- ---
91
+ The published package is versioned with the repository `package.json`.
92
+ Release workflows validate the version tag before publishing.
221
93
 
222
94
  ## Install
223
95
 
@@ -0,0 +1,7 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { get: (a, b) => (typeof require !== "undefined" ? require : a)[b] }) : x)(function(x) {
3
+ if (typeof require !== "undefined") return require.apply(this, arguments);
4
+ throw Error("Calling `require` for \"" + x + "\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.");
5
+ });
6
+ //#endregion
7
+ export { __require };
@@ -0,0 +1,20 @@
1
+ //#region src/bench/components/benchmark-row.d.ts
2
+ interface BenchmarkRowData {
3
+ id: number;
4
+ label: string;
5
+ }
6
+ interface BenchmarkRowProps {
7
+ item: BenchmarkRowData;
8
+ isSelected: (id: number) => boolean;
9
+ onSelect: (id: number) => void;
10
+ onRemove: (id: number) => void;
11
+ }
12
+ declare function BenchmarkRow({
13
+ item,
14
+ isSelected,
15
+ onSelect,
16
+ onRemove
17
+ }: BenchmarkRowProps): JSX.Element;
18
+ //#endregion
19
+ export { BenchmarkRowData };
20
+ //# sourceMappingURL=benchmark-row.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"benchmark-row.d.ts","names":[],"sources":["../../../src/bench/components/benchmark-row.tsx"],"mappings":";UAAiB,gBAAA;EACf,EAAA;EACA,KAAA;AAAA;AAAA,UAGQ,iBAAA;EACR,IAAA,EAAM,gBAAA;EACN,UAAA,GAAa,EAAA;EACb,QAAA,GAAW,EAAA;EACX,QAAA,GAAW,EAAA;AAAA;AAAA,iBAGG,YAAA,CAAA;EACd,IAAA;EACA,UAAA;EACA,QAAA;EACA;AAAA,GACC,iBAAA,GAAiB,GAAA,CAAA,OAAA"}
@@ -0,0 +1,42 @@
1
+ import { jsx, jsxs } from "../../jsx-runtime.js";
2
+ import "../../jsx-runtime2.js";
3
+ //#region src/bench/components/benchmark-row.tsx
4
+ function BenchmarkRow({ item, isSelected, onSelect, onRemove }) {
5
+ return /* @__PURE__ */ jsxs("tr", {
6
+ class: () => isSelected(item.id) ? "danger" : "",
7
+ children: [
8
+ /* @__PURE__ */ jsx("td", {
9
+ class: "col-md-1",
10
+ children: () => item.id
11
+ }, "id"),
12
+ /* @__PURE__ */ jsx("td", {
13
+ class: "col-md-4",
14
+ children: /* @__PURE__ */ jsx("a", {
15
+ onClick: (event) => {
16
+ event.preventDefault();
17
+ onSelect(item.id);
18
+ },
19
+ children: () => item.label
20
+ })
21
+ }, "label"),
22
+ /* @__PURE__ */ jsx("td", {
23
+ class: "col-md-1",
24
+ children: /* @__PURE__ */ jsx("a", {
25
+ onClick: (event) => {
26
+ event.preventDefault();
27
+ onRemove(item.id);
28
+ },
29
+ children: /* @__PURE__ */ jsx("span", {
30
+ class: "glyphicon glyphicon-remove",
31
+ "aria-hidden": "true"
32
+ })
33
+ })
34
+ }, "remove"),
35
+ /* @__PURE__ */ jsx("td", { class: "col-md-6" }, "spacer")
36
+ ]
37
+ });
38
+ }
39
+ //#endregion
40
+ export { BenchmarkRow };
41
+
42
+ //# sourceMappingURL=benchmark-row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"benchmark-row.js","names":[],"sources":["../../../src/bench/components/benchmark-row.tsx"],"sourcesContent":["export interface BenchmarkRowData {\n id: number;\n label: string;\n}\n\ninterface BenchmarkRowProps {\n item: BenchmarkRowData;\n isSelected: (id: number) => boolean;\n onSelect: (id: number) => void;\n onRemove: (id: number) => void;\n}\n\nexport function BenchmarkRow({\n item,\n isSelected,\n onSelect,\n onRemove,\n}: BenchmarkRowProps) {\n return (\n <tr class={() => (isSelected(item.id) ? 'danger' : '')}>\n <td key=\"id\" class=\"col-md-1\">\n {() => item.id}\n </td>\n <td key=\"label\" class=\"col-md-4\">\n <a\n onClick={(event: MouseEvent) => {\n event.preventDefault();\n onSelect(item.id);\n }}\n >\n {() => item.label}\n </a>\n </td>\n <td key=\"remove\" class=\"col-md-1\">\n <a\n onClick={(event: MouseEvent) => {\n event.preventDefault();\n onRemove(item.id);\n }}\n >\n <span class=\"glyphicon glyphicon-remove\" aria-hidden=\"true\" />\n </a>\n </td>\n <td key=\"spacer\" class=\"col-md-6\" />\n </tr>\n );\n}\n"],"mappings":";;;AAYA,SAAgB,aAAa,EAC3B,MACA,YACA,UACA,YACoB;AACpB,QACE,qBAAC,MAAD;EAAI,aAAc,WAAW,KAAK,GAAG,GAAG,WAAW;YAAnD;GACE,oBAAC,MAAD;IAAa,OAAM;oBACV,KAAK;IACT,EAFG,KAEH;GACL,oBAAC,MAAD;IAAgB,OAAM;cACpB,oBAAC,KAAD;KACE,UAAU,UAAsB;AAC9B,YAAM,gBAAgB;AACtB,eAAS,KAAK,GAAG;;qBAGZ,KAAK;KACV,CAAA;IACD,EATG,QASH;GACL,oBAAC,MAAD;IAAiB,OAAM;cACrB,oBAAC,KAAD;KACE,UAAU,UAAsB;AAC9B,YAAM,gBAAgB;AACtB,eAAS,KAAK,GAAG;;eAGnB,oBAAC,QAAD;MAAM,OAAM;MAA6B,eAAY;MAAS,CAAA;KAC5D,CAAA;IACD,EATG,SASH;GACL,oBAAC,MAAD,EAAiB,OAAM,YAAa,EAA5B,SAA4B;GACjC"}
@@ -0,0 +1,25 @@
1
+ import { jsx } from "../../jsx-runtime.js";
2
+ import "../../jsx-runtime2.js";
3
+ import { For } from "../../control/for.js";
4
+ import "../../index.js";
5
+ import { BenchmarkRow } from "./benchmark-row.js";
6
+ //#region src/bench/components/benchmark-table.tsx
7
+ function BenchmarkTable({ rows, isSelected, onSelect, onRemove }) {
8
+ return /* @__PURE__ */ jsx("table", {
9
+ class: "table table-hover table-striped test-data",
10
+ children: /* @__PURE__ */ jsx("tbody", { children: /* @__PURE__ */ jsx(For, {
11
+ each: () => rows(),
12
+ by: (item) => item.id,
13
+ children: (item) => /* @__PURE__ */ jsx(BenchmarkRow, {
14
+ item,
15
+ isSelected,
16
+ onSelect,
17
+ onRemove
18
+ })
19
+ }) })
20
+ });
21
+ }
22
+ //#endregion
23
+ export { BenchmarkTable };
24
+
25
+ //# sourceMappingURL=benchmark-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"benchmark-table.js","names":[],"sources":["../../../src/bench/components/benchmark-table.tsx"],"sourcesContent":["import { For, type State } from '../../index';\nimport { BenchmarkRow, type BenchmarkRowData } from './benchmark-row';\n\ninterface BenchmarkTableProps {\n rows: State<BenchmarkRowData[]>;\n isSelected: (id: number) => boolean;\n onSelect: (id: number) => void;\n onRemove: (id: number) => void;\n}\n\nexport function BenchmarkTable({\n rows,\n isSelected,\n onSelect,\n onRemove,\n}: BenchmarkTableProps) {\n return (\n <table class=\"table table-hover table-striped test-data\">\n <tbody>\n {\n <For each={() => rows()} by={(item) => item.id}>\n {(item) => (\n <BenchmarkRow\n item={item}\n isSelected={isSelected}\n onSelect={onSelect}\n onRemove={onRemove}\n />\n )}\n </For>\n }\n </tbody>\n </table>\n );\n}\n"],"mappings":";;;;;;AAUA,SAAgB,eAAe,EAC7B,MACA,YACA,UACA,YACsB;AACtB,QACE,oBAAC,SAAD;EAAO,OAAM;YACX,oBAAC,SAAD,EAAA,UAEI,oBAAC,KAAD;GAAK,YAAY,MAAM;GAAE,KAAK,SAAS,KAAK;cACxC,SACA,oBAAC,cAAD;IACQ;IACM;IACF;IACA;IACV,CAAA;GAEA,CAAA,EAEF,CAAA;EACF,CAAA"}
@@ -0,0 +1,22 @@
1
+ import { BenchmarkRowData } from "./bench/components/benchmark-row.js";
2
+
3
+ //#region src/bench/benchmark-entry.d.ts
4
+ type RowData = BenchmarkRowData;
5
+ interface BenchmarkMetadata {
6
+ packageName: string;
7
+ packageVersion: string;
8
+ buildLabel: string;
9
+ }
10
+ declare const benchmarkMetadata: BenchmarkMetadata;
11
+ declare function getBenchmarkMetadata(): BenchmarkMetadata;
12
+ declare function mountBenchmark(root: Element, initialRows?: RowData[]): {
13
+ setRows(rows: RowData[]): void;
14
+ setSelected(id: number | null): void;
15
+ cleanup(): void;
16
+ };
17
+ declare const _default: {
18
+ mountBenchmark: typeof mountBenchmark;
19
+ };
20
+ //#endregion
21
+ export { BenchmarkMetadata, benchmarkMetadata, _default as default, getBenchmarkMetadata, mountBenchmark };
22
+ //# sourceMappingURL=benchmark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"benchmark.d.ts","names":[],"sources":["../src/bench/benchmark-entry.tsx"],"mappings":";;;KAWK,OAAA,GAAU,gBAAA;AAAA,UAEE,iBAAA;EACf,WAAA;EACA,cAAA;EACA,UAAA;AAAA;AAAA,cAYW,iBAAA,EAAmB,iBAAA;AAAA,iBAOhB,oBAAA,CAAA,GAAwB,iBAAA;AAAA,iBAIxB,cAAA,CAAe,IAAA,EAAM,OAAA,EAAS,WAAA,GAAc,OAAA;gBAmC1C,OAAA;;;;cAcjB,QAAA"}
package/dist/benchmark.js CHANGED
@@ -1 +1,64 @@
1
- import"./index.js";import"./for/index.js";import{globalScheduler as n}from"./runtime/scheduler.js";import{state as s}from"./runtime/state.js";import{selector as a}from"./runtime/selector.js";import{For as h}from"./for/for.js";import{createIsland as m}from"./boot/index.js";function u(c,o){const l=Array.isArray(o)?o:[];let t,p;return m({root:c,component:()=>{t=s([]),p=s(null);const r=a(p),d=e=>p.set(e);return{type:"div",props:{},children:[{type:"table",props:{},children:[{type:"tbody",props:{},children:[h(()=>t(),e=>e.id,e=>({type:"tr",props:{class:()=>r(e.id)?"danger":""},children:[{type:"td",props:{},children:[String(e.id)]},{type:"td",props:{},children:[{type:"a",props:{onClick:i=>{i.preventDefault(),d(e.id)}},children:[e.label]}]}]}))]}]}]}}}),l.length>0&&t&&t.set(l),{setRows(r){t.set(r),n.flush()},setSelected(r){p.set(r),n.flush()},cleanup(){}}}const w={mountBenchmark:u};export{w as default,u as mountBenchmark};
1
+ import { globalScheduler } from "./runtime/scheduler.js";
2
+ import { jsx } from "./jsx-runtime.js";
3
+ import { installRendererBridge } from "./renderer/index.js";
4
+ import { state } from "./runtime/state.js";
5
+ import { selector } from "./runtime/selector.js";
6
+ import { createIsland } from "./boot/index.js";
7
+ import "./jsx-runtime2.js";
8
+ import { BenchmarkTable } from "./bench/components/benchmark-table.js";
9
+ //#region src/bench/benchmark-entry.tsx
10
+ installRendererBridge();
11
+ const benchmarkMetadata = {
12
+ packageName: "@askrjs/askr",
13
+ packageVersion: "0.0.29",
14
+ buildLabel: "0.0.29-local"
15
+ };
16
+ function getBenchmarkMetadata() {
17
+ return { ...benchmarkMetadata };
18
+ }
19
+ function mountBenchmark(root, initialRows) {
20
+ const initialRowsTyped = Array.isArray(initialRows) ? initialRows : [];
21
+ let dataState;
22
+ let selectedState;
23
+ const App = () => {
24
+ dataState = state(initialRowsTyped);
25
+ selectedState = state(null);
26
+ dataState._hasBeenRead = true;
27
+ const isSelected = selector(selectedState);
28
+ const select = (id) => selectedState.set(id);
29
+ const remove = (id) => {
30
+ dataState.set((rows) => rows.filter((item) => item.id !== id));
31
+ selectedState.set((selected) => selected === id ? null : selected);
32
+ };
33
+ return /* @__PURE__ */ jsx("div", {
34
+ class: "container",
35
+ children: /* @__PURE__ */ jsx(BenchmarkTable, {
36
+ rows: dataState,
37
+ isSelected,
38
+ onSelect: select,
39
+ onRemove: remove
40
+ })
41
+ });
42
+ };
43
+ createIsland({
44
+ root,
45
+ component: App
46
+ });
47
+ globalScheduler.flush();
48
+ return {
49
+ setRows(rows) {
50
+ dataState.set(rows);
51
+ globalScheduler.flush();
52
+ },
53
+ setSelected(id) {
54
+ selectedState.set(id);
55
+ globalScheduler.flush();
56
+ },
57
+ cleanup() {}
58
+ };
59
+ }
60
+ var benchmark_entry_default = { mountBenchmark };
61
+ //#endregion
62
+ export { benchmarkMetadata, benchmark_entry_default as default, getBenchmarkMetadata, mountBenchmark };
63
+
64
+ //# sourceMappingURL=benchmark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"benchmark.js","names":[],"sources":["../src/bench/benchmark-entry.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createIsland } from '../boot';\nimport { installRendererBridge } from '../renderer';\nimport { selector } from '../runtime/selector';\nimport { state, State } from '../runtime/state';\nimport { globalScheduler } from '../runtime/scheduler';\nimport { BenchmarkTable } from './components/benchmark-table';\nimport type { BenchmarkRowData } from './components/benchmark-row';\n\ninstallRendererBridge();\n\ntype RowData = BenchmarkRowData;\n\nexport interface BenchmarkMetadata {\n packageName: string;\n packageVersion: string;\n buildLabel: string;\n}\n\nconst packageName =\n process.env.ASKR_PACKAGE_NAME ||\n process.env.npm_package_name ||\n '@askrjs/askr';\nconst packageVersion =\n process.env.ASKR_PACKAGE_VERSION ||\n process.env.npm_package_version ||\n '0.0.0';\n\nexport const benchmarkMetadata: BenchmarkMetadata = {\n packageName,\n packageVersion,\n buildLabel:\n process.env.ASKR_BENCHMARK_BUILD_LABEL || `${packageVersion}-local`,\n};\n\nexport function getBenchmarkMetadata(): BenchmarkMetadata {\n return { ...benchmarkMetadata };\n}\n\nexport function mountBenchmark(root: Element, initialRows?: RowData[]) {\n const initialRowsTyped: RowData[] = Array.isArray(initialRows)\n ? initialRows\n : [];\n let dataState!: State<RowData[]>;\n let selectedState!: State<number | null>;\n\n const App = () => {\n dataState = state<RowData[]>(initialRowsTyped);\n selectedState = state<number | null>(null);\n dataState._hasBeenRead = true;\n const isSelected = selector(selectedState);\n\n const select = (id: number) => selectedState.set(id);\n const remove = (id: number) => {\n dataState.set((rows) => rows.filter((item) => item.id !== id));\n selectedState.set((selected) => (selected === id ? null : selected));\n };\n\n return (\n <div class=\"container\">\n <BenchmarkTable\n rows={dataState}\n isSelected={isSelected}\n onSelect={select}\n onRemove={remove}\n />\n </div>\n );\n };\n\n createIsland({ root, component: App as any });\n globalScheduler.flush();\n\n return {\n setRows(rows: RowData[]) {\n dataState.set(rows);\n // Ensure work is flushed so external harnesses (like JFB) that check the DOM\n // immediately after calling `setRows` observe the committed DOM.\n globalScheduler.flush();\n },\n setSelected(id: number | null) {\n selectedState.set(id);\n globalScheduler.flush();\n },\n cleanup() {\n // nothing to do; outer test may clean the container\n },\n };\n}\n\nexport default { mountBenchmark };\n"],"mappings":";;;;;;;;;AASA,uBAAuB;AAmBvB,MAAa,oBAAuC;CAClD;CACA;CACA,YAAA;CAED;AAED,SAAgB,uBAA0C;AACxD,QAAO,EAAE,GAAG,mBAAmB;;AAGjC,SAAgB,eAAe,MAAe,aAAyB;CACrE,MAAM,mBAA8B,MAAM,QAAQ,YAAY,GAC1D,cACA,EAAE;CACN,IAAI;CACJ,IAAI;CAEJ,MAAM,YAAY;AAChB,cAAY,MAAiB,iBAAiB;AAC9C,kBAAgB,MAAqB,KAAK;AAC1C,YAAU,eAAe;EACzB,MAAM,aAAa,SAAS,cAAc;EAE1C,MAAM,UAAU,OAAe,cAAc,IAAI,GAAG;EACpD,MAAM,UAAU,OAAe;AAC7B,aAAU,KAAK,SAAS,KAAK,QAAQ,SAAS,KAAK,OAAO,GAAG,CAAC;AAC9D,iBAAc,KAAK,aAAc,aAAa,KAAK,OAAO,SAAU;;AAGtE,SACE,oBAAC,OAAD;GAAK,OAAM;aACT,oBAAC,gBAAD;IACE,MAAM;IACM;IACZ,UAAU;IACV,UAAU;IACV,CAAA;GACE,CAAA;;AAIV,cAAa;EAAE;EAAM,WAAW;EAAY,CAAC;AAC7C,iBAAgB,OAAO;AAEvB,QAAO;EACL,QAAQ,MAAiB;AACvB,aAAU,IAAI,KAAK;AAGnB,mBAAgB,OAAO;;EAEzB,YAAY,IAAmB;AAC7B,iBAAc,IAAI,GAAG;AACrB,mBAAgB,OAAO;;EAEzB,UAAU;EAGX;;AAGH,IAAA,0BAAe,EAAE,gBAAgB"}
@@ -1,32 +1,28 @@
1
- #!/usr/bin/env node
2
- /**
3
- * askr-ssg CLI
4
- *
5
- * Usage: askr-ssg --config path/to/config.ts --output dist/static
6
- */
7
- import { createStaticGen } from '../ssg/index';
8
- export interface ParsedCliArgs {
9
- configPath: string;
10
- outputDir: string;
11
- workers: number | 'auto';
12
- incremental: boolean;
13
- changedKeys: string[];
14
- changedRoutes: string[];
15
- forceFull: boolean;
16
- help: boolean;
1
+ import { createStaticGen } from "../ssg/create-static-gen.js";
2
+ //#region src/bin/askr-ssg.d.ts
3
+ interface ParsedCliArgs {
4
+ configPath: string;
5
+ outputDir: string;
6
+ workers: number | 'auto';
7
+ incremental: boolean;
8
+ changedKeys: string[];
9
+ changedRoutes: string[];
10
+ forceFull: boolean;
11
+ help: boolean;
17
12
  }
18
13
  interface CliIo {
19
- log: (...args: unknown[]) => void;
20
- error: (...args: unknown[]) => void;
14
+ log: (...args: unknown[]) => void;
15
+ error: (...args: unknown[]) => void;
21
16
  }
22
17
  interface CliDeps {
23
- cwd: () => string;
24
- now: () => number;
25
- existsSync: (path: string) => boolean;
26
- importConfig: (path: string) => Promise<Record<string, unknown>>;
27
- createStaticGen: typeof createStaticGen;
18
+ cwd: () => string;
19
+ now: () => number;
20
+ existsSync: (path: string) => boolean;
21
+ importConfig: (path: string) => Promise<Record<string, unknown>>;
22
+ createStaticGen: typeof createStaticGen;
28
23
  }
29
- export declare function parseCliArgs(args: string[]): ParsedCliArgs;
30
- export declare function runCli(args: string[], deps?: Partial<CliDeps>, io?: CliIo): Promise<number>;
31
- export {};
24
+ declare function parseCliArgs(args: string[]): ParsedCliArgs;
25
+ declare function runCli(args: string[], deps?: Partial<CliDeps>, io?: CliIo): Promise<number>;
26
+ //#endregion
27
+ export { ParsedCliArgs, parseCliArgs, runCli };
32
28
  //# sourceMappingURL=askr-ssg.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"askr-ssg.d.ts","sourceRoot":"","sources":["../../src/bin/askr-ssg.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAa/C,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,UAAU,KAAK;IACb,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAClC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACrC;AAED,UAAU,OAAO;IACf,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACjE,eAAe,EAAE,OAAO,eAAe,CAAC;CACzC;AA0CD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,CAsC1D;AA+BD,wBAAsB,MAAM,CAC1B,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE,OAAO,CAAC,OAAO,CAAM,EAC3B,EAAE,GAAE,KAAe,GAClB,OAAO,CAAC,MAAM,CAAC,CA+EjB"}
1
+ {"version":3,"file":"askr-ssg.d.ts","names":[],"sources":["../../src/bin/askr-ssg.ts"],"mappings":";;UAuBiB,aAAA;EACf,UAAA;EACA,SAAA;EACA,OAAA;EACA,WAAA;EACA,WAAA;EACA,aAAA;EACA,SAAA;EACA,IAAA;AAAA;AAAA,UAGQ,KAAA;EACR,GAAA,MAAS,IAAA;EACT,KAAA,MAAW,IAAA;AAAA;AAAA,UAGH,OAAA;EACR,GAAA;EACA,GAAA;EACA,UAAA,GAAa,IAAA;EACb,YAAA,GAAe,IAAA,aAAiB,OAAA,CAAQ,MAAA;EACxC,eAAA,SAAwB,eAAA;AAAA;AAAA,iBA2CV,YAAA,CAAa,IAAA,aAAiB,aAAA;AAAA,iBAqExB,MAAA,CACpB,IAAA,YACA,IAAA,GAAM,OAAA,CAAQ,OAAA,GACd,EAAA,GAAI,KAAA,GACH,OAAA"}