@noego/wood 0.4.9 → 0.5.0

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 (493) hide show
  1. package/README.md +118 -42
  2. package/bin/axe.js +313 -98
  3. package/dist/{loader/__fixtures__/layouts/app.load.cjs → automation/actions.cjs} +3 -13
  4. package/dist/automation/actions.cjs.map +1 -0
  5. package/dist/automation/actions.d.cts +57 -0
  6. package/dist/automation/actions.d.ts +57 -0
  7. package/dist/automation/actions.js +1 -0
  8. package/dist/automation/actions.js.map +1 -0
  9. package/dist/automation/actions_executor.cjs +101 -0
  10. package/dist/automation/actions_executor.cjs.map +1 -0
  11. package/dist/automation/actions_executor.d.cts +16 -0
  12. package/dist/automation/actions_executor.d.ts +16 -0
  13. package/dist/automation/actions_executor.js +76 -0
  14. package/dist/automation/actions_executor.js.map +1 -0
  15. package/dist/automation/connection.cjs +86 -0
  16. package/dist/automation/connection.cjs.map +1 -0
  17. package/dist/automation/connection.d.cts +18 -0
  18. package/dist/automation/connection.d.ts +18 -0
  19. package/dist/automation/connection.js +51 -0
  20. package/dist/automation/connection.js.map +1 -0
  21. package/dist/{middleware/__fixtures__/middleware/sequence.cjs → automation/errors.cjs} +25 -22
  22. package/dist/automation/errors.cjs.map +1 -0
  23. package/dist/automation/errors.d.cts +31 -0
  24. package/dist/automation/errors.d.ts +31 -0
  25. package/dist/automation/errors.js +24 -0
  26. package/dist/automation/errors.js.map +1 -0
  27. package/dist/automation/index.cjs +49 -0
  28. package/dist/automation/index.cjs.map +1 -0
  29. package/dist/automation/index.d.cts +16 -0
  30. package/dist/automation/index.d.ts +16 -0
  31. package/dist/automation/index.js +15 -0
  32. package/dist/automation/index.js.map +1 -0
  33. package/dist/automation/introspection_reader.cjs +75 -0
  34. package/dist/automation/introspection_reader.cjs.map +1 -0
  35. package/dist/automation/introspection_reader.d.cts +20 -0
  36. package/dist/automation/introspection_reader.d.ts +20 -0
  37. package/dist/automation/introspection_reader.js +48 -0
  38. package/dist/automation/introspection_reader.js.map +1 -0
  39. package/dist/automation/locator.cjs +102 -0
  40. package/dist/automation/locator.cjs.map +1 -0
  41. package/dist/automation/locator.d.cts +51 -0
  42. package/dist/automation/locator.d.ts +51 -0
  43. package/dist/automation/locator.js +75 -0
  44. package/dist/automation/locator.js.map +1 -0
  45. package/dist/{loader/__fixtures__/views/test/page.load.cjs → automation/observation.cjs} +3 -13
  46. package/dist/automation/observation.cjs.map +1 -0
  47. package/dist/automation/observation.d.cts +44 -0
  48. package/dist/automation/observation.d.ts +44 -0
  49. package/dist/automation/observation.js +1 -0
  50. package/dist/automation/observation.js.map +1 -0
  51. package/dist/{controller/__fixtures__/controllers/test.cjs → automation/receipts.cjs} +3 -15
  52. package/dist/automation/receipts.cjs.map +1 -0
  53. package/dist/automation/receipts.d.cts +27 -0
  54. package/dist/automation/receipts.d.ts +27 -0
  55. package/dist/automation/receipts.js +1 -0
  56. package/dist/automation/receipts.js.map +1 -0
  57. package/dist/automation/scenario.cjs +696 -0
  58. package/dist/automation/scenario.cjs.map +1 -0
  59. package/dist/automation/scenario.d.cts +89 -0
  60. package/dist/automation/scenario.d.ts +89 -0
  61. package/dist/automation/scenario.js +660 -0
  62. package/dist/automation/scenario.js.map +1 -0
  63. package/dist/automation/scrolling.cjs +17 -0
  64. package/dist/automation/scrolling.cjs.map +1 -0
  65. package/dist/automation/scrolling.d.cts +51 -0
  66. package/dist/automation/scrolling.d.ts +51 -0
  67. package/dist/automation/scrolling.js +1 -0
  68. package/dist/automation/scrolling.js.map +1 -0
  69. package/dist/automation/scrolling_executor.cjs +109 -0
  70. package/dist/automation/scrolling_executor.cjs.map +1 -0
  71. package/dist/automation/scrolling_executor.d.cts +13 -0
  72. package/dist/automation/scrolling_executor.d.ts +13 -0
  73. package/dist/automation/scrolling_executor.js +84 -0
  74. package/dist/automation/scrolling_executor.js.map +1 -0
  75. package/dist/automation/target_identity.cjs +17 -0
  76. package/dist/automation/target_identity.cjs.map +1 -0
  77. package/dist/automation/target_identity.d.cts +28 -0
  78. package/dist/automation/target_identity.d.ts +28 -0
  79. package/dist/automation/target_identity.js +1 -0
  80. package/dist/automation/target_identity.js.map +1 -0
  81. package/dist/automation/target_registry.cjs +148 -0
  82. package/dist/automation/target_registry.cjs.map +1 -0
  83. package/dist/automation/target_registry.d.cts +32 -0
  84. package/dist/automation/target_registry.d.ts +32 -0
  85. package/dist/automation/target_registry.js +122 -0
  86. package/dist/automation/target_registry.js.map +1 -0
  87. package/dist/automation/waits.cjs +17 -0
  88. package/dist/automation/waits.cjs.map +1 -0
  89. package/dist/automation/waits.d.cts +44 -0
  90. package/dist/automation/waits.d.ts +44 -0
  91. package/dist/automation/waits.js +1 -0
  92. package/dist/automation/waits.js.map +1 -0
  93. package/dist/automation/waits_executor.cjs +104 -0
  94. package/dist/automation/waits_executor.cjs.map +1 -0
  95. package/dist/automation/waits_executor.d.cts +14 -0
  96. package/dist/automation/waits_executor.d.ts +14 -0
  97. package/dist/automation/waits_executor.js +79 -0
  98. package/dist/automation/waits_executor.js.map +1 -0
  99. package/dist/bridge/backend_bridge.cjs.map +1 -1
  100. package/dist/bridge/backend_bridge.js.map +1 -1
  101. package/dist/client/index.cjs +78 -21
  102. package/dist/client/index.cjs.map +1 -1
  103. package/dist/client/index.d.cts +19 -3
  104. package/dist/client/index.d.ts +19 -3
  105. package/dist/client/index.js +80 -22
  106. package/dist/client/index.js.map +1 -1
  107. package/dist/client/renderer_log_transport.cjs +151 -0
  108. package/dist/client/renderer_log_transport.cjs.map +1 -0
  109. package/dist/client/renderer_log_transport.d.cts +54 -0
  110. package/dist/client/renderer_log_transport.d.ts +54 -0
  111. package/dist/client/renderer_log_transport.js +123 -0
  112. package/dist/client/renderer_log_transport.js.map +1 -0
  113. package/dist/codegen/controller_registration_generator.cjs +13 -2
  114. package/dist/codegen/controller_registration_generator.cjs.map +1 -1
  115. package/dist/codegen/controller_registration_generator.d.cts +12 -1
  116. package/dist/codegen/controller_registration_generator.d.ts +12 -1
  117. package/dist/codegen/controller_registration_generator.js +10 -1
  118. package/dist/codegen/controller_registration_generator.js.map +1 -1
  119. package/dist/codegen/index.d.cts +1 -0
  120. package/dist/codegen/index.d.ts +1 -0
  121. package/dist/codegen/preload_generator.cjs +13 -6
  122. package/dist/codegen/preload_generator.cjs.map +1 -1
  123. package/dist/codegen/preload_generator.d.cts +11 -2
  124. package/dist/codegen/preload_generator.d.ts +11 -2
  125. package/dist/codegen/preload_generator.js +13 -6
  126. package/dist/codegen/preload_generator.js.map +1 -1
  127. package/dist/codegen/renderer_app_generator.cjs +95 -44
  128. package/dist/codegen/renderer_app_generator.cjs.map +1 -1
  129. package/dist/codegen/renderer_app_generator.js +95 -44
  130. package/dist/codegen/renderer_app_generator.js.map +1 -1
  131. package/dist/codegen/type_generator.cjs +1 -0
  132. package/dist/codegen/type_generator.cjs.map +1 -1
  133. package/dist/codegen/type_generator.js +1 -0
  134. package/dist/codegen/type_generator.js.map +1 -1
  135. package/dist/config/config_parser.cjs +95 -4
  136. package/dist/config/config_parser.cjs.map +1 -1
  137. package/dist/config/config_parser.d.cts +10 -2
  138. package/dist/config/config_parser.d.ts +10 -2
  139. package/dist/config/config_parser.js +92 -3
  140. package/dist/config/config_parser.js.map +1 -1
  141. package/dist/config/index.cjs +6 -2
  142. package/dist/config/index.cjs.map +1 -1
  143. package/dist/config/index.d.cts +2 -2
  144. package/dist/config/index.d.ts +2 -2
  145. package/dist/config/index.js +8 -2
  146. package/dist/config/index.js.map +1 -1
  147. package/dist/controller/controller_resolver.cjs +51 -3
  148. package/dist/controller/controller_resolver.cjs.map +1 -1
  149. package/dist/controller/controller_resolver.d.cts +27 -4
  150. package/dist/controller/controller_resolver.d.ts +27 -4
  151. package/dist/controller/controller_resolver.js +48 -2
  152. package/dist/controller/controller_resolver.js.map +1 -1
  153. package/dist/controller/index.cjs +6 -2
  154. package/dist/controller/index.cjs.map +1 -1
  155. package/dist/controller/index.d.cts +1 -1
  156. package/dist/controller/index.d.ts +1 -1
  157. package/dist/controller/index.js +4 -2
  158. package/dist/controller/index.js.map +1 -1
  159. package/dist/dev/wood_dev_server.cjs +4 -1
  160. package/dist/dev/wood_dev_server.cjs.map +1 -1
  161. package/dist/dev/wood_dev_server.js +5 -2
  162. package/dist/dev/wood_dev_server.js.map +1 -1
  163. package/dist/dev/yaml_watcher.cjs +1 -1
  164. package/dist/dev/yaml_watcher.cjs.map +1 -1
  165. package/dist/dev/yaml_watcher.d.cts +4 -0
  166. package/dist/dev/yaml_watcher.d.ts +4 -0
  167. package/dist/dev/yaml_watcher.js +1 -1
  168. package/dist/dev/yaml_watcher.js.map +1 -1
  169. package/dist/frontend/frontend_lifecycle.cjs +74 -0
  170. package/dist/frontend/frontend_lifecycle.cjs.map +1 -0
  171. package/dist/frontend/frontend_lifecycle.d.cts +50 -0
  172. package/dist/frontend/frontend_lifecycle.d.ts +50 -0
  173. package/dist/frontend/frontend_lifecycle.js +50 -0
  174. package/dist/frontend/frontend_lifecycle.js.map +1 -0
  175. package/dist/frontend/frontend_page.cjs +122 -0
  176. package/dist/frontend/frontend_page.cjs.map +1 -0
  177. package/dist/frontend/frontend_page.d.cts +62 -0
  178. package/dist/frontend/frontend_page.d.ts +62 -0
  179. package/dist/frontend/frontend_page.js +98 -0
  180. package/dist/frontend/frontend_page.js.map +1 -0
  181. package/dist/frontend/frontend_surface.cjs +249 -0
  182. package/dist/frontend/frontend_surface.cjs.map +1 -0
  183. package/dist/frontend/frontend_surface.d.cts +64 -0
  184. package/dist/frontend/frontend_surface.d.ts +64 -0
  185. package/dist/frontend/frontend_surface.js +224 -0
  186. package/dist/frontend/frontend_surface.js.map +1 -0
  187. package/dist/frontend/index.cjs +52 -0
  188. package/dist/frontend/index.cjs.map +1 -0
  189. package/dist/frontend/index.d.cts +10 -0
  190. package/dist/frontend/index.d.ts +10 -0
  191. package/dist/frontend/index.js +19 -0
  192. package/dist/frontend/index.js.map +1 -0
  193. package/dist/frontend/page_catalog.cjs +135 -0
  194. package/dist/frontend/page_catalog.cjs.map +1 -0
  195. package/dist/frontend/page_catalog.d.cts +56 -0
  196. package/dist/frontend/page_catalog.d.ts +56 -0
  197. package/dist/frontend/page_catalog.js +108 -0
  198. package/dist/frontend/page_catalog.js.map +1 -0
  199. package/dist/frontend/tracked_transport.cjs +55 -0
  200. package/dist/frontend/tracked_transport.cjs.map +1 -0
  201. package/dist/frontend/tracked_transport.d.cts +36 -0
  202. package/dist/frontend/tracked_transport.d.ts +36 -0
  203. package/dist/frontend/tracked_transport.js +31 -0
  204. package/dist/frontend/tracked_transport.js.map +1 -0
  205. package/dist/frontend/work_registry.cjs +153 -0
  206. package/dist/frontend/work_registry.cjs.map +1 -0
  207. package/dist/frontend/work_registry.d.cts +70 -0
  208. package/dist/frontend/work_registry.d.ts +70 -0
  209. package/dist/frontend/work_registry.js +128 -0
  210. package/dist/frontend/work_registry.js.map +1 -0
  211. package/dist/index.cjs +24 -0
  212. package/dist/index.cjs.map +1 -1
  213. package/dist/index.d.cts +11 -7
  214. package/dist/index.d.ts +11 -7
  215. package/dist/index.js +27 -4
  216. package/dist/index.js.map +1 -1
  217. package/dist/main/index.cjs +10 -0
  218. package/dist/main/index.cjs.map +1 -1
  219. package/dist/main/index.d.cts +14 -2
  220. package/dist/main/index.d.ts +14 -2
  221. package/dist/main/index.js +16 -0
  222. package/dist/main/index.js.map +1 -1
  223. package/dist/middleware/middleware_resolver.cjs +22 -1
  224. package/dist/middleware/middleware_resolver.cjs.map +1 -1
  225. package/dist/middleware/middleware_resolver.d.cts +13 -1
  226. package/dist/middleware/middleware_resolver.d.ts +13 -1
  227. package/dist/middleware/middleware_resolver.js +22 -1
  228. package/dist/middleware/middleware_resolver.js.map +1 -1
  229. package/dist/navigation/automation_introspection.cjs +110 -0
  230. package/dist/navigation/automation_introspection.cjs.map +1 -0
  231. package/dist/navigation/automation_introspection.d.cts +60 -0
  232. package/dist/navigation/automation_introspection.d.ts +60 -0
  233. package/dist/navigation/automation_introspection.js +85 -0
  234. package/dist/navigation/automation_introspection.js.map +1 -0
  235. package/dist/navigation/index.cjs +10 -2
  236. package/dist/navigation/index.cjs.map +1 -1
  237. package/dist/navigation/index.d.cts +27 -1
  238. package/dist/navigation/index.d.ts +27 -1
  239. package/dist/navigation/index.js +6 -1
  240. package/dist/navigation/index.js.map +1 -1
  241. package/dist/{middleware/__fixtures__/middleware/auth.cjs → navigation/layout_preservation.cjs} +18 -20
  242. package/dist/navigation/layout_preservation.cjs.map +1 -0
  243. package/dist/navigation/layout_preservation.d.cts +2 -0
  244. package/dist/navigation/layout_preservation.d.ts +2 -0
  245. package/dist/navigation/layout_preservation.js +18 -0
  246. package/dist/navigation/layout_preservation.js.map +1 -0
  247. package/dist/parser/index.cjs +2 -0
  248. package/dist/parser/index.cjs.map +1 -1
  249. package/dist/parser/index.d.cts +1 -1
  250. package/dist/parser/index.d.ts +1 -1
  251. package/dist/parser/index.js +2 -1
  252. package/dist/parser/index.js.map +1 -1
  253. package/dist/parser/operations_parser.cjs +6 -0
  254. package/dist/parser/operations_parser.cjs.map +1 -1
  255. package/dist/parser/operations_parser.d.cts +9 -2
  256. package/dist/parser/operations_parser.d.ts +9 -2
  257. package/dist/parser/operations_parser.js +5 -0
  258. package/dist/parser/operations_parser.js.map +1 -1
  259. package/dist/parser/views_parser.cjs.map +1 -1
  260. package/dist/parser/views_parser.js.map +1 -1
  261. package/dist/router/index.d.cts +1 -0
  262. package/dist/router/index.d.ts +1 -0
  263. package/dist/router/wood_router.cjs +35 -3
  264. package/dist/router/wood_router.cjs.map +1 -1
  265. package/dist/router/wood_router.d.cts +15 -0
  266. package/dist/router/wood_router.d.ts +15 -0
  267. package/dist/router/wood_router.js +36 -4
  268. package/dist/router/wood_router.js.map +1 -1
  269. package/dist/runtime/get_container.cjs +9 -34
  270. package/dist/runtime/get_container.cjs.map +1 -1
  271. package/dist/runtime/get_container.d.cts +24 -4
  272. package/dist/runtime/get_container.d.ts +24 -4
  273. package/dist/runtime/get_container.js +8 -23
  274. package/dist/runtime/get_container.js.map +1 -1
  275. package/dist/runtime/index.cjs +9 -0
  276. package/dist/runtime/index.cjs.map +1 -1
  277. package/dist/runtime/index.d.cts +5 -2
  278. package/dist/runtime/index.d.ts +5 -2
  279. package/dist/runtime/index.js +10 -1
  280. package/dist/runtime/index.js.map +1 -1
  281. package/dist/runtime/renderer_config_extension.cjs +50 -0
  282. package/dist/runtime/renderer_config_extension.cjs.map +1 -0
  283. package/dist/runtime/renderer_config_extension.d.cts +19 -0
  284. package/dist/runtime/renderer_config_extension.d.ts +19 -0
  285. package/dist/runtime/renderer_config_extension.js +24 -0
  286. package/dist/runtime/renderer_config_extension.js.map +1 -0
  287. package/dist/runtime/renderer_log_batch_receiver.cjs +73 -0
  288. package/dist/runtime/renderer_log_batch_receiver.cjs.map +1 -0
  289. package/dist/runtime/renderer_log_batch_receiver.d.cts +29 -0
  290. package/dist/runtime/renderer_log_batch_receiver.d.ts +29 -0
  291. package/dist/runtime/renderer_log_batch_receiver.js +48 -0
  292. package/dist/runtime/renderer_log_batch_receiver.js.map +1 -0
  293. package/dist/runtime/renderer_trace_batch_receiver_registry.d.cts +1 -1
  294. package/dist/runtime/renderer_trace_batch_receiver_registry.d.ts +1 -1
  295. package/dist/runtime/runtime.cjs +14 -0
  296. package/dist/runtime/runtime.cjs.map +1 -1
  297. package/dist/runtime/runtime.d.cts +2 -1
  298. package/dist/runtime/runtime.d.ts +2 -1
  299. package/dist/runtime/runtime.js +14 -0
  300. package/dist/runtime/runtime.js.map +1 -1
  301. package/dist/stick/index.cjs.map +1 -1
  302. package/dist/stick/index.js.map +1 -1
  303. package/dist/testing/automation_assertions.cjs +417 -0
  304. package/dist/testing/automation_assertions.cjs.map +1 -0
  305. package/dist/testing/automation_assertions.d.cts +44 -0
  306. package/dist/testing/automation_assertions.d.ts +44 -0
  307. package/dist/testing/automation_assertions.js +385 -0
  308. package/dist/testing/automation_assertions.js.map +1 -0
  309. package/dist/testing/browser.cjs +130 -57
  310. package/dist/testing/browser.cjs.map +1 -1
  311. package/dist/testing/browser.d.cts +10 -4
  312. package/dist/testing/browser.d.ts +10 -4
  313. package/dist/testing/browser.js +132 -53
  314. package/dist/testing/browser.js.map +1 -1
  315. package/dist/testing/create_controller_harness.cjs +28 -8
  316. package/dist/testing/create_controller_harness.cjs.map +1 -1
  317. package/dist/testing/create_controller_harness.d.cts +18 -2
  318. package/dist/testing/create_controller_harness.d.ts +18 -2
  319. package/dist/testing/create_controller_harness.js +28 -8
  320. package/dist/testing/create_controller_harness.js.map +1 -1
  321. package/dist/testing/create_router_bridge.d.cts +1 -0
  322. package/dist/testing/create_router_bridge.d.ts +1 -0
  323. package/dist/testing/create_test_router.d.cts +1 -0
  324. package/dist/testing/create_test_router.d.ts +1 -0
  325. package/dist/testing/geometry.cjs +109 -0
  326. package/dist/testing/geometry.cjs.map +1 -0
  327. package/dist/testing/geometry.d.cts +45 -0
  328. package/dist/testing/geometry.d.ts +45 -0
  329. package/dist/testing/geometry.js +79 -0
  330. package/dist/testing/geometry.js.map +1 -0
  331. package/dist/testing/index.cjs +62 -2
  332. package/dist/testing/index.cjs.map +1 -1
  333. package/dist/testing/index.d.cts +23 -4
  334. package/dist/testing/index.d.ts +23 -4
  335. package/dist/testing/index.js +50 -2
  336. package/dist/testing/index.js.map +1 -1
  337. package/dist/{controller/__fixtures__/controllers/not_a_class.cjs → testing/test_wood.cjs} +15 -7
  338. package/dist/testing/test_wood.cjs.map +1 -0
  339. package/dist/testing/test_wood.d.cts +16 -0
  340. package/dist/testing/test_wood.d.ts +16 -0
  341. package/dist/testing/test_wood.js +12 -0
  342. package/dist/testing/test_wood.js.map +1 -0
  343. package/dist/testing/test_wood_config.cjs +272 -0
  344. package/dist/testing/test_wood_config.cjs.map +1 -0
  345. package/dist/testing/test_wood_config.d.cts +111 -0
  346. package/dist/testing/test_wood_config.d.ts +111 -0
  347. package/dist/testing/test_wood_config.js +247 -0
  348. package/dist/testing/test_wood_config.js.map +1 -0
  349. package/dist/testing/wood_config_source.cjs +146 -0
  350. package/dist/testing/wood_config_source.cjs.map +1 -0
  351. package/dist/testing/wood_config_source.d.cts +36 -0
  352. package/dist/testing/wood_config_source.d.ts +36 -0
  353. package/dist/testing/wood_config_source.js +112 -0
  354. package/dist/testing/wood_config_source.js.map +1 -0
  355. package/dist/testing/wood_env_renderer.cjs +210 -0
  356. package/dist/testing/wood_env_renderer.cjs.map +1 -0
  357. package/dist/testing/wood_env_renderer.d.cts +74 -0
  358. package/dist/testing/wood_env_renderer.d.ts +74 -0
  359. package/dist/testing/wood_env_renderer.js +188 -0
  360. package/dist/testing/wood_env_renderer.js.map +1 -0
  361. package/dist/testing/wood_test_selection.cjs +94 -0
  362. package/dist/testing/wood_test_selection.cjs.map +1 -0
  363. package/dist/testing/wood_test_selection.d.cts +39 -0
  364. package/dist/testing/wood_test_selection.d.ts +39 -0
  365. package/dist/testing/wood_test_selection.js +68 -0
  366. package/dist/testing/wood_test_selection.js.map +1 -0
  367. package/dist/trace-testing/index.d.cts +1 -2
  368. package/dist/trace-testing/index.d.ts +1 -2
  369. package/dist/trace-testing/trace_recorder.cjs +1 -1
  370. package/dist/trace-testing/trace_recorder.cjs.map +1 -1
  371. package/dist/trace-testing/trace_recorder.d.cts +1 -2
  372. package/dist/trace-testing/trace_recorder.d.ts +1 -2
  373. package/dist/trace-testing/trace_recorder.js +1 -1
  374. package/dist/trace-testing/trace_recorder.js.map +1 -1
  375. package/dist/trace-transport/index.d.cts +1 -1
  376. package/dist/trace-transport/index.d.ts +1 -1
  377. package/dist/{trace_hub-Cob54qRx.d.cts → trace_hub-Cpo_nVze.d.cts} +21 -1
  378. package/dist/{trace_hub-Cob54qRx.d.ts → trace_hub-Cpo_nVze.d.ts} +21 -1
  379. package/dist/tracing/index.cjs +9 -2
  380. package/dist/tracing/index.cjs.map +1 -1
  381. package/dist/tracing/index.d.cts +3 -2
  382. package/dist/tracing/index.d.ts +3 -2
  383. package/dist/tracing/index.js +7 -1
  384. package/dist/tracing/index.js.map +1 -1
  385. package/dist/tracing/renderer_trace_batch_host.d.cts +1 -1
  386. package/dist/tracing/renderer_trace_batch_host.d.ts +1 -1
  387. package/dist/tracing/renderer_trace_batch_transport.cjs +48 -6
  388. package/dist/tracing/renderer_trace_batch_transport.cjs.map +1 -1
  389. package/dist/tracing/renderer_trace_batch_transport.d.cts +17 -1
  390. package/dist/tracing/renderer_trace_batch_transport.d.ts +17 -1
  391. package/dist/tracing/renderer_trace_batch_transport.js +48 -6
  392. package/dist/tracing/renderer_trace_batch_transport.js.map +1 -1
  393. package/dist/tracing/trace_batch_adapter.cjs +110 -0
  394. package/dist/tracing/trace_batch_adapter.cjs.map +1 -0
  395. package/dist/tracing/trace_batch_adapter.d.cts +36 -0
  396. package/dist/tracing/trace_batch_adapter.d.ts +36 -0
  397. package/dist/tracing/trace_batch_adapter.js +86 -0
  398. package/dist/tracing/trace_batch_adapter.js.map +1 -0
  399. package/dist/tracing/trace_commit_writer.d.cts +1 -1
  400. package/dist/tracing/trace_commit_writer.d.ts +1 -1
  401. package/dist/tracing/trace_hub.cjs +87 -20
  402. package/dist/tracing/trace_hub.cjs.map +1 -1
  403. package/dist/tracing/trace_hub.d.cts +1 -1
  404. package/dist/tracing/trace_hub.d.ts +1 -1
  405. package/dist/tracing/trace_hub.js +85 -20
  406. package/dist/tracing/trace_hub.js.map +1 -1
  407. package/dist/tracing/trace_provider.cjs +21 -6
  408. package/dist/tracing/trace_provider.cjs.map +1 -1
  409. package/dist/tracing/trace_provider.d.cts +13 -4
  410. package/dist/tracing/trace_provider.d.ts +13 -4
  411. package/dist/tracing/trace_provider.js +22 -7
  412. package/dist/tracing/trace_provider.js.map +1 -1
  413. package/dist/tracing/types/wood_trace_batch.types.cjs.map +1 -1
  414. package/dist/tracing/types/wood_trace_batch.types.d.cts +15 -1
  415. package/dist/tracing/types/wood_trace_batch.types.d.ts +15 -1
  416. package/dist/tracing/types/wood_trace_sink.types.d.cts +1 -1
  417. package/dist/tracing/types/wood_trace_sink.types.d.ts +1 -1
  418. package/dist/tracing/wood_trace_batch_contract.cjs +2 -0
  419. package/dist/tracing/wood_trace_batch_contract.cjs.map +1 -1
  420. package/dist/tracing/wood_trace_batch_contract.d.cts +1 -1
  421. package/dist/tracing/wood_trace_batch_contract.d.ts +1 -1
  422. package/dist/tracing/wood_trace_batch_contract.js +2 -0
  423. package/dist/tracing/wood_trace_batch_contract.js.map +1 -1
  424. package/dist/transport/build_transport_bridge.cjs +4 -2
  425. package/dist/transport/build_transport_bridge.cjs.map +1 -1
  426. package/dist/transport/build_transport_bridge.d.cts +7 -1
  427. package/dist/transport/build_transport_bridge.d.ts +7 -1
  428. package/dist/transport/build_transport_bridge.js +2 -1
  429. package/dist/transport/build_transport_bridge.js.map +1 -1
  430. package/dist/transport/in_process_router_transport.d.cts +1 -0
  431. package/dist/transport/in_process_router_transport.d.ts +1 -0
  432. package/dist/transport/index.d.cts +1 -0
  433. package/dist/transport/index.d.ts +1 -0
  434. package/dist/types/config.cjs.map +1 -1
  435. package/dist/types/config.d.cts +47 -1
  436. package/dist/types/config.d.ts +47 -1
  437. package/dist/types/context.cjs +12 -0
  438. package/dist/types/context.cjs.map +1 -1
  439. package/dist/types/context.d.cts +27 -1
  440. package/dist/types/context.d.ts +27 -1
  441. package/dist/types/context.js +4 -0
  442. package/dist/types/context.js.map +1 -1
  443. package/dist/types/index.d.cts +2 -2
  444. package/dist/types/index.d.ts +2 -2
  445. package/dist/types/operations.cjs.map +1 -1
  446. package/dist/types/operations.d.cts +2 -0
  447. package/dist/types/operations.d.ts +2 -0
  448. package/docs/axe.md +706 -0
  449. package/package.json +19 -5
  450. package/src/components/NavigationShell.scopes.browser.test.ts +363 -0
  451. package/src/components/NavigationShell.svelte +126 -49
  452. package/dist/controller/__fixtures__/controllers/chat.cjs +0 -32
  453. package/dist/controller/__fixtures__/controllers/chat.cjs.map +0 -1
  454. package/dist/controller/__fixtures__/controllers/chat.d.cts +0 -11
  455. package/dist/controller/__fixtures__/controllers/chat.d.ts +0 -11
  456. package/dist/controller/__fixtures__/controllers/chat.js +0 -12
  457. package/dist/controller/__fixtures__/controllers/chat.js.map +0 -1
  458. package/dist/controller/__fixtures__/controllers/not_a_class.cjs.map +0 -1
  459. package/dist/controller/__fixtures__/controllers/not_a_class.d.cts +0 -3
  460. package/dist/controller/__fixtures__/controllers/not_a_class.d.ts +0 -3
  461. package/dist/controller/__fixtures__/controllers/not_a_class.js +0 -5
  462. package/dist/controller/__fixtures__/controllers/not_a_class.js.map +0 -1
  463. package/dist/controller/__fixtures__/controllers/settings.controller.cjs +0 -32
  464. package/dist/controller/__fixtures__/controllers/settings.controller.cjs.map +0 -1
  465. package/dist/controller/__fixtures__/controllers/settings.controller.d.cts +0 -12
  466. package/dist/controller/__fixtures__/controllers/settings.controller.d.ts +0 -12
  467. package/dist/controller/__fixtures__/controllers/settings.controller.js +0 -12
  468. package/dist/controller/__fixtures__/controllers/settings.controller.js.map +0 -1
  469. package/dist/controller/__fixtures__/controllers/test.cjs.map +0 -1
  470. package/dist/controller/__fixtures__/controllers/test.d.cts +0 -7
  471. package/dist/controller/__fixtures__/controllers/test.d.ts +0 -7
  472. package/dist/controller/__fixtures__/controllers/test.js +0 -9
  473. package/dist/controller/__fixtures__/controllers/test.js.map +0 -1
  474. package/dist/loader/__fixtures__/layouts/app.load.cjs.map +0 -1
  475. package/dist/loader/__fixtures__/layouts/app.load.d.cts +0 -5
  476. package/dist/loader/__fixtures__/layouts/app.load.d.ts +0 -5
  477. package/dist/loader/__fixtures__/layouts/app.load.js +0 -7
  478. package/dist/loader/__fixtures__/layouts/app.load.js.map +0 -1
  479. package/dist/loader/__fixtures__/views/test/page.load.cjs.map +0 -1
  480. package/dist/loader/__fixtures__/views/test/page.load.d.cts +0 -6
  481. package/dist/loader/__fixtures__/views/test/page.load.d.ts +0 -6
  482. package/dist/loader/__fixtures__/views/test/page.load.js +0 -7
  483. package/dist/loader/__fixtures__/views/test/page.load.js.map +0 -1
  484. package/dist/middleware/__fixtures__/middleware/auth.cjs.map +0 -1
  485. package/dist/middleware/__fixtures__/middleware/auth.d.cts +0 -6
  486. package/dist/middleware/__fixtures__/middleware/auth.d.ts +0 -6
  487. package/dist/middleware/__fixtures__/middleware/auth.js +0 -19
  488. package/dist/middleware/__fixtures__/middleware/auth.js.map +0 -1
  489. package/dist/middleware/__fixtures__/middleware/sequence.cjs.map +0 -1
  490. package/dist/middleware/__fixtures__/middleware/sequence.d.cts +0 -7
  491. package/dist/middleware/__fixtures__/middleware/sequence.d.ts +0 -7
  492. package/dist/middleware/__fixtures__/middleware/sequence.js +0 -21
  493. package/dist/middleware/__fixtures__/middleware/sequence.js.map +0 -1
@@ -3,6 +3,7 @@
3
3
  import { getNavigation, type NavigationEntry } from '@noego/wood/navigation';
4
4
  import { disposeControllerLifecycle } from '../controller/controller_lifecycle';
5
5
  import { createNavigationMountKey } from '../navigation/navigation_identity';
6
+ import { computePreservedLayoutDepth as computeSharedPreservedLayoutDepth } from '../navigation/layout_preservation';
6
7
  import WoodRecursiveRender from './WoodRecursiveRender.svelte';
7
8
  import { getWoodAppEnv } from '../client/app_env';
8
9
 
@@ -20,6 +21,21 @@
20
21
 
21
22
  type CreateViewControllerFn = (entry: ViewManifestEntry) => Promise<unknown>;
22
23
  type CreateLayoutControllersFn = (entry: ViewManifestEntry, startIndex?: number) => Promise<Array<unknown>>;
24
+ type ScopeLike = { dispose?: () => Promise<void> };
25
+ /**
26
+ * A view lifecycle's controllers plus the IoC scopes that own them:
27
+ * one page scope shared by the view controller and non-preservable layout
28
+ * controllers, and a dedicated scope per preservable layout (null entries
29
+ * mean "owned by the page scope"). Legacy factory props produce sets with
30
+ * null scopes — controller-only lifecycle, no scope disposal.
31
+ */
32
+ type ControllerSet = {
33
+ controller: unknown;
34
+ layoutControllers: Array<unknown>;
35
+ pageScope?: ScopeLike | null;
36
+ layoutScopes?: Array<ScopeLike | null>;
37
+ };
38
+ type CreateControllerSetFn = (entry: ViewManifestEntry, preservedDepth?: number) => Promise<ControllerSet>;
23
39
  type GetViewManifestEntryFn = (viewKey: string) => ViewManifestEntry | null;
24
40
  type NavigationOptions = {
25
41
  preserveLayouts?: boolean;
@@ -41,27 +57,50 @@
41
57
  initialLayoutControllers,
42
58
  createViewControllerFn,
43
59
  createLayoutControllersFn,
60
+ initialControllerSet,
61
+ createControllerSetFn,
44
62
  getViewManifestEntryFn,
45
63
  }: {
46
64
  manifest: Record<string, ViewManifestEntry>;
47
65
  initialEntry: ViewManifestEntry;
48
- initialController: unknown;
49
- initialLayoutControllers: Array<unknown>;
50
- createViewControllerFn: CreateViewControllerFn;
51
- createLayoutControllersFn: CreateLayoutControllersFn;
66
+ initialController?: unknown;
67
+ initialLayoutControllers?: Array<unknown>;
68
+ createViewControllerFn?: CreateViewControllerFn;
69
+ createLayoutControllersFn?: CreateLayoutControllersFn;
70
+ initialControllerSet?: ControllerSet;
71
+ createControllerSetFn?: CreateControllerSetFn;
52
72
  getViewManifestEntryFn: GetViewManifestEntryFn;
53
73
  } = $props();
54
74
 
75
+ // Unified controller-set factory: prefer the scope-aware contract; wrap
76
+ // the legacy split factories (scope-less) for backward compatibility.
77
+ const buildControllerSet: CreateControllerSetFn = createControllerSetFn
78
+ ?? (async (entry, preservedDepth = 0) => ({
79
+ controller: await createViewControllerFn?.(entry),
80
+ layoutControllers: (await createLayoutControllersFn?.(entry, preservedDepth)) ?? [],
81
+ pageScope: null,
82
+ layoutScopes: [],
83
+ }));
84
+
85
+ async function disposeScope(scope: ScopeLike | null | undefined, context: string): Promise<void> {
86
+ if (!scope || typeof scope.dispose !== 'function') return;
87
+ try {
88
+ await scope.dispose();
89
+ } catch (error) {
90
+ reportNavigationError(context, error);
91
+ }
92
+ }
93
+
55
94
  function getInitialEntry(): ViewManifestEntry {
56
95
  return initialEntry;
57
96
  }
58
97
 
59
98
  function getInitialController(): unknown {
60
- return initialController;
99
+ return initialControllerSet ? initialControllerSet.controller : initialController;
61
100
  }
62
101
 
63
102
  function getInitialLayoutControllers(): Array<unknown> {
64
- return initialLayoutControllers;
103
+ return initialControllerSet ? initialControllerSet.layoutControllers : (initialLayoutControllers ?? []);
65
104
  }
66
105
 
67
106
  let activeEntry = $state(getInitialEntry());
@@ -78,6 +117,13 @@
78
117
  let navigationTransitionQueue: Promise<void> = Promise.resolve();
79
118
  let destroyed = false;
80
119
 
120
+ // Scope ownership (null = owned by the page scope / legacy scope-less set)
121
+ let activePageScope: ScopeLike | null = initialControllerSet?.pageScope ?? null;
122
+ let activeLayoutScopes: Array<ScopeLike | null> = [...(initialControllerSet?.layoutScopes ?? [])];
123
+ // Outgoing page scopes kept alive because forced preservation carried one
124
+ // of their layout controllers forward; disposed when those layouts leave.
125
+ let retainedPageScopes: Array<{ scope: ScopeLike; keys: Set<string> }> = [];
126
+
81
127
  let activePage = $derived({
82
128
  key: activeEntry.key,
83
129
  windowName: activeEntry.windowName,
@@ -161,49 +207,14 @@
161
207
  );
162
208
  }
163
209
 
164
- function layoutIdentityMatches(
165
- left: ViewManifestEntry,
166
- right: ViewManifestEntry,
167
- index: number,
168
- ): boolean {
169
- return (
170
- left.layoutPaths[index] === right.layoutPaths[index] &&
171
- left.layoutControllers[index] === right.layoutControllers[index]
172
- );
173
- }
174
-
175
- function shouldPreserveLayout(
176
- from: ViewManifestEntry,
177
- to: ViewManifestEntry,
178
- index: number,
179
- options: NavigationOptions,
180
- ): boolean {
181
- if (options.preserveLayouts === false) {
182
- return false;
183
- }
184
- if (options.preserveLayouts === true) {
185
- return true;
186
- }
187
- return from.layoutPreserve?.[index] === true && to.layoutPreserve?.[index] === true;
188
- }
189
-
190
210
  function computePreservedLayoutDepth(
191
211
  from: ViewManifestEntry,
192
212
  to: ViewManifestEntry,
193
213
  options: NavigationOptions,
194
214
  ): number {
195
- const maxDepth = Math.min(from.layoutPaths.length, to.layoutPaths.length);
196
- let depth = 0;
197
- for (let index = 0; index < maxDepth; index += 1) {
198
- if (!layoutIdentityMatches(from, to, index)) {
199
- break;
200
- }
201
- if (!shouldPreserveLayout(from, to, index, options)) {
202
- break;
203
- }
204
- depth += 1;
205
- }
206
- return depth;
215
+ // The rule itself lives in navigation/layout_preservation so the Node
216
+ // application slice preserves exactly what this component preserves.
217
+ return computeSharedPreservedLayoutDepth(from, to, options);
207
218
  }
208
219
 
209
220
  async function disposeControllerSet(
@@ -250,16 +261,24 @@
250
261
  async function createTransitionControllers(
251
262
  entry: ViewManifestEntry,
252
263
  preservedDepth: number,
253
- ): Promise<{ controller: unknown; layoutControllers: Array<unknown> }> {
264
+ ): Promise<ControllerSet> {
265
+ if (createControllerSetFn) {
266
+ // The scope-aware factory owns its own failure cleanup (it disposes
267
+ // the scopes it created before rethrowing).
268
+ return createControllerSetFn(entry, preservedDepth);
269
+ }
270
+
254
271
  const [controllerResult, layoutControllersResult] = await Promise.allSettled([
255
- createViewControllerFn(entry),
256
- createLayoutControllersFn(entry, preservedDepth),
272
+ createViewControllerFn!(entry),
273
+ createLayoutControllersFn!(entry, preservedDepth),
257
274
  ]);
258
275
 
259
276
  if (controllerResult.status === 'fulfilled' && layoutControllersResult.status === 'fulfilled') {
260
277
  return {
261
278
  controller: controllerResult.value,
262
279
  layoutControllers: layoutControllersResult.value,
280
+ pageScope: null,
281
+ layoutScopes: [],
263
282
  };
264
283
  }
265
284
 
@@ -311,10 +330,15 @@
311
330
  const preservedLayoutKeys = activeLayoutKeys.slice(0, preservedDepth);
312
331
  const previousController = activeController;
313
332
  const previousLayoutControllers = [...activeLayoutControllers];
314
- const { controller, layoutControllers } = await createTransitionControllers(entry, preservedDepth);
333
+ const previousPageScope = activePageScope;
334
+ const previousLayoutScopes = [...activeLayoutScopes];
335
+ const nextSet = await createTransitionControllers(entry, preservedDepth);
336
+ const { controller, layoutControllers } = nextSet;
315
337
 
316
338
  if (destroyed) {
317
339
  await disposeStagedControllers(controller, layoutControllers);
340
+ for (const scope of nextSet.layoutScopes ?? []) await disposeScope(scope, 'staged layout scope disposal failed');
341
+ await disposeScope(nextSet.pageScope, 'staged page scope disposal failed');
318
342
  return;
319
343
  }
320
344
 
@@ -325,6 +349,15 @@
325
349
  );
326
350
  const nextLayoutKeys = createLayoutMountKeys(entry, nextPageKey, preservedLayoutKeys);
327
351
 
352
+ // Merge scope ownership the same way controllers merge: preserved prefix
353
+ // keeps its scopes, the created suffix brings the new set's scopes.
354
+ const nextLayoutScopes: Array<ScopeLike | null> = [];
355
+ for (let index = 0; index < entry.layoutPaths.length; index += 1) {
356
+ nextLayoutScopes[index] = index < preservedDepth
357
+ ? (previousLayoutScopes[index] ?? null)
358
+ : ((nextSet.layoutScopes ?? [])[index] ?? null);
359
+ }
360
+
328
361
  activeEntry = entry;
329
362
  activeController = controller;
330
363
  activeLayoutControllers = nextLayoutControllers;
@@ -332,8 +365,44 @@
332
365
  activeQuery = { ...navEntry.query };
333
366
  activePageKey = nextPageKey;
334
367
  activeLayoutKeys = nextLayoutKeys;
368
+ activePageScope = nextSet.pageScope ?? null;
369
+ activeLayoutScopes = nextLayoutScopes;
335
370
 
336
371
  await disposeControllerSet(previousController, previousLayoutControllers, preservedDepth);
372
+
373
+ // Scope lifecycle for the outgoing page:
374
+ // - dedicated layout scopes past the preserved prefix are done -> dispose;
375
+ // - the page scope is done UNLESS forced preservation carried one of its
376
+ // page-scope layout controllers forward -> retain it until they leave.
377
+ for (let index = preservedDepth; index < previousLayoutScopes.length; index += 1) {
378
+ await disposeScope(previousLayoutScopes[index], 'layout scope disposal failed');
379
+ }
380
+ const borrowedKeys = new Set<string>();
381
+ for (let index = 0; index < preservedDepth; index += 1) {
382
+ if (previousLayoutControllers[index] !== undefined && (previousLayoutScopes[index] ?? null) === null) {
383
+ borrowedKeys.add(preservedLayoutKeys[index]);
384
+ }
385
+ }
386
+ if (previousPageScope) {
387
+ if (borrowedKeys.size > 0) {
388
+ retainedPageScopes.push({ scope: previousPageScope, keys: borrowedKeys });
389
+ } else {
390
+ await disposeScope(previousPageScope, 'page scope disposal failed');
391
+ }
392
+ }
393
+
394
+ // Retained scopes whose borrowed layouts are no longer preserved are done.
395
+ const liveKeys = new Set(nextLayoutKeys);
396
+ const stillRetained: typeof retainedPageScopes = [];
397
+ for (const retained of retainedPageScopes) {
398
+ retained.keys = new Set([...retained.keys].filter((key) => liveKeys.has(key)));
399
+ if (retained.keys.size > 0) {
400
+ stillRetained.push(retained);
401
+ } else {
402
+ await disposeScope(retained.scope, 'retained page scope disposal failed');
403
+ }
404
+ }
405
+ retainedPageScopes = stillRetained;
337
406
  }
338
407
 
339
408
  function enqueueNavigationEntry(navEntry: NavigationEntry | null): void {
@@ -408,7 +477,15 @@
408
477
  unsubscribe();
409
478
  unsubscribeWindowNavigate?.();
410
479
  void navigationTransitionQueue
411
- .then(() => disposeActiveControllers())
480
+ .then(async () => {
481
+ await disposeActiveControllers();
482
+ for (const scope of activeLayoutScopes) await disposeScope(scope, 'teardown layout scope disposal failed');
483
+ await disposeScope(activePageScope, 'teardown page scope disposal failed');
484
+ for (const retained of retainedPageScopes) {
485
+ await disposeScope(retained.scope, 'teardown retained scope disposal failed');
486
+ }
487
+ retainedPageScopes = [];
488
+ })
412
489
  .catch((error: unknown) => {
413
490
  reportNavigationError('navigation teardown failed', error);
414
491
  });
@@ -1,32 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var chat_exports = {};
20
- __export(chat_exports, {
21
- default: () => ChatController
22
- });
23
- module.exports = __toCommonJS(chat_exports);
24
- class ChatController {
25
- async sendMessage({ req }) {
26
- return { reply: `Echo: ${req.body.message}`, conversationId: "test-conv" };
27
- }
28
- async listConversations() {
29
- return { conversations: [] };
30
- }
31
- }
32
- //# sourceMappingURL=chat.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/controller/__fixtures__/controllers/chat.ts"],"sourcesContent":["export default class ChatController {\n async sendMessage({ req }: any) {\n return { reply: `Echo: ${req.body.message}`, conversationId: 'test-conv' };\n }\n\n async listConversations() {\n return { conversations: [] };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAO,eAA6B;AAAA,EAClC,MAAM,YAAY,EAAE,IAAI,GAAQ;AAC9B,WAAO,EAAE,OAAO,SAAS,IAAI,KAAK,OAAO,IAAI,gBAAgB,YAAY;AAAA,EAC3E;AAAA,EAEA,MAAM,oBAAoB;AACxB,WAAO,EAAE,eAAe,CAAC,EAAE;AAAA,EAC7B;AACF;","names":[]}
@@ -1,11 +0,0 @@
1
- declare class ChatController {
2
- sendMessage({ req }: any): Promise<{
3
- reply: string;
4
- conversationId: string;
5
- }>;
6
- listConversations(): Promise<{
7
- conversations: never[];
8
- }>;
9
- }
10
-
11
- export { ChatController as default };
@@ -1,11 +0,0 @@
1
- declare class ChatController {
2
- sendMessage({ req }: any): Promise<{
3
- reply: string;
4
- conversationId: string;
5
- }>;
6
- listConversations(): Promise<{
7
- conversations: never[];
8
- }>;
9
- }
10
-
11
- export { ChatController as default };
@@ -1,12 +0,0 @@
1
- class ChatController {
2
- async sendMessage({ req }) {
3
- return { reply: `Echo: ${req.body.message}`, conversationId: "test-conv" };
4
- }
5
- async listConversations() {
6
- return { conversations: [] };
7
- }
8
- }
9
- export {
10
- ChatController as default
11
- };
12
- //# sourceMappingURL=chat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/controller/__fixtures__/controllers/chat.ts"],"sourcesContent":["export default class ChatController {\n async sendMessage({ req }: any) {\n return { reply: `Echo: ${req.body.message}`, conversationId: 'test-conv' };\n }\n\n async listConversations() {\n return { conversations: [] };\n }\n}\n"],"mappings":"AAAA,MAAO,eAA6B;AAAA,EAClC,MAAM,YAAY,EAAE,IAAI,GAAQ;AAC9B,WAAO,EAAE,OAAO,SAAS,IAAI,KAAK,OAAO,IAAI,gBAAgB,YAAY;AAAA,EAC3E;AAAA,EAEA,MAAM,oBAAoB;AACxB,WAAO,EAAE,eAAe,CAAC,EAAE;AAAA,EAC7B;AACF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/controller/__fixtures__/controllers/not_a_class.ts"],"sourcesContent":["export const value = 42;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,QAAQ;","names":[]}
@@ -1,3 +0,0 @@
1
- declare const value = 42;
2
-
3
- export { value };
@@ -1,3 +0,0 @@
1
- declare const value = 42;
2
-
3
- export { value };
@@ -1,5 +0,0 @@
1
- const value = 42;
2
- export {
3
- value
4
- };
5
- //# sourceMappingURL=not_a_class.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/controller/__fixtures__/controllers/not_a_class.ts"],"sourcesContent":["export const value = 42;\n"],"mappings":"AAAO,MAAM,QAAQ;","names":[]}
@@ -1,32 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var settings_controller_exports = {};
20
- __export(settings_controller_exports, {
21
- default: () => SettingsController
22
- });
23
- module.exports = __toCommonJS(settings_controller_exports);
24
- class SettingsController {
25
- async getPreferences() {
26
- return { preferences: { theme: "system" } };
27
- }
28
- async updatePreferences({ req }) {
29
- return { ok: true };
30
- }
31
- }
32
- //# sourceMappingURL=settings.controller.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/controller/__fixtures__/controllers/settings.controller.ts"],"sourcesContent":["export default class SettingsController {\n async getPreferences() {\n return { preferences: { theme: 'system' } };\n }\n\n async updatePreferences({ req }: any) {\n return { ok: true };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAO,mBAAiC;AAAA,EACtC,MAAM,iBAAiB;AACrB,WAAO,EAAE,aAAa,EAAE,OAAO,SAAS,EAAE;AAAA,EAC5C;AAAA,EAEA,MAAM,kBAAkB,EAAE,IAAI,GAAQ;AACpC,WAAO,EAAE,IAAI,KAAK;AAAA,EACpB;AACF;","names":[]}
@@ -1,12 +0,0 @@
1
- declare class SettingsController {
2
- getPreferences(): Promise<{
3
- preferences: {
4
- theme: string;
5
- };
6
- }>;
7
- updatePreferences({ req }: any): Promise<{
8
- ok: boolean;
9
- }>;
10
- }
11
-
12
- export { SettingsController as default };
@@ -1,12 +0,0 @@
1
- declare class SettingsController {
2
- getPreferences(): Promise<{
3
- preferences: {
4
- theme: string;
5
- };
6
- }>;
7
- updatePreferences({ req }: any): Promise<{
8
- ok: boolean;
9
- }>;
10
- }
11
-
12
- export { SettingsController as default };
@@ -1,12 +0,0 @@
1
- class SettingsController {
2
- async getPreferences() {
3
- return { preferences: { theme: "system" } };
4
- }
5
- async updatePreferences({ req }) {
6
- return { ok: true };
7
- }
8
- }
9
- export {
10
- SettingsController as default
11
- };
12
- //# sourceMappingURL=settings.controller.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/controller/__fixtures__/controllers/settings.controller.ts"],"sourcesContent":["export default class SettingsController {\n async getPreferences() {\n return { preferences: { theme: 'system' } };\n }\n\n async updatePreferences({ req }: any) {\n return { ok: true };\n }\n}\n"],"mappings":"AAAA,MAAO,mBAAiC;AAAA,EACtC,MAAM,iBAAiB;AACrB,WAAO,EAAE,aAAa,EAAE,OAAO,SAAS,EAAE;AAAA,EAC5C;AAAA,EAEA,MAAM,kBAAkB,EAAE,IAAI,GAAQ;AACpC,WAAO,EAAE,IAAI,KAAK;AAAA,EACpB;AACF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/controller/__fixtures__/controllers/test.ts"],"sourcesContent":["export default class TestController {\n async hello() {\n return { greeting: 'Hello from test controller' };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAO,eAA6B;AAAA,EAClC,MAAM,QAAQ;AACZ,WAAO,EAAE,UAAU,6BAA6B;AAAA,EAClD;AACF;","names":[]}
@@ -1,7 +0,0 @@
1
- declare class TestController {
2
- hello(): Promise<{
3
- greeting: string;
4
- }>;
5
- }
6
-
7
- export { TestController as default };
@@ -1,7 +0,0 @@
1
- declare class TestController {
2
- hello(): Promise<{
3
- greeting: string;
4
- }>;
5
- }
6
-
7
- export { TestController as default };
@@ -1,9 +0,0 @@
1
- class TestController {
2
- async hello() {
3
- return { greeting: "Hello from test controller" };
4
- }
5
- }
6
- export {
7
- TestController as default
8
- };
9
- //# sourceMappingURL=test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/controller/__fixtures__/controllers/test.ts"],"sourcesContent":["export default class TestController {\n async hello() {\n return { greeting: 'Hello from test controller' };\n }\n}\n"],"mappings":"AAAA,MAAO,eAA6B;AAAA,EAClC,MAAM,QAAQ;AACZ,WAAO,EAAE,UAAU,6BAA6B;AAAA,EAClD;AACF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/loader/__fixtures__/layouts/app.load.ts"],"sourcesContent":["export default async function load(request: any) {\n return { layoutData: 'app-layout' };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAAO,KAA4B,SAAc;AAC/C,SAAO,EAAE,YAAY,aAAa;AACpC;","names":[]}
@@ -1,5 +0,0 @@
1
- declare function load(request: any): Promise<{
2
- layoutData: string;
3
- }>;
4
-
5
- export { load as default };
@@ -1,5 +0,0 @@
1
- declare function load(request: any): Promise<{
2
- layoutData: string;
3
- }>;
4
-
5
- export { load as default };
@@ -1,7 +0,0 @@
1
- async function load(request) {
2
- return { layoutData: "app-layout" };
3
- }
4
- export {
5
- load as default
6
- };
7
- //# sourceMappingURL=app.load.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/loader/__fixtures__/layouts/app.load.ts"],"sourcesContent":["export default async function load(request: any) {\n return { layoutData: 'app-layout' };\n}\n"],"mappings":"AAAA,eAAO,KAA4B,SAAc;AAC/C,SAAO,EAAE,YAAY,aAAa;AACpC;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/loader/__fixtures__/views/test/page.load.ts"],"sourcesContent":["export default async function load(request: any) {\n return { testData: 'hello', url: request.url };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAAO,KAA4B,SAAc;AAC/C,SAAO,EAAE,UAAU,SAAS,KAAK,QAAQ,IAAI;AAC/C;","names":[]}
@@ -1,6 +0,0 @@
1
- declare function load(request: any): Promise<{
2
- testData: string;
3
- url: any;
4
- }>;
5
-
6
- export { load as default };
@@ -1,6 +0,0 @@
1
- declare function load(request: any): Promise<{
2
- testData: string;
3
- url: any;
4
- }>;
5
-
6
- export { load as default };
@@ -1,7 +0,0 @@
1
- async function load(request) {
2
- return { testData: "hello", url: request.url };
3
- }
4
- export {
5
- load as default
6
- };
7
- //# sourceMappingURL=page.load.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/loader/__fixtures__/views/test/page.load.ts"],"sourcesContent":["export default async function load(request: any) {\n return { testData: 'hello', url: request.url };\n}\n"],"mappings":"AAAA,eAAO,KAA4B,SAAc;AAC/C,SAAO,EAAE,UAAU,SAAS,KAAK,QAAQ,IAAI;AAC/C;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/middleware/__fixtures__/middleware/auth.ts"],"sourcesContent":["import type { WoodMiddlewareContext } from '../../../types/index.cjs';\n\nexport function is_admin(ctx: WoodMiddlewareContext): void {\n const session = ctx.getSession() as any;\n if (!session?.admin) {\n throw new Error('Unauthorized: admin required');\n }\n ctx.set('admin', session.admin);\n}\n\nexport function is_authenticated(ctx: WoodMiddlewareContext): void {\n const session = ctx.getSession() as any;\n if (!session?.user) {\n throw new Error('Unauthorized: authentication required');\n }\n ctx.set('user', session.user);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,SAAS,SAAS,KAAkC;AACzD,QAAM,UAAU,IAAI,WAAW;AAC/B,MAAI,CAAC,SAAS,OAAO;AACnB,UAAM,IAAI,MAAM,8BAA8B;AAAA,EAChD;AACA,MAAI,IAAI,SAAS,QAAQ,KAAK;AAChC;AAEO,SAAS,iBAAiB,KAAkC;AACjE,QAAM,UAAU,IAAI,WAAW;AAC/B,MAAI,CAAC,SAAS,MAAM;AAClB,UAAM,IAAI,MAAM,uCAAuC;AAAA,EACzD;AACA,MAAI,IAAI,QAAQ,QAAQ,IAAI;AAC9B;","names":[]}
@@ -1,6 +0,0 @@
1
- import { WoodMiddlewareContext } from '../../../types/context.cjs';
2
-
3
- declare function is_admin(ctx: WoodMiddlewareContext): void;
4
- declare function is_authenticated(ctx: WoodMiddlewareContext): void;
5
-
6
- export { is_admin, is_authenticated };
@@ -1,6 +0,0 @@
1
- import { WoodMiddlewareContext } from '../../../types/context.js';
2
-
3
- declare function is_admin(ctx: WoodMiddlewareContext): void;
4
- declare function is_authenticated(ctx: WoodMiddlewareContext): void;
5
-
6
- export { is_admin, is_authenticated };
@@ -1,19 +0,0 @@
1
- function is_admin(ctx) {
2
- const session = ctx.getSession();
3
- if (!session?.admin) {
4
- throw new Error("Unauthorized: admin required");
5
- }
6
- ctx.set("admin", session.admin);
7
- }
8
- function is_authenticated(ctx) {
9
- const session = ctx.getSession();
10
- if (!session?.user) {
11
- throw new Error("Unauthorized: authentication required");
12
- }
13
- ctx.set("user", session.user);
14
- }
15
- export {
16
- is_admin,
17
- is_authenticated
18
- };
19
- //# sourceMappingURL=auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/middleware/__fixtures__/middleware/auth.ts"],"sourcesContent":["import type { WoodMiddlewareContext } from '../../../types/index.js';\n\nexport function is_admin(ctx: WoodMiddlewareContext): void {\n const session = ctx.getSession() as any;\n if (!session?.admin) {\n throw new Error('Unauthorized: admin required');\n }\n ctx.set('admin', session.admin);\n}\n\nexport function is_authenticated(ctx: WoodMiddlewareContext): void {\n const session = ctx.getSession() as any;\n if (!session?.user) {\n throw new Error('Unauthorized: authentication required');\n }\n ctx.set('user', session.user);\n}\n"],"mappings":"AAEO,SAAS,SAAS,KAAkC;AACzD,QAAM,UAAU,IAAI,WAAW;AAC/B,MAAI,CAAC,SAAS,OAAO;AACnB,UAAM,IAAI,MAAM,8BAA8B;AAAA,EAChD;AACA,MAAI,IAAI,SAAS,QAAQ,KAAK;AAChC;AAEO,SAAS,iBAAiB,KAAkC;AACjE,QAAM,UAAU,IAAI,WAAW;AAC/B,MAAI,CAAC,SAAS,MAAM;AAClB,UAAM,IAAI,MAAM,uCAAuC;AAAA,EACzD;AACA,MAAI,IAAI,QAAQ,QAAQ,IAAI;AAC9B;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/middleware/__fixtures__/middleware/sequence.ts"],"sourcesContent":["import type { WoodMiddlewareContext } from '../../../types/index.cjs';\n\nexport function step1(ctx: WoodMiddlewareContext): void {\n const order = (ctx.get<string[]>('order') ?? []);\n order.push('step1');\n ctx.set('order', order);\n}\n\nexport function step2(ctx: WoodMiddlewareContext): void {\n const order = (ctx.get<string[]>('order') ?? []);\n order.push('step2');\n ctx.set('order', order);\n}\n\nexport function step3(ctx: WoodMiddlewareContext): void {\n const order = (ctx.get<string[]>('order') ?? []);\n order.push('step3');\n ctx.set('order', order);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,SAAS,MAAM,KAAkC;AACtD,QAAM,QAAS,IAAI,IAAc,OAAO,KAAK,CAAC;AAC9C,QAAM,KAAK,OAAO;AAClB,MAAI,IAAI,SAAS,KAAK;AACxB;AAEO,SAAS,MAAM,KAAkC;AACtD,QAAM,QAAS,IAAI,IAAc,OAAO,KAAK,CAAC;AAC9C,QAAM,KAAK,OAAO;AAClB,MAAI,IAAI,SAAS,KAAK;AACxB;AAEO,SAAS,MAAM,KAAkC;AACtD,QAAM,QAAS,IAAI,IAAc,OAAO,KAAK,CAAC;AAC9C,QAAM,KAAK,OAAO;AAClB,MAAI,IAAI,SAAS,KAAK;AACxB;","names":[]}
@@ -1,7 +0,0 @@
1
- import { WoodMiddlewareContext } from '../../../types/context.cjs';
2
-
3
- declare function step1(ctx: WoodMiddlewareContext): void;
4
- declare function step2(ctx: WoodMiddlewareContext): void;
5
- declare function step3(ctx: WoodMiddlewareContext): void;
6
-
7
- export { step1, step2, step3 };
@@ -1,7 +0,0 @@
1
- import { WoodMiddlewareContext } from '../../../types/context.js';
2
-
3
- declare function step1(ctx: WoodMiddlewareContext): void;
4
- declare function step2(ctx: WoodMiddlewareContext): void;
5
- declare function step3(ctx: WoodMiddlewareContext): void;
6
-
7
- export { step1, step2, step3 };