@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
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Owned-work registry for the frontend application slice (18A D-FAS-01).
3
+ *
4
+ * `act()` and `settle()` drain framework-owned finite work registered here
5
+ * through production seams (transport invokes, event deliveries, navigation
6
+ * transitions, tracked lifecycle tasks). The registry never patches global
7
+ * async primitives and never guesses at event-loop emptiness: work exists
8
+ * only because an owner registered it, and a drain is a fixed point —
9
+ * repeated passes until one complete pass creates no new owned work.
10
+ *
11
+ * Floating promises and bare timers are explicitly outside the guarantee;
12
+ * they are product lifecycle bugs, not framework blind spots to paper over.
13
+ */
14
+ type WorkKind = 'invoke' | 'event-delivery' | 'navigation' | 'initialize' | 'tracked' | (string & {});
15
+ interface WorkOptions {
16
+ /** Human-readable diagnostic label, e.g. `invoke messages.send`. */
17
+ label: string;
18
+ kind?: WorkKind;
19
+ /** Owning lifecycle identity, e.g. `page main.chat_dom` or `application`. */
20
+ owner?: string;
21
+ }
22
+ interface WorkDescriptor {
23
+ readonly id: number;
24
+ readonly label: string;
25
+ readonly kind: WorkKind;
26
+ readonly owner: string;
27
+ }
28
+ interface WorkFailure extends WorkDescriptor {
29
+ readonly error: unknown;
30
+ }
31
+ declare class FrontendWorkError extends Error {
32
+ readonly failures: readonly WorkFailure[];
33
+ constructor(message: string, failures?: readonly WorkFailure[]);
34
+ }
35
+ declare class WorkRegistry {
36
+ private nextId;
37
+ /** Total registrations ever — the fixed-point signal for draining. */
38
+ private registrations;
39
+ private readonly inFlight;
40
+ private readonly failures;
41
+ /** How many failures a completed drain has already reported. */
42
+ private reportedFailures;
43
+ private drainChain;
44
+ /**
45
+ * Register finite owned work. Returns a promise with the work's own
46
+ * settlement semantics — callers may await it directly; the registry
47
+ * additionally observes completion (success or failure) for draining.
48
+ */
49
+ track<T>(work: Promise<T> | (() => Promise<T>), options: WorkOptions): Promise<T>;
50
+ /** Descriptors of currently incomplete owned work. */
51
+ pending(): WorkDescriptor[];
52
+ /** Every owned-work failure observed so far (accumulates across drains). */
53
+ errors(): readonly WorkFailure[];
54
+ /**
55
+ * Fixed-point drain: await all pending owned work, run the adapter flush
56
+ * hooks, repeat until one full pass observes no pending work and causes
57
+ * no new registrations. Concurrent drains queue — each caller gets its
58
+ * own complete pass over whatever work exists when its turn arrives.
59
+ *
60
+ * Rejects with `FrontendWorkError` naming the owners when owned work
61
+ * failed since the previous drain, or when the pass bound is exceeded
62
+ * (repeating owned work), listing pending and repeating labels.
63
+ */
64
+ drain(flushHooks?: ReadonlyArray<() => void | Promise<void>>): Promise<void>;
65
+ private drainOnce;
66
+ private takeNewFailures;
67
+ private throwNewFailures;
68
+ }
69
+
70
+ export { FrontendWorkError, type WorkDescriptor, type WorkFailure, type WorkKind, type WorkOptions, WorkRegistry };
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Owned-work registry for the frontend application slice (18A D-FAS-01).
3
+ *
4
+ * `act()` and `settle()` drain framework-owned finite work registered here
5
+ * through production seams (transport invokes, event deliveries, navigation
6
+ * transitions, tracked lifecycle tasks). The registry never patches global
7
+ * async primitives and never guesses at event-loop emptiness: work exists
8
+ * only because an owner registered it, and a drain is a fixed point —
9
+ * repeated passes until one complete pass creates no new owned work.
10
+ *
11
+ * Floating promises and bare timers are explicitly outside the guarantee;
12
+ * they are product lifecycle bugs, not framework blind spots to paper over.
13
+ */
14
+ type WorkKind = 'invoke' | 'event-delivery' | 'navigation' | 'initialize' | 'tracked' | (string & {});
15
+ interface WorkOptions {
16
+ /** Human-readable diagnostic label, e.g. `invoke messages.send`. */
17
+ label: string;
18
+ kind?: WorkKind;
19
+ /** Owning lifecycle identity, e.g. `page main.chat_dom` or `application`. */
20
+ owner?: string;
21
+ }
22
+ interface WorkDescriptor {
23
+ readonly id: number;
24
+ readonly label: string;
25
+ readonly kind: WorkKind;
26
+ readonly owner: string;
27
+ }
28
+ interface WorkFailure extends WorkDescriptor {
29
+ readonly error: unknown;
30
+ }
31
+ declare class FrontendWorkError extends Error {
32
+ readonly failures: readonly WorkFailure[];
33
+ constructor(message: string, failures?: readonly WorkFailure[]);
34
+ }
35
+ declare class WorkRegistry {
36
+ private nextId;
37
+ /** Total registrations ever — the fixed-point signal for draining. */
38
+ private registrations;
39
+ private readonly inFlight;
40
+ private readonly failures;
41
+ /** How many failures a completed drain has already reported. */
42
+ private reportedFailures;
43
+ private drainChain;
44
+ /**
45
+ * Register finite owned work. Returns a promise with the work's own
46
+ * settlement semantics — callers may await it directly; the registry
47
+ * additionally observes completion (success or failure) for draining.
48
+ */
49
+ track<T>(work: Promise<T> | (() => Promise<T>), options: WorkOptions): Promise<T>;
50
+ /** Descriptors of currently incomplete owned work. */
51
+ pending(): WorkDescriptor[];
52
+ /** Every owned-work failure observed so far (accumulates across drains). */
53
+ errors(): readonly WorkFailure[];
54
+ /**
55
+ * Fixed-point drain: await all pending owned work, run the adapter flush
56
+ * hooks, repeat until one full pass observes no pending work and causes
57
+ * no new registrations. Concurrent drains queue — each caller gets its
58
+ * own complete pass over whatever work exists when its turn arrives.
59
+ *
60
+ * Rejects with `FrontendWorkError` naming the owners when owned work
61
+ * failed since the previous drain, or when the pass bound is exceeded
62
+ * (repeating owned work), listing pending and repeating labels.
63
+ */
64
+ drain(flushHooks?: ReadonlyArray<() => void | Promise<void>>): Promise<void>;
65
+ private drainOnce;
66
+ private takeNewFailures;
67
+ private throwNewFailures;
68
+ }
69
+
70
+ export { FrontendWorkError, type WorkDescriptor, type WorkFailure, type WorkKind, type WorkOptions, WorkRegistry };
@@ -0,0 +1,128 @@
1
+ const MAX_DRAIN_PASSES = 100;
2
+ class FrontendWorkError extends Error {
3
+ constructor(message, failures = []) {
4
+ super(message);
5
+ this.failures = failures;
6
+ this.name = "FrontendWorkError";
7
+ }
8
+ }
9
+ function describe(work) {
10
+ return `[${work.kind}] ${work.label} (owner: ${work.owner})`;
11
+ }
12
+ class WorkRegistry {
13
+ constructor() {
14
+ this.nextId = 1;
15
+ /** Total registrations ever — the fixed-point signal for draining. */
16
+ this.registrations = 0;
17
+ this.inFlight = /* @__PURE__ */ new Map();
18
+ this.failures = [];
19
+ /** How many failures a completed drain has already reported. */
20
+ this.reportedFailures = 0;
21
+ this.drainChain = Promise.resolve();
22
+ }
23
+ /**
24
+ * Register finite owned work. Returns a promise with the work's own
25
+ * settlement semantics — callers may await it directly; the registry
26
+ * additionally observes completion (success or failure) for draining.
27
+ */
28
+ track(work, options) {
29
+ const descriptor = {
30
+ id: this.nextId++,
31
+ label: options.label,
32
+ kind: options.kind ?? "tracked",
33
+ owner: options.owner ?? "application"
34
+ };
35
+ this.registrations += 1;
36
+ const promise = typeof work === "function" ? work() : work;
37
+ const observed = promise.then(
38
+ () => void 0,
39
+ (error) => {
40
+ this.failures.push({ ...descriptor, error });
41
+ }
42
+ ).finally(() => {
43
+ this.inFlight.delete(descriptor.id);
44
+ });
45
+ this.inFlight.set(descriptor.id, { descriptor, observed });
46
+ return promise;
47
+ }
48
+ /** Descriptors of currently incomplete owned work. */
49
+ pending() {
50
+ return [...this.inFlight.values()].map((entry) => entry.descriptor);
51
+ }
52
+ /** Every owned-work failure observed so far (accumulates across drains). */
53
+ errors() {
54
+ return [...this.failures];
55
+ }
56
+ /**
57
+ * Fixed-point drain: await all pending owned work, run the adapter flush
58
+ * hooks, repeat until one full pass observes no pending work and causes
59
+ * no new registrations. Concurrent drains queue — each caller gets its
60
+ * own complete pass over whatever work exists when its turn arrives.
61
+ *
62
+ * Rejects with `FrontendWorkError` naming the owners when owned work
63
+ * failed since the previous drain, or when the pass bound is exceeded
64
+ * (repeating owned work), listing pending and repeating labels.
65
+ */
66
+ drain(flushHooks = []) {
67
+ const run = this.drainChain.then(() => this.drainOnce(flushHooks));
68
+ this.drainChain = run.then(
69
+ () => void 0,
70
+ () => void 0
71
+ );
72
+ return run;
73
+ }
74
+ async drainOnce(flushHooks) {
75
+ const seenPerLabel = /* @__PURE__ */ new Map();
76
+ for (let pass = 1; pass <= MAX_DRAIN_PASSES; pass++) {
77
+ const registrationsBefore = this.registrations;
78
+ const snapshot = [...this.inFlight.values()];
79
+ for (const { descriptor } of snapshot) {
80
+ seenPerLabel.set(descriptor.label, (seenPerLabel.get(descriptor.label) ?? 0) + 1);
81
+ }
82
+ await Promise.all(snapshot.map((entry) => entry.observed));
83
+ for (const hook of flushHooks) {
84
+ await hook();
85
+ }
86
+ await Promise.resolve();
87
+ await Promise.resolve();
88
+ const stable = this.inFlight.size === 0 && this.registrations === registrationsBefore;
89
+ if (stable) {
90
+ this.throwNewFailures();
91
+ return;
92
+ }
93
+ }
94
+ const pendingLines = this.pending().map(describe);
95
+ const repeating = [...seenPerLabel.entries()].filter(([, count]) => count > 3).map(([label, count]) => `${label} (seen in ${count} passes)`);
96
+ throw new FrontendWorkError(
97
+ `settle did not converge within ${MAX_DRAIN_PASSES} drain passes.
98
+ ` + (pendingLines.length ? `Still pending:
99
+ ${pendingLines.join("\n ")}
100
+ ` : "") + (repeating.length ? `Repeating owned work:
101
+ ${repeating.join("\n ")}
102
+ ` : "") + "Owned work keeps creating more owned work \u2014 this names the owners; it is not a timeout.",
103
+ this.takeNewFailures()
104
+ );
105
+ }
106
+ takeNewFailures() {
107
+ const fresh = this.failures.slice(this.reportedFailures);
108
+ this.reportedFailures = this.failures.length;
109
+ return fresh;
110
+ }
111
+ throwNewFailures() {
112
+ const fresh = this.takeNewFailures();
113
+ if (!fresh.length) return;
114
+ const lines = fresh.map(
115
+ (failure) => `${describe(failure)}: ${failure.error instanceof Error ? failure.error.message : String(failure.error)}`
116
+ );
117
+ throw new FrontendWorkError(
118
+ `owned frontend work failed:
119
+ ${lines.join("\n ")}`,
120
+ fresh
121
+ );
122
+ }
123
+ }
124
+ export {
125
+ FrontendWorkError,
126
+ WorkRegistry
127
+ };
128
+ //# sourceMappingURL=work_registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/frontend/work_registry.ts"],"sourcesContent":["/**\n * Owned-work registry for the frontend application slice (18A D-FAS-01).\n *\n * `act()` and `settle()` drain framework-owned finite work registered here\n * through production seams (transport invokes, event deliveries, navigation\n * transitions, tracked lifecycle tasks). The registry never patches global\n * async primitives and never guesses at event-loop emptiness: work exists\n * only because an owner registered it, and a drain is a fixed point —\n * repeated passes until one complete pass creates no new owned work.\n *\n * Floating promises and bare timers are explicitly outside the guarantee;\n * they are product lifecycle bugs, not framework blind spots to paper over.\n */\n\nexport type WorkKind =\n | 'invoke'\n | 'event-delivery'\n | 'navigation'\n | 'initialize'\n | 'tracked'\n | (string & {});\n\nexport interface WorkOptions {\n /** Human-readable diagnostic label, e.g. `invoke messages.send`. */\n label: string;\n kind?: WorkKind;\n /** Owning lifecycle identity, e.g. `page main.chat_dom` or `application`. */\n owner?: string;\n}\n\nexport interface WorkDescriptor {\n readonly id: number;\n readonly label: string;\n readonly kind: WorkKind;\n readonly owner: string;\n}\n\nexport interface WorkFailure extends WorkDescriptor {\n readonly error: unknown;\n}\n\n/** Safety bound on drain passes — a diagnostic limit, not the readiness mechanism. */\nconst MAX_DRAIN_PASSES = 100;\n\nexport class FrontendWorkError extends Error {\n constructor(message: string, readonly failures: readonly WorkFailure[] = []) {\n super(message);\n this.name = 'FrontendWorkError';\n }\n}\n\nfunction describe(work: WorkDescriptor): string {\n return `[${work.kind}] ${work.label} (owner: ${work.owner})`;\n}\n\nexport class WorkRegistry {\n private nextId = 1;\n /** Total registrations ever — the fixed-point signal for draining. */\n private registrations = 0;\n private readonly inFlight = new Map<number, { descriptor: WorkDescriptor; observed: Promise<void> }>();\n private readonly failures: WorkFailure[] = [];\n /** How many failures a completed drain has already reported. */\n private reportedFailures = 0;\n private drainChain: Promise<void> = Promise.resolve();\n\n /**\n * Register finite owned work. Returns a promise with the work's own\n * settlement semantics — callers may await it directly; the registry\n * additionally observes completion (success or failure) for draining.\n */\n track<T>(work: Promise<T> | (() => Promise<T>), options: WorkOptions): Promise<T> {\n const descriptor: WorkDescriptor = {\n id: this.nextId++,\n label: options.label,\n kind: options.kind ?? 'tracked',\n owner: options.owner ?? 'application',\n };\n\n this.registrations += 1;\n const promise = typeof work === 'function' ? work() : work;\n\n // Observe settlement without altering the caller's promise semantics.\n const observed = promise.then(\n () => undefined,\n (error) => {\n this.failures.push({ ...descriptor, error });\n },\n ).finally(() => {\n this.inFlight.delete(descriptor.id);\n });\n\n this.inFlight.set(descriptor.id, { descriptor, observed });\n return promise;\n }\n\n /** Descriptors of currently incomplete owned work. */\n pending(): WorkDescriptor[] {\n return [...this.inFlight.values()].map((entry) => entry.descriptor);\n }\n\n /** Every owned-work failure observed so far (accumulates across drains). */\n errors(): readonly WorkFailure[] {\n return [...this.failures];\n }\n\n /**\n * Fixed-point drain: await all pending owned work, run the adapter flush\n * hooks, repeat until one full pass observes no pending work and causes\n * no new registrations. Concurrent drains queue — each caller gets its\n * own complete pass over whatever work exists when its turn arrives.\n *\n * Rejects with `FrontendWorkError` naming the owners when owned work\n * failed since the previous drain, or when the pass bound is exceeded\n * (repeating owned work), listing pending and repeating labels.\n */\n drain(flushHooks: ReadonlyArray<() => void | Promise<void>> = []): Promise<void> {\n const run = this.drainChain.then(() => this.drainOnce(flushHooks));\n // Keep the chain alive regardless of this drain's outcome.\n this.drainChain = run.then(\n () => undefined,\n () => undefined,\n );\n return run;\n }\n\n private async drainOnce(flushHooks: ReadonlyArray<() => void | Promise<void>>): Promise<void> {\n const seenPerLabel = new Map<string, number>();\n\n for (let pass = 1; pass <= MAX_DRAIN_PASSES; pass++) {\n const registrationsBefore = this.registrations;\n const snapshot = [...this.inFlight.values()];\n\n for (const { descriptor } of snapshot) {\n seenPerLabel.set(descriptor.label, (seenPerLabel.get(descriptor.label) ?? 0) + 1);\n }\n\n // Observed promises never reject (failures are recorded by track());\n // awaiting them cannot abort the pass mid-way.\n await Promise.all(snapshot.map((entry) => entry.observed));\n\n for (const hook of flushHooks) {\n await hook();\n }\n\n // Give completion continuations a microtask to register follow-on\n // owned work before the fixed point is tested.\n await Promise.resolve();\n await Promise.resolve();\n\n const stable = this.inFlight.size === 0 && this.registrations === registrationsBefore;\n if (stable) {\n this.throwNewFailures();\n return;\n }\n }\n\n const pendingLines = this.pending().map(describe);\n const repeating = [...seenPerLabel.entries()]\n .filter(([, count]) => count > 3)\n .map(([label, count]) => `${label} (seen in ${count} passes)`);\n\n throw new FrontendWorkError(\n `settle did not converge within ${MAX_DRAIN_PASSES} drain passes.\\n` +\n (pendingLines.length ? `Still pending:\\n ${pendingLines.join('\\n ')}\\n` : '') +\n (repeating.length ? `Repeating owned work:\\n ${repeating.join('\\n ')}\\n` : '') +\n 'Owned work keeps creating more owned work — this names the owners; it is not a timeout.',\n this.takeNewFailures(),\n );\n }\n\n private takeNewFailures(): WorkFailure[] {\n const fresh = this.failures.slice(this.reportedFailures);\n this.reportedFailures = this.failures.length;\n return fresh;\n }\n\n private throwNewFailures(): void {\n const fresh = this.takeNewFailures();\n if (!fresh.length) return;\n const lines = fresh.map(\n (failure) =>\n `${describe(failure)}: ${failure.error instanceof Error ? failure.error.message : String(failure.error)}`,\n );\n throw new FrontendWorkError(\n `owned frontend work failed:\\n ${lines.join('\\n ')}`,\n fresh,\n );\n }\n}\n"],"mappings":"AA0CA,MAAM,mBAAmB;AAElB,MAAM,0BAA0B,MAAM;AAAA,EAC3C,YAAY,SAA0B,WAAmC,CAAC,GAAG;AAC3E,UAAM,OAAO;AADuB;AAEpC,SAAK,OAAO;AAAA,EACd;AACF;AAEA,SAAS,SAAS,MAA8B;AAC9C,SAAO,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,YAAY,KAAK,KAAK;AAC3D;AAEO,MAAM,aAAa;AAAA,EAAnB;AACL,SAAQ,SAAS;AAEjB;AAAA,SAAQ,gBAAgB;AACxB,SAAiB,WAAW,oBAAI,IAAqE;AACrG,SAAiB,WAA0B,CAAC;AAE5C;AAAA,SAAQ,mBAAmB;AAC3B,SAAQ,aAA4B,QAAQ,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOpD,MAAS,MAAuC,SAAkC;AAChF,UAAM,aAA6B;AAAA,MACjC,IAAI,KAAK;AAAA,MACT,OAAO,QAAQ;AAAA,MACf,MAAM,QAAQ,QAAQ;AAAA,MACtB,OAAO,QAAQ,SAAS;AAAA,IAC1B;AAEA,SAAK,iBAAiB;AACtB,UAAM,UAAU,OAAO,SAAS,aAAa,KAAK,IAAI;AAGtD,UAAM,WAAW,QAAQ;AAAA,MACvB,MAAM;AAAA,MACN,CAAC,UAAU;AACT,aAAK,SAAS,KAAK,EAAE,GAAG,YAAY,MAAM,CAAC;AAAA,MAC7C;AAAA,IACF,EAAE,QAAQ,MAAM;AACd,WAAK,SAAS,OAAO,WAAW,EAAE;AAAA,IACpC,CAAC;AAED,SAAK,SAAS,IAAI,WAAW,IAAI,EAAE,YAAY,SAAS,CAAC;AACzD,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,UAA4B;AAC1B,WAAO,CAAC,GAAG,KAAK,SAAS,OAAO,CAAC,EAAE,IAAI,CAAC,UAAU,MAAM,UAAU;AAAA,EACpE;AAAA;AAAA,EAGA,SAAiC;AAC/B,WAAO,CAAC,GAAG,KAAK,QAAQ;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAM,aAAwD,CAAC,GAAkB;AAC/E,UAAM,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,UAAU,UAAU,CAAC;AAEjE,SAAK,aAAa,IAAI;AAAA,MACpB,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAc,UAAU,YAAsE;AAC5F,UAAM,eAAe,oBAAI,IAAoB;AAE7C,aAAS,OAAO,GAAG,QAAQ,kBAAkB,QAAQ;AACnD,YAAM,sBAAsB,KAAK;AACjC,YAAM,WAAW,CAAC,GAAG,KAAK,SAAS,OAAO,CAAC;AAE3C,iBAAW,EAAE,WAAW,KAAK,UAAU;AACrC,qBAAa,IAAI,WAAW,QAAQ,aAAa,IAAI,WAAW,KAAK,KAAK,KAAK,CAAC;AAAA,MAClF;AAIA,YAAM,QAAQ,IAAI,SAAS,IAAI,CAAC,UAAU,MAAM,QAAQ,CAAC;AAEzD,iBAAW,QAAQ,YAAY;AAC7B,cAAM,KAAK;AAAA,MACb;AAIA,YAAM,QAAQ,QAAQ;AACtB,YAAM,QAAQ,QAAQ;AAEtB,YAAM,SAAS,KAAK,SAAS,SAAS,KAAK,KAAK,kBAAkB;AAClE,UAAI,QAAQ;AACV,aAAK,iBAAiB;AACtB;AAAA,MACF;AAAA,IACF;AAEA,UAAM,eAAe,KAAK,QAAQ,EAAE,IAAI,QAAQ;AAChD,UAAM,YAAY,CAAC,GAAG,aAAa,QAAQ,CAAC,EACzC,OAAO,CAAC,CAAC,EAAE,KAAK,MAAM,QAAQ,CAAC,EAC/B,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,GAAG,KAAK,aAAa,KAAK,UAAU;AAE/D,UAAM,IAAI;AAAA,MACR,kCAAkC,gBAAgB;AAAA,KACjD,aAAa,SAAS;AAAA,IAAqB,aAAa,KAAK,MAAM,CAAC;AAAA,IAAO,OAC3E,UAAU,SAAS;AAAA,IAA4B,UAAU,KAAK,MAAM,CAAC;AAAA,IAAO,MAC7E;AAAA,MACA,KAAK,gBAAgB;AAAA,IACvB;AAAA,EACF;AAAA,EAEQ,kBAAiC;AACvC,UAAM,QAAQ,KAAK,SAAS,MAAM,KAAK,gBAAgB;AACvD,SAAK,mBAAmB,KAAK,SAAS;AACtC,WAAO;AAAA,EACT;AAAA,EAEQ,mBAAyB;AAC/B,UAAM,QAAQ,KAAK,gBAAgB;AACnC,QAAI,CAAC,MAAM,OAAQ;AACnB,UAAM,QAAQ,MAAM;AAAA,MAClB,CAAC,YACC,GAAG,SAAS,OAAO,CAAC,KAAK,QAAQ,iBAAiB,QAAQ,QAAQ,MAAM,UAAU,OAAO,QAAQ,KAAK,CAAC;AAAA,IAC3G;AACA,UAAM,IAAI;AAAA,MACR;AAAA,IAAkC,MAAM,KAAK,MAAM,CAAC;AAAA,MACpD;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
package/dist/index.cjs CHANGED
@@ -28,6 +28,7 @@ __export(index_exports, {
28
28
  MainTracer: () => import_tracing.MainTracer,
29
29
  MiddlewareResolver: () => import_middleware.MiddlewareResolver,
30
30
  Navigation: () => import_navigation.Navigation,
31
+ RENDERER_TRACE_BATCHING_DEFAULTS: () => import_config.RENDERER_TRACE_BATCHING_DEFAULTS,
31
32
  RendererTracer: () => import_tracing.RendererTracer,
32
33
  SchemaValidator: () => import_validation.SchemaValidator,
33
34
  TestTracer: () => import_tracing.TestTracer,
@@ -40,13 +41,16 @@ __export(index_exports, {
40
41
  WindowStateStore: () => import_window.WindowStateStore,
41
42
  WoodAuthError: () => import_types.WoodAuthError,
42
43
  WoodRouter: () => import_router.WoodRouter,
44
+ WoodTraceBatchContract: () => import_tracing.WoodTraceBatchContract,
43
45
  WoodValidationError: () => import_types.WoodValidationError,
44
46
  buildControllerArgs: () => import_controller.buildControllerArgs,
45
47
  buildMiddlewareContext: () => import_middleware.buildMiddlewareContext,
48
+ buildOperationContext: () => import_controller.buildOperationContext,
46
49
  clearApplicationRootForTests: () => import_runtime.clearApplicationRootForTests,
47
50
  clearContainerRegistryForTests: () => import_runtime.clearContainerRegistryForTests,
48
51
  clearRendererTraceBatchReceiverForTests: () => import_runtime.clearRendererTraceBatchReceiverForTests,
49
52
  clearTraceHubForTests: () => import_tracing.clearTraceHubForTests,
53
+ createWoodRoot: () => import_runtime.createWoodRoot,
50
54
  disposeControllerLifecycle: () => import_controller.disposeControllerLifecycle,
51
55
  executeMiddleware: () => import_middleware.executeMiddleware,
52
56
  generateChannelMap: () => import_codegen3.generateChannelMap,
@@ -64,18 +68,24 @@ __export(index_exports, {
64
68
  getNavigation: () => import_navigation.getNavigation,
65
69
  getRendererTraceBatchReceiver: () => import_runtime.getRendererTraceBatchReceiver,
66
70
  getTraceEvents$: () => import_tracing.getTraceEvents$,
71
+ getTraceProducerId: () => import_tracing.getTraceProducerId,
67
72
  go: () => import_navigation.go,
68
73
  goback: () => import_navigation.goback,
69
74
  goto: () => import_navigation.goto,
75
+ ingestRemoteTraceEvent: () => import_tracing.ingestRemoteTraceEvent,
70
76
  parseConfig: () => import_config.parseConfig,
71
77
  parseOperations: () => import_parser.parseOperations,
78
+ parseOperationsDocument: () => import_parser.parseOperationsDocument,
72
79
  parseOperationsFile: () => import_parser.parseOperationsFile,
73
80
  parseViews: () => import_parser2.parseViews,
74
81
  parseViewsFile: () => import_parser2.parseViewsFile,
82
+ publishMainTrace: () => import_tracing.publishMainTrace,
83
+ publishTestTrace: () => import_tracing.publishTestTrace,
75
84
  pushEvent: () => import_bridge.pushEvent,
76
85
  readWoodDevMetadata: () => import_dev_metadata.readWoodDevMetadata,
77
86
  registerTraceSink: () => import_tracing.registerTraceSink,
78
87
  removeWoodDevMetadata: () => import_dev_metadata.removeWoodDevMetadata,
88
+ resolveRendererTraceBatching: () => import_config.resolveRendererTraceBatching,
79
89
  resolveWoodDevDirectory: () => import_dev_metadata.resolveWoodDevDirectory,
80
90
  resolveWoodDevMetadataPath: () => import_dev_metadata.resolveWoodDevMetadataPath,
81
91
  resolveWoodRemoteDebuggingPort: () => import_dev_metadata.resolveWoodRemoteDebuggingPort,
@@ -85,6 +95,8 @@ __export(index_exports, {
85
95
  setRendererTraceEnabled: () => import_tracing.setRendererTraceEnabled,
86
96
  setRendererTraceTransport: () => import_tracing.setRendererTraceTransport,
87
97
  startBackendLoop: () => import_bridge.startBackendLoop,
98
+ usesOperationContext: () => import_controller.usesOperationContext,
99
+ woodBatchToTraceBatch: () => import_tracing.woodBatchToTraceBatch,
88
100
  writeWoodDevMetadata: () => import_dev_metadata.writeWoodDevMetadata
89
101
  });
90
102
  module.exports = __toCommonJS(index_exports);
@@ -125,6 +137,7 @@ var import_tracing = require("./tracing/index.js");
125
137
  MainTracer,
126
138
  MiddlewareResolver,
127
139
  Navigation,
140
+ RENDERER_TRACE_BATCHING_DEFAULTS,
128
141
  RendererTracer,
129
142
  SchemaValidator,
130
143
  TestTracer,
@@ -137,13 +150,16 @@ var import_tracing = require("./tracing/index.js");
137
150
  WindowStateStore,
138
151
  WoodAuthError,
139
152
  WoodRouter,
153
+ WoodTraceBatchContract,
140
154
  WoodValidationError,
141
155
  buildControllerArgs,
142
156
  buildMiddlewareContext,
157
+ buildOperationContext,
143
158
  clearApplicationRootForTests,
144
159
  clearContainerRegistryForTests,
145
160
  clearRendererTraceBatchReceiverForTests,
146
161
  clearTraceHubForTests,
162
+ createWoodRoot,
147
163
  disposeControllerLifecycle,
148
164
  executeMiddleware,
149
165
  generateChannelMap,
@@ -161,18 +177,24 @@ var import_tracing = require("./tracing/index.js");
161
177
  getNavigation,
162
178
  getRendererTraceBatchReceiver,
163
179
  getTraceEvents$,
180
+ getTraceProducerId,
164
181
  go,
165
182
  goback,
166
183
  goto,
184
+ ingestRemoteTraceEvent,
167
185
  parseConfig,
168
186
  parseOperations,
187
+ parseOperationsDocument,
169
188
  parseOperationsFile,
170
189
  parseViews,
171
190
  parseViewsFile,
191
+ publishMainTrace,
192
+ publishTestTrace,
172
193
  pushEvent,
173
194
  readWoodDevMetadata,
174
195
  registerTraceSink,
175
196
  removeWoodDevMetadata,
197
+ resolveRendererTraceBatching,
176
198
  resolveWoodDevDirectory,
177
199
  resolveWoodDevMetadataPath,
178
200
  resolveWoodRemoteDebuggingPort,
@@ -182,6 +204,8 @@ var import_tracing = require("./tracing/index.js");
182
204
  setRendererTraceEnabled,
183
205
  setRendererTraceTransport,
184
206
  startBackendLoop,
207
+ usesOperationContext,
208
+ woodBatchToTraceBatch,
185
209
  writeWoodDevMetadata
186
210
  });
187
211
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// @noego/wood — Declarative Electron desktop apps using the noego ecosystem\n\n// Types\nexport type {\n WoodConfig,\n WindowDef,\n DevConfig,\n ElectronBuilderConfig,\n OperationDef,\n RawOperationsDocument,\n RawModuleDef,\n RawOperationEntry,\n RawModuleOperationEntry,\n ViewDef,\n RawViewsDocument,\n RawViewEntry,\n ParameterDef,\n IpcContext,\n WoodMiddlewareContext,\n WoodMiddlewareFn,\n RequestData,\n ControllerArgs,\n LoaderResult,\n BridgeMessage,\n BridgeRequest,\n BridgeResponse,\n BridgeReady,\n BridgePush,\n BridgeElectronApi,\n SerializedError,\n ContextMenuContext,\n ContextMenuItem,\n ContextMenuEvent,\n} from './types';\n\n// Errors\nexport { WoodAuthError, WoodValidationError, BackendRestartingError } from './types/index.cjs';\n\n// Config\nexport { parseConfig } from './config/index.cjs';\n\n// Parsers\nexport { parseOperations, parseOperationsFile } from './parser/index.cjs';\nexport { parseViews, parseViewsFile } from './parser/index.cjs';\n\n// Router\nexport { WoodRouter } from './router/index.cjs';\n\n// Validation\nexport { SchemaValidator } from './validation/index.cjs';\n\n// Middleware\nexport { MiddlewareResolver, buildMiddlewareContext, executeMiddleware } from './middleware/index.cjs';\n\n// Controller\nexport { ControllerResolver, buildControllerArgs, disposeControllerLifecycle } from './controller/index.cjs';\nexport type { ControllerLifecycle } from './controller/index.cjs';\n\n// Codegen\nexport { generatePreload } from './codegen/index.cjs';\nexport { generateTypes } from './codegen/index.cjs';\nexport { generateChannelMap } from './codegen/index.cjs';\nexport { generateTestMock } from './codegen/index.cjs';\nexport { generateControllerRegistration } from './codegen/index.cjs';\nexport type { ControllerRegistrationOptions } from './codegen/index.cjs';\nexport { generateRuntime } from './codegen/index.cjs';\nexport type { RuntimeGeneratorOptions } from './codegen/index.cjs';\nexport { generateRendererViewManifest } from './codegen/index.cjs';\nexport type { RendererViewManifestGeneratorOptions } from './codegen/index.cjs';\nexport { generateRendererControllerRegistration } from './codegen/index.cjs';\nexport type { RendererControllerRegistrationOptions } from './codegen/index.cjs';\nexport { generateRendererApp } from './codegen/index.cjs';\nexport type { RendererAppGeneratorOptions } from './codegen/index.cjs';\n\n// Window\nexport { WindowManager, WindowStateStore } from './window/index.cjs';\nexport type { ScreenLike, WindowBounds } from './window/index.cjs';\n\n// Loader\nexport { LoaderRunner } from './loader/index.cjs';\n\n// Bridge\nexport { BackendBridge, startBackendLoop, pushEvent } from './bridge/index.cjs';\n\n// Dev metadata (lightweight; safe at runtime)\n// Heavy dev tooling (WoodDevServer, BackendWatcher, YamlWatcher,\n// EsbuildBackend) is available via the '@noego/wood/dev' subpath only,\n// so production consumers never load esbuild/chokidar.\nexport {\n DEFAULT_WOOD_REMOTE_DEBUGGING_PORT,\n WOOD_DEV_DIRECTORY,\n WOOD_DEV_METADATA_BASENAME,\n resolveWoodRemoteDebuggingPort,\n resolveWoodDevDirectory,\n resolveWoodDevMetadataPath,\n writeWoodDevMetadata,\n readWoodDevMetadata,\n removeWoodDevMetadata,\n} from './dev/dev_metadata.js';\nexport type { WoodDevMetadata } from './dev/dev_metadata.js';\n\n// Runtime\nexport {\n getContainer,\n clearContainerRegistryForTests,\n getApplicationRoot,\n setApplicationRoot,\n clearApplicationRootForTests,\n clearRendererTraceBatchReceiverForTests,\n getRendererTraceBatchReceiver,\n runtime,\n setRendererTraceBatchReceiver,\n} from './runtime/index.js';\nexport type {\n GetContainerOptions,\n RuntimeOptions,\n RuntimeResult,\n RegisterRuntimeRouter,\n} from './runtime';\n\n// Navigation\nexport { Navigation, getNavigation, go, goto, goback } from './navigation/index.cjs';\nexport type { NavigationEntry, NavigationOptions } from './navigation/index.cjs';\n\n// Isomorphic IPC API\nexport { Ipc, getIpc } from './ipc/index.cjs';\nexport type { IpcPushOptions } from './ipc/index.cjs';\n\n// Tracing\nexport {\n FrameworkTracer,\n MainTracer,\n RendererTracer,\n TestTracer,\n TraceProvider,\n TraceProviderConfiguration,\n TraceCommitWriter,\n clearTraceHubForTests,\n getTraceEvents$,\n registerTraceSink,\n setRendererTraceEnabled,\n setRendererTraceTransport,\n} from './tracing/index.js';\nexport type {\n TraceCommitRow,\n TraceCommitWriterOptions,\n TraceFlushOptions,\n TraceFlushResult,\n WoodTracePersistencePort,\n TraceDispatchResult,\n TraceEvent,\n TraceInput,\n TraceLevel,\n TraceProcess,\n TraceProviderMode,\n TraceRuntimeContext,\n TraceRuntime,\n TraceWaitOptions,\n WoodRendererTraceEvent,\n WoodRendererTraceInput,\n WoodTraceBatch,\n WoodTraceBatchAcknowledgement,\n WoodTraceBatchReceiver,\n WoodTraceBatchRuntimeContext,\n WoodTraceEventSink,\n WoodTraceEventSnapshot,\n WoodTraceSinkDisposer,\n} from './tracing/index.js';\n\n// Testing — available via '@noego/wood/testing' subpath export.\n// Not re-exported here to avoid pulling vitest into production builds.\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoCA,mBAA2E;AAG3E,oBAA4B;AAG5B,oBAAqD;AACrD,IAAAA,iBAA2C;AAG3C,oBAA2B;AAG3B,wBAAgC;AAGhC,wBAA8E;AAG9E,wBAAoF;AAIpF,qBAAgC;AAChC,IAAAC,kBAA8B;AAC9B,IAAAA,kBAAmC;AACnC,IAAAA,kBAAiC;AACjC,IAAAA,kBAA+C;AAE/C,IAAAA,kBAAgC;AAEhC,IAAAA,kBAA6C;AAE7C,IAAAA,kBAAuD;AAEvD,IAAAA,kBAAoC;AAIpC,oBAAgD;AAIhD,oBAA6B;AAG7B,oBAA2D;AAM3D,0BAUO;AAIP,qBAUO;AASP,wBAA4D;AAI5D,iBAA4B;AAI5B,qBAaO;","names":["import_parser","import_codegen"]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// @noego/wood — Declarative Electron desktop apps using the noego ecosystem\n\n// Types\nexport type {\n WoodConfig,\n WindowDef,\n DevConfig,\n ElectronBuilderConfig,\n OperationDef,\n RawOperationsDocument,\n RawModuleDef,\n RawOperationEntry,\n RawModuleOperationEntry,\n ViewDef,\n RawViewsDocument,\n RawViewEntry,\n ParameterDef,\n IpcContext,\n WoodMiddlewareContext,\n WoodMiddlewareFn,\n RequestData,\n ControllerArgs,\n LoaderResult,\n BridgeMessage,\n BridgeRequest,\n BridgeResponse,\n BridgeReady,\n BridgePush,\n BridgeElectronApi,\n SerializedError,\n ContextMenuContext,\n ContextMenuItem,\n ContextMenuEvent,\n} from './types/index.cjs';\n\n// Errors\nexport { WoodAuthError, WoodValidationError, BackendRestartingError } from './types/index.cjs';\n\n// Config\nexport {\n parseConfig,\n resolveRendererTraceBatching,\n RENDERER_TRACE_BATCHING_DEFAULTS,\n} from './config/index.cjs';\nexport type { ObservabilityConfig, RendererTraceBatchingConfig } from './config/index.cjs';\n\n// Parsers\nexport { parseOperations, parseOperationsDocument, parseOperationsFile } from './parser/index.cjs';\nexport { parseViews, parseViewsFile } from './parser/index.cjs';\n\n// Router\nexport { WoodRouter } from './router/index.cjs';\n\n// Validation\nexport { SchemaValidator } from './validation/index.cjs';\n\n// Middleware\nexport { MiddlewareResolver, buildMiddlewareContext, executeMiddleware } from './middleware/index.cjs';\n\n// Controller\nexport { ControllerResolver, buildControllerArgs, buildOperationContext, usesOperationContext, disposeControllerLifecycle } from './controller/index.cjs';\nexport type { ControllerLifecycle } from './controller/index.cjs';\n\n// Codegen\nexport { generatePreload } from './codegen/index.cjs';\nexport { generateTypes } from './codegen/index.cjs';\nexport { generateChannelMap } from './codegen/index.cjs';\nexport { generateTestMock } from './codegen/index.cjs';\nexport { generateControllerRegistration } from './codegen/index.cjs';\nexport type { ControllerRegistrationOptions } from './codegen/index.cjs';\nexport { generateRuntime } from './codegen/index.cjs';\nexport type { RuntimeGeneratorOptions } from './codegen/index.cjs';\nexport { generateRendererViewManifest } from './codegen/index.cjs';\nexport type { RendererViewManifestGeneratorOptions } from './codegen/index.cjs';\nexport { generateRendererControllerRegistration } from './codegen/index.cjs';\nexport type { RendererControllerRegistrationOptions } from './codegen/index.cjs';\nexport { generateRendererApp } from './codegen/index.cjs';\nexport type { RendererAppGeneratorOptions } from './codegen/index.cjs';\n\n// Window\nexport { WindowManager, WindowStateStore } from './window/index.cjs';\nexport type { ScreenLike, WindowBounds } from './window/index.cjs';\n\n// Loader\nexport { LoaderRunner } from './loader/index.cjs';\n\n// Bridge\nexport { BackendBridge, startBackendLoop, pushEvent } from './bridge/index.cjs';\n\n// Dev metadata (lightweight; safe at runtime)\n// Heavy dev tooling (WoodDevServer, BackendWatcher, YamlWatcher,\n// EsbuildBackend) is available via the '@noego/wood/dev' subpath only,\n// so production consumers never load esbuild/chokidar.\nexport {\n DEFAULT_WOOD_REMOTE_DEBUGGING_PORT,\n WOOD_DEV_DIRECTORY,\n WOOD_DEV_METADATA_BASENAME,\n resolveWoodRemoteDebuggingPort,\n resolveWoodDevDirectory,\n resolveWoodDevMetadataPath,\n writeWoodDevMetadata,\n readWoodDevMetadata,\n removeWoodDevMetadata,\n} from './dev/dev_metadata.js';\nexport type { WoodDevMetadata } from './dev/dev_metadata.js';\n\n// Runtime\nexport {\n createWoodRoot,\n getContainer,\n clearContainerRegistryForTests,\n getApplicationRoot,\n setApplicationRoot,\n clearApplicationRootForTests,\n clearRendererTraceBatchReceiverForTests,\n getRendererTraceBatchReceiver,\n runtime,\n setRendererTraceBatchReceiver,\n} from './runtime/index.js';\nexport type {\n GetContainerOptions,\n RuntimeOptions,\n RuntimeResult,\n RegisterRuntimeRouter,\n} from './runtime/index.cjs';\n\n// Navigation\nexport { Navigation, getNavigation, go, goto, goback } from './navigation/index.cjs';\nexport type { NavigationEntry, NavigationOptions } from './navigation/index.cjs';\n\n// Isomorphic IPC API\nexport { Ipc, getIpc } from './ipc/index.cjs';\nexport type { IpcPushOptions } from './ipc/index.cjs';\n\n// Tracing\nexport {\n FrameworkTracer,\n MainTracer,\n RendererTracer,\n TestTracer,\n TraceProvider,\n TraceProviderConfiguration,\n TraceCommitWriter,\n clearTraceHubForTests,\n getTraceEvents$,\n getTraceProducerId,\n ingestRemoteTraceEvent,\n publishMainTrace,\n publishTestTrace,\n registerTraceSink,\n setRendererTraceEnabled,\n setRendererTraceTransport,\n woodBatchToTraceBatch,\n WoodTraceBatchContract,\n} from './tracing/index.js';\nexport type { WoodTraceBatchConversion } from './tracing/index.js';\nexport type {\n TraceCommitRow,\n TraceCommitWriterOptions,\n TraceFlushOptions,\n TraceFlushResult,\n WoodTracePersistencePort,\n TraceDispatchResult,\n TraceEvent,\n TraceInput,\n TraceLevel,\n TraceProcess,\n TraceProviderMode,\n TraceRuntimeContext,\n TraceRuntime,\n TraceWaitOptions,\n WoodRendererTraceEvent,\n WoodRendererTraceInput,\n WoodTraceBatch,\n WoodTraceBatchAcknowledgement,\n WoodTraceBatchReceiver,\n WoodTraceBatchRuntimeContext,\n WoodTraceEventSink,\n WoodTraceEventSnapshot,\n WoodTraceSinkDisposer,\n} from './tracing/index.js';\n\n// Testing — available via '@noego/wood/testing' subpath export.\n// Not re-exported here to avoid pulling vitest into production builds.\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoCA,mBAA2E;AAG3E,oBAIO;AAIP,oBAA8E;AAC9E,IAAAA,iBAA2C;AAG3C,oBAA2B;AAG3B,wBAAgC;AAGhC,wBAA8E;AAG9E,wBAAiI;AAIjI,qBAAgC;AAChC,IAAAC,kBAA8B;AAC9B,IAAAA,kBAAmC;AACnC,IAAAA,kBAAiC;AACjC,IAAAA,kBAA+C;AAE/C,IAAAA,kBAAgC;AAEhC,IAAAA,kBAA6C;AAE7C,IAAAA,kBAAuD;AAEvD,IAAAA,kBAAoC;AAIpC,oBAAgD;AAIhD,oBAA6B;AAG7B,oBAA2D;AAM3D,0BAUO;AAIP,qBAWO;AASP,wBAA4D;AAI5D,iBAA4B;AAI5B,qBAmBO;","names":["import_parser","import_codegen"]}
package/dist/index.d.cts CHANGED
@@ -1,17 +1,17 @@
1
- export { DevConfig, ElectronBuilderConfig, WindowDef, WoodConfig } from './types/config.cjs';
1
+ export { DevConfig, ElectronBuilderConfig, ObservabilityConfig, RendererTraceBatchingConfig, WindowDef, WoodConfig } from './types/config.cjs';
2
2
  export { OperationDef, RawModuleDef, RawModuleOperationEntry, RawOperationEntry, RawOperationsDocument } from './types/operations.cjs';
3
3
  export { ParameterDef, RawViewEntry, RawViewsDocument, ViewDef } from './types/views.cjs';
4
4
  export { ControllerArgs, IpcContext, LoaderResult, RequestData, WoodMiddlewareContext, WoodMiddlewareFn } from './types/context.cjs';
5
5
  export { BackendRestartingError, BridgeElectronApi, BridgeMessage, BridgePush, BridgeReady, BridgeRequest, BridgeResponse, SerializedError, WoodAuthError, WoodValidationError } from './types/bridge.cjs';
6
6
  export { ContextMenuContext, ContextMenuEvent, ContextMenuItem } from './types/context_menu.cjs';
7
- export { parseConfig } from './config/config_parser.cjs';
8
- export { parseOperations, parseOperationsFile } from './parser/operations_parser.cjs';
7
+ export { RENDERER_TRACE_BATCHING_DEFAULTS, parseConfig, resolveRendererTraceBatching } from './config/config_parser.cjs';
8
+ export { parseOperations, parseOperationsDocument, parseOperationsFile } from './parser/operations_parser.cjs';
9
9
  export { parseViews, parseViewsFile } from './parser/views_parser.cjs';
10
10
  export { WoodRouter } from './router/wood_router.cjs';
11
11
  export { SchemaValidator } from './validation/schema_validator.cjs';
12
12
  export { MiddlewareResolver } from './middleware/middleware_resolver.cjs';
13
13
  export { buildMiddlewareContext, executeMiddleware } from './middleware/middleware_pipeline.cjs';
14
- export { ControllerResolver, buildControllerArgs } from './controller/controller_resolver.cjs';
14
+ export { ControllerResolver, buildControllerArgs, buildOperationContext, usesOperationContext } from './controller/controller_resolver.cjs';
15
15
  export { ControllerLifecycle, disposeControllerLifecycle } from './controller/controller_lifecycle.cjs';
16
16
  export { generatePreload } from './codegen/preload_generator.cjs';
17
17
  export { generateTypes } from './codegen/type_generator.cjs';
@@ -28,18 +28,22 @@ export { LoaderRunner } from './loader/loader_runner.cjs';
28
28
  export { BackendBridge } from './bridge/backend_bridge.cjs';
29
29
  export { pushEvent, startBackendLoop } from './bridge/backend_entry.cjs';
30
30
  export { DEFAULT_WOOD_REMOTE_DEBUGGING_PORT, WOOD_DEV_DIRECTORY, WOOD_DEV_METADATA_BASENAME, WoodDevMetadata, readWoodDevMetadata, removeWoodDevMetadata, resolveWoodDevDirectory, resolveWoodDevMetadataPath, resolveWoodRemoteDebuggingPort, writeWoodDevMetadata } from './dev/dev_metadata.cjs';
31
- export { GetContainerOptions, clearContainerRegistryForTests, getContainer } from './runtime/get_container.cjs';
31
+ export { GetContainerOptions, clearContainerRegistryForTests, createWoodRoot, getContainer } from './runtime/get_container.cjs';
32
32
  export { clearApplicationRootForTests, getApplicationRoot, setApplicationRoot } from './runtime/application_root.cjs';
33
33
  export { RegisterRuntimeRouter, RuntimeOptions, RuntimeResult, runtime } from './runtime/runtime.cjs';
34
34
  export { clearRendererTraceBatchReceiverForTests, getRendererTraceBatchReceiver, setRendererTraceBatchReceiver } from './runtime/renderer_trace_batch_receiver_registry.cjs';
35
- export { T as TraceDispatchResult, a as TraceEvent, b as TraceInput, c as TraceLevel, d as TraceProcess, e as TraceRuntimeContext, f as TraceWaitOptions, W as WoodTraceEventSink, g as WoodTraceEventSnapshot, h as WoodTraceSinkDisposer, i as clearTraceHubForTests, j as getTraceEvents$, r as registerTraceSink, s as setRendererTraceEnabled, k as setRendererTraceTransport } from './trace_hub-Cob54qRx.cjs';
35
+ export { T as TraceDispatchResult, a as TraceEvent, b as TraceInput, c as TraceLevel, d as TraceProcess, e as TraceRuntimeContext, f as TraceWaitOptions, W as WoodTraceEventSink, g as WoodTraceEventSnapshot, h as WoodTraceSinkDisposer, i as clearTraceHubForTests, j as getTraceEvents$, k as getTraceProducerId, l as ingestRemoteTraceEvent, p as publishMainTrace, m as publishTestTrace, r as registerTraceSink, s as setRendererTraceEnabled, n as setRendererTraceTransport } from './trace_hub-Cpo_nVze.cjs';
36
+ export { WoodTraceBatchConversion, woodBatchToTraceBatch } from './tracing/trace_batch_adapter.cjs';
36
37
  export { WoodRendererTraceEvent, WoodRendererTraceInput, WoodTraceBatch, WoodTraceBatchAcknowledgement, WoodTraceBatchReceiver, WoodTraceBatchRuntimeContext } from './tracing/types/wood_trace_batch.types.cjs';
38
+ export { WoodTraceBatchContract } from './tracing/wood_trace_batch_contract.cjs';
37
39
  export { TraceCommitRow, TraceCommitWriter, TraceCommitWriterOptions, TraceFlushOptions, TraceFlushResult, WoodTracePersistencePort } from './tracing/trace_commit_writer.cjs';
38
40
  export { FrameworkTracer, MainTracer, RendererTracer, TestTracer, TraceProvider, TraceProviderConfiguration, TraceProviderMode, TraceRuntime } from './tracing/trace_provider.cjs';
39
41
  export { Navigation, NavigationEntry, NavigationOptions, getNavigation, go, goback, goto } from './navigation/index.cjs';
40
42
  export { Ipc, getIpc } from './ipc/index.cjs';
41
43
  export { IpcPushOptions } from './ipc/shared.cjs';
44
+ import '@noego/ioc';
42
45
  import './runtime/app_env.cjs';
43
46
  import 'rxjs';
47
+ import '@noego/trace';
44
48
  import '@noego/telemetry/core';
45
- import '@noego/ioc';
49
+ import './navigation/automation_introspection.cjs';
package/dist/index.d.ts CHANGED
@@ -1,17 +1,17 @@
1
- export { DevConfig, ElectronBuilderConfig, WindowDef, WoodConfig } from './types/config.js';
1
+ export { DevConfig, ElectronBuilderConfig, ObservabilityConfig, RendererTraceBatchingConfig, WindowDef, WoodConfig } from './types/config.js';
2
2
  export { OperationDef, RawModuleDef, RawModuleOperationEntry, RawOperationEntry, RawOperationsDocument } from './types/operations.js';
3
3
  export { ParameterDef, RawViewEntry, RawViewsDocument, ViewDef } from './types/views.js';
4
4
  export { ControllerArgs, IpcContext, LoaderResult, RequestData, WoodMiddlewareContext, WoodMiddlewareFn } from './types/context.js';
5
5
  export { BackendRestartingError, BridgeElectronApi, BridgeMessage, BridgePush, BridgeReady, BridgeRequest, BridgeResponse, SerializedError, WoodAuthError, WoodValidationError } from './types/bridge.js';
6
6
  export { ContextMenuContext, ContextMenuEvent, ContextMenuItem } from './types/context_menu.js';
7
- export { parseConfig } from './config/config_parser.js';
8
- export { parseOperations, parseOperationsFile } from './parser/operations_parser.js';
7
+ export { RENDERER_TRACE_BATCHING_DEFAULTS, parseConfig, resolveRendererTraceBatching } from './config/config_parser.js';
8
+ export { parseOperations, parseOperationsDocument, parseOperationsFile } from './parser/operations_parser.js';
9
9
  export { parseViews, parseViewsFile } from './parser/views_parser.js';
10
10
  export { WoodRouter } from './router/wood_router.js';
11
11
  export { SchemaValidator } from './validation/schema_validator.js';
12
12
  export { MiddlewareResolver } from './middleware/middleware_resolver.js';
13
13
  export { buildMiddlewareContext, executeMiddleware } from './middleware/middleware_pipeline.js';
14
- export { ControllerResolver, buildControllerArgs } from './controller/controller_resolver.js';
14
+ export { ControllerResolver, buildControllerArgs, buildOperationContext, usesOperationContext } from './controller/controller_resolver.js';
15
15
  export { ControllerLifecycle, disposeControllerLifecycle } from './controller/controller_lifecycle.js';
16
16
  export { generatePreload } from './codegen/preload_generator.js';
17
17
  export { generateTypes } from './codegen/type_generator.js';
@@ -28,18 +28,22 @@ export { LoaderRunner } from './loader/loader_runner.js';
28
28
  export { BackendBridge } from './bridge/backend_bridge.js';
29
29
  export { pushEvent, startBackendLoop } from './bridge/backend_entry.js';
30
30
  export { DEFAULT_WOOD_REMOTE_DEBUGGING_PORT, WOOD_DEV_DIRECTORY, WOOD_DEV_METADATA_BASENAME, WoodDevMetadata, readWoodDevMetadata, removeWoodDevMetadata, resolveWoodDevDirectory, resolveWoodDevMetadataPath, resolveWoodRemoteDebuggingPort, writeWoodDevMetadata } from './dev/dev_metadata.js';
31
- export { GetContainerOptions, clearContainerRegistryForTests, getContainer } from './runtime/get_container.js';
31
+ export { GetContainerOptions, clearContainerRegistryForTests, createWoodRoot, getContainer } from './runtime/get_container.js';
32
32
  export { clearApplicationRootForTests, getApplicationRoot, setApplicationRoot } from './runtime/application_root.js';
33
33
  export { RegisterRuntimeRouter, RuntimeOptions, RuntimeResult, runtime } from './runtime/runtime.js';
34
34
  export { clearRendererTraceBatchReceiverForTests, getRendererTraceBatchReceiver, setRendererTraceBatchReceiver } from './runtime/renderer_trace_batch_receiver_registry.js';
35
- export { T as TraceDispatchResult, a as TraceEvent, b as TraceInput, c as TraceLevel, d as TraceProcess, e as TraceRuntimeContext, f as TraceWaitOptions, W as WoodTraceEventSink, g as WoodTraceEventSnapshot, h as WoodTraceSinkDisposer, i as clearTraceHubForTests, j as getTraceEvents$, r as registerTraceSink, s as setRendererTraceEnabled, k as setRendererTraceTransport } from './trace_hub-Cob54qRx.js';
35
+ export { T as TraceDispatchResult, a as TraceEvent, b as TraceInput, c as TraceLevel, d as TraceProcess, e as TraceRuntimeContext, f as TraceWaitOptions, W as WoodTraceEventSink, g as WoodTraceEventSnapshot, h as WoodTraceSinkDisposer, i as clearTraceHubForTests, j as getTraceEvents$, k as getTraceProducerId, l as ingestRemoteTraceEvent, p as publishMainTrace, m as publishTestTrace, r as registerTraceSink, s as setRendererTraceEnabled, n as setRendererTraceTransport } from './trace_hub-Cpo_nVze.js';
36
+ export { WoodTraceBatchConversion, woodBatchToTraceBatch } from './tracing/trace_batch_adapter.js';
36
37
  export { WoodRendererTraceEvent, WoodRendererTraceInput, WoodTraceBatch, WoodTraceBatchAcknowledgement, WoodTraceBatchReceiver, WoodTraceBatchRuntimeContext } from './tracing/types/wood_trace_batch.types.js';
38
+ export { WoodTraceBatchContract } from './tracing/wood_trace_batch_contract.js';
37
39
  export { TraceCommitRow, TraceCommitWriter, TraceCommitWriterOptions, TraceFlushOptions, TraceFlushResult, WoodTracePersistencePort } from './tracing/trace_commit_writer.js';
38
40
  export { FrameworkTracer, MainTracer, RendererTracer, TestTracer, TraceProvider, TraceProviderConfiguration, TraceProviderMode, TraceRuntime } from './tracing/trace_provider.js';
39
41
  export { Navigation, NavigationEntry, NavigationOptions, getNavigation, go, goback, goto } from './navigation/index.js';
40
42
  export { Ipc, getIpc } from './ipc/index.js';
41
43
  export { IpcPushOptions } from './ipc/shared.js';
44
+ import '@noego/ioc';
42
45
  import './runtime/app_env.js';
43
46
  import 'rxjs';
47
+ import '@noego/trace';
44
48
  import '@noego/telemetry/core';
45
- import '@noego/ioc';
49
+ import './navigation/automation_introspection.js';
package/dist/index.js CHANGED
@@ -1,11 +1,15 @@
1
1
  import { WoodAuthError, WoodValidationError, BackendRestartingError } from "./types/index.js";
2
- import { parseConfig } from "./config/index.js";
3
- import { parseOperations, parseOperationsFile } from "./parser/index.js";
2
+ import {
3
+ parseConfig,
4
+ resolveRendererTraceBatching,
5
+ RENDERER_TRACE_BATCHING_DEFAULTS
6
+ } from "./config/index.js";
7
+ import { parseOperations, parseOperationsDocument, parseOperationsFile } from "./parser/index.js";
4
8
  import { parseViews, parseViewsFile } from "./parser/index.js";
5
9
  import { WoodRouter } from "./router/index.js";
6
10
  import { SchemaValidator } from "./validation/index.js";
7
11
  import { MiddlewareResolver, buildMiddlewareContext, executeMiddleware } from "./middleware/index.js";
8
- import { ControllerResolver, buildControllerArgs, disposeControllerLifecycle } from "./controller/index.js";
12
+ import { ControllerResolver, buildControllerArgs, buildOperationContext, usesOperationContext, disposeControllerLifecycle } from "./controller/index.js";
9
13
  import { generatePreload } from "./codegen/index.js";
10
14
  import { generateTypes } from "./codegen/index.js";
11
15
  import { generateChannelMap } from "./codegen/index.js";
@@ -30,6 +34,7 @@ import {
30
34
  removeWoodDevMetadata
31
35
  } from "./dev/dev_metadata.js";
32
36
  import {
37
+ createWoodRoot,
33
38
  getContainer,
34
39
  clearContainerRegistryForTests,
35
40
  getApplicationRoot,
@@ -52,9 +57,15 @@ import {
52
57
  TraceCommitWriter,
53
58
  clearTraceHubForTests,
54
59
  getTraceEvents$,
60
+ getTraceProducerId,
61
+ ingestRemoteTraceEvent,
62
+ publishMainTrace,
63
+ publishTestTrace,
55
64
  registerTraceSink,
56
65
  setRendererTraceEnabled,
57
- setRendererTraceTransport
66
+ setRendererTraceTransport,
67
+ woodBatchToTraceBatch,
68
+ WoodTraceBatchContract
58
69
  } from "./tracing/index.js";
59
70
  export {
60
71
  BackendBridge,
@@ -67,6 +78,7 @@ export {
67
78
  MainTracer,
68
79
  MiddlewareResolver,
69
80
  Navigation,
81
+ RENDERER_TRACE_BATCHING_DEFAULTS,
70
82
  RendererTracer,
71
83
  SchemaValidator,
72
84
  TestTracer,
@@ -79,13 +91,16 @@ export {
79
91
  WindowStateStore,
80
92
  WoodAuthError,
81
93
  WoodRouter,
94
+ WoodTraceBatchContract,
82
95
  WoodValidationError,
83
96
  buildControllerArgs,
84
97
  buildMiddlewareContext,
98
+ buildOperationContext,
85
99
  clearApplicationRootForTests,
86
100
  clearContainerRegistryForTests,
87
101
  clearRendererTraceBatchReceiverForTests,
88
102
  clearTraceHubForTests,
103
+ createWoodRoot,
89
104
  disposeControllerLifecycle,
90
105
  executeMiddleware,
91
106
  generateChannelMap,
@@ -103,18 +118,24 @@ export {
103
118
  getNavigation,
104
119
  getRendererTraceBatchReceiver,
105
120
  getTraceEvents$,
121
+ getTraceProducerId,
106
122
  go,
107
123
  goback,
108
124
  goto,
125
+ ingestRemoteTraceEvent,
109
126
  parseConfig,
110
127
  parseOperations,
128
+ parseOperationsDocument,
111
129
  parseOperationsFile,
112
130
  parseViews,
113
131
  parseViewsFile,
132
+ publishMainTrace,
133
+ publishTestTrace,
114
134
  pushEvent,
115
135
  readWoodDevMetadata,
116
136
  registerTraceSink,
117
137
  removeWoodDevMetadata,
138
+ resolveRendererTraceBatching,
118
139
  resolveWoodDevDirectory,
119
140
  resolveWoodDevMetadataPath,
120
141
  resolveWoodRemoteDebuggingPort,
@@ -124,6 +145,8 @@ export {
124
145
  setRendererTraceEnabled,
125
146
  setRendererTraceTransport,
126
147
  startBackendLoop,
148
+ usesOperationContext,
149
+ woodBatchToTraceBatch,
127
150
  writeWoodDevMetadata
128
151
  };
129
152
  //# sourceMappingURL=index.js.map