@nifrajs/web 3.5.0 → 4.0.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 (390) hide show
  1. package/dist/backend-only.d.ts +15 -0
  2. package/dist/backend-only.d.ts.map +1 -0
  3. package/dist/backend-only.js +16 -0
  4. package/dist/backend-only.js.map +1 -0
  5. package/dist/boundary.d.ts +5 -0
  6. package/dist/boundary.d.ts.map +1 -1
  7. package/dist/boundary.js +11 -2
  8. package/dist/boundary.js.map +1 -1
  9. package/dist/build-plan.d.ts +18 -6
  10. package/dist/build-plan.d.ts.map +1 -1
  11. package/dist/build-plan.js +82 -34
  12. package/dist/build-plan.js.map +1 -1
  13. package/dist/build-vite.d.ts +4 -0
  14. package/dist/build-vite.d.ts.map +1 -1
  15. package/dist/build-vite.js +68 -13
  16. package/dist/build-vite.js.map +1 -1
  17. package/dist/build.d.ts +57 -23
  18. package/dist/build.d.ts.map +1 -1
  19. package/dist/build.js +356 -85
  20. package/dist/build.js.map +1 -1
  21. package/dist/bun-dev-entry.d.ts +1 -1
  22. package/dist/bun-dev-entry.js +1 -1
  23. package/dist/cdn.d.ts +74 -0
  24. package/dist/cdn.d.ts.map +1 -0
  25. package/dist/cdn.js +132 -0
  26. package/dist/cdn.js.map +1 -0
  27. package/dist/client.d.ts +3 -1
  28. package/dist/client.d.ts.map +1 -1
  29. package/dist/client.js +111 -15
  30. package/dist/client.js.map +1 -1
  31. package/dist/conformance.d.ts +4 -3
  32. package/dist/conformance.d.ts.map +1 -1
  33. package/dist/conformance.js +12 -3
  34. package/dist/conformance.js.map +1 -1
  35. package/dist/csp.d.ts +93 -0
  36. package/dist/csp.d.ts.map +1 -0
  37. package/dist/csp.js +122 -0
  38. package/dist/csp.js.map +1 -0
  39. package/dist/dev-client.d.ts +76 -0
  40. package/dist/dev-client.d.ts.map +1 -0
  41. package/dist/dev-client.js +280 -0
  42. package/dist/dev-client.js.map +1 -0
  43. package/dist/dev-diagnostics.d.ts +26 -2
  44. package/dist/dev-diagnostics.d.ts.map +1 -1
  45. package/dist/dev-diagnostics.js +38 -7
  46. package/dist/dev-diagnostics.js.map +1 -1
  47. package/dist/dev-error.d.ts +4 -13
  48. package/dist/dev-error.d.ts.map +1 -1
  49. package/dist/dev-error.js +46 -4
  50. package/dist/dev-error.js.map +1 -1
  51. package/dist/dev-feed.d.ts +298 -0
  52. package/dist/dev-feed.d.ts.map +1 -0
  53. package/dist/dev-feed.js +797 -0
  54. package/dist/dev-feed.js.map +1 -0
  55. package/dist/dev-indicator.d.ts +38 -0
  56. package/dist/dev-indicator.d.ts.map +1 -0
  57. package/dist/dev-indicator.js +93 -0
  58. package/dist/dev-indicator.js.map +1 -0
  59. package/dist/dev-session.d.ts +77 -0
  60. package/dist/dev-session.d.ts.map +1 -0
  61. package/dist/dev-session.js +580 -0
  62. package/dist/dev-session.js.map +1 -0
  63. package/dist/dev-sourcemap.d.ts +27 -0
  64. package/dist/dev-sourcemap.d.ts.map +1 -0
  65. package/dist/dev-sourcemap.js +235 -0
  66. package/dist/dev-sourcemap.js.map +1 -0
  67. package/dist/dev-ssr-graph.d.ts.map +1 -1
  68. package/dist/dev-ssr-graph.js +13 -5
  69. package/dist/dev-ssr-graph.js.map +1 -1
  70. package/dist/dev.d.ts +15 -2
  71. package/dist/dev.d.ts.map +1 -1
  72. package/dist/dev.js +69 -44
  73. package/dist/dev.js.map +1 -1
  74. package/dist/diagnostic-catalog.d.ts +35 -0
  75. package/dist/diagnostic-catalog.d.ts.map +1 -0
  76. package/dist/diagnostic-catalog.js +203 -0
  77. package/dist/diagnostic-catalog.js.map +1 -0
  78. package/dist/diagnostic-prompt.d.ts +49 -0
  79. package/dist/diagnostic-prompt.d.ts.map +1 -0
  80. package/dist/diagnostic-prompt.js +303 -0
  81. package/dist/diagnostic-prompt.js.map +1 -0
  82. package/dist/diagnostic.d.ts +17 -23
  83. package/dist/diagnostic.d.ts.map +1 -1
  84. package/dist/diagnostic.js +31 -39
  85. package/dist/diagnostic.js.map +1 -1
  86. package/dist/draft.d.ts.map +1 -1
  87. package/dist/draft.js +4 -1
  88. package/dist/draft.js.map +1 -1
  89. package/dist/fn.d.ts +5 -0
  90. package/dist/fn.d.ts.map +1 -1
  91. package/dist/fn.js +13 -3
  92. package/dist/fn.js.map +1 -1
  93. package/dist/fs.d.ts.map +1 -1
  94. package/dist/fs.js +4 -2
  95. package/dist/fs.js.map +1 -1
  96. package/dist/index.d.ts +13 -15
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +11 -12
  99. package/dist/index.js.map +1 -1
  100. package/dist/internal/cdn/cloudflare.d.ts +48 -0
  101. package/dist/internal/cdn/cloudflare.d.ts.map +1 -0
  102. package/dist/internal/cdn/cloudflare.js +94 -0
  103. package/dist/internal/cdn/cloudflare.js.map +1 -0
  104. package/dist/internal/cdn/core.d.ts +91 -0
  105. package/dist/internal/cdn/core.d.ts.map +1 -0
  106. package/dist/internal/cdn/core.js +220 -0
  107. package/dist/internal/cdn/core.js.map +1 -0
  108. package/dist/internal/cdn/fastly.d.ts +17 -0
  109. package/dist/internal/cdn/fastly.d.ts.map +1 -0
  110. package/dist/internal/cdn/fastly.js +43 -0
  111. package/dist/internal/cdn/fastly.js.map +1 -0
  112. package/dist/internal/cdn/vercel.d.ts +31 -0
  113. package/dist/internal/cdn/vercel.d.ts.map +1 -0
  114. package/dist/internal/cdn/vercel.js +56 -0
  115. package/dist/internal/cdn/vercel.js.map +1 -0
  116. package/dist/internal/code-unit-order.d.ts +4 -0
  117. package/dist/internal/code-unit-order.d.ts.map +1 -0
  118. package/dist/internal/code-unit-order.js +6 -0
  119. package/dist/internal/code-unit-order.js.map +1 -0
  120. package/dist/internal/codegen.d.ts.map +1 -1
  121. package/dist/internal/codegen.js +141 -25
  122. package/dist/internal/codegen.js.map +1 -1
  123. package/dist/internal/dev-csp.d.ts +24 -0
  124. package/dist/internal/dev-csp.d.ts.map +1 -0
  125. package/dist/internal/dev-csp.js +160 -0
  126. package/dist/internal/dev-csp.js.map +1 -0
  127. package/dist/internal/dev-reserved.d.ts +25 -0
  128. package/dist/internal/dev-reserved.d.ts.map +1 -0
  129. package/dist/internal/dev-reserved.js +39 -0
  130. package/dist/internal/dev-reserved.js.map +1 -0
  131. package/dist/internal/html-spans.d.ts +10 -0
  132. package/dist/internal/html-spans.d.ts.map +1 -0
  133. package/dist/internal/html-spans.js +46 -0
  134. package/dist/internal/html-spans.js.map +1 -0
  135. package/dist/internal/loading-runtime.d.ts +44 -0
  136. package/dist/internal/loading-runtime.d.ts.map +1 -0
  137. package/dist/internal/loading-runtime.js +206 -0
  138. package/dist/internal/loading-runtime.js.map +1 -0
  139. package/dist/internal/matches-runtime.d.ts +8 -0
  140. package/dist/internal/matches-runtime.d.ts.map +1 -0
  141. package/dist/internal/matches-runtime.js +61 -0
  142. package/dist/internal/matches-runtime.js.map +1 -0
  143. package/dist/internal/mount-shadow.d.ts +36 -0
  144. package/dist/internal/mount-shadow.d.ts.map +1 -0
  145. package/dist/internal/mount-shadow.js +65 -0
  146. package/dist/internal/mount-shadow.js.map +1 -0
  147. package/dist/internal/node-builtins.d.ts +3 -0
  148. package/dist/internal/node-builtins.d.ts.map +1 -0
  149. package/dist/internal/node-builtins.js +79 -0
  150. package/dist/internal/node-builtins.js.map +1 -0
  151. package/dist/internal/output-guard.d.ts +65 -0
  152. package/dist/internal/output-guard.d.ts.map +1 -0
  153. package/dist/internal/output-guard.js +630 -0
  154. package/dist/internal/output-guard.js.map +1 -0
  155. package/dist/internal/page-execution.d.ts +20 -8
  156. package/dist/internal/page-execution.d.ts.map +1 -1
  157. package/dist/internal/page-execution.js +571 -105
  158. package/dist/internal/page-execution.js.map +1 -1
  159. package/dist/internal/parity.d.ts +21 -0
  160. package/dist/internal/parity.d.ts.map +1 -1
  161. package/dist/internal/parity.js +104 -22
  162. package/dist/internal/parity.js.map +1 -1
  163. package/dist/internal/private-env.d.ts +12 -0
  164. package/dist/internal/private-env.d.ts.map +1 -0
  165. package/dist/internal/private-env.js +335 -0
  166. package/dist/internal/private-env.js.map +1 -0
  167. package/dist/internal/public-url.d.ts +3 -0
  168. package/dist/internal/public-url.d.ts.map +1 -0
  169. package/dist/internal/public-url.js +18 -0
  170. package/dist/internal/public-url.js.map +1 -0
  171. package/dist/internal/render-document.d.ts +25 -19
  172. package/dist/internal/render-document.d.ts.map +1 -1
  173. package/dist/internal/render-document.js +77 -61
  174. package/dist/internal/render-document.js.map +1 -1
  175. package/dist/internal/response-controls.d.ts +75 -0
  176. package/dist/internal/response-controls.d.ts.map +1 -0
  177. package/dist/internal/response-controls.js +256 -0
  178. package/dist/internal/response-controls.js.map +1 -0
  179. package/dist/internal/runtime-contract.d.ts +11 -16
  180. package/dist/internal/runtime-contract.d.ts.map +1 -1
  181. package/dist/internal/runtime-contract.js.map +1 -1
  182. package/dist/internal/secret-scan.d.ts +104 -0
  183. package/dist/internal/secret-scan.d.ts.map +1 -0
  184. package/dist/internal/secret-scan.js +485 -0
  185. package/dist/internal/secret-scan.js.map +1 -0
  186. package/dist/internal/server-boundary.d.ts +6 -29
  187. package/dist/internal/server-boundary.d.ts.map +1 -1
  188. package/dist/internal/server-boundary.js +6 -66
  189. package/dist/internal/server-boundary.js.map +1 -1
  190. package/dist/internal/source-map.d.ts +47 -0
  191. package/dist/internal/source-map.d.ts.map +1 -0
  192. package/dist/internal/source-map.js +225 -0
  193. package/dist/internal/source-map.js.map +1 -0
  194. package/dist/internal/target-compat.d.ts +27 -0
  195. package/dist/internal/target-compat.d.ts.map +1 -0
  196. package/dist/internal/target-compat.js +77 -0
  197. package/dist/internal/target-compat.js.map +1 -0
  198. package/dist/internal/timing-safe-equal.d.ts +6 -0
  199. package/dist/internal/timing-safe-equal.d.ts.map +1 -1
  200. package/dist/internal/timing-safe-equal.js +10 -0
  201. package/dist/internal/timing-safe-equal.js.map +1 -1
  202. package/dist/internal/vitals-runtime.d.ts +18 -0
  203. package/dist/internal/vitals-runtime.d.ts.map +1 -0
  204. package/dist/internal/vitals-runtime.js +38 -0
  205. package/dist/internal/vitals-runtime.js.map +1 -0
  206. package/dist/internal/web-app.d.ts +38 -9
  207. package/dist/internal/web-app.d.ts.map +1 -1
  208. package/dist/internal/web-app.js +199 -59
  209. package/dist/internal/web-app.js.map +1 -1
  210. package/dist/internal/zone-graph.d.ts +89 -0
  211. package/dist/internal/zone-graph.d.ts.map +1 -0
  212. package/dist/internal/zone-graph.js +492 -0
  213. package/dist/internal/zone-graph.js.map +1 -0
  214. package/dist/isr.d.ts +83 -6
  215. package/dist/isr.d.ts.map +1 -1
  216. package/dist/isr.js +263 -36
  217. package/dist/isr.js.map +1 -1
  218. package/dist/llms-txt.d.ts.map +1 -1
  219. package/dist/llms-txt.js +31 -6
  220. package/dist/llms-txt.js.map +1 -1
  221. package/dist/manifest.d.ts +220 -13
  222. package/dist/manifest.d.ts.map +1 -1
  223. package/dist/manifest.js +386 -9
  224. package/dist/manifest.js.map +1 -1
  225. package/dist/module-graph.d.ts +26 -5
  226. package/dist/module-graph.d.ts.map +1 -1
  227. package/dist/module-graph.js +17 -7
  228. package/dist/module-graph.js.map +1 -1
  229. package/dist/navigation.d.ts +17 -3
  230. package/dist/navigation.d.ts.map +1 -1
  231. package/dist/navigation.js +11 -5
  232. package/dist/navigation.js.map +1 -1
  233. package/dist/nonce.d.ts +47 -0
  234. package/dist/nonce.d.ts.map +1 -0
  235. package/dist/nonce.js +63 -0
  236. package/dist/nonce.js.map +1 -0
  237. package/dist/plugins/css-modules.d.ts.map +1 -1
  238. package/dist/plugins/css-modules.js +4 -3
  239. package/dist/plugins/css-modules.js.map +1 -1
  240. package/dist/plugins/kit.d.ts +9 -0
  241. package/dist/plugins/kit.d.ts.map +1 -1
  242. package/dist/plugins/kit.js +18 -0
  243. package/dist/plugins/kit.js.map +1 -1
  244. package/dist/plugins/svg.d.ts +22 -3
  245. package/dist/plugins/svg.d.ts.map +1 -1
  246. package/dist/plugins/svg.js +112 -1
  247. package/dist/plugins/svg.js.map +1 -1
  248. package/dist/plugins/vite-leak-guard.d.ts +107 -3
  249. package/dist/plugins/vite-leak-guard.d.ts.map +1 -1
  250. package/dist/plugins/vite-leak-guard.js +378 -17
  251. package/dist/plugins/vite-leak-guard.js.map +1 -1
  252. package/dist/plugins/vite-zone-guard.d.ts +61 -0
  253. package/dist/plugins/vite-zone-guard.d.ts.map +1 -0
  254. package/dist/plugins/vite-zone-guard.js +208 -0
  255. package/dist/plugins/vite-zone-guard.js.map +1 -0
  256. package/dist/plugins/zone-guard.d.ts +27 -0
  257. package/dist/plugins/zone-guard.d.ts.map +1 -0
  258. package/dist/plugins/zone-guard.js +72 -0
  259. package/dist/plugins/zone-guard.js.map +1 -0
  260. package/dist/prerender.d.ts +10 -0
  261. package/dist/prerender.d.ts.map +1 -1
  262. package/dist/prerender.js +35 -3
  263. package/dist/prerender.js.map +1 -1
  264. package/dist/public-dir.d.ts +9 -0
  265. package/dist/public-dir.d.ts.map +1 -1
  266. package/dist/public-dir.js +67 -9
  267. package/dist/public-dir.js.map +1 -1
  268. package/dist/pwa-manifest.d.ts +68 -0
  269. package/dist/pwa-manifest.d.ts.map +1 -0
  270. package/dist/pwa-manifest.js +178 -0
  271. package/dist/pwa-manifest.js.map +1 -0
  272. package/dist/query.js +4 -4
  273. package/dist/query.js.map +1 -1
  274. package/dist/render-seam.d.ts +42 -2
  275. package/dist/render-seam.d.ts.map +1 -1
  276. package/dist/render-seam.js +6 -0
  277. package/dist/render-seam.js.map +1 -1
  278. package/dist/route-manifest.d.ts +3 -0
  279. package/dist/route-manifest.d.ts.map +1 -1
  280. package/dist/route-manifest.js +26 -3
  281. package/dist/route-manifest.js.map +1 -1
  282. package/dist/route-types.d.ts +24 -0
  283. package/dist/route-types.d.ts.map +1 -0
  284. package/dist/route-types.js +195 -0
  285. package/dist/route-types.js.map +1 -0
  286. package/dist/router.d.ts +28 -6
  287. package/dist/router.d.ts.map +1 -1
  288. package/dist/router.js +129 -40
  289. package/dist/router.js.map +1 -1
  290. package/dist/vitals.d.ts +33 -0
  291. package/dist/vitals.d.ts.map +1 -0
  292. package/dist/vitals.js +16 -0
  293. package/dist/vitals.js.map +1 -0
  294. package/dist/vite.d.ts +16 -1
  295. package/dist/vite.d.ts.map +1 -1
  296. package/dist/vite.js +187 -36
  297. package/dist/vite.js.map +1 -1
  298. package/dist/zones.d.ts +70 -0
  299. package/dist/zones.d.ts.map +1 -0
  300. package/dist/zones.js +365 -0
  301. package/dist/zones.js.map +1 -0
  302. package/package.json +67 -14
  303. package/src/backend-only.ts +16 -0
  304. package/src/boundary.ts +18 -5
  305. package/src/build-plan.ts +90 -35
  306. package/src/build-vite.ts +77 -11
  307. package/src/build.ts +466 -96
  308. package/src/bun-dev-entry.ts +1 -1
  309. package/src/cdn.ts +216 -0
  310. package/src/client.ts +111 -18
  311. package/src/conformance.ts +16 -3
  312. package/src/csp.ts +194 -0
  313. package/src/dev-client.ts +349 -0
  314. package/src/dev-diagnostics.ts +60 -7
  315. package/src/dev-error.ts +49 -5
  316. package/src/dev-feed.ts +1140 -0
  317. package/src/dev-indicator.ts +113 -0
  318. package/src/dev-session.ts +729 -0
  319. package/src/dev-sourcemap.ts +281 -0
  320. package/src/dev-ssr-graph.ts +16 -5
  321. package/src/dev.ts +86 -43
  322. package/src/diagnostic-catalog.ts +243 -0
  323. package/src/diagnostic-prompt.ts +355 -0
  324. package/src/diagnostic.ts +63 -66
  325. package/src/draft.ts +4 -1
  326. package/src/fn.ts +19 -3
  327. package/src/fs.ts +13 -2
  328. package/src/index.ts +42 -10
  329. package/src/internal/cdn/cloudflare.ts +146 -0
  330. package/src/internal/cdn/core.ts +316 -0
  331. package/src/internal/cdn/fastly.ts +62 -0
  332. package/src/internal/cdn/vercel.ts +95 -0
  333. package/src/internal/code-unit-order.ts +5 -0
  334. package/src/internal/codegen.ts +161 -24
  335. package/src/internal/dev-csp.ts +176 -0
  336. package/src/internal/dev-reserved.ts +52 -0
  337. package/src/internal/html-spans.ts +50 -0
  338. package/src/internal/loading-runtime.ts +244 -0
  339. package/src/internal/matches-runtime.ts +62 -0
  340. package/src/internal/mount-shadow.ts +88 -0
  341. package/src/internal/node-builtins.ts +79 -0
  342. package/src/internal/output-guard.ts +701 -0
  343. package/src/internal/page-execution.ts +795 -185
  344. package/src/internal/parity.ts +150 -36
  345. package/src/internal/private-env.ts +334 -0
  346. package/src/internal/public-url.ts +22 -0
  347. package/src/internal/render-document.ts +114 -67
  348. package/src/internal/response-controls.ts +284 -0
  349. package/src/internal/runtime-contract.ts +10 -15
  350. package/src/internal/secret-scan.ts +623 -0
  351. package/src/internal/server-boundary.ts +6 -69
  352. package/src/internal/source-map.ts +256 -0
  353. package/src/internal/target-compat.ts +92 -0
  354. package/src/internal/timing-safe-equal.ts +13 -0
  355. package/src/internal/vitals-runtime.ts +53 -0
  356. package/src/internal/web-app.ts +262 -84
  357. package/src/internal/zone-graph.ts +593 -0
  358. package/src/isr.ts +325 -37
  359. package/src/llms-txt.ts +28 -4
  360. package/src/manifest.ts +670 -16
  361. package/src/module-graph.ts +53 -9
  362. package/src/navigation.ts +29 -6
  363. package/src/nonce.ts +104 -0
  364. package/src/plugins/css-modules.ts +5 -3
  365. package/src/plugins/kit.ts +24 -0
  366. package/src/plugins/svg.ts +135 -4
  367. package/src/plugins/vite-leak-guard.ts +529 -16
  368. package/src/plugins/vite-zone-guard.ts +263 -0
  369. package/src/plugins/zone-guard.ts +110 -0
  370. package/src/prerender.ts +49 -3
  371. package/src/public-dir.ts +69 -8
  372. package/src/pwa-manifest.ts +226 -0
  373. package/src/query.ts +4 -4
  374. package/src/render-seam.ts +46 -1
  375. package/src/route-manifest.ts +15 -3
  376. package/src/route-types.ts +264 -0
  377. package/src/router.ts +163 -63
  378. package/src/vitals.ts +44 -0
  379. package/src/vite.ts +207 -36
  380. package/src/zones.ts +430 -0
  381. package/dist/plugins/vite-server-only.d.ts +0 -49
  382. package/dist/plugins/vite-server-only.d.ts.map +0 -1
  383. package/dist/plugins/vite-server-only.js +0 -57
  384. package/dist/plugins/vite-server-only.js.map +0 -1
  385. package/dist/server-only.d.ts +0 -21
  386. package/dist/server-only.d.ts.map +0 -1
  387. package/dist/server-only.js +0 -25
  388. package/dist/server-only.js.map +0 -1
  389. package/src/plugins/vite-server-only.ts +0 -75
  390. package/src/server-only.ts +0 -25
@@ -0,0 +1,298 @@
1
+ import { type Diagnostic } from "./diagnostic.js";
2
+ /** Version of the HTTP + record contract between a dev server and the tools that read it. */
3
+ export declare const DEV_FEED_SCHEMA = 1;
4
+ /** The dev server's agent-facing endpoints. All live under `/__nifra/`, which no route can produce. */
5
+ export declare const DEV_FEED_PATHS: Readonly<{
6
+ identity: "/__nifra/dev";
7
+ errors: "/__nifra/errors";
8
+ logs: "/__nifra/logs";
9
+ requests: "/__nifra/requests";
10
+ clientEvent: "/__nifra/client-event";
11
+ indicator: "/__nifra/dev-indicator.js";
12
+ }>;
13
+ /** Request header carrying the agent token from the discovery record. */
14
+ export declare const DEV_TOKEN_HEADER = "x-nifra-dev-token";
15
+ /** Response header naming the request id every entry recorded during that request carries. */
16
+ export declare const DEV_REQUEST_ID_HEADER = "x-nifra-request-id";
17
+ /** Response header marking a body as dev-feed JSON (so a tool can tell it from an app route). */
18
+ export declare const DEV_FEED_HEADER = "x-nifra-dev-feed";
19
+ /** Discovery record and persisted log, relative to the project root. `.nifra/` is gitignored. */
20
+ export declare const DEV_SERVER_RECORD_FILE = ".nifra/dev-server.json";
21
+ export declare const DEV_SERVER_LOG_FILE = ".nifra/dev-server.log";
22
+ /**
23
+ * Every file the feed writes (record, its temp file, log, rotated log): what a file watcher skips. A
24
+ * RegExp, not a glob: a glob's `**` does not cross a dot-directory such as the project's own path.
25
+ */
26
+ export declare const DEV_SERVER_FILES: RegExp;
27
+ export type DevErrorCategory =
28
+ /** A failure that escaped the app entirely; the dev overlay rendered it. */
29
+ "ssr"
30
+ /** A loader, action or render failure an `_error` boundary (or a soft-nav 500) answered. */
31
+ | "page"
32
+ /** An unhandled backend route error (a bare 500). */
33
+ | "api"
34
+ /** A client bundle, leak-guard, transform or app-construction failure. */
35
+ | "build"
36
+ /** An uncaught error or rejection in a browser tab. */
37
+ | "browser"
38
+ /** A hydration mismatch reported by the browser. */
39
+ | "hydration"
40
+ /** The dev server process itself crashed. */
41
+ | "process";
42
+ export declare const DEV_ERROR_CATEGORIES: readonly DevErrorCategory[];
43
+ export type DevEntrySource = "server" | "browser";
44
+ export type DevLogLevel = "debug" | "info" | "log" | "warn" | "error";
45
+ export declare const DEV_LOG_LEVELS: readonly DevLogLevel[];
46
+ /** Narrow a string to a {@link DevLogLevel}. */
47
+ export declare function isDevLogLevel(value: unknown): value is DevLogLevel;
48
+ /** Narrow a string to a {@link DevErrorCategory}. */
49
+ export declare function isDevErrorCategory(value: unknown): value is DevErrorCategory;
50
+ export interface DevErrorEntry {
51
+ /** Sequence number of the latest occurrence; query with `since` to see only newer entries. */
52
+ readonly seq: number;
53
+ /** Stable across repeats of the same failure. */
54
+ readonly id: string;
55
+ readonly category: DevErrorCategory;
56
+ readonly source: DevEntrySource;
57
+ readonly diagnostic: Diagnostic;
58
+ readonly count: number;
59
+ readonly firstAt: string;
60
+ readonly lastAt: string;
61
+ /** The file-change generation of the latest occurrence. */
62
+ readonly generation: number;
63
+ /** True when a file changed after the latest occurrence: re-run the request to confirm it persists. */
64
+ readonly stale: boolean;
65
+ readonly requestId?: string;
66
+ /** The route pattern, when a page loader/action/render failed. */
67
+ readonly route?: string;
68
+ /** The page path a browser entry came from. */
69
+ readonly page?: string;
70
+ /** Set when a later success cleared it (build errors). */
71
+ readonly resolvedAt?: string;
72
+ }
73
+ export interface DevLogEntry {
74
+ readonly seq: number;
75
+ readonly at: string;
76
+ readonly level: DevLogLevel;
77
+ readonly source: DevEntrySource;
78
+ readonly message: string;
79
+ readonly requestId?: string;
80
+ readonly page?: string;
81
+ }
82
+ export interface DevRequestTrace {
83
+ readonly seq: number;
84
+ readonly requestId: string;
85
+ readonly method: string;
86
+ readonly path: string;
87
+ readonly at: string;
88
+ /** Undefined while the request has not produced its response yet. */
89
+ readonly status?: number;
90
+ /** Until the response started (a streamed body keeps flowing after). */
91
+ readonly durationMs?: number;
92
+ readonly bytes?: number;
93
+ readonly isr?: string;
94
+ readonly errorIds: readonly string[];
95
+ readonly logCount: number;
96
+ }
97
+ export interface DevErrorsQuery {
98
+ readonly since?: number | undefined;
99
+ readonly categories?: readonly DevErrorCategory[] | undefined;
100
+ /** Default true. */
101
+ readonly includeStale?: boolean | undefined;
102
+ /** Default false. */
103
+ readonly includeResolved?: boolean | undefined;
104
+ readonly requestId?: string | undefined;
105
+ readonly limit?: number | undefined;
106
+ }
107
+ export interface DevLogsQuery {
108
+ readonly since?: number | undefined;
109
+ readonly levels?: readonly DevLogLevel[] | undefined;
110
+ readonly source?: DevEntrySource | undefined;
111
+ readonly requestId?: string | undefined;
112
+ /** Case-insensitive substring. */
113
+ readonly grep?: string | undefined;
114
+ readonly limit?: number | undefined;
115
+ }
116
+ export interface DevRequestsQuery {
117
+ readonly since?: number | undefined;
118
+ /** Path prefix. */
119
+ readonly path?: string | undefined;
120
+ readonly requestId?: string | undefined;
121
+ readonly limit?: number | undefined;
122
+ }
123
+ interface PageInfo {
124
+ /** Highest seq in the feed: pass it back as `since` to see only what happens next. */
125
+ readonly cursor: number;
126
+ readonly generation: number;
127
+ }
128
+ export interface DevErrorsResult extends PageInfo {
129
+ readonly errors: readonly DevErrorEntry[];
130
+ }
131
+ export interface DevLogsResult extends PageInfo {
132
+ readonly logs: readonly DevLogEntry[];
133
+ /** Lines evicted from the ring since the server started. */
134
+ readonly dropped: number;
135
+ }
136
+ export interface DevRequestsResult extends PageInfo {
137
+ readonly requests: readonly DevRequestTrace[];
138
+ }
139
+ export type DevPipeline = "bun" | "vite";
140
+ /** The identity a dev server reports at {@link DEV_FEED_PATHS.identity}. */
141
+ export interface DevServerIdentity {
142
+ readonly schema: number;
143
+ readonly pid: number;
144
+ readonly port: number;
145
+ readonly pipeline: DevPipeline;
146
+ readonly root: string;
147
+ readonly startedAt: string;
148
+ readonly cursor: number;
149
+ readonly generation: number;
150
+ readonly counts: {
151
+ readonly errors: number;
152
+ readonly logs: number;
153
+ readonly requests: number;
154
+ };
155
+ }
156
+ export interface ErrorMeta {
157
+ readonly category: DevErrorCategory;
158
+ readonly source?: DevEntrySource | undefined;
159
+ readonly requestId?: string | undefined;
160
+ readonly route?: string | undefined;
161
+ readonly page?: string | undefined;
162
+ readonly request?: {
163
+ readonly method: string;
164
+ readonly url: string;
165
+ } | undefined;
166
+ }
167
+ export interface LogMeta {
168
+ readonly source?: DevEntrySource | undefined;
169
+ readonly requestId?: string | undefined;
170
+ readonly page?: string | undefined;
171
+ }
172
+ export interface DevFeedLimits {
173
+ readonly errors: number;
174
+ readonly logs: number;
175
+ readonly logBytes: number;
176
+ readonly requests: number;
177
+ readonly message: number;
178
+ readonly stack: number;
179
+ }
180
+ export declare const DEFAULT_DEV_FEED_LIMITS: DevFeedLimits;
181
+ export interface DevFeedOptions {
182
+ readonly root: string;
183
+ readonly publicEnvPrefix?: string | undefined;
184
+ /** The environment whose non-public values are redacted (default `process.env`). */
185
+ readonly env?: Readonly<Record<string, string | undefined>> | undefined;
186
+ /** Append redacted entries to {@link DEV_SERVER_LOG_FILE} (default true). */
187
+ readonly persist?: boolean | undefined;
188
+ /** Whether a file's source may appear in a codeframe. Dev servers pass the zone check. */
189
+ readonly showSource?: ((file: string) => boolean) | undefined;
190
+ readonly limits?: Partial<DevFeedLimits> | undefined;
191
+ }
192
+ export interface DevFeed {
193
+ /** Identifies this feed's requests to the process-wide capture. */
194
+ readonly id: string;
195
+ readonly root: string;
196
+ readonly generation: number;
197
+ readonly cursor: number;
198
+ recordError(error: unknown, meta: ErrorMeta): DevErrorEntry;
199
+ recordDiagnostic(diagnostic: Diagnostic, meta: ErrorMeta): DevErrorEntry;
200
+ recordLog(level: DevLogLevel, message: string, meta?: LogMeta): void;
201
+ startRequest(requestId: string, method: string, path: string): void;
202
+ finishRequest(requestId: string, response: {
203
+ readonly status: number;
204
+ readonly bytes?: number | undefined;
205
+ readonly isr?: string | undefined;
206
+ }, durationMs: number): void;
207
+ /** A watched file changed: everything recorded so far becomes stale. */
208
+ markChange(): void;
209
+ /** A later success cleared every open error of `category`. */
210
+ resolve(category: DevErrorCategory): void;
211
+ errors(query?: DevErrorsQuery): DevErrorsResult;
212
+ logs(query?: DevLogsQuery): DevLogsResult;
213
+ requests(query?: DevRequestsQuery): DevRequestsResult;
214
+ counts(): DevServerIdentity["counts"];
215
+ redact(text: string): string;
216
+ /** Flush persisted entries; the feed stays usable. */
217
+ flush(): void;
218
+ /** Flush and stop persisting. */
219
+ close(): void;
220
+ }
221
+ export interface DevRequestContext {
222
+ readonly feedId: string;
223
+ readonly requestId: string;
224
+ readonly method: string;
225
+ readonly path: string;
226
+ }
227
+ /** Run `fn` as the handling of one request: entries recorded inside it carry `ctx.requestId`. */
228
+ export declare function runWithDevRequest<T>(ctx: DevRequestContext, fn: () => T): T;
229
+ /** The request being handled on this async path, if any. */
230
+ export declare function currentDevRequest(): DevRequestContext | undefined;
231
+ /** Create the store a dev server records into. */
232
+ export declare function createDevFeed(options: DevFeedOptions): DevFeed;
233
+ /** The persisted record of a dev server that may no longer be running: newest last. */
234
+ export declare function readPersistedFeed(root: string, limit?: number): {
235
+ readonly errors: DevErrorEntry[];
236
+ readonly logs: DevLogEntry[];
237
+ };
238
+ /**
239
+ * Record a dev server process that died, from the process that supervised it (`nifra dev` re-execs the
240
+ * Bun pipeline and pipes the child's stderr). The child's own monitor never sees an unhandled rejection
241
+ * on Bun, and a native crash print bypasses the console, so the supervisor's view of stderr is the
242
+ * record that survives. Persisted only: there is no live server left to serve it.
243
+ */
244
+ export declare function recordDevCrash(root: string, exitCode: number | null, stderrTail: string): void;
245
+ /** What a running dev server writes to {@link DEV_SERVER_RECORD_FILE} so tools can find it. */
246
+ export interface DevServerRecord {
247
+ readonly schema: number;
248
+ readonly pid: number;
249
+ readonly port: number;
250
+ readonly url: string;
251
+ readonly pipeline: DevPipeline;
252
+ readonly root: string;
253
+ readonly startedAt: string;
254
+ /** Sent as {@link DEV_TOKEN_HEADER}. Only a reader of this file (mode 0600) can present it. */
255
+ readonly token: string;
256
+ }
257
+ /** A fresh 256-bit token. */
258
+ export declare function createDevToken(): string;
259
+ /** Write the record atomically (temp file + rename) and owner-only. */
260
+ export declare function writeDevServerRecord(root: string, record: DevServerRecord): void;
261
+ /** Remove the record only while it is still this server's: a newer server may have replaced it. */
262
+ export declare function removeDevServerRecord(root: string, token: string): void;
263
+ /** The record at `root`, or undefined when absent or malformed. Says nothing about liveness. */
264
+ export declare function readDevServerRecord(root: string): DevServerRecord | undefined;
265
+ /** Whether a process with `pid` exists (EPERM means it exists but is not ours). */
266
+ export declare function isProcessAlive(pid: number): boolean;
267
+ export interface CaptureSink {
268
+ /** The feed this sink records into; a line logged inside one of its requests reaches only it. */
269
+ readonly feedId: string;
270
+ line(level: DevLogLevel, message: string, request: DevRequestContext | undefined): void;
271
+ /** A structured line from core's JSON logger (`{ level, message, ... }`). */
272
+ structured?(entry: CoreLogEntry, request: DevRequestContext | undefined): void;
273
+ }
274
+ export interface CoreLogEntry {
275
+ readonly level: string;
276
+ readonly message: string;
277
+ readonly [field: string]: unknown;
278
+ }
279
+ /** Format console arguments the way the console itself would, without color. */
280
+ export declare function formatConsoleArgs(args: readonly unknown[]): string;
281
+ /** Parse a line core's default JSON logger wrote, or undefined for anything else. */
282
+ export declare function parseCoreLogLine(line: string): CoreLogEntry | undefined;
283
+ /** The thrown error core's `unhandled request error` log line describes, rebuilt for a Diagnostic. */
284
+ export declare function errorFromCoreLog(entry: CoreLogEntry): Error | undefined;
285
+ /**
286
+ * Tee the process's console and stdout/stderr into `sink`, leaving the real output untouched. Global
287
+ * and reference-counted: several dev servers (tests start many) share one patch, and the originals come
288
+ * back when the last sink detaches. Returns the detach function.
289
+ */
290
+ export declare function installCapture(sink: CaptureSink): () => void;
291
+ /**
292
+ * Record the process's console and stream output into `feed`: every line as a log entry, and core's
293
+ * `unhandled request error` line additionally as an `api` error with a full Diagnostic. The one sink
294
+ * both dev servers and `nifra_run` use. Returns the detach function.
295
+ */
296
+ export declare function captureInto(feed: DevFeed): () => void;
297
+ export {};
298
+ //# sourceMappingURL=dev-feed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-feed.d.ts","sourceRoot":"","sources":["../src/dev-feed.ts"],"names":[],"mappings":"AAiCA,OAAO,EAGL,KAAK,UAAU,EAEhB,MAAM,iBAAiB,CAAA;AAIxB,6FAA6F;AAC7F,eAAO,MAAM,eAAe,IAAI,CAAA;AAEhC,uGAAuG;AACvG,eAAO,MAAM,cAAc;;;;;;;EAOzB,CAAA;AAEF,yEAAyE;AACzE,eAAO,MAAM,gBAAgB,sBAAsB,CAAA;AACnD,8FAA8F;AAC9F,eAAO,MAAM,qBAAqB,uBAAuB,CAAA;AACzD,iGAAiG;AACjG,eAAO,MAAM,eAAe,qBAAqB,CAAA;AAEjD,iGAAiG;AACjG,eAAO,MAAM,sBAAsB,2BAA2B,CAAA;AAC9D,eAAO,MAAM,mBAAmB,0BAA0B,CAAA;AAC1D;;;GAGG;AACH,eAAO,MAAM,gBAAgB,QAAkC,CAAA;AAE/D,MAAM,MAAM,gBAAgB;AAC1B,4EAA4E;AAC1E,KAAK;AACP,4FAA4F;GAC1F,MAAM;AACR,qDAAqD;GACnD,KAAK;AACP,0EAA0E;GACxE,OAAO;AACT,uDAAuD;GACrD,SAAS;AACX,oDAAoD;GAClD,WAAW;AACb,6CAA6C;GAC3C,SAAS,CAAA;AAEb,eAAO,MAAM,oBAAoB,EAAE,SAAS,gBAAgB,EAQ3D,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAA;AACjD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAA;AACrE,eAAO,MAAM,cAAc,EAAE,SAAS,WAAW,EAA8C,CAAA;AAE/F,gDAAgD;AAChD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAElE;AAED,qDAAqD;AACrD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;AAED,MAAM,WAAW,aAAa;IAC5B,8FAA8F;IAC9F,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;IACnC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,uGAAuG;IACvG,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,wEAAwE;IACxE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,gBAAgB,EAAE,GAAG,SAAS,CAAA;IAC7D,oBAAoB;IACpB,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC3C,qBAAqB;IACrB,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,CAAA;IACpD,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,kCAAkC;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,mBAAmB;IACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACpC;AAED,UAAU,QAAQ;IAChB,sFAAsF;IACtF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AACD,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAA;CAC1C;AACD,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC7C,QAAQ,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,CAAA;IACrC,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AACD,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IACjD,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAA;CAC9C;AAED,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM,CAAA;AAExC,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAC/F;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;CACjF;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,eAAO,MAAM,uBAAuB,EAAE,aAOpC,CAAA;AAEF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7C,oFAAoF;IACpF,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;IACvE,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC,0FAA0F;IAC1F,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,CAAA;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,SAAS,CAAA;CACrD;AAED,MAAM,WAAW,OAAO;IACtB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,aAAa,CAAA;IAC3D,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,GAAG,aAAa,CAAA;IACxE,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACpE,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnE,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE;QACR,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACnC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAClC,EACD,UAAU,EAAE,MAAM,GACjB,IAAI,CAAA;IACP,wEAAwE;IACxE,UAAU,IAAI,IAAI,CAAA;IAClB,8DAA8D;IAC9D,OAAO,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAA;IACzC,MAAM,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,eAAe,CAAA;IAC/C,IAAI,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,aAAa,CAAA;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,CAAA;IACrD,MAAM,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IACrC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IAC5B,sDAAsD;IACtD,KAAK,IAAI,IAAI,CAAA;IACb,iCAAiC;IACjC,KAAK,IAAI,IAAI,CAAA;CACd;AAQD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAeD,iGAAiG;AACjG,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAE3E;AAED,4DAA4D;AAC5D,wBAAgB,iBAAiB,IAAI,iBAAiB,GAAG,SAAS,CAEjE;AAkHD,kDAAkD;AAClD,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAwO9D;AA2FD,uFAAuF;AACvF,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,KAAK,SAAM,GACV;IAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,CAAA;CAAE,CA8BpE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAQ9F;AAMD,+FAA+F;AAC/F,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,+FAA+F;IAC/F,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,6BAA6B;AAC7B,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,uEAAuE;AACvE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,CAMhF;AAED,mGAAmG;AACnG,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAKvE;AAqBD,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAQ7E;AAED,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOnD;AAMD,MAAM,WAAW,WAAW;IAC1B,iGAAiG;IACjG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,SAAS,GAAG,IAAI,CAAA;IACvF,6EAA6E;IAC7E,UAAU,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,GAAG,SAAS,GAAG,IAAI,CAAA;CAC/E;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;CAClC;AAkCD,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CASlE;AAKD,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAQvE;AAED,sGAAsG;AACtG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK,GAAG,SAAS,CAQvE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,IAAI,CAe5D;AAwGD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,IAAI,CAmBrD"}