@noego/wood 0.0.1

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 (499) hide show
  1. package/README.md +107 -0
  2. package/bin/axe.js +202 -0
  3. package/bin/stick.js +96 -0
  4. package/bin/wood.js +572 -0
  5. package/dist/bridge/backend_bridge.cjs +186 -0
  6. package/dist/bridge/backend_bridge.cjs.map +1 -0
  7. package/dist/bridge/backend_bridge.d.cts +32 -0
  8. package/dist/bridge/backend_bridge.d.ts +32 -0
  9. package/dist/bridge/backend_bridge.js +152 -0
  10. package/dist/bridge/backend_bridge.js.map +1 -0
  11. package/dist/bridge/backend_entry.cjs +64 -0
  12. package/dist/bridge/backend_entry.cjs.map +1 -0
  13. package/dist/bridge/backend_entry.d.cts +14 -0
  14. package/dist/bridge/backend_entry.d.ts +14 -0
  15. package/dist/bridge/backend_entry.js +39 -0
  16. package/dist/bridge/backend_entry.js.map +1 -0
  17. package/dist/bridge/index.cjs +34 -0
  18. package/dist/bridge/index.cjs.map +1 -0
  19. package/dist/bridge/index.d.cts +2 -0
  20. package/dist/bridge/index.d.ts +2 -0
  21. package/dist/bridge/index.js +8 -0
  22. package/dist/bridge/index.js.map +1 -0
  23. package/dist/client/controller_contract.cjs +17 -0
  24. package/dist/client/controller_contract.cjs.map +1 -0
  25. package/dist/client/controller_contract.d.cts +15 -0
  26. package/dist/client/controller_contract.d.ts +15 -0
  27. package/dist/client/controller_contract.js +1 -0
  28. package/dist/client/controller_contract.js.map +1 -0
  29. package/dist/client/global_polyfill.cjs +6 -0
  30. package/dist/client/global_polyfill.cjs.map +1 -0
  31. package/dist/client/global_polyfill.d.cts +2 -0
  32. package/dist/client/global_polyfill.d.ts +2 -0
  33. package/dist/client/global_polyfill.js +5 -0
  34. package/dist/client/global_polyfill.js.map +1 -0
  35. package/dist/client/index.cjs +451 -0
  36. package/dist/client/index.cjs.map +1 -0
  37. package/dist/client/index.d.cts +75 -0
  38. package/dist/client/index.d.ts +75 -0
  39. package/dist/client/index.js +414 -0
  40. package/dist/client/index.js.map +1 -0
  41. package/dist/client/wood_controller.svelte.cjs +110 -0
  42. package/dist/client/wood_controller.svelte.cjs.map +1 -0
  43. package/dist/client/wood_controller.svelte.d.cts +30 -0
  44. package/dist/client/wood_controller.svelte.d.ts +30 -0
  45. package/dist/client/wood_controller.svelte.js +86 -0
  46. package/dist/client/wood_controller.svelte.js.map +1 -0
  47. package/dist/codegen/controller_registration_generator.cjs +138 -0
  48. package/dist/codegen/controller_registration_generator.cjs.map +1 -0
  49. package/dist/codegen/controller_registration_generator.d.cts +18 -0
  50. package/dist/codegen/controller_registration_generator.d.ts +18 -0
  51. package/dist/codegen/controller_registration_generator.js +104 -0
  52. package/dist/codegen/controller_registration_generator.js.map +1 -0
  53. package/dist/codegen/index.cjs +50 -0
  54. package/dist/codegen/index.cjs.map +1 -0
  55. package/dist/codegen/index.d.cts +10 -0
  56. package/dist/codegen/index.d.ts +10 -0
  57. package/dist/codegen/index.js +19 -0
  58. package/dist/codegen/index.js.map +1 -0
  59. package/dist/codegen/preload_generator.cjs +151 -0
  60. package/dist/codegen/preload_generator.cjs.map +1 -0
  61. package/dist/codegen/preload_generator.d.cts +8 -0
  62. package/dist/codegen/preload_generator.d.ts +8 -0
  63. package/dist/codegen/preload_generator.js +127 -0
  64. package/dist/codegen/preload_generator.js.map +1 -0
  65. package/dist/codegen/renderer_app_generator.cjs +397 -0
  66. package/dist/codegen/renderer_app_generator.cjs.map +1 -0
  67. package/dist/codegen/renderer_app_generator.d.cts +13 -0
  68. package/dist/codegen/renderer_app_generator.d.ts +13 -0
  69. package/dist/codegen/renderer_app_generator.js +363 -0
  70. package/dist/codegen/renderer_app_generator.js.map +1 -0
  71. package/dist/codegen/renderer_controller_registration_generator.cjs +122 -0
  72. package/dist/codegen/renderer_controller_registration_generator.cjs.map +1 -0
  73. package/dist/codegen/renderer_controller_registration_generator.d.cts +9 -0
  74. package/dist/codegen/renderer_controller_registration_generator.d.ts +9 -0
  75. package/dist/codegen/renderer_controller_registration_generator.js +88 -0
  76. package/dist/codegen/renderer_controller_registration_generator.js.map +1 -0
  77. package/dist/codegen/renderer_view_manifest_generator.cjs +126 -0
  78. package/dist/codegen/renderer_view_manifest_generator.cjs.map +1 -0
  79. package/dist/codegen/renderer_view_manifest_generator.d.cts +11 -0
  80. package/dist/codegen/renderer_view_manifest_generator.d.ts +11 -0
  81. package/dist/codegen/renderer_view_manifest_generator.js +92 -0
  82. package/dist/codegen/renderer_view_manifest_generator.js.map +1 -0
  83. package/dist/codegen/runtime_generator.cjs +156 -0
  84. package/dist/codegen/runtime_generator.cjs.map +1 -0
  85. package/dist/codegen/runtime_generator.d.cts +14 -0
  86. package/dist/codegen/runtime_generator.d.ts +14 -0
  87. package/dist/codegen/runtime_generator.js +122 -0
  88. package/dist/codegen/runtime_generator.js.map +1 -0
  89. package/dist/codegen/test_mock_generator.cjs +98 -0
  90. package/dist/codegen/test_mock_generator.cjs.map +1 -0
  91. package/dist/codegen/test_mock_generator.d.cts +5 -0
  92. package/dist/codegen/test_mock_generator.d.ts +5 -0
  93. package/dist/codegen/test_mock_generator.js +74 -0
  94. package/dist/codegen/test_mock_generator.js.map +1 -0
  95. package/dist/codegen/type_generator.cjs +203 -0
  96. package/dist/codegen/type_generator.cjs.map +1 -0
  97. package/dist/codegen/type_generator.d.cts +5 -0
  98. package/dist/codegen/type_generator.d.ts +5 -0
  99. package/dist/codegen/type_generator.js +179 -0
  100. package/dist/codegen/type_generator.js.map +1 -0
  101. package/dist/components/contextMenu.cjs +163 -0
  102. package/dist/components/contextMenu.cjs.map +1 -0
  103. package/dist/components/contextMenu.d.cts +43 -0
  104. package/dist/components/contextMenu.d.ts +43 -0
  105. package/dist/components/contextMenu.js +138 -0
  106. package/dist/components/contextMenu.js.map +1 -0
  107. package/dist/config/config_parser.cjs +176 -0
  108. package/dist/config/config_parser.cjs.map +1 -0
  109. package/dist/config/config_parser.d.cts +9 -0
  110. package/dist/config/config_parser.d.ts +9 -0
  111. package/dist/config/config_parser.js +142 -0
  112. package/dist/config/config_parser.js.map +1 -0
  113. package/dist/config/index.cjs +29 -0
  114. package/dist/config/index.cjs.map +1 -0
  115. package/dist/config/index.d.cts +2 -0
  116. package/dist/config/index.d.ts +2 -0
  117. package/dist/config/index.js +5 -0
  118. package/dist/config/index.js.map +1 -0
  119. package/dist/controller/__fixtures__/controllers/chat.cjs +32 -0
  120. package/dist/controller/__fixtures__/controllers/chat.cjs.map +1 -0
  121. package/dist/controller/__fixtures__/controllers/chat.d.cts +11 -0
  122. package/dist/controller/__fixtures__/controllers/chat.d.ts +11 -0
  123. package/dist/controller/__fixtures__/controllers/chat.js +12 -0
  124. package/dist/controller/__fixtures__/controllers/chat.js.map +1 -0
  125. package/dist/controller/__fixtures__/controllers/not_a_class.cjs +29 -0
  126. package/dist/controller/__fixtures__/controllers/not_a_class.cjs.map +1 -0
  127. package/dist/controller/__fixtures__/controllers/not_a_class.d.cts +3 -0
  128. package/dist/controller/__fixtures__/controllers/not_a_class.d.ts +3 -0
  129. package/dist/controller/__fixtures__/controllers/not_a_class.js +5 -0
  130. package/dist/controller/__fixtures__/controllers/not_a_class.js.map +1 -0
  131. package/dist/controller/__fixtures__/controllers/settings.controller.cjs +32 -0
  132. package/dist/controller/__fixtures__/controllers/settings.controller.cjs.map +1 -0
  133. package/dist/controller/__fixtures__/controllers/settings.controller.d.cts +12 -0
  134. package/dist/controller/__fixtures__/controllers/settings.controller.d.ts +12 -0
  135. package/dist/controller/__fixtures__/controllers/settings.controller.js +12 -0
  136. package/dist/controller/__fixtures__/controllers/settings.controller.js.map +1 -0
  137. package/dist/controller/__fixtures__/controllers/test.cjs +29 -0
  138. package/dist/controller/__fixtures__/controllers/test.cjs.map +1 -0
  139. package/dist/controller/__fixtures__/controllers/test.d.cts +7 -0
  140. package/dist/controller/__fixtures__/controllers/test.d.ts +7 -0
  141. package/dist/controller/__fixtures__/controllers/test.js +9 -0
  142. package/dist/controller/__fixtures__/controllers/test.js.map +1 -0
  143. package/dist/controller/controller_resolver.cjs +180 -0
  144. package/dist/controller/controller_resolver.cjs.map +1 -0
  145. package/dist/controller/controller_resolver.d.cts +51 -0
  146. package/dist/controller/controller_resolver.d.ts +51 -0
  147. package/dist/controller/controller_resolver.js +145 -0
  148. package/dist/controller/controller_resolver.js.map +1 -0
  149. package/dist/controller/index.cjs +31 -0
  150. package/dist/controller/index.cjs.map +1 -0
  151. package/dist/controller/index.d.cts +2 -0
  152. package/dist/controller/index.d.ts +2 -0
  153. package/dist/controller/index.js +6 -0
  154. package/dist/controller/index.js.map +1 -0
  155. package/dist/dev/backend_watcher.cjs +108 -0
  156. package/dist/dev/backend_watcher.cjs.map +1 -0
  157. package/dist/dev/backend_watcher.d.cts +22 -0
  158. package/dist/dev/backend_watcher.d.ts +22 -0
  159. package/dist/dev/backend_watcher.js +84 -0
  160. package/dist/dev/backend_watcher.js.map +1 -0
  161. package/dist/dev/dev_metadata.cjs +94 -0
  162. package/dist/dev/dev_metadata.cjs.map +1 -0
  163. package/dist/dev/dev_metadata.d.cts +20 -0
  164. package/dist/dev/dev_metadata.d.ts +20 -0
  165. package/dist/dev/dev_metadata.js +52 -0
  166. package/dist/dev/dev_metadata.js.map +1 -0
  167. package/dist/dev/esbuild_backend.cjs +124 -0
  168. package/dist/dev/esbuild_backend.cjs.map +1 -0
  169. package/dist/dev/esbuild_backend.d.cts +30 -0
  170. package/dist/dev/esbuild_backend.d.ts +30 -0
  171. package/dist/dev/esbuild_backend.js +90 -0
  172. package/dist/dev/esbuild_backend.js.map +1 -0
  173. package/dist/dev/index.cjs +57 -0
  174. package/dist/dev/index.cjs.map +1 -0
  175. package/dist/dev/index.d.cts +8 -0
  176. package/dist/dev/index.d.ts +8 -0
  177. package/dist/dev/index.js +31 -0
  178. package/dist/dev/index.js.map +1 -0
  179. package/dist/dev/wood_dev_server.cjs +220 -0
  180. package/dist/dev/wood_dev_server.cjs.map +1 -0
  181. package/dist/dev/wood_dev_server.d.cts +39 -0
  182. package/dist/dev/wood_dev_server.d.ts +39 -0
  183. package/dist/dev/wood_dev_server.js +186 -0
  184. package/dist/dev/wood_dev_server.js.map +1 -0
  185. package/dist/dev/yaml_watcher.cjs +142 -0
  186. package/dist/dev/yaml_watcher.cjs.map +1 -0
  187. package/dist/dev/yaml_watcher.d.cts +22 -0
  188. package/dist/dev/yaml_watcher.d.ts +22 -0
  189. package/dist/dev/yaml_watcher.js +108 -0
  190. package/dist/dev/yaml_watcher.js.map +1 -0
  191. package/dist/electron/index.cjs +176 -0
  192. package/dist/electron/index.cjs.map +1 -0
  193. package/dist/electron/index.d.cts +29 -0
  194. package/dist/electron/index.d.ts +29 -0
  195. package/dist/electron/index.js +140 -0
  196. package/dist/electron/index.js.map +1 -0
  197. package/dist/index.cjs +178 -0
  198. package/dist/index.cjs.map +1 -0
  199. package/dist/index.d.cts +41 -0
  200. package/dist/index.d.ts +41 -0
  201. package/dist/index.js +122 -0
  202. package/dist/index.js.map +1 -0
  203. package/dist/ipc/index.cjs +80 -0
  204. package/dist/ipc/index.cjs.map +1 -0
  205. package/dist/ipc/index.d.cts +12 -0
  206. package/dist/ipc/index.d.ts +12 -0
  207. package/dist/ipc/index.js +57 -0
  208. package/dist/ipc/index.js.map +1 -0
  209. package/dist/ipc/shared.cjs +50 -0
  210. package/dist/ipc/shared.cjs.map +1 -0
  211. package/dist/ipc/shared.d.cts +10 -0
  212. package/dist/ipc/shared.d.ts +10 -0
  213. package/dist/ipc/shared.js +23 -0
  214. package/dist/ipc/shared.js.map +1 -0
  215. package/dist/loader/__fixtures__/layouts/app.load.cjs +27 -0
  216. package/dist/loader/__fixtures__/layouts/app.load.cjs.map +1 -0
  217. package/dist/loader/__fixtures__/layouts/app.load.d.cts +5 -0
  218. package/dist/loader/__fixtures__/layouts/app.load.d.ts +5 -0
  219. package/dist/loader/__fixtures__/layouts/app.load.js +7 -0
  220. package/dist/loader/__fixtures__/layouts/app.load.js.map +1 -0
  221. package/dist/loader/__fixtures__/views/test/page.load.cjs +27 -0
  222. package/dist/loader/__fixtures__/views/test/page.load.cjs.map +1 -0
  223. package/dist/loader/__fixtures__/views/test/page.load.d.cts +6 -0
  224. package/dist/loader/__fixtures__/views/test/page.load.d.ts +6 -0
  225. package/dist/loader/__fixtures__/views/test/page.load.js +7 -0
  226. package/dist/loader/__fixtures__/views/test/page.load.js.map +1 -0
  227. package/dist/loader/index.cjs +29 -0
  228. package/dist/loader/index.cjs.map +1 -0
  229. package/dist/loader/index.d.cts +3 -0
  230. package/dist/loader/index.d.ts +3 -0
  231. package/dist/loader/index.js +5 -0
  232. package/dist/loader/index.js.map +1 -0
  233. package/dist/loader/loader_runner.cjs +109 -0
  234. package/dist/loader/loader_runner.cjs.map +1 -0
  235. package/dist/loader/loader_runner.d.cts +27 -0
  236. package/dist/loader/loader_runner.d.ts +27 -0
  237. package/dist/loader/loader_runner.js +75 -0
  238. package/dist/loader/loader_runner.js.map +1 -0
  239. package/dist/main/index.cjs +500 -0
  240. package/dist/main/index.cjs.map +1 -0
  241. package/dist/main/index.d.cts +98 -0
  242. package/dist/main/index.d.ts +98 -0
  243. package/dist/main/index.js +475 -0
  244. package/dist/main/index.js.map +1 -0
  245. package/dist/middleware/__fixtures__/middleware/auth.cjs +44 -0
  246. package/dist/middleware/__fixtures__/middleware/auth.cjs.map +1 -0
  247. package/dist/middleware/__fixtures__/middleware/auth.d.cts +6 -0
  248. package/dist/middleware/__fixtures__/middleware/auth.d.ts +6 -0
  249. package/dist/middleware/__fixtures__/middleware/auth.js +19 -0
  250. package/dist/middleware/__fixtures__/middleware/auth.js.map +1 -0
  251. package/dist/middleware/__fixtures__/middleware/sequence.cjs +47 -0
  252. package/dist/middleware/__fixtures__/middleware/sequence.cjs.map +1 -0
  253. package/dist/middleware/__fixtures__/middleware/sequence.d.cts +7 -0
  254. package/dist/middleware/__fixtures__/middleware/sequence.d.ts +7 -0
  255. package/dist/middleware/__fixtures__/middleware/sequence.js +21 -0
  256. package/dist/middleware/__fixtures__/middleware/sequence.js.map +1 -0
  257. package/dist/middleware/index.cjs +34 -0
  258. package/dist/middleware/index.cjs.map +1 -0
  259. package/dist/middleware/index.d.cts +3 -0
  260. package/dist/middleware/index.d.ts +3 -0
  261. package/dist/middleware/index.js +8 -0
  262. package/dist/middleware/index.js.map +1 -0
  263. package/dist/middleware/middleware_pipeline.cjs +55 -0
  264. package/dist/middleware/middleware_pipeline.cjs.map +1 -0
  265. package/dist/middleware/middleware_pipeline.d.cts +13 -0
  266. package/dist/middleware/middleware_pipeline.d.ts +13 -0
  267. package/dist/middleware/middleware_pipeline.js +30 -0
  268. package/dist/middleware/middleware_pipeline.js.map +1 -0
  269. package/dist/middleware/middleware_resolver.cjs +91 -0
  270. package/dist/middleware/middleware_resolver.cjs.map +1 -0
  271. package/dist/middleware/middleware_resolver.d.cts +19 -0
  272. package/dist/middleware/middleware_resolver.d.ts +19 -0
  273. package/dist/middleware/middleware_resolver.js +57 -0
  274. package/dist/middleware/middleware_resolver.js.map +1 -0
  275. package/dist/navigation/index.cjs +205 -0
  276. package/dist/navigation/index.cjs.map +1 -0
  277. package/dist/navigation/index.d.cts +34 -0
  278. package/dist/navigation/index.d.ts +34 -0
  279. package/dist/navigation/index.js +176 -0
  280. package/dist/navigation/index.js.map +1 -0
  281. package/dist/parser/index.cjs +36 -0
  282. package/dist/parser/index.cjs.map +1 -0
  283. package/dist/parser/index.d.cts +4 -0
  284. package/dist/parser/index.d.ts +4 -0
  285. package/dist/parser/index.js +9 -0
  286. package/dist/parser/index.js.map +1 -0
  287. package/dist/parser/operations_parser.cjs +94 -0
  288. package/dist/parser/operations_parser.cjs.map +1 -0
  289. package/dist/parser/operations_parser.d.cts +7 -0
  290. package/dist/parser/operations_parser.d.ts +7 -0
  291. package/dist/parser/operations_parser.js +59 -0
  292. package/dist/parser/operations_parser.js.map +1 -0
  293. package/dist/parser/views_parser.cjs +153 -0
  294. package/dist/parser/views_parser.cjs.map +1 -0
  295. package/dist/parser/views_parser.d.cts +11 -0
  296. package/dist/parser/views_parser.d.ts +11 -0
  297. package/dist/parser/views_parser.js +118 -0
  298. package/dist/parser/views_parser.js.map +1 -0
  299. package/dist/router/index.cjs +31 -0
  300. package/dist/router/index.cjs.map +1 -0
  301. package/dist/router/index.d.cts +2 -0
  302. package/dist/router/index.d.ts +2 -0
  303. package/dist/router/index.js +6 -0
  304. package/dist/router/index.js.map +1 -0
  305. package/dist/router/wood_router.cjs +246 -0
  306. package/dist/router/wood_router.cjs.map +1 -0
  307. package/dist/router/wood_router.d.cts +70 -0
  308. package/dist/router/wood_router.d.ts +70 -0
  309. package/dist/router/wood_router.js +221 -0
  310. package/dist/router/wood_router.js.map +1 -0
  311. package/dist/runtime/application_root.cjs +98 -0
  312. package/dist/runtime/application_root.cjs.map +1 -0
  313. package/dist/runtime/application_root.d.cts +5 -0
  314. package/dist/runtime/application_root.d.ts +5 -0
  315. package/dist/runtime/application_root.js +61 -0
  316. package/dist/runtime/application_root.js.map +1 -0
  317. package/dist/runtime/get_container.cjs +96 -0
  318. package/dist/runtime/get_container.cjs.map +1 -0
  319. package/dist/runtime/get_container.d.cts +16 -0
  320. package/dist/runtime/get_container.d.ts +16 -0
  321. package/dist/runtime/get_container.js +60 -0
  322. package/dist/runtime/get_container.js.map +1 -0
  323. package/dist/runtime/index.cjs +49 -0
  324. package/dist/runtime/index.cjs.map +1 -0
  325. package/dist/runtime/index.d.cts +8 -0
  326. package/dist/runtime/index.d.ts +8 -0
  327. package/dist/runtime/index.js +24 -0
  328. package/dist/runtime/index.js.map +1 -0
  329. package/dist/runtime/renderer_log_dispatcher.cjs +79 -0
  330. package/dist/runtime/renderer_log_dispatcher.cjs.map +1 -0
  331. package/dist/runtime/renderer_log_dispatcher.d.cts +27 -0
  332. package/dist/runtime/renderer_log_dispatcher.d.ts +27 -0
  333. package/dist/runtime/renderer_log_dispatcher.js +54 -0
  334. package/dist/runtime/renderer_log_dispatcher.js.map +1 -0
  335. package/dist/runtime/runtime.cjs +158 -0
  336. package/dist/runtime/runtime.cjs.map +1 -0
  337. package/dist/runtime/runtime.d.cts +35 -0
  338. package/dist/runtime/runtime.d.ts +35 -0
  339. package/dist/runtime/runtime.js +136 -0
  340. package/dist/runtime/runtime.js.map +1 -0
  341. package/dist/stick/allow_cli.cjs +39 -0
  342. package/dist/stick/allow_cli.cjs.map +1 -0
  343. package/dist/stick/allow_cli.d.cts +6 -0
  344. package/dist/stick/allow_cli.d.ts +6 -0
  345. package/dist/stick/allow_cli.js +15 -0
  346. package/dist/stick/allow_cli.js.map +1 -0
  347. package/dist/stick/index.cjs +276 -0
  348. package/dist/stick/index.cjs.map +1 -0
  349. package/dist/stick/index.d.cts +111 -0
  350. package/dist/stick/index.d.ts +111 -0
  351. package/dist/stick/index.js +237 -0
  352. package/dist/stick/index.js.map +1 -0
  353. package/dist/stick/static_renderer.cjs +144 -0
  354. package/dist/stick/static_renderer.cjs.map +1 -0
  355. package/dist/stick/static_renderer.d.cts +51 -0
  356. package/dist/stick/static_renderer.d.ts +51 -0
  357. package/dist/stick/static_renderer.js +119 -0
  358. package/dist/stick/static_renderer.js.map +1 -0
  359. package/dist/stick/template_resolver.cjs +156 -0
  360. package/dist/stick/template_resolver.cjs.map +1 -0
  361. package/dist/stick/template_resolver.d.cts +7 -0
  362. package/dist/stick/template_resolver.d.ts +7 -0
  363. package/dist/stick/template_resolver.js +122 -0
  364. package/dist/stick/template_resolver.js.map +1 -0
  365. package/dist/testing/create_controller_harness.cjs +175 -0
  366. package/dist/testing/create_controller_harness.cjs.map +1 -0
  367. package/dist/testing/create_controller_harness.d.cts +37 -0
  368. package/dist/testing/create_controller_harness.d.ts +37 -0
  369. package/dist/testing/create_controller_harness.js +162 -0
  370. package/dist/testing/create_controller_harness.js.map +1 -0
  371. package/dist/testing/create_router_bridge.cjs +103 -0
  372. package/dist/testing/create_router_bridge.cjs.map +1 -0
  373. package/dist/testing/create_router_bridge.d.cts +71 -0
  374. package/dist/testing/create_router_bridge.d.ts +71 -0
  375. package/dist/testing/create_router_bridge.js +78 -0
  376. package/dist/testing/create_router_bridge.js.map +1 -0
  377. package/dist/testing/create_test_container.cjs +72 -0
  378. package/dist/testing/create_test_container.cjs.map +1 -0
  379. package/dist/testing/create_test_container.d.cts +14 -0
  380. package/dist/testing/create_test_container.d.ts +14 -0
  381. package/dist/testing/create_test_container.js +48 -0
  382. package/dist/testing/create_test_container.js.map +1 -0
  383. package/dist/testing/create_test_router.cjs +57 -0
  384. package/dist/testing/create_test_router.cjs.map +1 -0
  385. package/dist/testing/create_test_router.d.cts +19 -0
  386. package/dist/testing/create_test_router.d.ts +19 -0
  387. package/dist/testing/create_test_router.js +33 -0
  388. package/dist/testing/create_test_router.js.map +1 -0
  389. package/dist/testing/index.cjs +48 -0
  390. package/dist/testing/index.cjs.map +1 -0
  391. package/dist/testing/index.d.cts +12 -0
  392. package/dist/testing/index.d.ts +12 -0
  393. package/dist/testing/index.js +22 -0
  394. package/dist/testing/index.js.map +1 -0
  395. package/dist/testing/mock_electron.cjs +100 -0
  396. package/dist/testing/mock_electron.cjs.map +1 -0
  397. package/dist/testing/mock_electron.d.cts +12 -0
  398. package/dist/testing/mock_electron.d.ts +12 -0
  399. package/dist/testing/mock_electron.js +75 -0
  400. package/dist/testing/mock_electron.js.map +1 -0
  401. package/dist/tracing/index.cjs +56 -0
  402. package/dist/tracing/index.cjs.map +1 -0
  403. package/dist/tracing/index.d.cts +4 -0
  404. package/dist/tracing/index.d.ts +4 -0
  405. package/dist/tracing/index.js +35 -0
  406. package/dist/tracing/index.js.map +1 -0
  407. package/dist/tracing/trace_hub.cjs +213 -0
  408. package/dist/tracing/trace_hub.cjs.map +1 -0
  409. package/dist/tracing/trace_hub.d.cts +47 -0
  410. package/dist/tracing/trace_hub.d.ts +47 -0
  411. package/dist/tracing/trace_hub.js +172 -0
  412. package/dist/tracing/trace_hub.js.map +1 -0
  413. package/dist/tracing/trace_provider.cjs +200 -0
  414. package/dist/tracing/trace_provider.cjs.map +1 -0
  415. package/dist/tracing/trace_provider.d.cts +69 -0
  416. package/dist/tracing/trace_provider.d.ts +69 -0
  417. package/dist/tracing/trace_provider.js +179 -0
  418. package/dist/tracing/trace_provider.js.map +1 -0
  419. package/dist/types/bridge.cjs +51 -0
  420. package/dist/types/bridge.cjs.map +1 -0
  421. package/dist/types/bridge.d.cts +56 -0
  422. package/dist/types/bridge.d.ts +56 -0
  423. package/dist/types/bridge.js +25 -0
  424. package/dist/types/bridge.js.map +1 -0
  425. package/dist/types/config.cjs +17 -0
  426. package/dist/types/config.cjs.map +1 -0
  427. package/dist/types/config.d.cts +74 -0
  428. package/dist/types/config.d.ts +74 -0
  429. package/dist/types/config.js +1 -0
  430. package/dist/types/config.js.map +1 -0
  431. package/dist/types/context.cjs +17 -0
  432. package/dist/types/context.cjs.map +1 -0
  433. package/dist/types/context.d.cts +61 -0
  434. package/dist/types/context.d.ts +61 -0
  435. package/dist/types/context.js +1 -0
  436. package/dist/types/context.js.map +1 -0
  437. package/dist/types/context_menu.cjs +17 -0
  438. package/dist/types/context_menu.cjs.map +1 -0
  439. package/dist/types/context_menu.d.cts +30 -0
  440. package/dist/types/context_menu.d.ts +30 -0
  441. package/dist/types/context_menu.js +1 -0
  442. package/dist/types/context_menu.js.map +1 -0
  443. package/dist/types/index.cjs +33 -0
  444. package/dist/types/index.cjs.map +1 -0
  445. package/dist/types/index.d.cts +6 -0
  446. package/dist/types/index.d.ts +6 -0
  447. package/dist/types/index.js +7 -0
  448. package/dist/types/index.js.map +1 -0
  449. package/dist/types/operations.cjs +17 -0
  450. package/dist/types/operations.cjs.map +1 -0
  451. package/dist/types/operations.d.cts +39 -0
  452. package/dist/types/operations.d.ts +39 -0
  453. package/dist/types/operations.js +1 -0
  454. package/dist/types/operations.js.map +1 -0
  455. package/dist/types/views.cjs +17 -0
  456. package/dist/types/views.cjs.map +1 -0
  457. package/dist/types/views.d.cts +44 -0
  458. package/dist/types/views.d.ts +44 -0
  459. package/dist/types/views.js +1 -0
  460. package/dist/types/views.js.map +1 -0
  461. package/dist/validation/index.cjs +29 -0
  462. package/dist/validation/index.cjs.map +1 -0
  463. package/dist/validation/index.d.cts +1 -0
  464. package/dist/validation/index.d.ts +1 -0
  465. package/dist/validation/index.js +5 -0
  466. package/dist/validation/index.js.map +1 -0
  467. package/dist/validation/schema_validator.cjs +86 -0
  468. package/dist/validation/schema_validator.cjs.map +1 -0
  469. package/dist/validation/schema_validator.d.cts +24 -0
  470. package/dist/validation/schema_validator.d.ts +24 -0
  471. package/dist/validation/schema_validator.js +52 -0
  472. package/dist/validation/schema_validator.js.map +1 -0
  473. package/dist/window/index.cjs +32 -0
  474. package/dist/window/index.cjs.map +1 -0
  475. package/dist/window/index.d.cts +4 -0
  476. package/dist/window/index.d.ts +4 -0
  477. package/dist/window/index.js +7 -0
  478. package/dist/window/index.js.map +1 -0
  479. package/dist/window/window_manager.cjs +354 -0
  480. package/dist/window/window_manager.cjs.map +1 -0
  481. package/dist/window/window_manager.d.cts +172 -0
  482. package/dist/window/window_manager.d.ts +172 -0
  483. package/dist/window/window_manager.js +330 -0
  484. package/dist/window/window_manager.js.map +1 -0
  485. package/dist/window/window_state_store.cjs +129 -0
  486. package/dist/window/window_state_store.cjs.map +1 -0
  487. package/dist/window/window_state_store.d.cts +39 -0
  488. package/dist/window/window_state_store.d.ts +39 -0
  489. package/dist/window/window_state_store.js +105 -0
  490. package/dist/window/window_state_store.js.map +1 -0
  491. package/loaders/loader.mjs +46 -0
  492. package/package.json +119 -0
  493. package/src/components/ContextMenuProvider.svelte +145 -0
  494. package/src/components/NavigationShell.svelte +204 -0
  495. package/src/components/WoodRecursiveRender.svelte +91 -0
  496. package/src/components/contextMenu.ts +228 -0
  497. package/src/components/index.d.ts +14 -0
  498. package/src/components/index.js +2 -0
  499. package/src/stick/WoodRecursiveRender.svelte +74 -0
@@ -0,0 +1,27 @@
1
+ type RendererLogLevel = 'debug' | 'info' | 'warn' | 'error';
2
+ type RendererLogEntry = {
3
+ level: RendererLogLevel;
4
+ logger: string;
5
+ message: string;
6
+ context?: unknown;
7
+ timestamp: string;
8
+ senderId?: number | null;
9
+ };
10
+ type RendererLogCallback = (entry: RendererLogEntry) => void | Promise<void>;
11
+ type RendererLogDispatchResult = {
12
+ ok: boolean;
13
+ forwarded: boolean;
14
+ configured: boolean;
15
+ reason?: 'unconfigured' | 'callback-error';
16
+ errorMessage?: string;
17
+ };
18
+ declare class RendererLogDispatcher {
19
+ private callback;
20
+ setCallback(callback: RendererLogCallback | null): void;
21
+ getCallback(): RendererLogCallback | null;
22
+ dispatch(entry: RendererLogEntry): Promise<RendererLogDispatchResult>;
23
+ }
24
+ declare function getRendererLogDispatcher(): RendererLogDispatcher;
25
+ declare function clearRendererLogDispatcherForTests(): void;
26
+
27
+ export { type RendererLogCallback, type RendererLogDispatchResult, type RendererLogEntry, type RendererLogLevel, clearRendererLogDispatcherForTests, getRendererLogDispatcher };
@@ -0,0 +1,54 @@
1
+ const RENDERER_LOG_DISPATCHER_SYMBOL = /* @__PURE__ */ Symbol.for("@noego/wood.runtime.renderer-log-dispatcher");
2
+ class RendererLogDispatcher {
3
+ constructor() {
4
+ this.callback = null;
5
+ }
6
+ setCallback(callback) {
7
+ this.callback = callback;
8
+ }
9
+ getCallback() {
10
+ return this.callback;
11
+ }
12
+ async dispatch(entry) {
13
+ if (!this.callback) {
14
+ return {
15
+ ok: true,
16
+ forwarded: false,
17
+ configured: false,
18
+ reason: "unconfigured"
19
+ };
20
+ }
21
+ try {
22
+ await this.callback(entry);
23
+ return {
24
+ ok: true,
25
+ forwarded: true,
26
+ configured: true
27
+ };
28
+ } catch (error) {
29
+ return {
30
+ ok: false,
31
+ forwarded: false,
32
+ configured: true,
33
+ reason: "callback-error",
34
+ errorMessage: error instanceof Error ? error.message : String(error)
35
+ };
36
+ }
37
+ }
38
+ }
39
+ function getRendererLogDispatcher() {
40
+ const globalObj = globalThis;
41
+ if (!globalObj[RENDERER_LOG_DISPATCHER_SYMBOL]) {
42
+ globalObj[RENDERER_LOG_DISPATCHER_SYMBOL] = new RendererLogDispatcher();
43
+ }
44
+ return globalObj[RENDERER_LOG_DISPATCHER_SYMBOL];
45
+ }
46
+ function clearRendererLogDispatcherForTests() {
47
+ const globalObj = globalThis;
48
+ delete globalObj[RENDERER_LOG_DISPATCHER_SYMBOL];
49
+ }
50
+ export {
51
+ clearRendererLogDispatcherForTests,
52
+ getRendererLogDispatcher
53
+ };
54
+ //# sourceMappingURL=renderer_log_dispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/runtime/renderer_log_dispatcher.ts"],"sourcesContent":["const RENDERER_LOG_DISPATCHER_SYMBOL = Symbol.for('@noego/wood.runtime.renderer-log-dispatcher');\n\nexport type RendererLogLevel = 'debug' | 'info' | 'warn' | 'error';\n\nexport type RendererLogEntry = {\n level: RendererLogLevel;\n logger: string;\n message: string;\n context?: unknown;\n timestamp: string;\n senderId?: number | null;\n};\n\nexport type RendererLogCallback = (entry: RendererLogEntry) => void | Promise<void>;\n\nexport type RendererLogDispatchResult = {\n ok: boolean;\n forwarded: boolean;\n configured: boolean;\n reason?: 'unconfigured' | 'callback-error';\n errorMessage?: string;\n};\n\nclass RendererLogDispatcher {\n private callback: RendererLogCallback | null = null;\n\n setCallback(callback: RendererLogCallback | null): void {\n this.callback = callback;\n }\n\n getCallback(): RendererLogCallback | null {\n return this.callback;\n }\n\n async dispatch(entry: RendererLogEntry): Promise<RendererLogDispatchResult> {\n if (!this.callback) {\n return {\n ok: true,\n forwarded: false,\n configured: false,\n reason: 'unconfigured',\n };\n }\n\n try {\n await this.callback(entry);\n return {\n ok: true,\n forwarded: true,\n configured: true,\n };\n } catch (error) {\n return {\n ok: false,\n forwarded: false,\n configured: true,\n reason: 'callback-error',\n errorMessage: error instanceof Error ? error.message : String(error),\n };\n }\n }\n}\n\ntype GlobalWithRendererLogDispatcher = typeof globalThis & {\n [RENDERER_LOG_DISPATCHER_SYMBOL]?: RendererLogDispatcher;\n};\n\nexport function getRendererLogDispatcher(): RendererLogDispatcher {\n const globalObj = globalThis as GlobalWithRendererLogDispatcher;\n if (!globalObj[RENDERER_LOG_DISPATCHER_SYMBOL]) {\n globalObj[RENDERER_LOG_DISPATCHER_SYMBOL] = new RendererLogDispatcher();\n }\n return globalObj[RENDERER_LOG_DISPATCHER_SYMBOL] as RendererLogDispatcher;\n}\n\nexport function clearRendererLogDispatcherForTests(): void {\n const globalObj = globalThis as GlobalWithRendererLogDispatcher;\n delete globalObj[RENDERER_LOG_DISPATCHER_SYMBOL];\n}\n"],"mappings":"AAAA,MAAM,iCAAiC,uBAAO,IAAI,6CAA6C;AAuB/F,MAAM,sBAAsB;AAAA,EAA5B;AACE,SAAQ,WAAuC;AAAA;AAAA,EAE/C,YAAY,UAA4C;AACtD,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,cAA0C;AACxC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,SAAS,OAA6D;AAC1E,QAAI,CAAC,KAAK,UAAU;AAClB,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,QAAQ;AAAA,MACV;AAAA,IACF;AAEA,QAAI;AACF,YAAM,KAAK,SAAS,KAAK;AACzB,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,WAAW;AAAA,QACX,YAAY;AAAA,MACd;AAAA,IACF,SAAS,OAAO;AACd,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,cAAc,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,MACrE;AAAA,IACF;AAAA,EACF;AACF;AAMO,SAAS,2BAAkD;AAChE,QAAM,YAAY;AAClB,MAAI,CAAC,UAAU,8BAA8B,GAAG;AAC9C,cAAU,8BAA8B,IAAI,IAAI,sBAAsB;AAAA,EACxE;AACA,SAAO,UAAU,8BAA8B;AACjD;AAEO,SAAS,qCAA2C;AACzD,QAAM,YAAY;AAClB,SAAO,UAAU,8BAA8B;AACjD;","names":[]}
@@ -0,0 +1,158 @@
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 runtime_exports = {};
20
+ __export(runtime_exports, {
21
+ runtime: () => runtime
22
+ });
23
+ module.exports = __toCommonJS(runtime_exports);
24
+ var import_logger = require("@noego/logger");
25
+ var import_wood_router = require("../router/wood_router.cjs");
26
+ var import_get_container = require("./get_container.cjs");
27
+ var import_tracing = require("../tracing/index.js");
28
+ var import_renderer_log_dispatcher = require("./renderer_log_dispatcher.js");
29
+ const logger = (0, import_logger.getLogger)("wood:runtime");
30
+ function normalizeRendererLogLevel(level) {
31
+ if (level === "debug" || level === "warn" || level === "error") {
32
+ return level;
33
+ }
34
+ return "info";
35
+ }
36
+ function coerceRendererLogPayload(rawPayload, event) {
37
+ const payload = rawPayload ?? {};
38
+ const ipcEvent = event;
39
+ return {
40
+ level: normalizeRendererLogLevel(payload.level),
41
+ logger: typeof payload.logger === "string" && payload.logger.trim().length > 0 ? payload.logger : "renderer",
42
+ message: typeof payload.message === "string" ? payload.message : "",
43
+ context: payload.context,
44
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
45
+ senderId: typeof ipcEvent?.sender?.id === "number" ? ipcEvent.sender.id : null
46
+ };
47
+ }
48
+ async function runtime(options) {
49
+ const {
50
+ ipcMain,
51
+ registerRuntime,
52
+ controllersDir,
53
+ middlewareDir,
54
+ mode = "bundled",
55
+ enableRendererLogBridge = true,
56
+ enableRendererTraceBridge = true
57
+ } = options;
58
+ const container = options.container ?? (0, import_get_container.getContainer)();
59
+ logger.info("runtime start", {
60
+ mode,
61
+ hasProvidedContainer: !!options.container,
62
+ controllersDir,
63
+ middlewareDir,
64
+ enableRendererLogBridge,
65
+ enableRendererTraceBridge
66
+ });
67
+ if (typeof container.instance === "function") {
68
+ const traceConfiguration = await container.instance(import_tracing.TraceProviderConfiguration);
69
+ traceConfiguration.configureRuntime("main");
70
+ }
71
+ const router = new import_wood_router.WoodRouter({
72
+ container,
73
+ controllersDir,
74
+ middlewareDir,
75
+ mode
76
+ });
77
+ registerRuntime(router);
78
+ logger.info("runtime registration complete");
79
+ router.validateControllers();
80
+ logger.info("runtime controller validation complete");
81
+ router.registerReservedHandler("__load", async (data, event) => {
82
+ if (!options.onLoad) {
83
+ throw new Error('Reserved channel "__load" not configured. Provide runtime({ onLoad }).');
84
+ }
85
+ return options.onLoad(data, event);
86
+ });
87
+ router.registerReservedHandler("__navigate", async (data, event) => {
88
+ if (!options.onNavigate) {
89
+ throw new Error('Reserved channel "__navigate" not configured. Provide runtime({ onNavigate }).');
90
+ }
91
+ return options.onNavigate(data, event);
92
+ });
93
+ router.registerReservedHandler("__window", async (data, event) => {
94
+ if (!options.onWindow) {
95
+ throw new Error('Reserved channel "__window" not configured. Provide runtime({ onWindow }).');
96
+ }
97
+ return options.onWindow(data, event);
98
+ });
99
+ router.registerReservedHandler("__debug", async (data, event) => {
100
+ if (!options.onDebug) {
101
+ throw new Error('Reserved channel "__debug" not configured. Provide runtime({ onDebug }).');
102
+ }
103
+ return options.onDebug(data, event);
104
+ });
105
+ router.registerReservedHandler("__contextMenu", async (data, event) => {
106
+ if (!options.onContextMenu) {
107
+ throw new Error('Reserved channel "__contextMenu" not configured. Provide runtime({ onContextMenu }).');
108
+ }
109
+ return options.onContextMenu(data, event);
110
+ });
111
+ if (enableRendererLogBridge) {
112
+ registerRendererLogBridge(ipcMain);
113
+ }
114
+ if (enableRendererTraceBridge) {
115
+ registerRendererTraceBridge(ipcMain);
116
+ }
117
+ router.registerIpcHandlers(ipcMain);
118
+ logger.info("runtime ipc handlers registered", {
119
+ channelCount: router.getChannels().length,
120
+ enableRendererLogBridge,
121
+ enableRendererTraceBridge
122
+ });
123
+ return { router };
124
+ }
125
+ function registerRendererTraceBridge(ipcMain) {
126
+ if (typeof ipcMain.removeHandler === "function") {
127
+ ipcMain.removeHandler("__trace");
128
+ }
129
+ ipcMain.handle("__trace", async (_event, rawPayload) => {
130
+ return (0, import_tracing.dispatchRendererTracePayload)(rawPayload);
131
+ });
132
+ logger.info("renderer trace bridge registered");
133
+ }
134
+ function registerRendererLogBridge(ipcMain) {
135
+ const dispatcher = (0, import_renderer_log_dispatcher.getRendererLogDispatcher)();
136
+ if (typeof ipcMain.removeHandler === "function") {
137
+ ipcMain.removeHandler("__log");
138
+ }
139
+ ipcMain.handle("__log", async (event, rawPayload) => {
140
+ const entry = coerceRendererLogPayload(rawPayload, event);
141
+ const result = await dispatcher.dispatch(entry);
142
+ if (!result.ok) {
143
+ logger.warn("renderer log callback failed", {
144
+ logger: entry.logger,
145
+ messageLength: entry.message.length,
146
+ reason: result.reason ?? null,
147
+ errorMessage: result.errorMessage ?? null
148
+ });
149
+ }
150
+ return result;
151
+ });
152
+ logger.info("renderer log bridge registered");
153
+ }
154
+ // Annotate the CommonJS export names for ESM import in node:
155
+ 0 && (module.exports = {
156
+ runtime
157
+ });
158
+ //# sourceMappingURL=runtime.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/runtime/runtime.ts"],"sourcesContent":["import { getLogger } from '@noego/logger';\nimport { WoodRouter } from '../router/wood_router.cjs';\nimport { getContainer } from './get_container.cjs';\nimport { TraceProviderConfiguration, dispatchRendererTracePayload } from '../tracing/index.js';\nimport {\n getRendererLogDispatcher,\n type RendererLogDispatchResult,\n type RendererLogEntry,\n type RendererLogLevel,\n} from './renderer_log_dispatcher.js';\n\nconst logger = getLogger('wood:runtime');\n\ntype IpcMainLike = {\n handle: (channel: string, handler: (_event: unknown, data: unknown) => Promise<unknown> | unknown) => void;\n removeHandler?: (channel: string) => void;\n};\n\nexport interface RegisterRuntimeRouter {\n registerController(name: string, cls: any): void;\n loadOperations(operations: Map<string, any>): void;\n}\n\nexport interface RuntimeOptions {\n ipcMain: IpcMainLike;\n registerRuntime: (router: RegisterRuntimeRouter) => void;\n container?: any;\n controllersDir: string;\n middlewareDir: string;\n mode?: 'bundled' | 'dev';\n enableRendererLogBridge?: boolean;\n enableRendererTraceBridge?: boolean;\n onLoad?: (data: unknown, event?: unknown) => Promise<unknown>;\n onNavigate?: (data: unknown, event?: unknown) => Promise<unknown>;\n onWindow?: (data: unknown, event?: unknown) => Promise<unknown>;\n onDebug?: (data: unknown, event?: unknown) => Promise<unknown>;\n onContextMenu?: (data: unknown, event?: unknown) => Promise<unknown>;\n}\n\nexport interface RuntimeResult {\n router: WoodRouter;\n}\n\ntype RendererLogPayload = {\n level: string;\n logger: string;\n message: string;\n context?: unknown;\n};\n\ntype IpcInvokeEventLike = {\n sender?: {\n id?: number;\n };\n};\n\nfunction normalizeRendererLogLevel(level: unknown): RendererLogLevel {\n if (level === 'debug' || level === 'warn' || level === 'error') {\n return level;\n }\n return 'info';\n}\n\nfunction coerceRendererLogPayload(\n rawPayload: unknown,\n event: unknown,\n): RendererLogEntry {\n const payload = (rawPayload ?? {}) as Partial<RendererLogPayload>;\n const ipcEvent = event as IpcInvokeEventLike;\n\n return {\n level: normalizeRendererLogLevel(payload.level),\n logger: typeof payload.logger === 'string' && payload.logger.trim().length > 0\n ? payload.logger\n : 'renderer',\n message: typeof payload.message === 'string' ? payload.message : '',\n context: payload.context,\n timestamp: new Date().toISOString(),\n senderId: typeof ipcEvent?.sender?.id === 'number' ? ipcEvent.sender.id : null,\n };\n}\n\n/**\n * Boot a bundled-safe Wood runtime using pre-generated static runtime artifacts.\n */\nexport async function runtime(options: RuntimeOptions): Promise<RuntimeResult> {\n const {\n ipcMain,\n registerRuntime,\n controllersDir,\n middlewareDir,\n mode = 'bundled',\n enableRendererLogBridge = true,\n enableRendererTraceBridge = true,\n } = options;\n\n const container = options.container ?? getContainer();\n\n logger.info('runtime start', {\n mode,\n hasProvidedContainer: !!options.container,\n controllersDir,\n middlewareDir,\n enableRendererLogBridge,\n enableRendererTraceBridge,\n });\n\n if (typeof container.instance === 'function') {\n const traceConfiguration = await container.instance(TraceProviderConfiguration);\n traceConfiguration.configureRuntime('main');\n }\n\n const router = new WoodRouter({\n container,\n controllersDir,\n middlewareDir,\n mode,\n });\n\n registerRuntime(router);\n logger.info('runtime registration complete');\n\n router.validateControllers();\n logger.info('runtime controller validation complete');\n\n router.registerReservedHandler('__load', async (data, event) => {\n if (!options.onLoad) {\n throw new Error('Reserved channel \"__load\" not configured. Provide runtime({ onLoad }).');\n }\n return options.onLoad(data, event);\n });\n\n router.registerReservedHandler('__navigate', async (data, event) => {\n if (!options.onNavigate) {\n throw new Error('Reserved channel \"__navigate\" not configured. Provide runtime({ onNavigate }).');\n }\n return options.onNavigate(data, event);\n });\n\n router.registerReservedHandler('__window', async (data, event) => {\n if (!options.onWindow) {\n throw new Error('Reserved channel \"__window\" not configured. Provide runtime({ onWindow }).');\n }\n return options.onWindow(data, event);\n });\n\n router.registerReservedHandler('__debug', async (data, event) => {\n if (!options.onDebug) {\n throw new Error('Reserved channel \"__debug\" not configured. Provide runtime({ onDebug }).');\n }\n return options.onDebug(data, event);\n });\n\n router.registerReservedHandler('__contextMenu', async (data, event) => {\n if (!options.onContextMenu) {\n throw new Error('Reserved channel \"__contextMenu\" not configured. Provide runtime({ onContextMenu }).');\n }\n return options.onContextMenu(data, event);\n });\n\n if (enableRendererLogBridge) {\n registerRendererLogBridge(ipcMain);\n }\n\n if (enableRendererTraceBridge) {\n registerRendererTraceBridge(ipcMain);\n }\n\n router.registerIpcHandlers(ipcMain);\n logger.info('runtime ipc handlers registered', {\n channelCount: router.getChannels().length,\n enableRendererLogBridge,\n enableRendererTraceBridge,\n });\n\n return { router };\n}\n\nfunction registerRendererTraceBridge(ipcMain: IpcMainLike): void {\n if (typeof ipcMain.removeHandler === 'function') {\n ipcMain.removeHandler('__trace');\n }\n\n ipcMain.handle('__trace', async (_event, rawPayload) => {\n return dispatchRendererTracePayload(rawPayload);\n });\n\n logger.info('renderer trace bridge registered');\n}\n\nfunction registerRendererLogBridge(ipcMain: IpcMainLike): void {\n const dispatcher = getRendererLogDispatcher();\n\n if (typeof ipcMain.removeHandler === 'function') {\n ipcMain.removeHandler('__log');\n }\n\n ipcMain.handle('__log', async (event, rawPayload) => {\n const entry = coerceRendererLogPayload(rawPayload, event);\n const result = await dispatcher.dispatch(entry) as RendererLogDispatchResult;\n if (!result.ok) {\n logger.warn('renderer log callback failed', {\n logger: entry.logger,\n messageLength: entry.message.length,\n reason: result.reason ?? null,\n errorMessage: result.errorMessage ?? null,\n });\n }\n return result;\n });\n\n logger.info('renderer log bridge registered');\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,35 @@
1
+ import { WoodRouter } from '../router/wood_router.cjs';
2
+ import '../types/operations.cjs';
3
+
4
+ type IpcMainLike = {
5
+ handle: (channel: string, handler: (_event: unknown, data: unknown) => Promise<unknown> | unknown) => void;
6
+ removeHandler?: (channel: string) => void;
7
+ };
8
+ interface RegisterRuntimeRouter {
9
+ registerController(name: string, cls: any): void;
10
+ loadOperations(operations: Map<string, any>): void;
11
+ }
12
+ interface RuntimeOptions {
13
+ ipcMain: IpcMainLike;
14
+ registerRuntime: (router: RegisterRuntimeRouter) => void;
15
+ container?: any;
16
+ controllersDir: string;
17
+ middlewareDir: string;
18
+ mode?: 'bundled' | 'dev';
19
+ enableRendererLogBridge?: boolean;
20
+ enableRendererTraceBridge?: boolean;
21
+ onLoad?: (data: unknown, event?: unknown) => Promise<unknown>;
22
+ onNavigate?: (data: unknown, event?: unknown) => Promise<unknown>;
23
+ onWindow?: (data: unknown, event?: unknown) => Promise<unknown>;
24
+ onDebug?: (data: unknown, event?: unknown) => Promise<unknown>;
25
+ onContextMenu?: (data: unknown, event?: unknown) => Promise<unknown>;
26
+ }
27
+ interface RuntimeResult {
28
+ router: WoodRouter;
29
+ }
30
+ /**
31
+ * Boot a bundled-safe Wood runtime using pre-generated static runtime artifacts.
32
+ */
33
+ declare function runtime(options: RuntimeOptions): Promise<RuntimeResult>;
34
+
35
+ export { type RegisterRuntimeRouter, type RuntimeOptions, type RuntimeResult, runtime };
@@ -0,0 +1,35 @@
1
+ import { WoodRouter } from '../router/wood_router.js';
2
+ import '../types/operations.js';
3
+
4
+ type IpcMainLike = {
5
+ handle: (channel: string, handler: (_event: unknown, data: unknown) => Promise<unknown> | unknown) => void;
6
+ removeHandler?: (channel: string) => void;
7
+ };
8
+ interface RegisterRuntimeRouter {
9
+ registerController(name: string, cls: any): void;
10
+ loadOperations(operations: Map<string, any>): void;
11
+ }
12
+ interface RuntimeOptions {
13
+ ipcMain: IpcMainLike;
14
+ registerRuntime: (router: RegisterRuntimeRouter) => void;
15
+ container?: any;
16
+ controllersDir: string;
17
+ middlewareDir: string;
18
+ mode?: 'bundled' | 'dev';
19
+ enableRendererLogBridge?: boolean;
20
+ enableRendererTraceBridge?: boolean;
21
+ onLoad?: (data: unknown, event?: unknown) => Promise<unknown>;
22
+ onNavigate?: (data: unknown, event?: unknown) => Promise<unknown>;
23
+ onWindow?: (data: unknown, event?: unknown) => Promise<unknown>;
24
+ onDebug?: (data: unknown, event?: unknown) => Promise<unknown>;
25
+ onContextMenu?: (data: unknown, event?: unknown) => Promise<unknown>;
26
+ }
27
+ interface RuntimeResult {
28
+ router: WoodRouter;
29
+ }
30
+ /**
31
+ * Boot a bundled-safe Wood runtime using pre-generated static runtime artifacts.
32
+ */
33
+ declare function runtime(options: RuntimeOptions): Promise<RuntimeResult>;
34
+
35
+ export { type RegisterRuntimeRouter, type RuntimeOptions, type RuntimeResult, runtime };
@@ -0,0 +1,136 @@
1
+ import { getLogger } from "@noego/logger";
2
+ import { WoodRouter } from "../router/wood_router.js";
3
+ import { getContainer } from "./get_container.js";
4
+ import { TraceProviderConfiguration, dispatchRendererTracePayload } from "../tracing/index.js";
5
+ import {
6
+ getRendererLogDispatcher
7
+ } from "./renderer_log_dispatcher.js";
8
+ const logger = getLogger("wood:runtime");
9
+ function normalizeRendererLogLevel(level) {
10
+ if (level === "debug" || level === "warn" || level === "error") {
11
+ return level;
12
+ }
13
+ return "info";
14
+ }
15
+ function coerceRendererLogPayload(rawPayload, event) {
16
+ const payload = rawPayload ?? {};
17
+ const ipcEvent = event;
18
+ return {
19
+ level: normalizeRendererLogLevel(payload.level),
20
+ logger: typeof payload.logger === "string" && payload.logger.trim().length > 0 ? payload.logger : "renderer",
21
+ message: typeof payload.message === "string" ? payload.message : "",
22
+ context: payload.context,
23
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
24
+ senderId: typeof ipcEvent?.sender?.id === "number" ? ipcEvent.sender.id : null
25
+ };
26
+ }
27
+ async function runtime(options) {
28
+ const {
29
+ ipcMain,
30
+ registerRuntime,
31
+ controllersDir,
32
+ middlewareDir,
33
+ mode = "bundled",
34
+ enableRendererLogBridge = true,
35
+ enableRendererTraceBridge = true
36
+ } = options;
37
+ const container = options.container ?? getContainer();
38
+ logger.info("runtime start", {
39
+ mode,
40
+ hasProvidedContainer: !!options.container,
41
+ controllersDir,
42
+ middlewareDir,
43
+ enableRendererLogBridge,
44
+ enableRendererTraceBridge
45
+ });
46
+ if (typeof container.instance === "function") {
47
+ const traceConfiguration = await container.instance(TraceProviderConfiguration);
48
+ traceConfiguration.configureRuntime("main");
49
+ }
50
+ const router = new WoodRouter({
51
+ container,
52
+ controllersDir,
53
+ middlewareDir,
54
+ mode
55
+ });
56
+ registerRuntime(router);
57
+ logger.info("runtime registration complete");
58
+ router.validateControllers();
59
+ logger.info("runtime controller validation complete");
60
+ router.registerReservedHandler("__load", async (data, event) => {
61
+ if (!options.onLoad) {
62
+ throw new Error('Reserved channel "__load" not configured. Provide runtime({ onLoad }).');
63
+ }
64
+ return options.onLoad(data, event);
65
+ });
66
+ router.registerReservedHandler("__navigate", async (data, event) => {
67
+ if (!options.onNavigate) {
68
+ throw new Error('Reserved channel "__navigate" not configured. Provide runtime({ onNavigate }).');
69
+ }
70
+ return options.onNavigate(data, event);
71
+ });
72
+ router.registerReservedHandler("__window", async (data, event) => {
73
+ if (!options.onWindow) {
74
+ throw new Error('Reserved channel "__window" not configured. Provide runtime({ onWindow }).');
75
+ }
76
+ return options.onWindow(data, event);
77
+ });
78
+ router.registerReservedHandler("__debug", async (data, event) => {
79
+ if (!options.onDebug) {
80
+ throw new Error('Reserved channel "__debug" not configured. Provide runtime({ onDebug }).');
81
+ }
82
+ return options.onDebug(data, event);
83
+ });
84
+ router.registerReservedHandler("__contextMenu", async (data, event) => {
85
+ if (!options.onContextMenu) {
86
+ throw new Error('Reserved channel "__contextMenu" not configured. Provide runtime({ onContextMenu }).');
87
+ }
88
+ return options.onContextMenu(data, event);
89
+ });
90
+ if (enableRendererLogBridge) {
91
+ registerRendererLogBridge(ipcMain);
92
+ }
93
+ if (enableRendererTraceBridge) {
94
+ registerRendererTraceBridge(ipcMain);
95
+ }
96
+ router.registerIpcHandlers(ipcMain);
97
+ logger.info("runtime ipc handlers registered", {
98
+ channelCount: router.getChannels().length,
99
+ enableRendererLogBridge,
100
+ enableRendererTraceBridge
101
+ });
102
+ return { router };
103
+ }
104
+ function registerRendererTraceBridge(ipcMain) {
105
+ if (typeof ipcMain.removeHandler === "function") {
106
+ ipcMain.removeHandler("__trace");
107
+ }
108
+ ipcMain.handle("__trace", async (_event, rawPayload) => {
109
+ return dispatchRendererTracePayload(rawPayload);
110
+ });
111
+ logger.info("renderer trace bridge registered");
112
+ }
113
+ function registerRendererLogBridge(ipcMain) {
114
+ const dispatcher = getRendererLogDispatcher();
115
+ if (typeof ipcMain.removeHandler === "function") {
116
+ ipcMain.removeHandler("__log");
117
+ }
118
+ ipcMain.handle("__log", async (event, rawPayload) => {
119
+ const entry = coerceRendererLogPayload(rawPayload, event);
120
+ const result = await dispatcher.dispatch(entry);
121
+ if (!result.ok) {
122
+ logger.warn("renderer log callback failed", {
123
+ logger: entry.logger,
124
+ messageLength: entry.message.length,
125
+ reason: result.reason ?? null,
126
+ errorMessage: result.errorMessage ?? null
127
+ });
128
+ }
129
+ return result;
130
+ });
131
+ logger.info("renderer log bridge registered");
132
+ }
133
+ export {
134
+ runtime
135
+ };
136
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/runtime/runtime.ts"],"sourcesContent":["import { getLogger } from '@noego/logger';\nimport { WoodRouter } from '../router/wood_router.js';\nimport { getContainer } from './get_container.js';\nimport { TraceProviderConfiguration, dispatchRendererTracePayload } from '../tracing/index.js';\nimport {\n getRendererLogDispatcher,\n type RendererLogDispatchResult,\n type RendererLogEntry,\n type RendererLogLevel,\n} from './renderer_log_dispatcher.js';\n\nconst logger = getLogger('wood:runtime');\n\ntype IpcMainLike = {\n handle: (channel: string, handler: (_event: unknown, data: unknown) => Promise<unknown> | unknown) => void;\n removeHandler?: (channel: string) => void;\n};\n\nexport interface RegisterRuntimeRouter {\n registerController(name: string, cls: any): void;\n loadOperations(operations: Map<string, any>): void;\n}\n\nexport interface RuntimeOptions {\n ipcMain: IpcMainLike;\n registerRuntime: (router: RegisterRuntimeRouter) => void;\n container?: any;\n controllersDir: string;\n middlewareDir: string;\n mode?: 'bundled' | 'dev';\n enableRendererLogBridge?: boolean;\n enableRendererTraceBridge?: boolean;\n onLoad?: (data: unknown, event?: unknown) => Promise<unknown>;\n onNavigate?: (data: unknown, event?: unknown) => Promise<unknown>;\n onWindow?: (data: unknown, event?: unknown) => Promise<unknown>;\n onDebug?: (data: unknown, event?: unknown) => Promise<unknown>;\n onContextMenu?: (data: unknown, event?: unknown) => Promise<unknown>;\n}\n\nexport interface RuntimeResult {\n router: WoodRouter;\n}\n\ntype RendererLogPayload = {\n level: string;\n logger: string;\n message: string;\n context?: unknown;\n};\n\ntype IpcInvokeEventLike = {\n sender?: {\n id?: number;\n };\n};\n\nfunction normalizeRendererLogLevel(level: unknown): RendererLogLevel {\n if (level === 'debug' || level === 'warn' || level === 'error') {\n return level;\n }\n return 'info';\n}\n\nfunction coerceRendererLogPayload(\n rawPayload: unknown,\n event: unknown,\n): RendererLogEntry {\n const payload = (rawPayload ?? {}) as Partial<RendererLogPayload>;\n const ipcEvent = event as IpcInvokeEventLike;\n\n return {\n level: normalizeRendererLogLevel(payload.level),\n logger: typeof payload.logger === 'string' && payload.logger.trim().length > 0\n ? payload.logger\n : 'renderer',\n message: typeof payload.message === 'string' ? payload.message : '',\n context: payload.context,\n timestamp: new Date().toISOString(),\n senderId: typeof ipcEvent?.sender?.id === 'number' ? ipcEvent.sender.id : null,\n };\n}\n\n/**\n * Boot a bundled-safe Wood runtime using pre-generated static runtime artifacts.\n */\nexport async function runtime(options: RuntimeOptions): Promise<RuntimeResult> {\n const {\n ipcMain,\n registerRuntime,\n controllersDir,\n middlewareDir,\n mode = 'bundled',\n enableRendererLogBridge = true,\n enableRendererTraceBridge = true,\n } = options;\n\n const container = options.container ?? getContainer();\n\n logger.info('runtime start', {\n mode,\n hasProvidedContainer: !!options.container,\n controllersDir,\n middlewareDir,\n enableRendererLogBridge,\n enableRendererTraceBridge,\n });\n\n if (typeof container.instance === 'function') {\n const traceConfiguration = await container.instance(TraceProviderConfiguration);\n traceConfiguration.configureRuntime('main');\n }\n\n const router = new WoodRouter({\n container,\n controllersDir,\n middlewareDir,\n mode,\n });\n\n registerRuntime(router);\n logger.info('runtime registration complete');\n\n router.validateControllers();\n logger.info('runtime controller validation complete');\n\n router.registerReservedHandler('__load', async (data, event) => {\n if (!options.onLoad) {\n throw new Error('Reserved channel \"__load\" not configured. Provide runtime({ onLoad }).');\n }\n return options.onLoad(data, event);\n });\n\n router.registerReservedHandler('__navigate', async (data, event) => {\n if (!options.onNavigate) {\n throw new Error('Reserved channel \"__navigate\" not configured. Provide runtime({ onNavigate }).');\n }\n return options.onNavigate(data, event);\n });\n\n router.registerReservedHandler('__window', async (data, event) => {\n if (!options.onWindow) {\n throw new Error('Reserved channel \"__window\" not configured. Provide runtime({ onWindow }).');\n }\n return options.onWindow(data, event);\n });\n\n router.registerReservedHandler('__debug', async (data, event) => {\n if (!options.onDebug) {\n throw new Error('Reserved channel \"__debug\" not configured. Provide runtime({ onDebug }).');\n }\n return options.onDebug(data, event);\n });\n\n router.registerReservedHandler('__contextMenu', async (data, event) => {\n if (!options.onContextMenu) {\n throw new Error('Reserved channel \"__contextMenu\" not configured. Provide runtime({ onContextMenu }).');\n }\n return options.onContextMenu(data, event);\n });\n\n if (enableRendererLogBridge) {\n registerRendererLogBridge(ipcMain);\n }\n\n if (enableRendererTraceBridge) {\n registerRendererTraceBridge(ipcMain);\n }\n\n router.registerIpcHandlers(ipcMain);\n logger.info('runtime ipc handlers registered', {\n channelCount: router.getChannels().length,\n enableRendererLogBridge,\n enableRendererTraceBridge,\n });\n\n return { router };\n}\n\nfunction registerRendererTraceBridge(ipcMain: IpcMainLike): void {\n if (typeof ipcMain.removeHandler === 'function') {\n ipcMain.removeHandler('__trace');\n }\n\n ipcMain.handle('__trace', async (_event, rawPayload) => {\n return dispatchRendererTracePayload(rawPayload);\n });\n\n logger.info('renderer trace bridge registered');\n}\n\nfunction registerRendererLogBridge(ipcMain: IpcMainLike): void {\n const dispatcher = getRendererLogDispatcher();\n\n if (typeof ipcMain.removeHandler === 'function') {\n ipcMain.removeHandler('__log');\n }\n\n ipcMain.handle('__log', async (event, rawPayload) => {\n const entry = coerceRendererLogPayload(rawPayload, event);\n const result = await dispatcher.dispatch(entry) as RendererLogDispatchResult;\n if (!result.ok) {\n logger.warn('renderer log callback failed', {\n logger: entry.logger,\n messageLength: entry.message.length,\n reason: result.reason ?? null,\n errorMessage: result.errorMessage ?? null,\n });\n }\n return result;\n });\n\n logger.info('renderer log bridge registered');\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,39 @@
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 allow_cli_exports = {};
20
+ __export(allow_cli_exports, {
21
+ StickCLIRequiredError: () => StickCLIRequiredError
22
+ });
23
+ module.exports = __toCommonJS(allow_cli_exports);
24
+ class StickCLIRequiredError extends Error {
25
+ constructor() {
26
+ super(
27
+ 'This file must be run with the stick CLI, not directly with tsx/node.\n\nUsage:\n npx stick your-file.stick.ts\n npx stick "**/*.stick.ts"\n\nThe stick CLI provides the necessary Svelte loader for rendering components.'
28
+ );
29
+ this.name = "StickCLIRequiredError";
30
+ }
31
+ }
32
+ if (!process.env.STICK_CLI) {
33
+ throw new StickCLIRequiredError();
34
+ }
35
+ // Annotate the CommonJS export names for ESM import in node:
36
+ 0 && (module.exports = {
37
+ StickCLIRequiredError
38
+ });
39
+ //# sourceMappingURL=allow_cli.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/stick/allow_cli.ts"],"sourcesContent":["export class StickCLIRequiredError extends Error {\n name = 'StickCLIRequiredError' as const;\n constructor() {\n super(\n 'This file must be run with the stick CLI, not directly with tsx/node.\\n\\n' +\n 'Usage:\\n' +\n ' npx stick your-file.stick.ts\\n' +\n ' npx stick \"**/*.stick.ts\"\\n\\n' +\n 'The stick CLI provides the necessary Svelte loader for rendering components.'\n );\n }\n}\n\n//We need to throw on import so that this crashes right away\nif (!process.env.STICK_CLI) {\n throw new StickCLIRequiredError();\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,8BAA8B,MAAM;AAAA,EAE/C,cAAc;AACZ;AAAA,MACE;AAAA,IAKF;AARF,gBAAO;AAAA,EASP;AACF;AAGA,IAAI,CAAC,QAAQ,IAAI,WAAW;AACxB,QAAM,IAAI,sBAAsB;AACpC;","names":[]}
@@ -0,0 +1,6 @@
1
+ declare class StickCLIRequiredError extends Error {
2
+ name: "StickCLIRequiredError";
3
+ constructor();
4
+ }
5
+
6
+ export { StickCLIRequiredError };
@@ -0,0 +1,6 @@
1
+ declare class StickCLIRequiredError extends Error {
2
+ name: "StickCLIRequiredError";
3
+ constructor();
4
+ }
5
+
6
+ export { StickCLIRequiredError };
@@ -0,0 +1,15 @@
1
+ class StickCLIRequiredError extends Error {
2
+ constructor() {
3
+ super(
4
+ 'This file must be run with the stick CLI, not directly with tsx/node.\n\nUsage:\n npx stick your-file.stick.ts\n npx stick "**/*.stick.ts"\n\nThe stick CLI provides the necessary Svelte loader for rendering components.'
5
+ );
6
+ this.name = "StickCLIRequiredError";
7
+ }
8
+ }
9
+ if (!process.env.STICK_CLI) {
10
+ throw new StickCLIRequiredError();
11
+ }
12
+ export {
13
+ StickCLIRequiredError
14
+ };
15
+ //# sourceMappingURL=allow_cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/stick/allow_cli.ts"],"sourcesContent":["export class StickCLIRequiredError extends Error {\n name = 'StickCLIRequiredError' as const;\n constructor() {\n super(\n 'This file must be run with the stick CLI, not directly with tsx/node.\\n\\n' +\n 'Usage:\\n' +\n ' npx stick your-file.stick.ts\\n' +\n ' npx stick \"**/*.stick.ts\"\\n\\n' +\n 'The stick CLI provides the necessary Svelte loader for rendering components.'\n );\n }\n}\n\n//We need to throw on import so that this crashes right away\nif (!process.env.STICK_CLI) {\n throw new StickCLIRequiredError();\n}\n"],"mappings":"AAAO,MAAM,8BAA8B,MAAM;AAAA,EAE/C,cAAc;AACZ;AAAA,MACE;AAAA,IAKF;AARF,gBAAO;AAAA,EASP;AACF;AAGA,IAAI,CAAC,QAAQ,IAAI,WAAW;AACxB,QAAM,IAAI,sBAAsB;AACpC;","names":[]}