@timber-js/app 0.2.0-alpha.18 → 0.2.0-alpha.180

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 (1026) hide show
  1. package/LICENSE +8 -0
  2. package/agent-skill.md +344 -0
  3. package/dist/_chunks/actions-O_LsyCE4.js +317 -0
  4. package/dist/_chunks/actions-O_LsyCE4.js.map +1 -0
  5. package/dist/_chunks/build-output-helper-DF5uScqS.js +158 -0
  6. package/dist/_chunks/build-output-helper-DF5uScqS.js.map +1 -0
  7. package/dist/_chunks/cache-api-B-lhk9p4.js +1202 -0
  8. package/dist/_chunks/cache-api-B-lhk9p4.js.map +1 -0
  9. package/dist/_chunks/canonicalize-DQHyFClh.js +248 -0
  10. package/dist/_chunks/canonicalize-DQHyFClh.js.map +1 -0
  11. package/dist/_chunks/cli-schema-sync-D3naS3eH.js +688 -0
  12. package/dist/_chunks/cli-schema-sync-D3naS3eH.js.map +1 -0
  13. package/dist/_chunks/cloudflare-AHoWYTYr.js +1188 -0
  14. package/dist/_chunks/cloudflare-AHoWYTYr.js.map +1 -0
  15. package/dist/_chunks/codec-registry-oOUxugz3.js +21 -0
  16. package/dist/_chunks/codec-registry-oOUxugz3.js.map +1 -0
  17. package/dist/_chunks/define-COtkxMRT.js +191 -0
  18. package/dist/_chunks/define-COtkxMRT.js.map +1 -0
  19. package/dist/_chunks/define-c4au4I9R.js +82 -0
  20. package/dist/_chunks/define-c4au4I9R.js.map +1 -0
  21. package/dist/_chunks/dist-BA3u1z3W.js +423 -0
  22. package/dist/_chunks/dist-BA3u1z3W.js.map +1 -0
  23. package/dist/_chunks/fast-hash-D6hIVt1Y.js +36 -0
  24. package/dist/_chunks/fast-hash-D6hIVt1Y.js.map +1 -0
  25. package/dist/_chunks/format-CfwjgPz9.js +14 -0
  26. package/dist/_chunks/format-CfwjgPz9.js.map +1 -0
  27. package/dist/_chunks/href-validation-CMc5JRls.js +141 -0
  28. package/dist/_chunks/href-validation-CMc5JRls.js.map +1 -0
  29. package/dist/_chunks/json-lossy-check-ClNvBM_3.js +63 -0
  30. package/dist/_chunks/json-lossy-check-ClNvBM_3.js.map +1 -0
  31. package/dist/_chunks/logger-AWfuX-KJ.js +1468 -0
  32. package/dist/_chunks/logger-AWfuX-KJ.js.map +1 -0
  33. package/dist/_chunks/navigation-root-bUDZLw74.js +124 -0
  34. package/dist/_chunks/navigation-root-bUDZLw74.js.map +1 -0
  35. package/dist/_chunks/plugin-context---kTF5v8.js +315 -0
  36. package/dist/_chunks/plugin-context---kTF5v8.js.map +1 -0
  37. package/dist/_chunks/registry-DbJPKoBp.js +20 -0
  38. package/dist/_chunks/registry-DbJPKoBp.js.map +1 -0
  39. package/dist/_chunks/resolve-schema-Dz3fcFUo.js +50 -0
  40. package/dist/_chunks/resolve-schema-Dz3fcFUo.js.map +1 -0
  41. package/dist/_chunks/router-ref-CtmF-aPv.js +28 -0
  42. package/dist/_chunks/router-ref-CtmF-aPv.js.map +1 -0
  43. package/dist/_chunks/schema-bridge-DT_Tn0Xf.js +119 -0
  44. package/dist/_chunks/schema-bridge-DT_Tn0Xf.js.map +1 -0
  45. package/dist/_chunks/segment-classify-Byy425ng.js +176 -0
  46. package/dist/_chunks/segment-classify-Byy425ng.js.map +1 -0
  47. package/dist/_chunks/segment-context-ZDnXDkbz.js +34 -0
  48. package/dist/_chunks/segment-context-ZDnXDkbz.js.map +1 -0
  49. package/dist/_chunks/sizeof-lXffQ1Vr.js +35 -0
  50. package/dist/_chunks/sizeof-lXffQ1Vr.js.map +1 -0
  51. package/dist/_chunks/{ssr-data-MjmprTmO.js → ssr-data-BOWsq18U.js} +1 -1
  52. package/dist/_chunks/ssr-data-BOWsq18U.js.map +1 -0
  53. package/dist/_chunks/{use-query-states-D5KaffOK.js → use-query-states-DFvWd-EA.js} +71 -26
  54. package/dist/_chunks/use-query-states-DFvWd-EA.js.map +1 -0
  55. package/dist/_chunks/use-segment-params-D1CzlgBo.js +151 -0
  56. package/dist/_chunks/use-segment-params-D1CzlgBo.js.map +1 -0
  57. package/dist/_chunks/walkers-BtTlKviE.js +1002 -0
  58. package/dist/_chunks/walkers-BtTlKviE.js.map +1 -0
  59. package/dist/adapters/build-output-helper.d.ts +29 -0
  60. package/dist/adapters/build-output-helper.d.ts.map +1 -0
  61. package/dist/adapters/cloudflare-dev.d.ts +109 -0
  62. package/dist/adapters/cloudflare-dev.d.ts.map +1 -0
  63. package/dist/adapters/cloudflare-dev.js +73 -0
  64. package/dist/adapters/cloudflare-dev.js.map +1 -0
  65. package/dist/adapters/cloudflare-kv-cache.d.ts +65 -0
  66. package/dist/adapters/cloudflare-kv-cache.d.ts.map +1 -0
  67. package/dist/adapters/cloudflare-kv-cache.js +124 -0
  68. package/dist/adapters/cloudflare-kv-cache.js.map +1 -0
  69. package/dist/adapters/cloudflare.d.ts +189 -21
  70. package/dist/adapters/cloudflare.d.ts.map +1 -1
  71. package/dist/adapters/cloudflare.js +2 -188
  72. package/dist/adapters/compress-module.d.ts +5 -4
  73. package/dist/adapters/compress-module.d.ts.map +1 -1
  74. package/dist/adapters/nitro.d.ts +41 -3
  75. package/dist/adapters/nitro.d.ts.map +1 -1
  76. package/dist/adapters/nitro.js +224 -172
  77. package/dist/adapters/nitro.js.map +1 -1
  78. package/dist/adapters/shared.d.ts +6 -0
  79. package/dist/adapters/shared.d.ts.map +1 -0
  80. package/dist/adapters/types.d.ts +2 -6
  81. package/dist/adapters/types.d.ts.map +1 -1
  82. package/dist/cache/cache-api.d.ts +48 -0
  83. package/dist/cache/cache-api.d.ts.map +1 -0
  84. package/dist/cache/handler-store.d.ts +33 -0
  85. package/dist/cache/handler-store.d.ts.map +1 -0
  86. package/dist/cache/index.d.ts +31 -8
  87. package/dist/cache/index.d.ts.map +1 -1
  88. package/dist/cache/index.js +3 -326
  89. package/dist/cache/invalidation-epoch.d.ts +43 -0
  90. package/dist/cache/invalidation-epoch.d.ts.map +1 -0
  91. package/dist/cache/json-lossy-check.d.ts +11 -0
  92. package/dist/cache/json-lossy-check.d.ts.map +1 -0
  93. package/dist/cache/redis-handler.d.ts +140 -8
  94. package/dist/cache/redis-handler.d.ts.map +1 -1
  95. package/dist/cache/singleflight.d.ts +19 -2
  96. package/dist/cache/singleflight.d.ts.map +1 -1
  97. package/dist/cache/sizeof.d.ts +22 -0
  98. package/dist/cache/sizeof.d.ts.map +1 -0
  99. package/dist/cache/stable-stringify.d.ts +9 -0
  100. package/dist/cache/stable-stringify.d.ts.map +1 -1
  101. package/dist/cache/store.d.ts +53 -0
  102. package/dist/cache/store.d.ts.map +1 -0
  103. package/dist/cache/stores/cloudflare-kv.d.ts +38 -0
  104. package/dist/cache/stores/cloudflare-kv.d.ts.map +1 -0
  105. package/dist/cache/stores/cloudflare-kv.js +29 -0
  106. package/dist/cache/stores/cloudflare-kv.js.map +1 -0
  107. package/dist/cache/stores/memory.d.ts +42 -0
  108. package/dist/cache/stores/memory.d.ts.map +1 -0
  109. package/dist/cache/stores/memory.js +90 -0
  110. package/dist/cache/stores/memory.js.map +1 -0
  111. package/dist/cache/stores/redis.d.ts +69 -0
  112. package/dist/cache/stores/redis.d.ts.map +1 -0
  113. package/dist/cache/stores/redis.js +35 -0
  114. package/dist/cache/stores/redis.js.map +1 -0
  115. package/dist/cache/stores/vercel.d.ts +36 -0
  116. package/dist/cache/stores/vercel.d.ts.map +1 -0
  117. package/dist/cache/stores/vercel.js +33 -0
  118. package/dist/cache/stores/vercel.js.map +1 -0
  119. package/dist/cache/tag-aware-handler.d.ts +52 -0
  120. package/dist/cache/tag-aware-handler.d.ts.map +1 -0
  121. package/dist/cache/timber-cache.d.ts +20 -10
  122. package/dist/cache/timber-cache.d.ts.map +1 -1
  123. package/dist/cdn/cloudflare-purge.d.ts +23 -0
  124. package/dist/cdn/cloudflare-purge.d.ts.map +1 -0
  125. package/dist/cdn/fastly-purge.d.ts +25 -0
  126. package/dist/cdn/fastly-purge.d.ts.map +1 -0
  127. package/dist/cdn/headers.d.ts +97 -0
  128. package/dist/cdn/headers.d.ts.map +1 -0
  129. package/dist/cdn/index.d.ts +5 -0
  130. package/dist/cdn/index.d.ts.map +1 -0
  131. package/dist/cdn/purge-store.d.ts +23 -0
  132. package/dist/cdn/purge-store.d.ts.map +1 -0
  133. package/dist/cdn/workers-cache-purge.d.ts +16 -0
  134. package/dist/cdn/workers-cache-purge.d.ts.map +1 -0
  135. package/dist/cli-schema-sync.d.ts +59 -0
  136. package/dist/cli-schema-sync.d.ts.map +1 -0
  137. package/dist/cli.d.ts +35 -2
  138. package/dist/cli.d.ts.map +1 -1
  139. package/dist/cli.js +113 -34
  140. package/dist/cli.js.map +1 -1
  141. package/dist/client/browser-dev.d.ts +37 -1
  142. package/dist/client/browser-dev.d.ts.map +1 -1
  143. package/dist/client/browser-entry/action-dispatch.d.ts +17 -0
  144. package/dist/client/browser-entry/action-dispatch.d.ts.map +1 -0
  145. package/dist/client/browser-entry/hmr.d.ts +21 -0
  146. package/dist/client/browser-entry/hmr.d.ts.map +1 -0
  147. package/dist/client/browser-entry/hydrate.d.ts +46 -0
  148. package/dist/client/browser-entry/hydrate.d.ts.map +1 -0
  149. package/dist/client/browser-entry/index.d.ts +29 -0
  150. package/dist/client/browser-entry/index.d.ts.map +1 -0
  151. package/dist/client/browser-entry/post-hydration.d.ts +26 -0
  152. package/dist/client/browser-entry/post-hydration.d.ts.map +1 -0
  153. package/dist/client/browser-entry/router-init.d.ts +27 -0
  154. package/dist/client/browser-entry/router-init.d.ts.map +1 -0
  155. package/dist/client/browser-entry/rsc-stream.d.ts +24 -0
  156. package/dist/client/browser-entry/rsc-stream.d.ts.map +1 -0
  157. package/dist/client/browser-entry/scroll.d.ts +28 -0
  158. package/dist/client/browser-entry/scroll.d.ts.map +1 -0
  159. package/dist/client/error-boundary.d.ts +12 -5
  160. package/dist/client/error-boundary.d.ts.map +1 -1
  161. package/dist/client/error-boundary.js +47 -10
  162. package/dist/client/error-boundary.js.map +1 -1
  163. package/dist/client/error-reconstituter.d.ts +61 -0
  164. package/dist/client/error-reconstituter.d.ts.map +1 -0
  165. package/dist/client/form.d.ts +16 -27
  166. package/dist/client/form.d.ts.map +1 -1
  167. package/dist/client/history.d.ts +21 -6
  168. package/dist/client/history.d.ts.map +1 -1
  169. package/dist/client/index.d.ts +10 -24
  170. package/dist/client/index.d.ts.map +1 -1
  171. package/dist/client/index.js +185 -1134
  172. package/dist/client/index.js.map +1 -1
  173. package/dist/client/internal.d.ts +19 -0
  174. package/dist/client/internal.d.ts.map +1 -0
  175. package/dist/client/internal.js +887 -0
  176. package/dist/client/internal.js.map +1 -0
  177. package/dist/client/link.d.ts +69 -60
  178. package/dist/client/link.d.ts.map +1 -1
  179. package/dist/client/navigation-api.d.ts +121 -0
  180. package/dist/client/navigation-api.d.ts.map +1 -0
  181. package/dist/client/navigation-context.d.ts +3 -2
  182. package/dist/client/navigation-context.d.ts.map +1 -1
  183. package/dist/client/navigation-root.d.ts +119 -0
  184. package/dist/client/navigation-root.d.ts.map +1 -0
  185. package/dist/client/nuqs-adapter.d.ts +1 -1
  186. package/dist/client/nuqs-adapter.d.ts.map +1 -1
  187. package/dist/client/router-ref.d.ts +1 -1
  188. package/dist/client/router.d.ts +99 -14
  189. package/dist/client/router.d.ts.map +1 -1
  190. package/dist/client/rsc-fetch.d.ts +48 -15
  191. package/dist/client/rsc-fetch.d.ts.map +1 -1
  192. package/dist/client/segment-cache.d.ts +26 -7
  193. package/dist/client/segment-cache.d.ts.map +1 -1
  194. package/dist/client/segment-outlet.d.ts +57 -0
  195. package/dist/client/segment-outlet.d.ts.map +1 -0
  196. package/dist/client/segment-update-context.d.ts +21 -0
  197. package/dist/client/segment-update-context.d.ts.map +1 -0
  198. package/dist/client/shallow-url.d.ts +10 -0
  199. package/dist/client/shallow-url.d.ts.map +1 -0
  200. package/dist/client/slot-context.d.ts +31 -0
  201. package/dist/client/slot-context.d.ts.map +1 -0
  202. package/dist/client/slot-outlet.d.ts +16 -0
  203. package/dist/client/slot-outlet.d.ts.map +1 -0
  204. package/dist/client/slot-provider.d.ts +25 -0
  205. package/dist/client/slot-provider.d.ts.map +1 -0
  206. package/dist/client/ssr-data.d.ts +13 -4
  207. package/dist/client/ssr-data.d.ts.map +1 -1
  208. package/dist/client/state.d.ts +1 -1
  209. package/dist/client/top-loader.d.ts +5 -5
  210. package/dist/client/top-loader.d.ts.map +1 -1
  211. package/dist/client/use-cookie.d.ts +12 -0
  212. package/dist/client/use-cookie.d.ts.map +1 -1
  213. package/dist/client/use-link-status.d.ts +5 -5
  214. package/dist/client/use-link-status.d.ts.map +1 -1
  215. package/dist/client/use-pathname.d.ts.map +1 -1
  216. package/dist/client/use-pending-navigation.d.ts +23 -0
  217. package/dist/client/use-pending-navigation.d.ts.map +1 -0
  218. package/dist/client/use-query-states.d.ts +1 -1
  219. package/dist/client/use-query-states.d.ts.map +1 -1
  220. package/dist/client/use-router.d.ts +1 -1
  221. package/dist/client/use-router.d.ts.map +1 -1
  222. package/dist/client/use-search-params.d.ts +12 -5
  223. package/dist/client/use-search-params.d.ts.map +1 -1
  224. package/dist/client/{use-params.d.ts → use-segment-params.d.ts} +8 -6
  225. package/dist/client/use-segment-params.d.ts.map +1 -0
  226. package/dist/codec.d.ts +69 -0
  227. package/dist/codec.d.ts.map +1 -0
  228. package/dist/codec.js +76 -0
  229. package/dist/codec.js.map +1 -0
  230. package/dist/config-types.d.ts +284 -0
  231. package/dist/config-types.d.ts.map +1 -0
  232. package/dist/config-validation.d.ts +51 -0
  233. package/dist/config-validation.d.ts.map +1 -0
  234. package/dist/content/index.d.ts +1 -10
  235. package/dist/content/index.d.ts.map +1 -1
  236. package/dist/content/index.js +0 -2
  237. package/dist/cookies/define-cookie.d.ts +58 -25
  238. package/dist/cookies/define-cookie.d.ts.map +1 -1
  239. package/dist/cookies/index.d.ts +2 -1
  240. package/dist/cookies/index.d.ts.map +1 -1
  241. package/dist/cookies/index.js +257 -36
  242. package/dist/cookies/index.js.map +1 -1
  243. package/dist/cookies/json-cookie.d.ts +64 -0
  244. package/dist/cookies/json-cookie.d.ts.map +1 -0
  245. package/dist/cookies/validation.d.ts +34 -0
  246. package/dist/cookies/validation.d.ts.map +1 -0
  247. package/dist/dev-tools/404-page.d.ts +50 -0
  248. package/dist/dev-tools/404-page.d.ts.map +1 -0
  249. package/dist/dev-tools/browser-logs.d.ts +40 -0
  250. package/dist/dev-tools/browser-logs.d.ts.map +1 -0
  251. package/dist/dev-tools/dev-page-shell.d.ts +78 -0
  252. package/dist/dev-tools/dev-page-shell.d.ts.map +1 -0
  253. package/dist/dev-tools/error-page.d.ts +32 -0
  254. package/dist/dev-tools/error-page.d.ts.map +1 -0
  255. package/dist/dev-tools/holding-server.d.ts +54 -0
  256. package/dist/dev-tools/holding-server.d.ts.map +1 -0
  257. package/dist/dev-tools/hydration-overlay.d.ts +11 -0
  258. package/dist/dev-tools/hydration-overlay.d.ts.map +1 -0
  259. package/dist/dev-tools/index.d.ts +31 -0
  260. package/dist/dev-tools/index.d.ts.map +1 -0
  261. package/dist/dev-tools/instrumentation.d.ts +59 -0
  262. package/dist/dev-tools/instrumentation.d.ts.map +1 -0
  263. package/dist/{server/dev-logger.d.ts → dev-tools/logger.d.ts} +1 -1
  264. package/dist/dev-tools/logger.d.ts.map +1 -0
  265. package/dist/{plugins/dev-logs.d.ts → dev-tools/logs.d.ts} +17 -3
  266. package/dist/dev-tools/logs.d.ts.map +1 -0
  267. package/dist/dev-tools/overlay.d.ts +91 -0
  268. package/dist/dev-tools/overlay.d.ts.map +1 -0
  269. package/dist/dev-tools/stack-classifier.d.ts +34 -0
  270. package/dist/dev-tools/stack-classifier.d.ts.map +1 -0
  271. package/dist/dev-tools/terminal.d.ts +28 -0
  272. package/dist/dev-tools/terminal.d.ts.map +1 -0
  273. package/dist/fonts/ast-walk.d.ts +68 -0
  274. package/dist/fonts/ast-walk.d.ts.map +1 -0
  275. package/dist/fonts/ast.d.ts +110 -6
  276. package/dist/fonts/ast.d.ts.map +1 -1
  277. package/dist/fonts/bundle.d.ts +50 -0
  278. package/dist/fonts/bundle.d.ts.map +1 -0
  279. package/dist/fonts/dev-middleware.d.ts +22 -0
  280. package/dist/fonts/dev-middleware.d.ts.map +1 -0
  281. package/dist/fonts/fallbacks.d.ts +0 -7
  282. package/dist/fonts/fallbacks.d.ts.map +1 -1
  283. package/dist/fonts/google.d.ts +4 -2
  284. package/dist/fonts/google.d.ts.map +1 -1
  285. package/dist/fonts/local.d.ts +4 -4
  286. package/dist/fonts/local.d.ts.map +1 -1
  287. package/dist/fonts/paths.d.ts +43 -0
  288. package/dist/fonts/paths.d.ts.map +1 -0
  289. package/dist/fonts/pipeline.d.ts +177 -0
  290. package/dist/fonts/pipeline.d.ts.map +1 -0
  291. package/dist/fonts/transform.d.ts +82 -0
  292. package/dist/fonts/transform.d.ts.map +1 -0
  293. package/dist/fonts/types.d.ts +47 -1
  294. package/dist/fonts/types.d.ts.map +1 -1
  295. package/dist/fonts/virtual-modules.d.ts +77 -0
  296. package/dist/fonts/virtual-modules.d.ts.map +1 -0
  297. package/dist/index.d.ts +46 -180
  298. package/dist/index.d.ts.map +1 -1
  299. package/dist/index.js +9243 -14093
  300. package/dist/index.js.map +1 -1
  301. package/dist/params/codec-registry.d.ts +26 -0
  302. package/dist/params/codec-registry.d.ts.map +1 -0
  303. package/dist/params/define-schema.d.ts +81 -0
  304. package/dist/params/define-schema.d.ts.map +1 -0
  305. package/dist/params/index.d.ts +5 -0
  306. package/dist/params/index.d.ts.map +1 -0
  307. package/dist/params/index.js +34 -0
  308. package/dist/params/index.js.map +1 -0
  309. package/dist/params/resolve-schema.d.ts +34 -0
  310. package/dist/params/resolve-schema.d.ts.map +1 -0
  311. package/dist/plugin-context.d.ts +217 -0
  312. package/dist/plugin-context.d.ts.map +1 -0
  313. package/dist/plugins/adapter-build.d.ts +21 -1
  314. package/dist/plugins/adapter-build.d.ts.map +1 -1
  315. package/dist/plugins/build-manifest.d.ts +7 -3
  316. package/dist/plugins/build-manifest.d.ts.map +1 -1
  317. package/dist/plugins/build-report.d.ts +43 -7
  318. package/dist/plugins/build-report.d.ts.map +1 -1
  319. package/dist/plugins/cache.d.ts +64 -0
  320. package/dist/plugins/cache.d.ts.map +1 -0
  321. package/dist/plugins/callsite-ast.d.ts +117 -0
  322. package/dist/plugins/callsite-ast.d.ts.map +1 -0
  323. package/dist/plugins/callsite-jsx.d.ts +35 -0
  324. package/dist/plugins/callsite-jsx.d.ts.map +1 -0
  325. package/dist/plugins/chunks.d.ts +11 -4
  326. package/dist/plugins/chunks.d.ts.map +1 -1
  327. package/dist/plugins/client-chunks.d.ts +40 -0
  328. package/dist/plugins/client-chunks.d.ts.map +1 -0
  329. package/dist/plugins/cloudflare-wasm.d.ts +21 -0
  330. package/dist/plugins/cloudflare-wasm.d.ts.map +1 -0
  331. package/dist/plugins/content.d.ts +1 -1
  332. package/dist/plugins/content.d.ts.map +1 -1
  333. package/dist/plugins/dev-server.d.ts +17 -1
  334. package/dist/plugins/dev-server.d.ts.map +1 -1
  335. package/dist/plugins/entries.d.ts +28 -4
  336. package/dist/plugins/entries.d.ts.map +1 -1
  337. package/dist/plugins/fonts.d.ts +16 -73
  338. package/dist/plugins/fonts.d.ts.map +1 -1
  339. package/dist/plugins/mdx.d.ts +1 -1
  340. package/dist/plugins/mdx.d.ts.map +1 -1
  341. package/dist/plugins/prebuilt-capture.d.ts +60 -0
  342. package/dist/plugins/prebuilt-capture.d.ts.map +1 -0
  343. package/dist/plugins/prebuilt-options-analysis.d.ts +40 -0
  344. package/dist/plugins/prebuilt-options-analysis.d.ts.map +1 -0
  345. package/dist/plugins/prebuilt.d.ts +82 -0
  346. package/dist/plugins/prebuilt.d.ts.map +1 -0
  347. package/dist/plugins/prerender-sugar.d.ts +42 -0
  348. package/dist/plugins/prerender-sugar.d.ts.map +1 -0
  349. package/dist/plugins/request-dep.d.ts +21 -0
  350. package/dist/plugins/request-dep.d.ts.map +1 -0
  351. package/dist/plugins/routing.d.ts +1 -1
  352. package/dist/plugins/routing.d.ts.map +1 -1
  353. package/dist/plugins/server-bundle.d.ts.map +1 -1
  354. package/dist/plugins/shims.d.ts +29 -5
  355. package/dist/plugins/shims.d.ts.map +1 -1
  356. package/dist/plugins/static-build.d.ts +5 -26
  357. package/dist/plugins/static-build.d.ts.map +1 -1
  358. package/dist/routing/codegen-shared.d.ts +67 -0
  359. package/dist/routing/codegen-shared.d.ts.map +1 -0
  360. package/dist/routing/codegen-types.d.ts +64 -0
  361. package/dist/routing/codegen-types.d.ts.map +1 -0
  362. package/dist/routing/codegen.d.ts +7 -2
  363. package/dist/routing/codegen.d.ts.map +1 -1
  364. package/dist/routing/convention-lint.d.ts +41 -0
  365. package/dist/routing/convention-lint.d.ts.map +1 -0
  366. package/dist/routing/export-detect.d.ts +56 -0
  367. package/dist/routing/export-detect.d.ts.map +1 -0
  368. package/dist/routing/file-cache.d.ts +8 -0
  369. package/dist/routing/file-cache.d.ts.map +1 -0
  370. package/dist/routing/index.d.ts +7 -1
  371. package/dist/routing/index.d.ts.map +1 -1
  372. package/dist/routing/index.js +4 -2
  373. package/dist/routing/interception.d.ts +0 -5
  374. package/dist/routing/interception.d.ts.map +1 -1
  375. package/dist/routing/link-codegen.d.ts +90 -0
  376. package/dist/routing/link-codegen.d.ts.map +1 -0
  377. package/dist/routing/manifest-codegen.d.ts +32 -0
  378. package/dist/routing/manifest-codegen.d.ts.map +1 -0
  379. package/dist/routing/scanner.d.ts +1 -10
  380. package/dist/routing/scanner.d.ts.map +1 -1
  381. package/dist/routing/schema-validation.d.ts +35 -0
  382. package/dist/routing/schema-validation.d.ts.map +1 -0
  383. package/dist/routing/segment-classify.d.ts +81 -0
  384. package/dist/routing/segment-classify.d.ts.map +1 -0
  385. package/dist/routing/segment-codegen.d.ts +38 -0
  386. package/dist/routing/segment-codegen.d.ts.map +1 -0
  387. package/dist/routing/types.d.ts +81 -25
  388. package/dist/routing/types.d.ts.map +1 -1
  389. package/dist/routing/walkers.d.ts +51 -0
  390. package/dist/routing/walkers.d.ts.map +1 -0
  391. package/dist/rsc-runtime/rsc.d.ts +1 -1
  392. package/dist/rsc-runtime/rsc.d.ts.map +1 -1
  393. package/dist/rsc-runtime/ssr.d.ts +12 -0
  394. package/dist/rsc-runtime/ssr.d.ts.map +1 -1
  395. package/dist/schema-bridge.d.ts +91 -0
  396. package/dist/schema-bridge.d.ts.map +1 -0
  397. package/dist/search-params/define.d.ts +188 -0
  398. package/dist/search-params/define.d.ts.map +1 -0
  399. package/dist/search-params/index.d.ts +4 -7
  400. package/dist/search-params/index.d.ts.map +1 -1
  401. package/dist/search-params/index.js +34 -441
  402. package/dist/search-params/index.js.map +1 -1
  403. package/dist/search-params/registry.d.ts +2 -2
  404. package/dist/search-params/registry.d.ts.map +1 -1
  405. package/dist/search-params/wrappers.d.ts +53 -0
  406. package/dist/search-params/wrappers.d.ts.map +1 -0
  407. package/dist/segment-params/define.d.ts +89 -0
  408. package/dist/segment-params/define.d.ts.map +1 -0
  409. package/dist/segment-params/index.d.ts +3 -0
  410. package/dist/segment-params/index.d.ts.map +1 -0
  411. package/dist/segment-params/index.js +2 -0
  412. package/dist/server/access-gate.d.ts +8 -3
  413. package/dist/server/access-gate.d.ts.map +1 -1
  414. package/dist/server/action-client.d.ts +42 -7
  415. package/dist/server/action-client.d.ts.map +1 -1
  416. package/dist/server/action-encryption.d.ts +76 -0
  417. package/dist/server/action-encryption.d.ts.map +1 -0
  418. package/dist/server/action-handler.d.ts +35 -1
  419. package/dist/server/action-handler.d.ts.map +1 -1
  420. package/dist/server/actions.d.ts +6 -30
  421. package/dist/server/actions.d.ts.map +1 -1
  422. package/dist/server/als-registry.d.ts +93 -11
  423. package/dist/server/als-registry.d.ts.map +1 -1
  424. package/dist/server/asset-headers.d.ts +8 -18
  425. package/dist/server/asset-headers.d.ts.map +1 -1
  426. package/dist/server/body-limits.d.ts.map +1 -1
  427. package/dist/server/build-manifest.d.ts +12 -29
  428. package/dist/server/build-manifest.d.ts.map +1 -1
  429. package/dist/server/canonicalize.d.ts +10 -0
  430. package/dist/server/canonicalize.d.ts.map +1 -1
  431. package/dist/server/coalesce-tick.d.ts +40 -0
  432. package/dist/server/coalesce-tick.d.ts.map +1 -0
  433. package/dist/server/cookie-context.d.ts +170 -0
  434. package/dist/server/cookie-context.d.ts.map +1 -0
  435. package/dist/server/cookie-parsing.d.ts +65 -0
  436. package/dist/server/cookie-parsing.d.ts.map +1 -0
  437. package/dist/server/csrf.d.ts +3 -2
  438. package/dist/server/csrf.d.ts.map +1 -1
  439. package/dist/server/default-logger.d.ts +22 -0
  440. package/dist/server/default-logger.d.ts.map +1 -0
  441. package/dist/server/deny-boundary.d.ts +117 -0
  442. package/dist/server/deny-boundary.d.ts.map +1 -0
  443. package/dist/server/deny-renderer.d.ts +2 -2
  444. package/dist/server/deny-renderer.d.ts.map +1 -1
  445. package/dist/server/dev-source-map.d.ts +22 -0
  446. package/dist/server/dev-source-map.d.ts.map +1 -0
  447. package/dist/server/early-hints-sender.d.ts.map +1 -1
  448. package/dist/server/early-hints.d.ts +13 -11
  449. package/dist/server/early-hints.d.ts.map +1 -1
  450. package/dist/server/error-boundary-wrapper.d.ts +7 -1
  451. package/dist/server/error-boundary-wrapper.d.ts.map +1 -1
  452. package/dist/server/fallback-error.d.ts +12 -7
  453. package/dist/server/fallback-error.d.ts.map +1 -1
  454. package/dist/server/flight-injection-state.d.ts +66 -0
  455. package/dist/server/flight-injection-state.d.ts.map +1 -0
  456. package/dist/server/flight-scripts.d.ts +42 -0
  457. package/dist/server/flight-scripts.d.ts.map +1 -0
  458. package/dist/server/form-data.d.ts +41 -0
  459. package/dist/server/form-data.d.ts.map +1 -1
  460. package/dist/server/html-injector-core.d.ts +242 -0
  461. package/dist/server/html-injector-core.d.ts.map +1 -0
  462. package/dist/server/html-injectors.d.ts +82 -41
  463. package/dist/server/html-injectors.d.ts.map +1 -1
  464. package/dist/server/index.d.ts +11 -47
  465. package/dist/server/index.d.ts.map +1 -1
  466. package/dist/server/index.js +182 -2906
  467. package/dist/server/index.js.map +1 -1
  468. package/dist/server/internal.d.ts +49 -0
  469. package/dist/server/internal.d.ts.map +1 -0
  470. package/dist/server/internal.js +3892 -0
  471. package/dist/server/internal.js.map +1 -0
  472. package/dist/server/logger.d.ts +39 -7
  473. package/dist/server/logger.d.ts.map +1 -1
  474. package/dist/server/metadata-routes.d.ts +60 -11
  475. package/dist/server/metadata-routes.d.ts.map +1 -1
  476. package/dist/server/metadata.d.ts +8 -0
  477. package/dist/server/metadata.d.ts.map +1 -1
  478. package/dist/server/middleware-runner.d.ts +19 -4
  479. package/dist/server/middleware-runner.d.ts.map +1 -1
  480. package/dist/server/node-stream-transforms.d.ts +119 -0
  481. package/dist/server/node-stream-transforms.d.ts.map +1 -0
  482. package/dist/server/param-coercion.d.ts +54 -0
  483. package/dist/server/param-coercion.d.ts.map +1 -0
  484. package/dist/server/pipeline-helpers.d.ts +95 -0
  485. package/dist/server/pipeline-helpers.d.ts.map +1 -0
  486. package/dist/server/pipeline-interception.d.ts +1 -1
  487. package/dist/server/pipeline-interception.d.ts.map +1 -1
  488. package/dist/server/pipeline-metadata.d.ts +6 -0
  489. package/dist/server/pipeline-metadata.d.ts.map +1 -1
  490. package/dist/server/pipeline-outcome.d.ts +49 -0
  491. package/dist/server/pipeline-outcome.d.ts.map +1 -0
  492. package/dist/server/pipeline-phases.d.ts +59 -0
  493. package/dist/server/pipeline-phases.d.ts.map +1 -0
  494. package/dist/server/pipeline.d.ts +140 -19
  495. package/dist/server/pipeline.d.ts.map +1 -1
  496. package/dist/server/port-resolution.d.ts +117 -0
  497. package/dist/server/port-resolution.d.ts.map +1 -0
  498. package/dist/server/prebuilt/cache-key.d.ts +62 -0
  499. package/dist/server/prebuilt/cache-key.d.ts.map +1 -0
  500. package/dist/server/prebuilt/capture-state.d.ts +57 -0
  501. package/dist/server/prebuilt/capture-state.d.ts.map +1 -0
  502. package/dist/server/prebuilt/key-discipline.d.ts +23 -0
  503. package/dist/server/prebuilt/key-discipline.d.ts.map +1 -0
  504. package/dist/server/prebuilt/manifest-tag-index.d.ts +27 -0
  505. package/dist/server/prebuilt/manifest-tag-index.d.ts.map +1 -0
  506. package/dist/server/prebuilt/overlay.d.ts +100 -0
  507. package/dist/server/prebuilt/overlay.d.ts.map +1 -0
  508. package/dist/server/prebuilt/payload-source.d.ts +78 -0
  509. package/dist/server/prebuilt/payload-source.d.ts.map +1 -0
  510. package/dist/server/prebuilt/slots.d.ts +99 -0
  511. package/dist/server/prebuilt/slots.d.ts.map +1 -0
  512. package/dist/server/prebuilt/synthetic-store.d.ts +66 -0
  513. package/dist/server/prebuilt/synthetic-store.d.ts.map +1 -0
  514. package/dist/server/prebuilt-builder.d.ts +120 -0
  515. package/dist/server/prebuilt-builder.d.ts.map +1 -0
  516. package/dist/server/prebuilt-runtime.d.ts +111 -0
  517. package/dist/server/prebuilt-runtime.d.ts.map +1 -0
  518. package/dist/server/primitives.d.ts +88 -43
  519. package/dist/server/primitives.d.ts.map +1 -1
  520. package/dist/server/render-timeout.d.ts +51 -0
  521. package/dist/server/render-timeout.d.ts.map +1 -0
  522. package/dist/server/render-utils.d.ts +25 -0
  523. package/dist/server/render-utils.d.ts.map +1 -0
  524. package/dist/server/request-context.d.ts +62 -107
  525. package/dist/server/request-context.d.ts.map +1 -1
  526. package/dist/server/request-dep.d.ts +15 -0
  527. package/dist/server/request-dep.d.ts.map +1 -0
  528. package/dist/server/route-element-builder.d.ts +53 -25
  529. package/dist/server/route-element-builder.d.ts.map +1 -1
  530. package/dist/server/route-handler.d.ts.map +1 -1
  531. package/dist/server/route-matcher.d.ts +25 -36
  532. package/dist/server/route-matcher.d.ts.map +1 -1
  533. package/dist/server/rsc-entry/action-middleware-runner.d.ts +66 -0
  534. package/dist/server/rsc-entry/action-middleware-runner.d.ts.map +1 -0
  535. package/dist/server/rsc-entry/api-handler.d.ts +12 -3
  536. package/dist/server/rsc-entry/api-handler.d.ts.map +1 -1
  537. package/dist/server/rsc-entry/deny-fallback.d.ts +29 -0
  538. package/dist/server/rsc-entry/deny-fallback.d.ts.map +1 -0
  539. package/dist/server/rsc-entry/error-renderer.d.ts +26 -13
  540. package/dist/server/rsc-entry/error-renderer.d.ts.map +1 -1
  541. package/dist/server/rsc-entry/helpers.d.ts +69 -37
  542. package/dist/server/rsc-entry/helpers.d.ts.map +1 -1
  543. package/dist/server/rsc-entry/index.d.ts +28 -6
  544. package/dist/server/rsc-entry/index.d.ts.map +1 -1
  545. package/dist/server/rsc-entry/render-route.d.ts +51 -0
  546. package/dist/server/rsc-entry/render-route.d.ts.map +1 -0
  547. package/dist/server/rsc-entry/revalidate-renderer.d.ts +108 -0
  548. package/dist/server/rsc-entry/revalidate-renderer.d.ts.map +1 -0
  549. package/dist/server/rsc-entry/rsc-payload.d.ts +6 -6
  550. package/dist/server/rsc-entry/rsc-payload.d.ts.map +1 -1
  551. package/dist/server/rsc-entry/rsc-stream.d.ts +25 -1
  552. package/dist/server/rsc-entry/rsc-stream.d.ts.map +1 -1
  553. package/dist/server/rsc-entry/ssr-bridge.d.ts +5 -1
  554. package/dist/server/rsc-entry/ssr-bridge.d.ts.map +1 -1
  555. package/dist/server/rsc-entry/ssr-renderer.d.ts +36 -4
  556. package/dist/server/rsc-entry/ssr-renderer.d.ts.map +1 -1
  557. package/dist/server/rsc-entry/wrap-action-dispatch.d.ts +89 -0
  558. package/dist/server/rsc-entry/wrap-action-dispatch.d.ts.map +1 -0
  559. package/dist/server/safe-load.d.ts +46 -0
  560. package/dist/server/safe-load.d.ts.map +1 -0
  561. package/dist/server/sensitive-fields.d.ts +74 -0
  562. package/dist/server/sensitive-fields.d.ts.map +1 -0
  563. package/dist/server/sitemap-generator.d.ts +129 -0
  564. package/dist/server/sitemap-generator.d.ts.map +1 -0
  565. package/dist/server/sitemap-handler.d.ts +22 -0
  566. package/dist/server/sitemap-handler.d.ts.map +1 -0
  567. package/dist/server/slot-resolver.d.ts +66 -5
  568. package/dist/server/slot-resolver.d.ts.map +1 -1
  569. package/dist/server/ssr-bridge-types.d.ts +121 -0
  570. package/dist/server/ssr-bridge-types.d.ts.map +1 -0
  571. package/dist/server/ssr-entry.d.ts +2 -43
  572. package/dist/server/ssr-entry.d.ts.map +1 -1
  573. package/dist/server/ssr-render.d.ts +64 -21
  574. package/dist/server/ssr-render.d.ts.map +1 -1
  575. package/dist/server/ssr-wrappers.d.ts +50 -0
  576. package/dist/server/ssr-wrappers.d.ts.map +1 -0
  577. package/dist/server/state-tree-diff.d.ts +72 -9
  578. package/dist/server/state-tree-diff.d.ts.map +1 -1
  579. package/dist/server/status-code-resolver.d.ts +22 -11
  580. package/dist/server/status-code-resolver.d.ts.map +1 -1
  581. package/dist/server/stream-utils.d.ts +47 -0
  582. package/dist/server/stream-utils.d.ts.map +1 -0
  583. package/dist/server/tracing.d.ts +44 -9
  584. package/dist/server/tracing.d.ts.map +1 -1
  585. package/dist/server/tree-builder.d.ts +69 -30
  586. package/dist/server/tree-builder.d.ts.map +1 -1
  587. package/dist/server/tree-match.d.ts +49 -0
  588. package/dist/server/tree-match.d.ts.map +1 -0
  589. package/dist/server/types.d.ts +71 -6
  590. package/dist/server/types.d.ts.map +1 -1
  591. package/dist/server/utils/escape-html.d.ts +14 -0
  592. package/dist/server/utils/escape-html.d.ts.map +1 -0
  593. package/dist/server/utils/mdx-file.d.ts +15 -0
  594. package/dist/server/utils/mdx-file.d.ts.map +1 -0
  595. package/dist/server/version-skew.d.ts +61 -0
  596. package/dist/server/version-skew.d.ts.map +1 -0
  597. package/dist/server/workers-cache-bridge.d.ts +26 -0
  598. package/dist/server/workers-cache-bridge.d.ts.map +1 -0
  599. package/dist/shared/href-validation.d.ts +49 -0
  600. package/dist/shared/href-validation.d.ts.map +1 -0
  601. package/dist/shared/merge-search-params.d.ts +22 -0
  602. package/dist/shared/merge-search-params.d.ts.map +1 -0
  603. package/dist/shared/redirect-type.d.ts +17 -0
  604. package/dist/shared/redirect-type.d.ts.map +1 -0
  605. package/dist/shims/font-google.d.ts +1 -1
  606. package/dist/shims/font-google.d.ts.map +1 -1
  607. package/dist/shims/font-google.js +42 -0
  608. package/dist/shims/font-google.js.map +1 -0
  609. package/dist/shims/font-local.d.ts +26 -0
  610. package/dist/shims/font-local.d.ts.map +1 -0
  611. package/dist/shims/font-local.js +20 -0
  612. package/dist/shims/font-local.js.map +1 -0
  613. package/dist/shims/headers.d.ts +53 -1
  614. package/dist/shims/headers.d.ts.map +1 -1
  615. package/dist/shims/image.d.ts +120 -120
  616. package/dist/shims/image.d.ts.map +1 -1
  617. package/dist/shims/navigation-client.d.ts +35 -11
  618. package/dist/shims/navigation-client.d.ts.map +1 -1
  619. package/dist/shims/navigation.d.ts +11 -5
  620. package/dist/shims/navigation.d.ts.map +1 -1
  621. package/dist/utils/state-machine.d.ts +80 -0
  622. package/dist/utils/state-machine.d.ts.map +1 -0
  623. package/docs/api/30-api-server.mdx +233 -0
  624. package/docs/api/31-api-client.mdx +161 -0
  625. package/docs/api/32-api-cache.mdx +311 -0
  626. package/docs/api/33-api-search-params.mdx +154 -0
  627. package/docs/api/34-api-config.mdx +325 -0
  628. package/docs/api/35-api-typescript.mdx +170 -0
  629. package/docs/api/36-cli.mdx +143 -0
  630. package/docs/learn/00-introduction.mdx +109 -0
  631. package/docs/learn/01-quick-start.mdx +94 -0
  632. package/docs/learn/02-pages-and-layouts.mdx +147 -0
  633. package/docs/learn/03-fetching-data.mdx +211 -0
  634. package/docs/learn/03b-access-control.mdx +130 -0
  635. package/docs/learn/04-loading-states.mdx +67 -0
  636. package/docs/learn/04b-the-flush-point.mdx +115 -0
  637. package/docs/learn/05-typed-params.mdx +275 -0
  638. package/docs/learn/06-forms-and-actions.mdx +146 -0
  639. package/docs/learn/07-typed-routes.mdx +127 -0
  640. package/docs/learn/08-streaming.mdx +146 -0
  641. package/docs/learn/09-caching.mdx +252 -0
  642. package/docs/learn/10-middleware.mdx +157 -0
  643. package/docs/learn/11-error-handling.mdx +156 -0
  644. package/docs/learn/12-client-navigation.mdx +176 -0
  645. package/docs/learn/13-configuration.mdx +162 -0
  646. package/docs/learn/14-deploying.mdx +264 -0
  647. package/docs/more/01-advanced-routing.mdx +173 -0
  648. package/docs/more/02-advanced-forms.mdx +137 -0
  649. package/docs/more/03-coming-from-nextjs.mdx +186 -0
  650. package/docs/more/04-metadata-and-fonts.mdx +193 -0
  651. package/docs/more/04b-mdx.mdx +209 -0
  652. package/docs/more/05-content-collections.mdx +90 -0
  653. package/docs/more/06-instrumentation.mdx +214 -0
  654. package/docs/more/07-security.mdx +129 -0
  655. package/docs/more/08-developer-experience.mdx +134 -0
  656. package/docs/more/40-why-timber.mdx +50 -0
  657. package/docs/more/41-timber-vs-nextjs.mdx +81 -0
  658. package/docs/more/42-timber-vs-others.mdx +68 -0
  659. package/docs/more/50-ai-agent-instructions.mdx +169 -0
  660. package/llms.txt +55 -0
  661. package/package.json +105 -26
  662. package/src/adapters/build-output-helper.ts +199 -0
  663. package/src/adapters/cloudflare-dev.ts +177 -0
  664. package/src/adapters/cloudflare-kv-cache.ts +204 -0
  665. package/src/adapters/cloudflare.ts +620 -129
  666. package/src/adapters/compress-module.ts +27 -92
  667. package/src/adapters/nitro.ts +266 -122
  668. package/src/adapters/raw-imports.d.ts +5 -0
  669. package/src/adapters/shared.ts +68 -0
  670. package/src/adapters/types.ts +2 -7
  671. package/src/adapters/wrangler.d.ts +7 -0
  672. package/src/cache/cache-api.ts +107 -0
  673. package/src/cache/handler-store.ts +76 -0
  674. package/src/cache/index.ts +114 -21
  675. package/src/cache/invalidation-epoch.ts +93 -0
  676. package/src/cache/json-lossy-check.ts +75 -0
  677. package/src/cache/redis-handler.ts +197 -19
  678. package/src/cache/singleflight.ts +64 -6
  679. package/src/cache/sizeof.ts +33 -0
  680. package/src/cache/stable-stringify.ts +65 -2
  681. package/src/cache/store.ts +71 -0
  682. package/src/cache/stores/cloudflare-kv.ts +52 -0
  683. package/src/cache/stores/memory.ts +125 -0
  684. package/src/cache/stores/redis.ts +97 -0
  685. package/src/cache/stores/vercel.ts +59 -0
  686. package/src/cache/tag-aware-handler.ts +237 -0
  687. package/src/cache/timber-cache.ts +161 -36
  688. package/src/cdn/cloudflare-purge.ts +50 -0
  689. package/src/cdn/fastly-purge.ts +63 -0
  690. package/src/cdn/headers.ts +153 -0
  691. package/src/cdn/index.ts +17 -0
  692. package/src/cdn/purge-store.ts +34 -0
  693. package/src/cdn/workers-cache-purge.ts +30 -0
  694. package/src/cli-schema-sync.ts +401 -0
  695. package/src/cli.ts +167 -34
  696. package/src/client/browser-dev.ts +156 -1
  697. package/src/client/browser-entry/action-dispatch.ts +124 -0
  698. package/src/client/browser-entry/hmr.ts +70 -0
  699. package/src/client/browser-entry/hydrate.ts +187 -0
  700. package/src/client/browser-entry/index.ts +113 -0
  701. package/src/client/browser-entry/post-hydration.ts +110 -0
  702. package/src/client/browser-entry/router-init.ts +286 -0
  703. package/src/client/browser-entry/rsc-stream.ts +157 -0
  704. package/src/client/browser-entry/scroll.ts +50 -0
  705. package/src/client/error-boundary.tsx +127 -22
  706. package/src/client/error-reconstituter.tsx +79 -0
  707. package/src/client/form.tsx +31 -32
  708. package/src/client/history.ts +21 -6
  709. package/src/client/index.ts +67 -45
  710. package/src/client/internal.ts +58 -0
  711. package/src/client/link.tsx +349 -150
  712. package/src/client/navigation-api.ts +345 -0
  713. package/src/client/navigation-context.ts +15 -7
  714. package/src/client/navigation-root.tsx +355 -0
  715. package/src/client/nuqs-adapter.tsx +16 -3
  716. package/src/client/router-ref.ts +1 -1
  717. package/src/client/router.ts +565 -212
  718. package/src/client/rsc-fetch.ts +215 -34
  719. package/src/client/segment-cache.ts +91 -17
  720. package/src/client/segment-outlet.tsx +141 -0
  721. package/src/client/segment-update-context.ts +42 -0
  722. package/src/client/shallow-url.ts +22 -0
  723. package/src/client/slot-context.ts +50 -0
  724. package/src/client/slot-outlet.tsx +22 -0
  725. package/src/client/slot-provider.tsx +32 -0
  726. package/src/client/ssr-data.ts +13 -5
  727. package/src/client/state.ts +2 -2
  728. package/src/client/top-loader.tsx +11 -9
  729. package/src/client/use-cookie.ts +60 -15
  730. package/src/client/use-link-status.ts +7 -7
  731. package/src/client/use-pathname.ts +1 -0
  732. package/src/client/use-pending-navigation.ts +40 -0
  733. package/src/client/use-query-states.ts +108 -10
  734. package/src/client/use-router.ts +4 -1
  735. package/src/client/use-search-params.ts +31 -44
  736. package/src/client/{use-params.ts → use-segment-params.ts} +9 -6
  737. package/src/codec.ts +149 -0
  738. package/src/config-types.ts +282 -0
  739. package/src/config-validation.ts +330 -0
  740. package/src/content/index.ts +5 -13
  741. package/src/cookies/define-cookie.ts +217 -53
  742. package/src/cookies/index.ts +12 -1
  743. package/src/cookies/json-cookie.ts +105 -0
  744. package/src/cookies/validation.ts +192 -0
  745. package/src/dev-tools/404-page.ts +286 -0
  746. package/src/dev-tools/browser-logs.ts +55 -0
  747. package/src/dev-tools/dev-page-shell.ts +260 -0
  748. package/src/dev-tools/error-page.ts +331 -0
  749. package/src/dev-tools/holding-server.ts +187 -0
  750. package/src/dev-tools/hydration-overlay.ts +158 -0
  751. package/src/dev-tools/index.ts +83 -0
  752. package/src/dev-tools/instrumentation.ts +213 -0
  753. package/src/{server/dev-logger.ts → dev-tools/logger.ts} +33 -51
  754. package/src/{plugins/dev-logs.ts → dev-tools/logs.ts} +122 -26
  755. package/src/dev-tools/overlay.ts +469 -0
  756. package/src/dev-tools/stack-classifier.ts +75 -0
  757. package/src/dev-tools/terminal.ts +182 -0
  758. package/src/fonts/ast-walk.ts +235 -0
  759. package/src/fonts/ast.ts +477 -126
  760. package/src/fonts/bundle.ts +138 -0
  761. package/src/fonts/dev-middleware.ts +85 -0
  762. package/src/fonts/fallbacks.ts +0 -23
  763. package/src/fonts/google.ts +100 -18
  764. package/src/fonts/local.ts +9 -8
  765. package/src/fonts/paths.ts +58 -0
  766. package/src/fonts/pipeline.ts +348 -0
  767. package/src/fonts/transform.ts +311 -0
  768. package/src/fonts/types.ts +52 -1
  769. package/src/fonts/virtual-modules.ts +179 -0
  770. package/src/index.ts +446 -352
  771. package/src/params/codec-registry.ts +34 -0
  772. package/src/params/define-schema.ts +115 -0
  773. package/src/params/index.ts +17 -0
  774. package/src/params/resolve-schema.ts +84 -0
  775. package/src/plugin-context.ts +432 -0
  776. package/src/plugins/adapter-build.ts +220 -7
  777. package/src/plugins/build-manifest.ts +177 -23
  778. package/src/plugins/build-report.ts +253 -35
  779. package/src/plugins/cache.ts +243 -0
  780. package/src/plugins/callsite-ast.ts +472 -0
  781. package/src/plugins/callsite-jsx.ts +243 -0
  782. package/src/plugins/chunks.ts +74 -5
  783. package/src/plugins/client-chunks.ts +185 -0
  784. package/src/plugins/cloudflare-wasm.ts +141 -0
  785. package/src/plugins/content.ts +1 -1
  786. package/src/plugins/dev-server.ts +284 -94
  787. package/src/plugins/entries.ts +134 -16
  788. package/src/plugins/fonts.ts +225 -660
  789. package/src/plugins/mdx.ts +47 -10
  790. package/src/plugins/prebuilt-capture.ts +217 -0
  791. package/src/plugins/prebuilt-options-analysis.ts +175 -0
  792. package/src/plugins/prebuilt.ts +655 -0
  793. package/src/plugins/prerender-sugar.ts +328 -0
  794. package/src/plugins/request-dep.ts +458 -0
  795. package/src/plugins/routing.ts +237 -241
  796. package/src/plugins/server-bundle.ts +89 -12
  797. package/src/plugins/shims.ts +241 -64
  798. package/src/plugins/static-build.ts +15 -90
  799. package/src/routing/codegen-shared.ts +115 -0
  800. package/src/routing/codegen-types.ts +65 -0
  801. package/src/routing/codegen.ts +372 -178
  802. package/src/routing/convention-lint.ts +394 -0
  803. package/src/routing/export-detect.ts +304 -0
  804. package/src/routing/file-cache.ts +23 -0
  805. package/src/routing/index.ts +10 -1
  806. package/src/routing/interception.ts +3 -22
  807. package/src/routing/link-codegen.ts +313 -0
  808. package/src/routing/manifest-codegen.ts +287 -0
  809. package/src/routing/scanner.ts +338 -189
  810. package/src/routing/schema-validation.ts +155 -0
  811. package/src/routing/segment-classify.ts +223 -0
  812. package/src/routing/segment-codegen.ts +98 -0
  813. package/src/routing/types.ts +82 -25
  814. package/src/routing/walkers.ts +90 -0
  815. package/src/rsc-runtime/rsc.ts +9 -0
  816. package/src/rsc-runtime/ssr.ts +50 -0
  817. package/src/rsc-runtime/vendor-types.d.ts +7 -0
  818. package/src/schema-bridge.ts +253 -0
  819. package/src/search-params/define.ts +576 -0
  820. package/src/search-params/index.ts +14 -20
  821. package/src/search-params/registry.ts +2 -2
  822. package/src/search-params/wrappers.ts +101 -0
  823. package/src/segment-params/define.ts +249 -0
  824. package/src/segment-params/index.ts +9 -0
  825. package/src/server/access-gate.tsx +111 -34
  826. package/src/server/action-client.ts +120 -29
  827. package/src/server/action-encryption.ts +144 -0
  828. package/src/server/action-handler.ts +123 -33
  829. package/src/server/actions.ts +48 -54
  830. package/src/server/als-registry.ts +137 -20
  831. package/src/server/asset-headers.ts +15 -37
  832. package/src/server/body-limits.ts +10 -2
  833. package/src/server/build-manifest.ts +19 -56
  834. package/src/server/canonicalize.ts +6 -3
  835. package/src/server/coalesce-tick.ts +75 -0
  836. package/src/server/compress.ts +34 -7
  837. package/src/server/cookie-context.ts +484 -0
  838. package/src/server/cookie-parsing.ts +163 -0
  839. package/src/server/csrf.ts +39 -6
  840. package/src/server/default-logger.ts +99 -0
  841. package/src/server/deny-boundary.ts +314 -0
  842. package/src/server/deny-renderer.ts +85 -77
  843. package/src/server/dev-source-map.ts +31 -0
  844. package/src/server/early-hints-sender.ts +3 -2
  845. package/src/server/early-hints.ts +37 -27
  846. package/src/server/error-boundary-wrapper.ts +61 -22
  847. package/src/server/fallback-error.ts +79 -102
  848. package/src/server/flight-injection-state.ts +113 -0
  849. package/src/server/flight-scripts.ts +62 -0
  850. package/src/server/form-data.ts +124 -12
  851. package/src/server/html-injector-core.ts +495 -0
  852. package/src/server/html-injectors.ts +271 -254
  853. package/src/server/index.ts +31 -185
  854. package/src/server/internal.ts +181 -0
  855. package/src/server/logger.ts +72 -36
  856. package/src/server/metadata-routes.ts +205 -24
  857. package/src/server/metadata.ts +21 -0
  858. package/src/server/middleware-runner.ts +31 -4
  859. package/src/server/node-stream-transforms.ts +336 -0
  860. package/src/server/param-coercion.ts +207 -0
  861. package/src/server/pipeline-helpers.ts +204 -0
  862. package/src/server/pipeline-interception.ts +45 -18
  863. package/src/server/pipeline-metadata.ts +14 -0
  864. package/src/server/pipeline-outcome.ts +197 -0
  865. package/src/server/pipeline-phases.ts +545 -0
  866. package/src/server/pipeline.ts +274 -382
  867. package/src/server/port-resolution.ts +215 -0
  868. package/src/server/prebuilt/cache-key.ts +298 -0
  869. package/src/server/prebuilt/capture-state.ts +89 -0
  870. package/src/server/prebuilt/key-discipline.ts +53 -0
  871. package/src/server/prebuilt/manifest-tag-index.ts +46 -0
  872. package/src/server/prebuilt/overlay.ts +256 -0
  873. package/src/server/prebuilt/payload-source.ts +201 -0
  874. package/src/server/prebuilt/slots.ts +190 -0
  875. package/src/server/prebuilt/synthetic-store.ts +121 -0
  876. package/src/server/prebuilt-builder.ts +809 -0
  877. package/src/server/prebuilt-runtime.ts +815 -0
  878. package/src/server/primitives.ts +160 -83
  879. package/src/server/render-timeout.ts +108 -0
  880. package/src/server/render-utils.ts +31 -0
  881. package/src/server/request-context.ts +170 -337
  882. package/src/server/request-dep.ts +37 -0
  883. package/src/server/route-element-builder.ts +699 -295
  884. package/src/server/route-handler.ts +31 -4
  885. package/src/server/route-matcher.ts +158 -277
  886. package/src/server/rsc-entry/action-middleware-runner.ts +167 -0
  887. package/src/server/rsc-entry/api-handler.ts +69 -32
  888. package/src/server/rsc-entry/deny-fallback.ts +92 -0
  889. package/src/server/rsc-entry/error-renderer.ts +306 -89
  890. package/src/server/rsc-entry/helpers.ts +210 -85
  891. package/src/server/rsc-entry/index.ts +332 -332
  892. package/src/server/rsc-entry/render-route.ts +300 -0
  893. package/src/server/rsc-entry/revalidate-renderer.ts +349 -0
  894. package/src/server/rsc-entry/rsc-payload.ts +102 -42
  895. package/src/server/rsc-entry/rsc-stream.ts +93 -13
  896. package/src/server/rsc-entry/ssr-bridge.ts +18 -5
  897. package/src/server/rsc-entry/ssr-renderer.ts +275 -43
  898. package/src/server/rsc-entry/wrap-action-dispatch.ts +186 -0
  899. package/src/server/safe-load.ts +60 -0
  900. package/src/server/sensitive-fields.ts +230 -0
  901. package/src/server/server-only-guard-noop.js +3 -0
  902. package/src/server/sitemap-generator.ts +345 -0
  903. package/src/server/sitemap-handler.ts +157 -0
  904. package/src/server/slot-resolver.ts +574 -250
  905. package/src/server/ssr-bridge-types.ts +124 -0
  906. package/src/server/ssr-entry.ts +206 -86
  907. package/src/server/ssr-render.ts +345 -86
  908. package/src/server/ssr-wrappers.tsx +141 -0
  909. package/src/server/state-tree-diff.ts +177 -30
  910. package/src/server/status-code-resolver.ts +115 -130
  911. package/src/server/stream-utils.ts +288 -0
  912. package/src/server/tracing.ts +126 -14
  913. package/src/server/tree-builder.ts +214 -90
  914. package/src/server/tree-match.ts +262 -0
  915. package/src/server/types.ts +78 -9
  916. package/src/server/utils/escape-html.ts +20 -0
  917. package/src/server/utils/mdx-file.ts +22 -0
  918. package/src/server/version-skew.ts +104 -0
  919. package/src/server/workers-cache-bridge.ts +33 -0
  920. package/src/shared/href-validation.ts +159 -0
  921. package/src/shared/merge-search-params.ts +55 -0
  922. package/src/shared/redirect-type.ts +17 -0
  923. package/src/shims/font-google.ts +1 -1
  924. package/src/shims/font-local.ts +34 -0
  925. package/src/shims/headers.ts +122 -1
  926. package/src/shims/navigation-client.ts +51 -29
  927. package/src/shims/navigation.ts +14 -7
  928. package/src/utils/state-machine.ts +111 -0
  929. package/dist/_chunks/als-registry-B7DbZ2hS.js +0 -41
  930. package/dist/_chunks/als-registry-B7DbZ2hS.js.map +0 -1
  931. package/dist/_chunks/debug-B3Gypr3D.js +0 -108
  932. package/dist/_chunks/debug-B3Gypr3D.js.map +0 -1
  933. package/dist/_chunks/format-RyoGQL74.js +0 -164
  934. package/dist/_chunks/format-RyoGQL74.js.map +0 -1
  935. package/dist/_chunks/interception-BOoWmLUA.js +0 -676
  936. package/dist/_chunks/interception-BOoWmLUA.js.map +0 -1
  937. package/dist/_chunks/metadata-routes-Cjmvi3rQ.js +0 -153
  938. package/dist/_chunks/metadata-routes-Cjmvi3rQ.js.map +0 -1
  939. package/dist/_chunks/request-context-BQUC8PHn.js +0 -330
  940. package/dist/_chunks/request-context-BQUC8PHn.js.map +0 -1
  941. package/dist/_chunks/ssr-data-MjmprTmO.js.map +0 -1
  942. package/dist/_chunks/tracing-CemImE6h.js +0 -187
  943. package/dist/_chunks/tracing-CemImE6h.js.map +0 -1
  944. package/dist/_chunks/use-cookie-DX-l1_5E.js +0 -91
  945. package/dist/_chunks/use-cookie-DX-l1_5E.js.map +0 -1
  946. package/dist/_chunks/use-query-states-D5KaffOK.js.map +0 -1
  947. package/dist/adapters/cloudflare.js.map +0 -1
  948. package/dist/cache/index.js.map +0 -1
  949. package/dist/cache/register-cached-function.d.ts +0 -17
  950. package/dist/cache/register-cached-function.d.ts.map +0 -1
  951. package/dist/client/browser-entry.d.ts +0 -21
  952. package/dist/client/browser-entry.d.ts.map +0 -1
  953. package/dist/client/head.d.ts +0 -16
  954. package/dist/client/head.d.ts.map +0 -1
  955. package/dist/client/link-status-provider.d.ts +0 -11
  956. package/dist/client/link-status-provider.d.ts.map +0 -1
  957. package/dist/client/segment-merger.d.ts +0 -119
  958. package/dist/client/segment-merger.d.ts.map +0 -1
  959. package/dist/client/stale-reload.d.ts +0 -44
  960. package/dist/client/stale-reload.d.ts.map +0 -1
  961. package/dist/client/transition-root.d.ts +0 -74
  962. package/dist/client/transition-root.d.ts.map +0 -1
  963. package/dist/client/use-navigation-pending.d.ts +0 -26
  964. package/dist/client/use-navigation-pending.d.ts.map +0 -1
  965. package/dist/client/use-params.d.ts.map +0 -1
  966. package/dist/plugins/cache-transform.d.ts +0 -36
  967. package/dist/plugins/cache-transform.d.ts.map +0 -1
  968. package/dist/plugins/dev-error-overlay.d.ts +0 -60
  969. package/dist/plugins/dev-error-overlay.d.ts.map +0 -1
  970. package/dist/plugins/dev-logs.d.ts.map +0 -1
  971. package/dist/plugins/dynamic-transform.d.ts +0 -72
  972. package/dist/plugins/dynamic-transform.d.ts.map +0 -1
  973. package/dist/plugins/server-action-exports.d.ts +0 -26
  974. package/dist/plugins/server-action-exports.d.ts.map +0 -1
  975. package/dist/routing/status-file-lint.d.ts +0 -33
  976. package/dist/routing/status-file-lint.d.ts.map +0 -1
  977. package/dist/search-params/analyze.d.ts +0 -54
  978. package/dist/search-params/analyze.d.ts.map +0 -1
  979. package/dist/search-params/builtin-codecs.d.ts +0 -105
  980. package/dist/search-params/builtin-codecs.d.ts.map +0 -1
  981. package/dist/search-params/codecs.d.ts +0 -53
  982. package/dist/search-params/codecs.d.ts.map +0 -1
  983. package/dist/search-params/create.d.ts +0 -106
  984. package/dist/search-params/create.d.ts.map +0 -1
  985. package/dist/server/client-module-map.d.ts +0 -47
  986. package/dist/server/client-module-map.d.ts.map +0 -1
  987. package/dist/server/dev-fetch-instrumentation.d.ts +0 -22
  988. package/dist/server/dev-fetch-instrumentation.d.ts.map +0 -1
  989. package/dist/server/dev-logger.d.ts.map +0 -1
  990. package/dist/server/dev-span-processor.d.ts +0 -29
  991. package/dist/server/dev-span-processor.d.ts.map +0 -1
  992. package/dist/server/dev-warnings.d.ts +0 -129
  993. package/dist/server/dev-warnings.d.ts.map +0 -1
  994. package/dist/server/flush.d.ts +0 -74
  995. package/dist/server/flush.d.ts.map +0 -1
  996. package/dist/server/manifest-status-resolver.d.ts +0 -58
  997. package/dist/server/manifest-status-resolver.d.ts.map +0 -1
  998. package/dist/server/prerender.d.ts +0 -77
  999. package/dist/server/prerender.d.ts.map +0 -1
  1000. package/dist/utils/directive-parser.d.ts +0 -70
  1001. package/dist/utils/directive-parser.d.ts.map +0 -1
  1002. package/src/cache/register-cached-function.ts +0 -103
  1003. package/src/client/browser-entry.ts +0 -678
  1004. package/src/client/head.ts +0 -61
  1005. package/src/client/link-status-provider.tsx +0 -30
  1006. package/src/client/segment-merger.ts +0 -339
  1007. package/src/client/stale-reload.ts +0 -87
  1008. package/src/client/transition-root.tsx +0 -166
  1009. package/src/client/use-navigation-pending.ts +0 -38
  1010. package/src/plugins/cache-transform.ts +0 -199
  1011. package/src/plugins/dev-error-overlay.ts +0 -230
  1012. package/src/plugins/dynamic-transform.ts +0 -161
  1013. package/src/plugins/server-action-exports.ts +0 -220
  1014. package/src/routing/status-file-lint.ts +0 -112
  1015. package/src/search-params/analyze.ts +0 -192
  1016. package/src/search-params/builtin-codecs.ts +0 -228
  1017. package/src/search-params/codecs.ts +0 -153
  1018. package/src/search-params/create.ts +0 -321
  1019. package/src/server/client-module-map.ts +0 -58
  1020. package/src/server/dev-fetch-instrumentation.ts +0 -96
  1021. package/src/server/dev-span-processor.ts +0 -78
  1022. package/src/server/dev-warnings.ts +0 -283
  1023. package/src/server/flush.ts +0 -182
  1024. package/src/server/manifest-status-resolver.ts +0 -215
  1025. package/src/server/prerender.ts +0 -139
  1026. package/src/utils/directive-parser.ts +0 -529
@@ -0,0 +1,1188 @@
1
+ import { t as runSharedBuildSteps } from "./build-output-helper-DF5uScqS.js";
2
+ import { join, relative } from "node:path";
3
+ import { access, readFile, readdir, rm, writeFile } from "node:fs/promises";
4
+ import { AsyncLocalStorage } from "node:async_hooks";
5
+ import { execFile } from "node:child_process";
6
+ //#region ../../node_modules/.pnpm/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/scanner.js
7
+ /**
8
+ * Creates a JSON scanner on the given text.
9
+ * If ignoreTrivia is set, whitespaces or comments are ignored.
10
+ */
11
+ function createScanner(text, ignoreTrivia = false) {
12
+ const len = text.length;
13
+ let pos = 0, value = "", tokenOffset = 0, token = 16, lineNumber = 0, lineStartOffset = 0, tokenLineStartOffset = 0, prevTokenLineStartOffset = 0, scanError = 0;
14
+ function scanHexDigits(count, exact) {
15
+ let digits = 0;
16
+ let value = 0;
17
+ while (digits < count || !exact) {
18
+ let ch = text.charCodeAt(pos);
19
+ if (ch >= 48 && ch <= 57) value = value * 16 + ch - 48;
20
+ else if (ch >= 65 && ch <= 70) value = value * 16 + ch - 65 + 10;
21
+ else if (ch >= 97 && ch <= 102) value = value * 16 + ch - 97 + 10;
22
+ else break;
23
+ pos++;
24
+ digits++;
25
+ }
26
+ if (digits < count) value = -1;
27
+ return value;
28
+ }
29
+ function setPosition(newPosition) {
30
+ pos = newPosition;
31
+ value = "";
32
+ tokenOffset = 0;
33
+ token = 16;
34
+ scanError = 0;
35
+ }
36
+ function scanNumber() {
37
+ let start = pos;
38
+ if (text.charCodeAt(pos) === 48) pos++;
39
+ else {
40
+ pos++;
41
+ while (pos < text.length && isDigit(text.charCodeAt(pos))) pos++;
42
+ }
43
+ if (pos < text.length && text.charCodeAt(pos) === 46) {
44
+ pos++;
45
+ if (pos < text.length && isDigit(text.charCodeAt(pos))) {
46
+ pos++;
47
+ while (pos < text.length && isDigit(text.charCodeAt(pos))) pos++;
48
+ } else {
49
+ scanError = 3;
50
+ return text.substring(start, pos);
51
+ }
52
+ }
53
+ let end = pos;
54
+ if (pos < text.length && (text.charCodeAt(pos) === 69 || text.charCodeAt(pos) === 101)) {
55
+ pos++;
56
+ if (pos < text.length && text.charCodeAt(pos) === 43 || text.charCodeAt(pos) === 45) pos++;
57
+ if (pos < text.length && isDigit(text.charCodeAt(pos))) {
58
+ pos++;
59
+ while (pos < text.length && isDigit(text.charCodeAt(pos))) pos++;
60
+ end = pos;
61
+ } else scanError = 3;
62
+ }
63
+ return text.substring(start, end);
64
+ }
65
+ function scanString() {
66
+ let result = "", start = pos;
67
+ while (true) {
68
+ if (pos >= len) {
69
+ result += text.substring(start, pos);
70
+ scanError = 2;
71
+ break;
72
+ }
73
+ const ch = text.charCodeAt(pos);
74
+ if (ch === 34) {
75
+ result += text.substring(start, pos);
76
+ pos++;
77
+ break;
78
+ }
79
+ if (ch === 92) {
80
+ result += text.substring(start, pos);
81
+ pos++;
82
+ if (pos >= len) {
83
+ scanError = 2;
84
+ break;
85
+ }
86
+ switch (text.charCodeAt(pos++)) {
87
+ case 34:
88
+ result += "\"";
89
+ break;
90
+ case 92:
91
+ result += "\\";
92
+ break;
93
+ case 47:
94
+ result += "/";
95
+ break;
96
+ case 98:
97
+ result += "\b";
98
+ break;
99
+ case 102:
100
+ result += "\f";
101
+ break;
102
+ case 110:
103
+ result += "\n";
104
+ break;
105
+ case 114:
106
+ result += "\r";
107
+ break;
108
+ case 116:
109
+ result += " ";
110
+ break;
111
+ case 117:
112
+ const ch3 = scanHexDigits(4, true);
113
+ if (ch3 >= 0) result += String.fromCharCode(ch3);
114
+ else scanError = 4;
115
+ break;
116
+ default: scanError = 5;
117
+ }
118
+ start = pos;
119
+ continue;
120
+ }
121
+ if (ch >= 0 && ch <= 31) if (isLineBreak(ch)) {
122
+ result += text.substring(start, pos);
123
+ scanError = 2;
124
+ break;
125
+ } else scanError = 6;
126
+ pos++;
127
+ }
128
+ return result;
129
+ }
130
+ function scanNext() {
131
+ value = "";
132
+ scanError = 0;
133
+ tokenOffset = pos;
134
+ lineStartOffset = lineNumber;
135
+ prevTokenLineStartOffset = tokenLineStartOffset;
136
+ if (pos >= len) {
137
+ tokenOffset = len;
138
+ return token = 17;
139
+ }
140
+ let code = text.charCodeAt(pos);
141
+ if (isWhiteSpace(code)) {
142
+ do {
143
+ pos++;
144
+ value += String.fromCharCode(code);
145
+ code = text.charCodeAt(pos);
146
+ } while (isWhiteSpace(code));
147
+ return token = 15;
148
+ }
149
+ if (isLineBreak(code)) {
150
+ pos++;
151
+ value += String.fromCharCode(code);
152
+ if (code === 13 && text.charCodeAt(pos) === 10) {
153
+ pos++;
154
+ value += "\n";
155
+ }
156
+ lineNumber++;
157
+ tokenLineStartOffset = pos;
158
+ return token = 14;
159
+ }
160
+ switch (code) {
161
+ case 123:
162
+ pos++;
163
+ return token = 1;
164
+ case 125:
165
+ pos++;
166
+ return token = 2;
167
+ case 91:
168
+ pos++;
169
+ return token = 3;
170
+ case 93:
171
+ pos++;
172
+ return token = 4;
173
+ case 58:
174
+ pos++;
175
+ return token = 6;
176
+ case 44:
177
+ pos++;
178
+ return token = 5;
179
+ case 34:
180
+ pos++;
181
+ value = scanString();
182
+ return token = 10;
183
+ case 47:
184
+ const start = pos - 1;
185
+ if (text.charCodeAt(pos + 1) === 47) {
186
+ pos += 2;
187
+ while (pos < len) {
188
+ if (isLineBreak(text.charCodeAt(pos))) break;
189
+ pos++;
190
+ }
191
+ value = text.substring(start, pos);
192
+ return token = 12;
193
+ }
194
+ if (text.charCodeAt(pos + 1) === 42) {
195
+ pos += 2;
196
+ const safeLength = len - 1;
197
+ let commentClosed = false;
198
+ while (pos < safeLength) {
199
+ const ch = text.charCodeAt(pos);
200
+ if (ch === 42 && text.charCodeAt(pos + 1) === 47) {
201
+ pos += 2;
202
+ commentClosed = true;
203
+ break;
204
+ }
205
+ pos++;
206
+ if (isLineBreak(ch)) {
207
+ if (ch === 13 && text.charCodeAt(pos) === 10) pos++;
208
+ lineNumber++;
209
+ tokenLineStartOffset = pos;
210
+ }
211
+ }
212
+ if (!commentClosed) {
213
+ pos++;
214
+ scanError = 1;
215
+ }
216
+ value = text.substring(start, pos);
217
+ return token = 13;
218
+ }
219
+ value += String.fromCharCode(code);
220
+ pos++;
221
+ return token = 16;
222
+ case 45:
223
+ value += String.fromCharCode(code);
224
+ pos++;
225
+ if (pos === len || !isDigit(text.charCodeAt(pos))) return token = 16;
226
+ case 48:
227
+ case 49:
228
+ case 50:
229
+ case 51:
230
+ case 52:
231
+ case 53:
232
+ case 54:
233
+ case 55:
234
+ case 56:
235
+ case 57:
236
+ value += scanNumber();
237
+ return token = 11;
238
+ default:
239
+ while (pos < len && isUnknownContentCharacter(code)) {
240
+ pos++;
241
+ code = text.charCodeAt(pos);
242
+ }
243
+ if (tokenOffset !== pos) {
244
+ value = text.substring(tokenOffset, pos);
245
+ switch (value) {
246
+ case "true": return token = 8;
247
+ case "false": return token = 9;
248
+ case "null": return token = 7;
249
+ }
250
+ return token = 16;
251
+ }
252
+ value += String.fromCharCode(code);
253
+ pos++;
254
+ return token = 16;
255
+ }
256
+ }
257
+ function isUnknownContentCharacter(code) {
258
+ if (isWhiteSpace(code) || isLineBreak(code)) return false;
259
+ switch (code) {
260
+ case 125:
261
+ case 93:
262
+ case 123:
263
+ case 91:
264
+ case 34:
265
+ case 58:
266
+ case 44:
267
+ case 47: return false;
268
+ }
269
+ return true;
270
+ }
271
+ function scanNextNonTrivia() {
272
+ let result;
273
+ do
274
+ result = scanNext();
275
+ while (result >= 12 && result <= 15);
276
+ return result;
277
+ }
278
+ return {
279
+ setPosition,
280
+ getPosition: () => pos,
281
+ scan: ignoreTrivia ? scanNextNonTrivia : scanNext,
282
+ getToken: () => token,
283
+ getTokenValue: () => value,
284
+ getTokenOffset: () => tokenOffset,
285
+ getTokenLength: () => pos - tokenOffset,
286
+ getTokenStartLine: () => lineStartOffset,
287
+ getTokenStartCharacter: () => tokenOffset - prevTokenLineStartOffset,
288
+ getTokenError: () => scanError
289
+ };
290
+ }
291
+ function isWhiteSpace(ch) {
292
+ return ch === 32 || ch === 9;
293
+ }
294
+ function isLineBreak(ch) {
295
+ return ch === 10 || ch === 13;
296
+ }
297
+ function isDigit(ch) {
298
+ return ch >= 48 && ch <= 57;
299
+ }
300
+ var CharacterCodes;
301
+ (function(CharacterCodes) {
302
+ CharacterCodes[CharacterCodes["lineFeed"] = 10] = "lineFeed";
303
+ CharacterCodes[CharacterCodes["carriageReturn"] = 13] = "carriageReturn";
304
+ CharacterCodes[CharacterCodes["space"] = 32] = "space";
305
+ CharacterCodes[CharacterCodes["_0"] = 48] = "_0";
306
+ CharacterCodes[CharacterCodes["_1"] = 49] = "_1";
307
+ CharacterCodes[CharacterCodes["_2"] = 50] = "_2";
308
+ CharacterCodes[CharacterCodes["_3"] = 51] = "_3";
309
+ CharacterCodes[CharacterCodes["_4"] = 52] = "_4";
310
+ CharacterCodes[CharacterCodes["_5"] = 53] = "_5";
311
+ CharacterCodes[CharacterCodes["_6"] = 54] = "_6";
312
+ CharacterCodes[CharacterCodes["_7"] = 55] = "_7";
313
+ CharacterCodes[CharacterCodes["_8"] = 56] = "_8";
314
+ CharacterCodes[CharacterCodes["_9"] = 57] = "_9";
315
+ CharacterCodes[CharacterCodes["a"] = 97] = "a";
316
+ CharacterCodes[CharacterCodes["b"] = 98] = "b";
317
+ CharacterCodes[CharacterCodes["c"] = 99] = "c";
318
+ CharacterCodes[CharacterCodes["d"] = 100] = "d";
319
+ CharacterCodes[CharacterCodes["e"] = 101] = "e";
320
+ CharacterCodes[CharacterCodes["f"] = 102] = "f";
321
+ CharacterCodes[CharacterCodes["g"] = 103] = "g";
322
+ CharacterCodes[CharacterCodes["h"] = 104] = "h";
323
+ CharacterCodes[CharacterCodes["i"] = 105] = "i";
324
+ CharacterCodes[CharacterCodes["j"] = 106] = "j";
325
+ CharacterCodes[CharacterCodes["k"] = 107] = "k";
326
+ CharacterCodes[CharacterCodes["l"] = 108] = "l";
327
+ CharacterCodes[CharacterCodes["m"] = 109] = "m";
328
+ CharacterCodes[CharacterCodes["n"] = 110] = "n";
329
+ CharacterCodes[CharacterCodes["o"] = 111] = "o";
330
+ CharacterCodes[CharacterCodes["p"] = 112] = "p";
331
+ CharacterCodes[CharacterCodes["q"] = 113] = "q";
332
+ CharacterCodes[CharacterCodes["r"] = 114] = "r";
333
+ CharacterCodes[CharacterCodes["s"] = 115] = "s";
334
+ CharacterCodes[CharacterCodes["t"] = 116] = "t";
335
+ CharacterCodes[CharacterCodes["u"] = 117] = "u";
336
+ CharacterCodes[CharacterCodes["v"] = 118] = "v";
337
+ CharacterCodes[CharacterCodes["w"] = 119] = "w";
338
+ CharacterCodes[CharacterCodes["x"] = 120] = "x";
339
+ CharacterCodes[CharacterCodes["y"] = 121] = "y";
340
+ CharacterCodes[CharacterCodes["z"] = 122] = "z";
341
+ CharacterCodes[CharacterCodes["A"] = 65] = "A";
342
+ CharacterCodes[CharacterCodes["B"] = 66] = "B";
343
+ CharacterCodes[CharacterCodes["C"] = 67] = "C";
344
+ CharacterCodes[CharacterCodes["D"] = 68] = "D";
345
+ CharacterCodes[CharacterCodes["E"] = 69] = "E";
346
+ CharacterCodes[CharacterCodes["F"] = 70] = "F";
347
+ CharacterCodes[CharacterCodes["G"] = 71] = "G";
348
+ CharacterCodes[CharacterCodes["H"] = 72] = "H";
349
+ CharacterCodes[CharacterCodes["I"] = 73] = "I";
350
+ CharacterCodes[CharacterCodes["J"] = 74] = "J";
351
+ CharacterCodes[CharacterCodes["K"] = 75] = "K";
352
+ CharacterCodes[CharacterCodes["L"] = 76] = "L";
353
+ CharacterCodes[CharacterCodes["M"] = 77] = "M";
354
+ CharacterCodes[CharacterCodes["N"] = 78] = "N";
355
+ CharacterCodes[CharacterCodes["O"] = 79] = "O";
356
+ CharacterCodes[CharacterCodes["P"] = 80] = "P";
357
+ CharacterCodes[CharacterCodes["Q"] = 81] = "Q";
358
+ CharacterCodes[CharacterCodes["R"] = 82] = "R";
359
+ CharacterCodes[CharacterCodes["S"] = 83] = "S";
360
+ CharacterCodes[CharacterCodes["T"] = 84] = "T";
361
+ CharacterCodes[CharacterCodes["U"] = 85] = "U";
362
+ CharacterCodes[CharacterCodes["V"] = 86] = "V";
363
+ CharacterCodes[CharacterCodes["W"] = 87] = "W";
364
+ CharacterCodes[CharacterCodes["X"] = 88] = "X";
365
+ CharacterCodes[CharacterCodes["Y"] = 89] = "Y";
366
+ CharacterCodes[CharacterCodes["Z"] = 90] = "Z";
367
+ CharacterCodes[CharacterCodes["asterisk"] = 42] = "asterisk";
368
+ CharacterCodes[CharacterCodes["backslash"] = 92] = "backslash";
369
+ CharacterCodes[CharacterCodes["closeBrace"] = 125] = "closeBrace";
370
+ CharacterCodes[CharacterCodes["closeBracket"] = 93] = "closeBracket";
371
+ CharacterCodes[CharacterCodes["colon"] = 58] = "colon";
372
+ CharacterCodes[CharacterCodes["comma"] = 44] = "comma";
373
+ CharacterCodes[CharacterCodes["dot"] = 46] = "dot";
374
+ CharacterCodes[CharacterCodes["doubleQuote"] = 34] = "doubleQuote";
375
+ CharacterCodes[CharacterCodes["minus"] = 45] = "minus";
376
+ CharacterCodes[CharacterCodes["openBrace"] = 123] = "openBrace";
377
+ CharacterCodes[CharacterCodes["openBracket"] = 91] = "openBracket";
378
+ CharacterCodes[CharacterCodes["plus"] = 43] = "plus";
379
+ CharacterCodes[CharacterCodes["slash"] = 47] = "slash";
380
+ CharacterCodes[CharacterCodes["formFeed"] = 12] = "formFeed";
381
+ CharacterCodes[CharacterCodes["tab"] = 9] = "tab";
382
+ })(CharacterCodes || (CharacterCodes = {}));
383
+ new Array(20).fill(0).map((_, index) => {
384
+ return " ".repeat(index);
385
+ });
386
+ var maxCachedValues = 200;
387
+ new Array(maxCachedValues).fill(0).map((_, index) => {
388
+ return "\n" + " ".repeat(index);
389
+ }), new Array(maxCachedValues).fill(0).map((_, index) => {
390
+ return "\r" + " ".repeat(index);
391
+ }), new Array(maxCachedValues).fill(0).map((_, index) => {
392
+ return "\r\n" + " ".repeat(index);
393
+ }), new Array(maxCachedValues).fill(0).map((_, index) => {
394
+ return "\n" + " ".repeat(index);
395
+ }), new Array(maxCachedValues).fill(0).map((_, index) => {
396
+ return "\r" + " ".repeat(index);
397
+ }), new Array(maxCachedValues).fill(0).map((_, index) => {
398
+ return "\r\n" + " ".repeat(index);
399
+ });
400
+ //#endregion
401
+ //#region ../../node_modules/.pnpm/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/parser.js
402
+ var ParseOptions;
403
+ (function(ParseOptions) {
404
+ ParseOptions.DEFAULT = { allowTrailingComma: false };
405
+ })(ParseOptions || (ParseOptions = {}));
406
+ /**
407
+ * Parses the given text and returns the object the JSON content represents. On invalid input, the parser tries to be as fault tolerant as possible, but still return a result.
408
+ * Therefore always check the errors list to find out if the input was valid.
409
+ */
410
+ function parse$1(text, errors = [], options = ParseOptions.DEFAULT) {
411
+ let currentProperty = null;
412
+ let currentParent = [];
413
+ const previousParents = [];
414
+ function onValue(value) {
415
+ if (Array.isArray(currentParent)) currentParent.push(value);
416
+ else if (currentProperty !== null) currentParent[currentProperty] = value;
417
+ }
418
+ visit(text, {
419
+ onObjectBegin: () => {
420
+ const object = {};
421
+ onValue(object);
422
+ previousParents.push(currentParent);
423
+ currentParent = object;
424
+ currentProperty = null;
425
+ },
426
+ onObjectProperty: (name) => {
427
+ currentProperty = name;
428
+ },
429
+ onObjectEnd: () => {
430
+ currentParent = previousParents.pop();
431
+ },
432
+ onArrayBegin: () => {
433
+ const array = [];
434
+ onValue(array);
435
+ previousParents.push(currentParent);
436
+ currentParent = array;
437
+ currentProperty = null;
438
+ },
439
+ onArrayEnd: () => {
440
+ currentParent = previousParents.pop();
441
+ },
442
+ onLiteralValue: onValue,
443
+ onError: (error, offset, length) => {
444
+ errors.push({
445
+ error,
446
+ offset,
447
+ length
448
+ });
449
+ }
450
+ }, options);
451
+ return currentParent[0];
452
+ }
453
+ /**
454
+ * Parses the given text and invokes the visitor functions for each object, array and literal reached.
455
+ */
456
+ function visit(text, visitor, options = ParseOptions.DEFAULT) {
457
+ const _scanner = createScanner(text, false);
458
+ const _jsonPath = [];
459
+ let suppressedCallbacks = 0;
460
+ function toNoArgVisit(visitFunction) {
461
+ return visitFunction ? () => suppressedCallbacks === 0 && visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter()) : () => true;
462
+ }
463
+ function toOneArgVisit(visitFunction) {
464
+ return visitFunction ? (arg) => suppressedCallbacks === 0 && visitFunction(arg, _scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter()) : () => true;
465
+ }
466
+ function toOneArgVisitWithPath(visitFunction) {
467
+ return visitFunction ? (arg) => suppressedCallbacks === 0 && visitFunction(arg, _scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter(), () => _jsonPath.slice()) : () => true;
468
+ }
469
+ function toBeginVisit(visitFunction) {
470
+ return visitFunction ? () => {
471
+ if (suppressedCallbacks > 0) suppressedCallbacks++;
472
+ else if (visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter(), () => _jsonPath.slice()) === false) suppressedCallbacks = 1;
473
+ } : () => true;
474
+ }
475
+ function toEndVisit(visitFunction) {
476
+ return visitFunction ? () => {
477
+ if (suppressedCallbacks > 0) suppressedCallbacks--;
478
+ if (suppressedCallbacks === 0) visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter());
479
+ } : () => true;
480
+ }
481
+ const onObjectBegin = toBeginVisit(visitor.onObjectBegin), onObjectProperty = toOneArgVisitWithPath(visitor.onObjectProperty), onObjectEnd = toEndVisit(visitor.onObjectEnd), onArrayBegin = toBeginVisit(visitor.onArrayBegin), onArrayEnd = toEndVisit(visitor.onArrayEnd), onLiteralValue = toOneArgVisitWithPath(visitor.onLiteralValue), onSeparator = toOneArgVisit(visitor.onSeparator), onComment = toNoArgVisit(visitor.onComment), onError = toOneArgVisit(visitor.onError);
482
+ const disallowComments = options && options.disallowComments;
483
+ const allowTrailingComma = options && options.allowTrailingComma;
484
+ function scanNext() {
485
+ while (true) {
486
+ const token = _scanner.scan();
487
+ switch (_scanner.getTokenError()) {
488
+ case 4:
489
+ handleError(14);
490
+ break;
491
+ case 5:
492
+ handleError(15);
493
+ break;
494
+ case 3:
495
+ handleError(13);
496
+ break;
497
+ case 1:
498
+ if (!disallowComments) handleError(11);
499
+ break;
500
+ case 2:
501
+ handleError(12);
502
+ break;
503
+ case 6:
504
+ handleError(16);
505
+ break;
506
+ }
507
+ switch (token) {
508
+ case 12:
509
+ case 13:
510
+ if (disallowComments) handleError(10);
511
+ else onComment();
512
+ break;
513
+ case 16:
514
+ handleError(1);
515
+ break;
516
+ case 15:
517
+ case 14: break;
518
+ default: return token;
519
+ }
520
+ }
521
+ }
522
+ function handleError(error, skipUntilAfter = [], skipUntil = []) {
523
+ onError(error);
524
+ if (skipUntilAfter.length + skipUntil.length > 0) {
525
+ let token = _scanner.getToken();
526
+ while (token !== 17) {
527
+ if (skipUntilAfter.indexOf(token) !== -1) {
528
+ scanNext();
529
+ break;
530
+ } else if (skipUntil.indexOf(token) !== -1) break;
531
+ token = scanNext();
532
+ }
533
+ }
534
+ }
535
+ function parseString(isValue) {
536
+ const value = _scanner.getTokenValue();
537
+ if (isValue) onLiteralValue(value);
538
+ else {
539
+ onObjectProperty(value);
540
+ _jsonPath.push(value);
541
+ }
542
+ scanNext();
543
+ return true;
544
+ }
545
+ function parseLiteral() {
546
+ switch (_scanner.getToken()) {
547
+ case 11:
548
+ const tokenValue = _scanner.getTokenValue();
549
+ let value = Number(tokenValue);
550
+ if (isNaN(value)) {
551
+ handleError(2);
552
+ value = 0;
553
+ }
554
+ onLiteralValue(value);
555
+ break;
556
+ case 7:
557
+ onLiteralValue(null);
558
+ break;
559
+ case 8:
560
+ onLiteralValue(true);
561
+ break;
562
+ case 9:
563
+ onLiteralValue(false);
564
+ break;
565
+ default: return false;
566
+ }
567
+ scanNext();
568
+ return true;
569
+ }
570
+ function parseProperty() {
571
+ if (_scanner.getToken() !== 10) {
572
+ handleError(3, [], [2, 5]);
573
+ return false;
574
+ }
575
+ parseString(false);
576
+ if (_scanner.getToken() === 6) {
577
+ onSeparator(":");
578
+ scanNext();
579
+ if (!parseValue()) handleError(4, [], [2, 5]);
580
+ } else handleError(5, [], [2, 5]);
581
+ _jsonPath.pop();
582
+ return true;
583
+ }
584
+ function parseObject() {
585
+ onObjectBegin();
586
+ scanNext();
587
+ let needsComma = false;
588
+ while (_scanner.getToken() !== 2 && _scanner.getToken() !== 17) {
589
+ if (_scanner.getToken() === 5) {
590
+ if (!needsComma) handleError(4, [], []);
591
+ onSeparator(",");
592
+ scanNext();
593
+ if (_scanner.getToken() === 2 && allowTrailingComma) break;
594
+ } else if (needsComma) handleError(6, [], []);
595
+ if (!parseProperty()) handleError(4, [], [2, 5]);
596
+ needsComma = true;
597
+ }
598
+ onObjectEnd();
599
+ if (_scanner.getToken() !== 2) handleError(7, [2], []);
600
+ else scanNext();
601
+ return true;
602
+ }
603
+ function parseArray() {
604
+ onArrayBegin();
605
+ scanNext();
606
+ let isFirstElement = true;
607
+ let needsComma = false;
608
+ while (_scanner.getToken() !== 4 && _scanner.getToken() !== 17) {
609
+ if (_scanner.getToken() === 5) {
610
+ if (!needsComma) handleError(4, [], []);
611
+ onSeparator(",");
612
+ scanNext();
613
+ if (_scanner.getToken() === 4 && allowTrailingComma) break;
614
+ } else if (needsComma) handleError(6, [], []);
615
+ if (isFirstElement) {
616
+ _jsonPath.push(0);
617
+ isFirstElement = false;
618
+ } else _jsonPath[_jsonPath.length - 1]++;
619
+ if (!parseValue()) handleError(4, [], [4, 5]);
620
+ needsComma = true;
621
+ }
622
+ onArrayEnd();
623
+ if (!isFirstElement) _jsonPath.pop();
624
+ if (_scanner.getToken() !== 4) handleError(8, [4], []);
625
+ else scanNext();
626
+ return true;
627
+ }
628
+ function parseValue() {
629
+ switch (_scanner.getToken()) {
630
+ case 3: return parseArray();
631
+ case 1: return parseObject();
632
+ case 10: return parseString(true);
633
+ default: return parseLiteral();
634
+ }
635
+ }
636
+ scanNext();
637
+ if (_scanner.getToken() === 17) {
638
+ if (options.allowEmptyContent) return true;
639
+ handleError(4, [], []);
640
+ return false;
641
+ }
642
+ if (!parseValue()) {
643
+ handleError(4, [], []);
644
+ return false;
645
+ }
646
+ if (_scanner.getToken() !== 17) handleError(9, [], []);
647
+ return true;
648
+ }
649
+ //#endregion
650
+ //#region ../../node_modules/.pnpm/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/main.js
651
+ var ScanError;
652
+ (function(ScanError) {
653
+ ScanError[ScanError["None"] = 0] = "None";
654
+ ScanError[ScanError["UnexpectedEndOfComment"] = 1] = "UnexpectedEndOfComment";
655
+ ScanError[ScanError["UnexpectedEndOfString"] = 2] = "UnexpectedEndOfString";
656
+ ScanError[ScanError["UnexpectedEndOfNumber"] = 3] = "UnexpectedEndOfNumber";
657
+ ScanError[ScanError["InvalidUnicode"] = 4] = "InvalidUnicode";
658
+ ScanError[ScanError["InvalidEscapeCharacter"] = 5] = "InvalidEscapeCharacter";
659
+ ScanError[ScanError["InvalidCharacter"] = 6] = "InvalidCharacter";
660
+ })(ScanError || (ScanError = {}));
661
+ var SyntaxKind;
662
+ (function(SyntaxKind) {
663
+ SyntaxKind[SyntaxKind["OpenBraceToken"] = 1] = "OpenBraceToken";
664
+ SyntaxKind[SyntaxKind["CloseBraceToken"] = 2] = "CloseBraceToken";
665
+ SyntaxKind[SyntaxKind["OpenBracketToken"] = 3] = "OpenBracketToken";
666
+ SyntaxKind[SyntaxKind["CloseBracketToken"] = 4] = "CloseBracketToken";
667
+ SyntaxKind[SyntaxKind["CommaToken"] = 5] = "CommaToken";
668
+ SyntaxKind[SyntaxKind["ColonToken"] = 6] = "ColonToken";
669
+ SyntaxKind[SyntaxKind["NullKeyword"] = 7] = "NullKeyword";
670
+ SyntaxKind[SyntaxKind["TrueKeyword"] = 8] = "TrueKeyword";
671
+ SyntaxKind[SyntaxKind["FalseKeyword"] = 9] = "FalseKeyword";
672
+ SyntaxKind[SyntaxKind["StringLiteral"] = 10] = "StringLiteral";
673
+ SyntaxKind[SyntaxKind["NumericLiteral"] = 11] = "NumericLiteral";
674
+ SyntaxKind[SyntaxKind["LineCommentTrivia"] = 12] = "LineCommentTrivia";
675
+ SyntaxKind[SyntaxKind["BlockCommentTrivia"] = 13] = "BlockCommentTrivia";
676
+ SyntaxKind[SyntaxKind["LineBreakTrivia"] = 14] = "LineBreakTrivia";
677
+ SyntaxKind[SyntaxKind["Trivia"] = 15] = "Trivia";
678
+ SyntaxKind[SyntaxKind["Unknown"] = 16] = "Unknown";
679
+ SyntaxKind[SyntaxKind["EOF"] = 17] = "EOF";
680
+ })(SyntaxKind || (SyntaxKind = {}));
681
+ /**
682
+ * Parses the given text and returns the object the JSON content represents. On invalid input, the parser tries to be as fault tolerant as possible, but still return a result.
683
+ * Therefore, always check the errors list to find out if the input was valid.
684
+ */
685
+ var parse = parse$1;
686
+ var ParseErrorCode;
687
+ (function(ParseErrorCode) {
688
+ ParseErrorCode[ParseErrorCode["InvalidSymbol"] = 1] = "InvalidSymbol";
689
+ ParseErrorCode[ParseErrorCode["InvalidNumberFormat"] = 2] = "InvalidNumberFormat";
690
+ ParseErrorCode[ParseErrorCode["PropertyNameExpected"] = 3] = "PropertyNameExpected";
691
+ ParseErrorCode[ParseErrorCode["ValueExpected"] = 4] = "ValueExpected";
692
+ ParseErrorCode[ParseErrorCode["ColonExpected"] = 5] = "ColonExpected";
693
+ ParseErrorCode[ParseErrorCode["CommaExpected"] = 6] = "CommaExpected";
694
+ ParseErrorCode[ParseErrorCode["CloseBraceExpected"] = 7] = "CloseBraceExpected";
695
+ ParseErrorCode[ParseErrorCode["CloseBracketExpected"] = 8] = "CloseBracketExpected";
696
+ ParseErrorCode[ParseErrorCode["EndOfFileExpected"] = 9] = "EndOfFileExpected";
697
+ ParseErrorCode[ParseErrorCode["InvalidCommentToken"] = 10] = "InvalidCommentToken";
698
+ ParseErrorCode[ParseErrorCode["UnexpectedEndOfComment"] = 11] = "UnexpectedEndOfComment";
699
+ ParseErrorCode[ParseErrorCode["UnexpectedEndOfString"] = 12] = "UnexpectedEndOfString";
700
+ ParseErrorCode[ParseErrorCode["UnexpectedEndOfNumber"] = 13] = "UnexpectedEndOfNumber";
701
+ ParseErrorCode[ParseErrorCode["InvalidUnicode"] = 14] = "InvalidUnicode";
702
+ ParseErrorCode[ParseErrorCode["InvalidEscapeCharacter"] = 15] = "InvalidEscapeCharacter";
703
+ ParseErrorCode[ParseErrorCode["InvalidCharacter"] = 16] = "InvalidCharacter";
704
+ })(ParseErrorCode || (ParseErrorCode = {}));
705
+ //#endregion
706
+ //#region src/adapters/cloudflare.ts
707
+ var BINDINGS_ALS_KEY = Symbol.for("timber:cf-bindings-als");
708
+ function getBindingsAls() {
709
+ let als = globalThis[BINDINGS_ALS_KEY];
710
+ if (!als) {
711
+ als = new AsyncLocalStorage();
712
+ globalThis[BINDINGS_ALS_KEY] = als;
713
+ }
714
+ return als;
715
+ }
716
+ /**
717
+ * Get Cloudflare Worker bindings for the current request.
718
+ *
719
+ * Returns the `env` object passed to the Worker's `fetch` handler,
720
+ * giving direct access to KV, D1, Durable Objects, R2, Queues, and
721
+ * any other bindings configured in `wrangler.jsonc`.
722
+ *
723
+ * Must be called within a request context (server component, middleware,
724
+ * server action). Throws outside a request.
725
+ *
726
+ * @example
727
+ * ```ts
728
+ * import { getCloudflareBindings } from '@timber-js/app/adapters/cloudflare'
729
+ *
730
+ * export default async function Page() {
731
+ * const { MY_KV, MY_DB } = getCloudflareBindings()
732
+ * const data = await MY_KV.get('key')
733
+ * return <div>{data}</div>
734
+ * }
735
+ * ```
736
+ */
737
+ function getCloudflareBindings() {
738
+ const env = getBindingsAls().getStore();
739
+ if (!env) throw new Error("getCloudflareBindings() called outside a Cloudflare Workers request context. It can only be called from server components, middleware, or server actions when running on the Cloudflare adapter.");
740
+ return env;
741
+ }
742
+ /**
743
+ * Run a function with Cloudflare bindings available via getCloudflareBindings().
744
+ * @internal Used by cloudflareDevBindings() to wrap dev-server requests.
745
+ */
746
+ function runWithBindings(env, fn) {
747
+ return getBindingsAls().run(env, fn);
748
+ }
749
+ /**
750
+ * Create a Cloudflare Workers adapter.
751
+ *
752
+ * @example
753
+ * ```ts
754
+ * import { cloudflare } from '@timber-js/app/adapters/cloudflare'
755
+ *
756
+ * export default {
757
+ * output: 'server',
758
+ * adapter: cloudflare(),
759
+ * }
760
+ * ```
761
+ */
762
+ function cloudflare(options = {}) {
763
+ return {
764
+ name: "cloudflare",
765
+ async buildOutput(config, buildDir) {
766
+ const outDir = join(buildDir, "cloudflare");
767
+ await rm(join(outDir, "prebuilt"), {
768
+ recursive: true,
769
+ force: true
770
+ }).catch(() => {});
771
+ await rm(join(outDir, "static", "prebuilt"), {
772
+ recursive: true,
773
+ force: true
774
+ }).catch(() => {});
775
+ await runSharedBuildSteps({
776
+ config,
777
+ buildDir,
778
+ outDir,
779
+ publicDirName: "static"
780
+ });
781
+ let hasWorkerHandlers = false;
782
+ if (options.workerHandlers) {
783
+ const handlersEntry = join(process.cwd(), options.workerHandlers);
784
+ const { build: viteBuild } = await import("vite");
785
+ await viteBuild({
786
+ configFile: false,
787
+ logLevel: "info",
788
+ build: {
789
+ lib: {
790
+ entry: handlersEntry,
791
+ formats: ["es"],
792
+ fileName: () => "_worker-handlers.js"
793
+ },
794
+ outDir,
795
+ emptyOutDir: false,
796
+ minify: false,
797
+ rollupOptions: { external: [/^node:/, /^cloudflare:/] }
798
+ }
799
+ });
800
+ hasWorkerHandlers = true;
801
+ }
802
+ const prebuiltData = await readPrebuiltData(buildDir);
803
+ await writeFile(join(outDir, "_timber-prebuilt-source.js"), generatePrebuiltSourceModule(prebuiltData));
804
+ await rm(join(outDir, "prebuilt"), {
805
+ recursive: true,
806
+ force: true
807
+ }).catch(() => {});
808
+ await writeFile(join(outDir, "_timber-runtime-init.js"), generateRuntimeInitModule());
809
+ const workerEntry = generateWorkerEntry(outDir, outDir, !!config.manifestInit, hasWorkerHandlers);
810
+ await writeFile(join(outDir, "_worker.js"), workerEntry);
811
+ const wranglerConfig = generateWranglerConfig(config, options, await readUserWranglerConfig(config.root ?? process.cwd()));
812
+ await writeFile(join(outDir, "wrangler.jsonc"), JSON.stringify(wranglerConfig, null, 2));
813
+ },
814
+ async preview(_config, buildDir) {
815
+ const cmd = generatePreviewCommand(buildDir);
816
+ await spawnPreviewProcess(cmd.command, cmd.args, cmd.cwd);
817
+ }
818
+ };
819
+ }
820
+ /** @internal Exported for testing. */
821
+ function generateWorkerEntry(buildDir, outDir, hasManifestInit = false, hasWorkerHandlers = false) {
822
+ let rscEntryRelative = relative(outDir, join(buildDir, "rsc", "index.js"));
823
+ if (!rscEntryRelative.startsWith(".")) rscEntryRelative = "./" + rscEntryRelative;
824
+ return `// Generated by @timber-js/app/adapters/cloudflare
825
+ // Do not edit — this file is regenerated on each build.
826
+
827
+ import { AsyncLocalStorage } from 'node:async_hooks'
828
+ // Side-effect imports: evaluated IN ORDER before the _worker.js body runs.
829
+ // _timber-runtime-init.js sets TIMBER_RUNTIME before createRequestHandler()
830
+ // runs (during the RSC entry's top-level await) so the auto-wire for
831
+ // WorkersCachePurge can detect the Cloudflare runtime (TIM-1170).
832
+ // _timber-prebuilt-source.js sets globalThis.__TIMBER_PREBUILT_SOURCE__
833
+ // for cache.component payloads.
834
+ import './_timber-runtime-init.js'
835
+ import './_timber-prebuilt-source.js'
836
+ ${hasManifestInit ? "import './_timber-manifest-init.js'\n" : ""}import handler, { runWithWaitUntil, runWithWorkersCachePurge } from '${rscEntryRelative}'
837
+ ${hasWorkerHandlers ? "import * as workerHandlers from './_worker-handlers.js'\n" : ""}
838
+
839
+ // Bind Cloudflare env to ALS so getCloudflareBindings() works at runtime.
840
+ // Uses the same Symbol.for key as getCloudflareBindings() reads from.
841
+ const ALS_KEY = Symbol.for('timber:cf-bindings-als')
842
+ let bindingsAls = globalThis[ALS_KEY]
843
+ if (!bindingsAls) {
844
+ bindingsAls = new AsyncLocalStorage()
845
+ globalThis[ALS_KEY] = bindingsAls
846
+ }
847
+
848
+ // Register timber's platform tracer so pipeline phase spans (timber.proxy,
849
+ // timber.middleware, timber.render, timber.access, timber.action, …) appear
850
+ // as native Cloudflare spans in the Observability dashboard, nested under
851
+ // the auto-instrumented fetch/KV/D1 spans. Requires observability.traces
852
+ // enabled in wrangler.jsonc (generated by default).
853
+ //
854
+ // Lazily imported and guarded: runtimes without the custom spans API
855
+ // (older compatibility dates, older local workerd) fall back to OTEL-only
856
+ // emission. withSpan() in the framework composes both channels.
857
+ const TRACER_KEY = Symbol.for('timber:platform-tracer')
858
+ let tracerInit
859
+ function initPlatformTracer() {
860
+ tracerInit ??= import('cloudflare:workers')
861
+ .then(({ tracing }) => {
862
+ if (tracing && typeof tracing.enterSpan === 'function') {
863
+ globalThis[TRACER_KEY] ??= {
864
+ enterSpan: (name, fn) => tracing.enterSpan(name, fn),
865
+ }
866
+ }
867
+ })
868
+ .catch(() => {})
869
+ return tracerInit
870
+ }
871
+
872
+ export default {
873
+ ${hasWorkerHandlers ? " ...workerHandlers,\n" : ""} async fetch(request, env, ctx) {
874
+ // One-time on first request; resolved-promise await thereafter.
875
+ await initPlatformTracer()
876
+
877
+ // Edge-cache GET/HEAD responses via the Cache API. RSC navigation
878
+ // requests (Accept: text/x-component) are excluded — they vary by
879
+ // X-Timber-State-Tree which the cache key doesn't capture.
880
+ const isRsc = request.headers.get('Accept')?.includes('text/x-component')
881
+ const reqCc = request.headers.get('Cache-Control') || ''
882
+ const bypassCache = reqCc.includes('no-cache') || reqCc.includes('max-age=0')
883
+ || request.headers.has('Pragma')
884
+ const cacheable = !isRsc && !bypassCache
885
+ && (request.method === 'GET' || request.method === 'HEAD')
886
+ const cache = cacheable && typeof caches !== 'undefined' ? caches.default : null
887
+ if (cache) {
888
+ const cached = await cache.match(request)
889
+ if (cached) return cached
890
+ }
891
+
892
+ // Bridge ctx.cache into the per-request ALS so WorkersCachePurge can
893
+ // call ctx.cache.purge({ tags }) during cache.invalidate/revalidateTag.
894
+ // Workers Cache is available on all Cloudflare plans — no API token needed.
895
+ const workersCacheCtx = ctx.cache && typeof ctx.cache.purge === 'function' ? ctx.cache : null
896
+ const runHandler = () =>
897
+ runWithWaitUntil((promise) => ctx.waitUntil(promise), () => handler(request))
898
+ const response = await bindingsAls.run(env, () =>
899
+ workersCacheCtx
900
+ ? runWithWorkersCachePurge(workersCacheCtx, runHandler)
901
+ : runHandler()
902
+ )
903
+
904
+ // Cache public responses at the edge. A response is edge-cacheable if
905
+ // it has 'public' or 's-maxage' (a shared-cache TTL directive) and no
906
+ // 'no-store' or 'private'. Cloudflare's cache.put() only accepts GET
907
+ // requests and rejects 206, so only store GET 200s. HEAD requests
908
+ // benefit from cache.match() which handles HEAD→GET matching automatically.
909
+ // See design/25-production-deployments.md §"CDN / Edge Cache".
910
+ if (cache && request.method === 'GET' && response.status === 200) {
911
+ const cc = response.headers.get('Cache-Control')
912
+ const vary = response.headers.get('Vary')
913
+ if (cc && !cc.includes('no-store') && !cc.includes('private')
914
+ && (cc.includes('public') || cc.includes('s-maxage'))
915
+ && vary !== '*' && !response.headers.has('Set-Cookie')) {
916
+ ctx.waitUntil(cache.put(request, response.clone()))
917
+ }
918
+ }
919
+
920
+ return response
921
+ }
922
+ }
923
+ `;
924
+ }
925
+ /**
926
+ * Discover and read prebuilt flight payload files from the build directory.
927
+ * Returns null when no prebuilt artifacts exist (no cache.component usage).
928
+ *
929
+ * @internal Exported for testing.
930
+ */
931
+ async function readPrebuiltData(buildDir) {
932
+ const prebuiltDir = join(buildDir, "prebuilt");
933
+ let manifestJson;
934
+ try {
935
+ manifestJson = await readFile(join(prebuiltDir, "manifest.json"), "utf-8");
936
+ } catch {
937
+ return null;
938
+ }
939
+ const payloads = [];
940
+ try {
941
+ const componentDirs = await readdir(prebuiltDir, { withFileTypes: true });
942
+ for (const dir of componentDirs) {
943
+ if (!dir.isDirectory()) continue;
944
+ const files = await readdir(join(prebuiltDir, dir.name));
945
+ for (const file of files) if (file.endsWith(".flight")) {
946
+ const filePath = `${dir.name}/${file}`;
947
+ const bytes = await readFile(join(prebuiltDir, filePath));
948
+ payloads.push({
949
+ file: filePath,
950
+ bytes
951
+ });
952
+ }
953
+ }
954
+ } catch {}
955
+ return {
956
+ manifestJson,
957
+ payloads
958
+ };
959
+ }
960
+ /**
961
+ * Generate the prebuilt payload source module for Cloudflare Workers.
962
+ *
963
+ * Inlines manifest JSON and flight payload bytes directly into the module
964
+ * so they're part of the worker's JS bundle — no external Text/Data module
965
+ * imports needed. This avoids depending on wrangler's find_additional_modules
966
+ * to discover non-JS files, which doesn't reliably resolve Text/Data imports.
967
+ *
968
+ * @internal Exported for testing.
969
+ */
970
+ function generatePrebuiltSourceModule(data) {
971
+ if (!data) return `// Generated by @timber-js/app/adapters/cloudflare
972
+ // No prebuilt artifacts — all cache.component wrappers render dynamically.
973
+ globalThis.__TIMBER_PREBUILT_SOURCE__ = {
974
+ async loadManifest() { return null },
975
+ async readPayload() { return null },
976
+ }
977
+ `;
978
+ const entries = [];
979
+ for (const { file, bytes } of data.payloads) {
980
+ const b64 = bytes.toString("base64");
981
+ entries.push(` ${JSON.stringify(file)}: ${JSON.stringify(b64)}`);
982
+ }
983
+ return `// Generated by @timber-js/app/adapters/cloudflare
984
+ // Prebuilt payload source — inlines cache.component flight payloads
985
+ // directly into the worker bundle (TIM-1162).
986
+ const _manifest = ${data.manifestJson.trim()}
987
+
988
+ function _decode(b64) {
989
+ const bin = atob(b64)
990
+ const buf = new Uint8Array(bin.length)
991
+ for (let i = 0; i < bin.length; i++) buf[i] = bin.charCodeAt(i)
992
+ return buf
993
+ }
994
+
995
+ const _payloads = {
996
+ ${entries.join(",\n")}
997
+ }
998
+
999
+ globalThis.__TIMBER_PREBUILT_SOURCE__ = {
1000
+ async loadManifest() { return _manifest },
1001
+ async readPayload(file) {
1002
+ const b64 = _payloads[file]
1003
+ return b64 ? _decode(b64) : null
1004
+ },
1005
+ }
1006
+ `;
1007
+ }
1008
+ /**
1009
+ * Generate the runtime init module that sets TIMBER_RUNTIME before the
1010
+ * RSC entry evaluates. Imported as a side-effect module in _worker.js.
1011
+ *
1012
+ * @internal Exported for testing.
1013
+ */
1014
+ function generateRuntimeInitModule() {
1015
+ return `// Generated by @timber-js/app/adapters/cloudflare
1016
+ // Sets TIMBER_RUNTIME before the RSC handler evaluates (TIM-1170).
1017
+ // Must be a separate module imported before rsc/index.js so that ESM
1018
+ // evaluation order guarantees the env var is set when
1019
+ // createRequestHandler() runs its auto-wire logic.
1020
+ globalThis.process ??= { env: {} }
1021
+ process.env.TIMBER_RUNTIME = 'cloudflare'
1022
+ `;
1023
+ }
1024
+ /**
1025
+ * Convert declarative `CloudflareBindings` into wrangler.jsonc binding sections.
1026
+ *
1027
+ * Maps:
1028
+ * - `kv` → `kv_namespaces`
1029
+ * - `d1` → `d1_databases`
1030
+ * - `r2` → `r2_buckets`
1031
+ * - `queues` → `queues` (producers + consumers)
1032
+ * - `durableObjects` → `durable_objects`
1033
+ *
1034
+ * Empty arrays are omitted from the output.
1035
+ *
1036
+ * @internal Exported for testing.
1037
+ */
1038
+ function generateBindingsConfig(bindings) {
1039
+ if (!bindings) return {};
1040
+ const result = {};
1041
+ if (bindings.kv && bindings.kv.length > 0) result.kv_namespaces = bindings.kv.map((kv) => ({
1042
+ binding: kv.name,
1043
+ id: kv.id ?? ""
1044
+ }));
1045
+ if (bindings.d1 && bindings.d1.length > 0) result.d1_databases = bindings.d1.map((d1) => ({
1046
+ binding: d1.name,
1047
+ database_id: d1.database_id
1048
+ }));
1049
+ if (bindings.r2 && bindings.r2.length > 0) result.r2_buckets = bindings.r2.map((r2) => ({
1050
+ binding: r2.name,
1051
+ bucket_name: r2.bucket_name
1052
+ }));
1053
+ if (bindings.queues) {
1054
+ const queues = {};
1055
+ if (bindings.queues.producers && bindings.queues.producers.length > 0) queues.producers = bindings.queues.producers.map((p) => ({
1056
+ binding: p.name,
1057
+ queue: p.queue
1058
+ }));
1059
+ if (bindings.queues.consumers && bindings.queues.consumers.length > 0) queues.consumers = bindings.queues.consumers.map((c) => {
1060
+ const consumer = { queue: c.queue };
1061
+ if (c.max_batch_size !== void 0) consumer.max_batch_size = c.max_batch_size;
1062
+ if (c.max_retries !== void 0) consumer.max_retries = c.max_retries;
1063
+ if (c.dead_letter_queue !== void 0) consumer.dead_letter_queue = c.dead_letter_queue;
1064
+ return consumer;
1065
+ });
1066
+ if (Object.keys(queues).length > 0) result.queues = queues;
1067
+ }
1068
+ if (bindings.durableObjects && bindings.durableObjects.length > 0) result.durable_objects = { bindings: bindings.durableObjects.map((dobj) => {
1069
+ const entry = {
1070
+ name: dobj.name,
1071
+ class_name: dobj.class_name
1072
+ };
1073
+ if (dobj.script_name) entry.script_name = dobj.script_name;
1074
+ return entry;
1075
+ }) };
1076
+ return result;
1077
+ }
1078
+ /**
1079
+ * One-level deep merge: for each key in `override`, if both the base and
1080
+ * override values are plain objects (not arrays, not null), merge their
1081
+ * keys with override winning on conflicts. Everything else (primitives,
1082
+ * arrays, null) is replaced outright — matching the intuitive behavior
1083
+ * where `kv_namespaces: [...]` replaces fully but
1084
+ * `durable_objects: { migrations }` merges with generated `bindings`.
1085
+ */
1086
+ function shallowDeepMerge(base, override) {
1087
+ const result = { ...base };
1088
+ for (const key of Object.keys(override)) {
1089
+ const baseVal = result[key];
1090
+ const overVal = override[key];
1091
+ if (isPlainObject(baseVal) && isPlainObject(overVal)) result[key] = {
1092
+ ...baseVal,
1093
+ ...overVal
1094
+ };
1095
+ else result[key] = overVal;
1096
+ }
1097
+ return result;
1098
+ }
1099
+ /** True for `{}` literals — false for arrays, null, Date, etc. */
1100
+ function isPlainObject(val) {
1101
+ return val !== null && typeof val === "object" && !Array.isArray(val);
1102
+ }
1103
+ var WRANGLER_CONFIG_FILES = ["wrangler.jsonc", "wrangler.json"];
1104
+ /**
1105
+ * Read the user's wrangler config from the project root, if one exists.
1106
+ * Checks wrangler.jsonc first, then wrangler.json.
1107
+ * @internal Exported for testing.
1108
+ */
1109
+ async function readUserWranglerConfig(root) {
1110
+ for (const filename of WRANGLER_CONFIG_FILES) {
1111
+ const filepath = join(root, filename);
1112
+ try {
1113
+ await access(filepath);
1114
+ } catch {
1115
+ continue;
1116
+ }
1117
+ return parse(await readFile(filepath, "utf-8"));
1118
+ }
1119
+ return null;
1120
+ }
1121
+ /** @internal Exported for testing. */
1122
+ function generateWranglerConfig(config, options, userConfig) {
1123
+ const base = {
1124
+ name: "timber-app",
1125
+ main: "_worker.js",
1126
+ compatibility_date: (/* @__PURE__ */ new Date()).toISOString().slice(0, 10),
1127
+ compatibility_flags: ["nodejs_compat"],
1128
+ no_bundle: true,
1129
+ find_additional_modules: true,
1130
+ rules: [{
1131
+ type: "ESModule",
1132
+ globs: ["**/*.js"]
1133
+ }],
1134
+ assets: {
1135
+ directory: "./static",
1136
+ binding: "ASSETS"
1137
+ },
1138
+ observability: { traces: { enabled: true } }
1139
+ };
1140
+ let merged = userConfig ? shallowDeepMerge(base, userConfig) : base;
1141
+ const explicit = {};
1142
+ if (options.name != null) explicit.name = options.name;
1143
+ if (options.compatibilityDate != null) explicit.compatibility_date = options.compatibilityDate;
1144
+ if (options.compatibilityFlags != null) explicit.compatibility_flags = options.compatibilityFlags;
1145
+ if (Object.keys(explicit).length > 0) merged = {
1146
+ ...merged,
1147
+ ...explicit
1148
+ };
1149
+ const bindingsConfig = generateBindingsConfig(options.bindings);
1150
+ merged = shallowDeepMerge(merged, bindingsConfig);
1151
+ if (options.wrangler) merged = shallowDeepMerge(merged, options.wrangler);
1152
+ delete merged.env;
1153
+ merged.main = "_worker.js";
1154
+ merged.find_additional_modules = true;
1155
+ return merged;
1156
+ }
1157
+ /** @internal Exported for testing. */
1158
+ function generatePreviewCommand(buildDir) {
1159
+ const cfDir = join(buildDir, "cloudflare");
1160
+ return {
1161
+ command: "wrangler",
1162
+ args: [
1163
+ "dev",
1164
+ "--local",
1165
+ "--config",
1166
+ join(cfDir, "wrangler.jsonc")
1167
+ ],
1168
+ cwd: cfDir
1169
+ };
1170
+ }
1171
+ /**
1172
+ * Spawn a long-running preview process and pipe stdio to the parent.
1173
+ * Resolves when the process exits.
1174
+ */
1175
+ function spawnPreviewProcess(command, args, cwd) {
1176
+ return new Promise((resolve, reject) => {
1177
+ const child = execFile(command, args, { cwd }, (err) => {
1178
+ if (err) reject(err);
1179
+ else resolve();
1180
+ });
1181
+ child.stdout?.pipe(process.stdout);
1182
+ child.stderr?.pipe(process.stderr);
1183
+ });
1184
+ }
1185
+ //#endregion
1186
+ export { generateRuntimeInitModule as a, getCloudflareBindings as c, runWithBindings as d, generatePreviewCommand as i, readPrebuiltData as l, generateBindingsConfig as n, generateWorkerEntry as o, generatePrebuiltSourceModule as r, generateWranglerConfig as s, cloudflare as t, readUserWranglerConfig as u };
1187
+
1188
+ //# sourceMappingURL=cloudflare-AHoWYTYr.js.map