@nifrajs/web 3.3.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (407) hide show
  1. package/dist/backend-only.d.ts +15 -0
  2. package/dist/backend-only.d.ts.map +1 -0
  3. package/dist/backend-only.js +16 -0
  4. package/dist/backend-only.js.map +1 -0
  5. package/dist/boundary.d.ts +5 -0
  6. package/dist/boundary.d.ts.map +1 -1
  7. package/dist/boundary.js +11 -2
  8. package/dist/boundary.js.map +1 -1
  9. package/dist/build-plan.d.ts +35 -6
  10. package/dist/build-plan.d.ts.map +1 -1
  11. package/dist/build-plan.js +89 -35
  12. package/dist/build-plan.js.map +1 -1
  13. package/dist/build-vite.d.ts +18 -0
  14. package/dist/build-vite.d.ts.map +1 -1
  15. package/dist/build-vite.js +97 -17
  16. package/dist/build-vite.js.map +1 -1
  17. package/dist/build.d.ts +72 -23
  18. package/dist/build.d.ts.map +1 -1
  19. package/dist/build.js +411 -98
  20. package/dist/build.js.map +1 -1
  21. package/dist/bun-dev-entry.d.ts +1 -1
  22. package/dist/bun-dev-entry.js +1 -1
  23. package/dist/cdn.d.ts +74 -0
  24. package/dist/cdn.d.ts.map +1 -0
  25. package/dist/cdn.js +132 -0
  26. package/dist/cdn.js.map +1 -0
  27. package/dist/client.d.ts +21 -1
  28. package/dist/client.d.ts.map +1 -1
  29. package/dist/client.js +226 -15
  30. package/dist/client.js.map +1 -1
  31. package/dist/conformance.d.ts +4 -3
  32. package/dist/conformance.d.ts.map +1 -1
  33. package/dist/conformance.js +12 -3
  34. package/dist/conformance.js.map +1 -1
  35. package/dist/csp.d.ts +93 -0
  36. package/dist/csp.d.ts.map +1 -0
  37. package/dist/csp.js +122 -0
  38. package/dist/csp.js.map +1 -0
  39. package/dist/css-contract.d.ts +21 -0
  40. package/dist/css-contract.d.ts.map +1 -0
  41. package/dist/css-contract.js +28 -0
  42. package/dist/css-contract.js.map +1 -0
  43. package/dist/dev-client.d.ts +76 -0
  44. package/dist/dev-client.d.ts.map +1 -0
  45. package/dist/dev-client.js +280 -0
  46. package/dist/dev-client.js.map +1 -0
  47. package/dist/dev-diagnostics.d.ts +26 -2
  48. package/dist/dev-diagnostics.d.ts.map +1 -1
  49. package/dist/dev-diagnostics.js +38 -7
  50. package/dist/dev-diagnostics.js.map +1 -1
  51. package/dist/dev-error.d.ts +4 -13
  52. package/dist/dev-error.d.ts.map +1 -1
  53. package/dist/dev-error.js +46 -4
  54. package/dist/dev-error.js.map +1 -1
  55. package/dist/dev-feed.d.ts +298 -0
  56. package/dist/dev-feed.d.ts.map +1 -0
  57. package/dist/dev-feed.js +797 -0
  58. package/dist/dev-feed.js.map +1 -0
  59. package/dist/dev-indicator.d.ts +38 -0
  60. package/dist/dev-indicator.d.ts.map +1 -0
  61. package/dist/dev-indicator.js +93 -0
  62. package/dist/dev-indicator.js.map +1 -0
  63. package/dist/dev-session.d.ts +77 -0
  64. package/dist/dev-session.d.ts.map +1 -0
  65. package/dist/dev-session.js +580 -0
  66. package/dist/dev-session.js.map +1 -0
  67. package/dist/dev-sourcemap.d.ts +27 -0
  68. package/dist/dev-sourcemap.d.ts.map +1 -0
  69. package/dist/dev-sourcemap.js +235 -0
  70. package/dist/dev-sourcemap.js.map +1 -0
  71. package/dist/dev-ssr-graph.d.ts.map +1 -1
  72. package/dist/dev-ssr-graph.js +13 -5
  73. package/dist/dev-ssr-graph.js.map +1 -1
  74. package/dist/dev.d.ts +15 -2
  75. package/dist/dev.d.ts.map +1 -1
  76. package/dist/dev.js +69 -44
  77. package/dist/dev.js.map +1 -1
  78. package/dist/diagnostic-catalog.d.ts +35 -0
  79. package/dist/diagnostic-catalog.d.ts.map +1 -0
  80. package/dist/diagnostic-catalog.js +203 -0
  81. package/dist/diagnostic-catalog.js.map +1 -0
  82. package/dist/diagnostic-prompt.d.ts +49 -0
  83. package/dist/diagnostic-prompt.d.ts.map +1 -0
  84. package/dist/diagnostic-prompt.js +303 -0
  85. package/dist/diagnostic-prompt.js.map +1 -0
  86. package/dist/diagnostic.d.ts +17 -23
  87. package/dist/diagnostic.d.ts.map +1 -1
  88. package/dist/diagnostic.js +31 -39
  89. package/dist/diagnostic.js.map +1 -1
  90. package/dist/draft.d.ts.map +1 -1
  91. package/dist/draft.js +4 -1
  92. package/dist/draft.js.map +1 -1
  93. package/dist/fn.d.ts +5 -0
  94. package/dist/fn.d.ts.map +1 -1
  95. package/dist/fn.js +13 -3
  96. package/dist/fn.js.map +1 -1
  97. package/dist/fs.d.ts.map +1 -1
  98. package/dist/fs.js +4 -2
  99. package/dist/fs.js.map +1 -1
  100. package/dist/index.d.ts +15 -15
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +13 -12
  103. package/dist/index.js.map +1 -1
  104. package/dist/internal/cdn/cloudflare.d.ts +48 -0
  105. package/dist/internal/cdn/cloudflare.d.ts.map +1 -0
  106. package/dist/internal/cdn/cloudflare.js +94 -0
  107. package/dist/internal/cdn/cloudflare.js.map +1 -0
  108. package/dist/internal/cdn/core.d.ts +91 -0
  109. package/dist/internal/cdn/core.d.ts.map +1 -0
  110. package/dist/internal/cdn/core.js +220 -0
  111. package/dist/internal/cdn/core.js.map +1 -0
  112. package/dist/internal/cdn/fastly.d.ts +17 -0
  113. package/dist/internal/cdn/fastly.d.ts.map +1 -0
  114. package/dist/internal/cdn/fastly.js +43 -0
  115. package/dist/internal/cdn/fastly.js.map +1 -0
  116. package/dist/internal/cdn/vercel.d.ts +31 -0
  117. package/dist/internal/cdn/vercel.d.ts.map +1 -0
  118. package/dist/internal/cdn/vercel.js +56 -0
  119. package/dist/internal/cdn/vercel.js.map +1 -0
  120. package/dist/internal/code-unit-order.d.ts +4 -0
  121. package/dist/internal/code-unit-order.d.ts.map +1 -0
  122. package/dist/internal/code-unit-order.js +6 -0
  123. package/dist/internal/code-unit-order.js.map +1 -0
  124. package/dist/internal/codegen.d.ts +3 -0
  125. package/dist/internal/codegen.d.ts.map +1 -1
  126. package/dist/internal/codegen.js +151 -30
  127. package/dist/internal/codegen.js.map +1 -1
  128. package/dist/internal/dev-csp.d.ts +24 -0
  129. package/dist/internal/dev-csp.d.ts.map +1 -0
  130. package/dist/internal/dev-csp.js +160 -0
  131. package/dist/internal/dev-csp.js.map +1 -0
  132. package/dist/internal/dev-reserved.d.ts +25 -0
  133. package/dist/internal/dev-reserved.d.ts.map +1 -0
  134. package/dist/internal/dev-reserved.js +39 -0
  135. package/dist/internal/dev-reserved.js.map +1 -0
  136. package/dist/internal/html-spans.d.ts +10 -0
  137. package/dist/internal/html-spans.d.ts.map +1 -0
  138. package/dist/internal/html-spans.js +46 -0
  139. package/dist/internal/html-spans.js.map +1 -0
  140. package/dist/internal/loading-runtime.d.ts +44 -0
  141. package/dist/internal/loading-runtime.d.ts.map +1 -0
  142. package/dist/internal/loading-runtime.js +206 -0
  143. package/dist/internal/loading-runtime.js.map +1 -0
  144. package/dist/internal/matches-runtime.d.ts +8 -0
  145. package/dist/internal/matches-runtime.d.ts.map +1 -0
  146. package/dist/internal/matches-runtime.js +61 -0
  147. package/dist/internal/matches-runtime.js.map +1 -0
  148. package/dist/internal/mount-shadow.d.ts +36 -0
  149. package/dist/internal/mount-shadow.d.ts.map +1 -0
  150. package/dist/internal/mount-shadow.js +65 -0
  151. package/dist/internal/mount-shadow.js.map +1 -0
  152. package/dist/internal/node-builtins.d.ts +3 -0
  153. package/dist/internal/node-builtins.d.ts.map +1 -0
  154. package/dist/internal/node-builtins.js +79 -0
  155. package/dist/internal/node-builtins.js.map +1 -0
  156. package/dist/internal/output-guard.d.ts +65 -0
  157. package/dist/internal/output-guard.d.ts.map +1 -0
  158. package/dist/internal/output-guard.js +630 -0
  159. package/dist/internal/output-guard.js.map +1 -0
  160. package/dist/internal/page-execution.d.ts +69 -0
  161. package/dist/internal/page-execution.d.ts.map +1 -0
  162. package/dist/internal/page-execution.js +1021 -0
  163. package/dist/internal/page-execution.js.map +1 -0
  164. package/dist/internal/parity.d.ts +21 -0
  165. package/dist/internal/parity.d.ts.map +1 -1
  166. package/dist/internal/parity.js +104 -22
  167. package/dist/internal/parity.js.map +1 -1
  168. package/dist/internal/private-env.d.ts +12 -0
  169. package/dist/internal/private-env.d.ts.map +1 -0
  170. package/dist/internal/private-env.js +335 -0
  171. package/dist/internal/private-env.js.map +1 -0
  172. package/dist/internal/public-url.d.ts +3 -0
  173. package/dist/internal/public-url.d.ts.map +1 -0
  174. package/dist/internal/public-url.js +18 -0
  175. package/dist/internal/public-url.js.map +1 -0
  176. package/dist/internal/render-document.d.ts +37 -21
  177. package/dist/internal/render-document.d.ts.map +1 -1
  178. package/dist/internal/render-document.js +104 -65
  179. package/dist/internal/render-document.js.map +1 -1
  180. package/dist/internal/request-url.d.ts +3 -0
  181. package/dist/internal/request-url.d.ts.map +1 -0
  182. package/dist/internal/request-url.js +14 -0
  183. package/dist/internal/request-url.js.map +1 -0
  184. package/dist/internal/response-controls.d.ts +75 -0
  185. package/dist/internal/response-controls.d.ts.map +1 -0
  186. package/dist/internal/response-controls.js +256 -0
  187. package/dist/internal/response-controls.js.map +1 -0
  188. package/dist/internal/runtime-contract.d.ts +11 -16
  189. package/dist/internal/runtime-contract.d.ts.map +1 -1
  190. package/dist/internal/runtime-contract.js.map +1 -1
  191. package/dist/internal/secret-scan.d.ts +104 -0
  192. package/dist/internal/secret-scan.d.ts.map +1 -0
  193. package/dist/internal/secret-scan.js +485 -0
  194. package/dist/internal/secret-scan.js.map +1 -0
  195. package/dist/internal/server-boundary.d.ts +6 -29
  196. package/dist/internal/server-boundary.d.ts.map +1 -1
  197. package/dist/internal/server-boundary.js +6 -66
  198. package/dist/internal/server-boundary.js.map +1 -1
  199. package/dist/internal/source-map.d.ts +47 -0
  200. package/dist/internal/source-map.d.ts.map +1 -0
  201. package/dist/internal/source-map.js +225 -0
  202. package/dist/internal/source-map.js.map +1 -0
  203. package/dist/internal/target-compat.d.ts +27 -0
  204. package/dist/internal/target-compat.d.ts.map +1 -0
  205. package/dist/internal/target-compat.js +77 -0
  206. package/dist/internal/target-compat.js.map +1 -0
  207. package/dist/internal/timing-safe-equal.d.ts +6 -0
  208. package/dist/internal/timing-safe-equal.d.ts.map +1 -1
  209. package/dist/internal/timing-safe-equal.js +10 -0
  210. package/dist/internal/timing-safe-equal.js.map +1 -1
  211. package/dist/internal/vitals-runtime.d.ts +18 -0
  212. package/dist/internal/vitals-runtime.d.ts.map +1 -0
  213. package/dist/internal/vitals-runtime.js +38 -0
  214. package/dist/internal/vitals-runtime.js.map +1 -0
  215. package/dist/internal/web-app.d.ts +56 -8
  216. package/dist/internal/web-app.d.ts.map +1 -1
  217. package/dist/internal/web-app.js +215 -772
  218. package/dist/internal/web-app.js.map +1 -1
  219. package/dist/internal/zone-graph.d.ts +89 -0
  220. package/dist/internal/zone-graph.d.ts.map +1 -0
  221. package/dist/internal/zone-graph.js +492 -0
  222. package/dist/internal/zone-graph.js.map +1 -0
  223. package/dist/isr.d.ts +83 -6
  224. package/dist/isr.d.ts.map +1 -1
  225. package/dist/isr.js +301 -39
  226. package/dist/isr.js.map +1 -1
  227. package/dist/llms-txt.d.ts +3 -0
  228. package/dist/llms-txt.d.ts.map +1 -1
  229. package/dist/llms-txt.js +37 -9
  230. package/dist/llms-txt.js.map +1 -1
  231. package/dist/manifest.d.ts +221 -14
  232. package/dist/manifest.d.ts.map +1 -1
  233. package/dist/manifest.js +386 -9
  234. package/dist/manifest.js.map +1 -1
  235. package/dist/module-graph.d.ts +26 -5
  236. package/dist/module-graph.d.ts.map +1 -1
  237. package/dist/module-graph.js +17 -7
  238. package/dist/module-graph.js.map +1 -1
  239. package/dist/navigation.d.ts +17 -3
  240. package/dist/navigation.d.ts.map +1 -1
  241. package/dist/navigation.js +11 -5
  242. package/dist/navigation.js.map +1 -1
  243. package/dist/nonce.d.ts +47 -0
  244. package/dist/nonce.d.ts.map +1 -0
  245. package/dist/nonce.js +63 -0
  246. package/dist/nonce.js.map +1 -0
  247. package/dist/plugins/css-modules.d.ts.map +1 -1
  248. package/dist/plugins/css-modules.js +4 -3
  249. package/dist/plugins/css-modules.js.map +1 -1
  250. package/dist/plugins/kit.d.ts +9 -0
  251. package/dist/plugins/kit.d.ts.map +1 -1
  252. package/dist/plugins/kit.js +18 -0
  253. package/dist/plugins/kit.js.map +1 -1
  254. package/dist/plugins/svg.d.ts +22 -3
  255. package/dist/plugins/svg.d.ts.map +1 -1
  256. package/dist/plugins/svg.js +112 -1
  257. package/dist/plugins/svg.js.map +1 -1
  258. package/dist/plugins/vite-leak-guard.d.ts +107 -3
  259. package/dist/plugins/vite-leak-guard.d.ts.map +1 -1
  260. package/dist/plugins/vite-leak-guard.js +378 -17
  261. package/dist/plugins/vite-leak-guard.js.map +1 -1
  262. package/dist/plugins/vite-zone-guard.d.ts +61 -0
  263. package/dist/plugins/vite-zone-guard.d.ts.map +1 -0
  264. package/dist/plugins/vite-zone-guard.js +208 -0
  265. package/dist/plugins/vite-zone-guard.js.map +1 -0
  266. package/dist/plugins/zone-guard.d.ts +27 -0
  267. package/dist/plugins/zone-guard.d.ts.map +1 -0
  268. package/dist/plugins/zone-guard.js +72 -0
  269. package/dist/plugins/zone-guard.js.map +1 -0
  270. package/dist/prerender.d.ts +10 -0
  271. package/dist/prerender.d.ts.map +1 -1
  272. package/dist/prerender.js +35 -3
  273. package/dist/prerender.js.map +1 -1
  274. package/dist/public-dir.d.ts +9 -0
  275. package/dist/public-dir.d.ts.map +1 -1
  276. package/dist/public-dir.js +131 -48
  277. package/dist/public-dir.js.map +1 -1
  278. package/dist/pwa-manifest.d.ts +68 -0
  279. package/dist/pwa-manifest.d.ts.map +1 -0
  280. package/dist/pwa-manifest.js +178 -0
  281. package/dist/pwa-manifest.js.map +1 -0
  282. package/dist/query.js +4 -4
  283. package/dist/query.js.map +1 -1
  284. package/dist/render-seam.d.ts +42 -2
  285. package/dist/render-seam.d.ts.map +1 -1
  286. package/dist/render-seam.js +6 -0
  287. package/dist/render-seam.js.map +1 -1
  288. package/dist/route-manifest.d.ts +3 -0
  289. package/dist/route-manifest.d.ts.map +1 -1
  290. package/dist/route-manifest.js +26 -3
  291. package/dist/route-manifest.js.map +1 -1
  292. package/dist/route-types.d.ts +24 -0
  293. package/dist/route-types.d.ts.map +1 -0
  294. package/dist/route-types.js +195 -0
  295. package/dist/route-types.js.map +1 -0
  296. package/dist/router.d.ts +28 -6
  297. package/dist/router.d.ts.map +1 -1
  298. package/dist/router.js +129 -40
  299. package/dist/router.js.map +1 -1
  300. package/dist/trusted-html.d.ts +34 -0
  301. package/dist/trusted-html.d.ts.map +1 -0
  302. package/dist/trusted-html.js +35 -0
  303. package/dist/trusted-html.js.map +1 -0
  304. package/dist/vitals.d.ts +33 -0
  305. package/dist/vitals.d.ts.map +1 -0
  306. package/dist/vitals.js +16 -0
  307. package/dist/vitals.js.map +1 -0
  308. package/dist/vite.d.ts +16 -1
  309. package/dist/vite.d.ts.map +1 -1
  310. package/dist/vite.js +187 -36
  311. package/dist/vite.js.map +1 -1
  312. package/dist/zones.d.ts +70 -0
  313. package/dist/zones.d.ts.map +1 -0
  314. package/dist/zones.js +365 -0
  315. package/dist/zones.js.map +1 -0
  316. package/package.json +67 -14
  317. package/src/backend-only.ts +16 -0
  318. package/src/boundary.ts +18 -5
  319. package/src/build-plan.ts +113 -36
  320. package/src/build-vite.ts +124 -15
  321. package/src/build.ts +535 -102
  322. package/src/bun-dev-entry.ts +1 -1
  323. package/src/cdn.ts +216 -0
  324. package/src/client.ts +251 -18
  325. package/src/conformance.ts +16 -3
  326. package/src/csp.ts +194 -0
  327. package/src/css-contract.ts +44 -0
  328. package/src/dev-client.ts +349 -0
  329. package/src/dev-diagnostics.ts +60 -7
  330. package/src/dev-error.ts +49 -5
  331. package/src/dev-feed.ts +1140 -0
  332. package/src/dev-indicator.ts +113 -0
  333. package/src/dev-session.ts +729 -0
  334. package/src/dev-sourcemap.ts +281 -0
  335. package/src/dev-ssr-graph.ts +16 -5
  336. package/src/dev.ts +86 -43
  337. package/src/diagnostic-catalog.ts +243 -0
  338. package/src/diagnostic-prompt.ts +355 -0
  339. package/src/diagnostic.ts +63 -66
  340. package/src/draft.ts +4 -1
  341. package/src/fn.ts +19 -3
  342. package/src/fs.ts +13 -2
  343. package/src/index.ts +57 -10
  344. package/src/internal/cdn/cloudflare.ts +146 -0
  345. package/src/internal/cdn/core.ts +316 -0
  346. package/src/internal/cdn/fastly.ts +62 -0
  347. package/src/internal/cdn/vercel.ts +95 -0
  348. package/src/internal/code-unit-order.ts +5 -0
  349. package/src/internal/codegen.ts +180 -29
  350. package/src/internal/dev-csp.ts +176 -0
  351. package/src/internal/dev-reserved.ts +52 -0
  352. package/src/internal/html-spans.ts +50 -0
  353. package/src/internal/loading-runtime.ts +244 -0
  354. package/src/internal/matches-runtime.ts +62 -0
  355. package/src/internal/mount-shadow.ts +88 -0
  356. package/src/internal/node-builtins.ts +79 -0
  357. package/src/internal/output-guard.ts +701 -0
  358. package/src/internal/page-execution.ts +1371 -0
  359. package/src/internal/parity.ts +150 -36
  360. package/src/internal/private-env.ts +334 -0
  361. package/src/internal/public-url.ts +22 -0
  362. package/src/internal/render-document.ts +153 -73
  363. package/src/internal/request-url.ts +14 -0
  364. package/src/internal/response-controls.ts +284 -0
  365. package/src/internal/runtime-contract.ts +10 -15
  366. package/src/internal/secret-scan.ts +623 -0
  367. package/src/internal/server-boundary.ts +6 -69
  368. package/src/internal/source-map.ts +256 -0
  369. package/src/internal/target-compat.ts +92 -0
  370. package/src/internal/timing-safe-equal.ts +13 -0
  371. package/src/internal/vitals-runtime.ts +53 -0
  372. package/src/internal/web-app.ts +290 -879
  373. package/src/internal/zone-graph.ts +593 -0
  374. package/src/isr.ts +366 -39
  375. package/src/llms-txt.ts +44 -8
  376. package/src/manifest.ts +671 -17
  377. package/src/module-graph.ts +53 -9
  378. package/src/navigation.ts +29 -6
  379. package/src/nonce.ts +104 -0
  380. package/src/plugins/css-modules.ts +5 -3
  381. package/src/plugins/kit.ts +24 -0
  382. package/src/plugins/svg.ts +135 -4
  383. package/src/plugins/vite-leak-guard.ts +529 -16
  384. package/src/plugins/vite-zone-guard.ts +263 -0
  385. package/src/plugins/zone-guard.ts +110 -0
  386. package/src/prerender.ts +49 -3
  387. package/src/public-dir.ts +135 -49
  388. package/src/pwa-manifest.ts +226 -0
  389. package/src/query.ts +4 -4
  390. package/src/render-seam.ts +46 -1
  391. package/src/route-manifest.ts +15 -3
  392. package/src/route-types.ts +264 -0
  393. package/src/router.ts +163 -63
  394. package/src/trusted-html.ts +44 -0
  395. package/src/vitals.ts +44 -0
  396. package/src/vite.ts +207 -36
  397. package/src/zones.ts +430 -0
  398. package/dist/plugins/vite-server-only.d.ts +0 -49
  399. package/dist/plugins/vite-server-only.d.ts.map +0 -1
  400. package/dist/plugins/vite-server-only.js +0 -57
  401. package/dist/plugins/vite-server-only.js.map +0 -1
  402. package/dist/server-only.d.ts +0 -21
  403. package/dist/server-only.d.ts.map +0 -1
  404. package/dist/server-only.js +0 -25
  405. package/dist/server-only.js.map +0 -1
  406. package/src/plugins/vite-server-only.ts +0 -75
  407. package/src/server-only.ts +0 -25
@@ -12,12 +12,72 @@
12
12
  * Distinct from `publicPath` in `build.ts`, which is the URL prefix for content-hashed bundle chunks.
13
13
  * The names collide and the concepts do not: `publicPath` never covers user-authored files.
14
14
  */
15
- import { realpath } from "node:fs/promises";
16
- import { normalize, resolve, sep } from "node:path";
15
+ import { constants as FS } from "node:fs";
16
+ import { open, realpath } from "node:fs/promises";
17
+ import { extname, normalize, resolve, sep } from "node:path";
18
+ import { Readable } from "node:stream";
17
19
  import { parseByteRange } from "@nifrajs/core/range";
18
20
  import { pathnameOf } from "@nifrajs/core/server";
19
- const IMMUTABLE = "public, max-age=31536000, immutable";
20
- const ONE_DAY = "public, max-age=86400";
21
+ export const IMMUTABLE = "public, max-age=31536000, immutable";
22
+ export const ONE_DAY = "public, max-age=86400";
23
+ /**
24
+ * Media types by extension. A table rather than `Bun.file(path).type`: this handler also runs on the
25
+ * Node and Deno adapters, where `Bun` does not exist and every hit would throw. Unknown extensions
26
+ * (and extensionless files such as ACME tokens) are served as `application/octet-stream`, which
27
+ * together with `nosniff` keeps the browser from guessing a more dangerous type.
28
+ */
29
+ export const CONTENT_TYPES = {
30
+ ".html": "text/html; charset=utf-8",
31
+ ".htm": "text/html; charset=utf-8",
32
+ ".css": "text/css; charset=utf-8",
33
+ ".js": "text/javascript; charset=utf-8",
34
+ ".mjs": "text/javascript; charset=utf-8",
35
+ ".cjs": "text/javascript; charset=utf-8",
36
+ ".json": "application/json; charset=utf-8",
37
+ ".map": "application/json; charset=utf-8",
38
+ ".webmanifest": "application/manifest+json",
39
+ ".txt": "text/plain; charset=utf-8",
40
+ ".md": "text/markdown; charset=utf-8",
41
+ ".csv": "text/csv; charset=utf-8",
42
+ ".xml": "application/xml",
43
+ ".rss": "application/rss+xml",
44
+ ".atom": "application/atom+xml",
45
+ ".svg": "image/svg+xml",
46
+ ".png": "image/png",
47
+ ".jpg": "image/jpeg",
48
+ ".jpeg": "image/jpeg",
49
+ ".gif": "image/gif",
50
+ ".webp": "image/webp",
51
+ ".avif": "image/avif",
52
+ ".ico": "image/x-icon",
53
+ ".bmp": "image/bmp",
54
+ ".woff": "font/woff",
55
+ ".woff2": "font/woff2",
56
+ ".ttf": "font/ttf",
57
+ ".otf": "font/otf",
58
+ ".wasm": "application/wasm",
59
+ ".pdf": "application/pdf",
60
+ ".zip": "application/zip",
61
+ ".mp4": "video/mp4",
62
+ ".webm": "video/webm",
63
+ ".ogg": "audio/ogg",
64
+ ".mp3": "audio/mpeg",
65
+ ".wav": "audio/wav",
66
+ ".m4a": "audio/mp4",
67
+ ".vtt": "text/vtt; charset=utf-8",
68
+ };
69
+ /**
70
+ * Whether a confined path crosses a dot-segment other than `.well-known`. The build copies `public/`
71
+ * with dotfiles included, so an editor or VCS artifact (`.env`, `.git/`, `.DS_Store`) dropped there
72
+ * would otherwise be downloadable. Checked on the resolved path, so `%2e` encodings are covered.
73
+ */
74
+ function isHiddenPath(root, abs) {
75
+ for (const segment of abs.slice(root.length + 1).split(sep)) {
76
+ if (segment.startsWith(".") && segment !== ".well-known")
77
+ return true;
78
+ }
79
+ return false;
80
+ }
21
81
  /** HTTP dates carry second precision; comparing raw milliseconds makes every file look stale. */
22
82
  function seconds(time) {
23
83
  return Math.floor(time / 1000);
@@ -99,7 +159,7 @@ export function servePublicDir(options) {
99
159
  if (options.files !== undefined && !options.files.has(pathname))
100
160
  return undefined;
101
161
  const abs = resolvePublicPath(root, pathname);
102
- if (abs === undefined)
162
+ if (abs === undefined || isHiddenPath(root, abs))
103
163
  return undefined;
104
164
  const [resolvedRoot, resolvedFile] = await Promise.all([
105
165
  rootReal,
@@ -110,51 +170,74 @@ export function servePublicDir(options) {
110
170
  (resolvedFile !== resolvedRoot && !resolvedFile.startsWith(resolvedRoot + sep))) {
111
171
  return undefined;
112
172
  }
113
- const file = Bun.file(resolvedFile);
114
- if (!(await file.exists()))
115
- return undefined;
116
- const size = file.size;
117
- const headers = new Headers({
118
- "cache-control": pathname.startsWith(hashedPrefix) ? hashed : assets,
119
- // Advertised unconditionally: a client that never sees `accept-ranges` will not attempt a seek,
120
- // so a video or audio file under `public/` is scrubbable only once this header is present.
121
- "accept-ranges": "bytes",
122
- });
123
- // `new Response(file)` used to infer the media type, which meant HEAD - built from a null body -
124
- // silently lost it. Setting it here is what makes the two methods agree.
125
- if (file.type !== "")
126
- headers.set("content-type", file.type);
127
- const lastModified = Number.isFinite(file.lastModified) && file.lastModified > 0 ? file.lastModified : undefined;
128
- if (lastModified !== undefined) {
129
- headers.set("last-modified", new Date(lastModified).toUTCString());
130
- }
131
- const head = request.method === "HEAD";
132
- if (isNotModified(request, lastModified)) {
133
- headers.delete("content-type");
134
- return new Response(null, { status: 304, headers });
135
- }
136
- const rangeHeader = request.headers.get("range");
137
- const range = rangeHeader !== null && ifRangeMatches(request.headers.get("if-range"), lastModified)
138
- ? parseByteRange(rangeHeader, size)
139
- : { kind: "none" };
140
- if (range.kind === "unsatisfiable") {
141
- headers.delete("content-type");
142
- headers.set("content-range", `bytes */${size}`);
143
- return new Response(null, { status: 416, headers });
173
+ // Open the canonical path once and stream from that descriptor. Reopening the pathname after
174
+ // realpath containment checks would let a writable public tree swap a symlink between validation
175
+ // and the actual read. O_NOFOLLOW also rejects a final-component symlink if one appears before
176
+ // the open; the descriptor then pins the bytes for the lifetime of the response.
177
+ let handle;
178
+ try {
179
+ handle = await open(resolvedFile, FS.O_RDONLY | FS.O_NOFOLLOW);
180
+ const stat = await handle.stat();
181
+ if (!stat.isFile())
182
+ return undefined;
183
+ const size = stat.size;
184
+ const headers = new Headers({
185
+ "cache-control": pathname.startsWith(hashedPrefix) ? hashed : assets,
186
+ // Advertised unconditionally: a client that never sees `accept-ranges` will not attempt a seek,
187
+ // so a video or audio file under `public/` is scrubbable only once this header is present.
188
+ "accept-ranges": "bytes",
189
+ // Never let a client sniff a served file into a more dangerous type (an upload-like `.txt`
190
+ // rendered as HTML, say). The declared type below is authoritative.
191
+ "x-content-type-options": "nosniff",
192
+ // Set explicitly rather than inferred from the body, so HEAD (a null body) carries it too.
193
+ "content-type": CONTENT_TYPES[extname(resolvedFile).toLowerCase()] ?? "application/octet-stream",
194
+ });
195
+ const lastModified = Number.isFinite(stat.mtimeMs) && stat.mtimeMs > 0 ? stat.mtimeMs : undefined;
196
+ if (lastModified !== undefined) {
197
+ headers.set("last-modified", new Date(lastModified).toUTCString());
198
+ }
199
+ const head = request.method === "HEAD";
200
+ if (isNotModified(request, lastModified)) {
201
+ headers.delete("content-type");
202
+ return new Response(null, { status: 304, headers });
203
+ }
204
+ const rangeHeader = request.headers.get("range");
205
+ const range = rangeHeader !== null && ifRangeMatches(request.headers.get("if-range"), lastModified)
206
+ ? parseByteRange(rangeHeader, size)
207
+ : { kind: "none" };
208
+ if (range.kind === "unsatisfiable") {
209
+ headers.delete("content-type");
210
+ headers.set("content-range", `bytes */${size}`);
211
+ return new Response(null, { status: 416, headers });
212
+ }
213
+ const body = (start, end) => {
214
+ const stream = handle.createReadStream({ start, end });
215
+ // FileHandle.createReadStream owns closing the descriptor after EOF/abort.
216
+ handle = undefined;
217
+ return Readable.toWeb(stream);
218
+ };
219
+ if (range.kind === "satisfiable" && range.ranges.length === 1) {
220
+ const { start, end } = range.ranges[0];
221
+ headers.set("content-range", `bytes ${start}-${end}/${size}`);
222
+ headers.set("content-length", String(end - start + 1));
223
+ return new Response(head ? null : body(start, end), { status: 206, headers });
224
+ }
225
+ // Multiple ranges would require assembling `multipart/byteranges`, and doing that for a file on
226
+ // disk means buffering the whole representation to serve a request that asked for less of it.
227
+ // RFC 9110 lets a server ignore Range entirely, so the full body is the conformant answer here.
228
+ headers.set("content-length", String(size));
229
+ return new Response(head ? null : body(), { headers });
144
230
  }
145
- if (range.kind === "satisfiable" && range.ranges.length === 1) {
146
- const { start, end } = range.ranges[0];
147
- headers.set("content-range", `bytes ${start}-${end}/${size}`);
148
- headers.set("content-length", String(end - start + 1));
149
- // `slice` keeps the read lazy: only the selected window is ever pulled off disk.
150
- return new Response(head ? null : file.slice(start, end + 1), { status: 206, headers });
231
+ finally {
232
+ if (handle !== undefined) {
233
+ try {
234
+ await handle.close();
235
+ }
236
+ catch {
237
+ // Closing a descriptor is best-effort after the response decision is made.
238
+ }
239
+ }
151
240
  }
152
- // Multiple ranges would require assembling `multipart/byteranges`, and doing that for a file on
153
- // disk means buffering the whole representation to serve a request that asked for less of it.
154
- // RFC 9110 lets a server ignore Range entirely, so the full body is the conformant answer here.
155
- if (head)
156
- headers.set("content-length", String(size));
157
- return new Response(head ? null : file, { headers });
158
241
  };
159
242
  }
160
243
  //# sourceMappingURL=public-dir.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"public-dir.js","sourceRoot":"","sources":["../src/public-dir.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public-dir.js","sourceRoot":"","sources":["../src/public-dir.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * `@nifrajs/web/pwa-manifest` - a Web App Manifest builder, the declarative half of PWA next to
3
+ * `@nifrajs/web/service-worker`'s generated worker. Pure + runtime-agnostic: describe the app and
4
+ * get the `manifest.json` bytes to serve (typically `app.get("/manifest.webmanifest", ...)` with
5
+ * `content-type: application/manifest+json`), plus the `<link rel="manifest">` tag for the
6
+ * document head. Follows the [Web App Manifest spec](https://www.w3.org/TR/appmanifest/) field
7
+ * names exactly, so MDN is the reference for anything not documented here.
8
+ *
9
+ * Invalid input throws loudly at build/startup time (a missing install name, a malformed icon
10
+ * size, an unknown display mode) - a manifest the browser silently ignores is worse than no
11
+ * manifest, and these are all developer mistakes, never request input.
12
+ */
13
+ export type ManifestDisplay = "fullscreen" | "standalone" | "minimal-ui" | "browser";
14
+ export type ManifestDir = "ltr" | "rtl" | "auto";
15
+ export type ManifestPurpose = "any" | "maskable" | "monochrome";
16
+ export interface ManifestIcon {
17
+ /** Icon URL, resolved relative to `start_url` by the browser when relative. */
18
+ readonly src: string;
19
+ /** Space-separated sizes, e.g. `"192x192 512x512"`, or `"any"`. Default `"any"`. */
20
+ readonly sizes?: string;
21
+ /** MIME type, e.g. `"image/png"`. */
22
+ readonly type?: string;
23
+ /** Space-separated purposes. Default `"any"`. */
24
+ readonly purpose?: string;
25
+ }
26
+ export interface ManifestScreenshot {
27
+ readonly src: string;
28
+ readonly sizes?: string;
29
+ readonly type?: string;
30
+ }
31
+ export interface ManifestShortcut {
32
+ readonly name: string;
33
+ readonly url: string;
34
+ readonly short_name?: string;
35
+ readonly description?: string;
36
+ readonly icons?: readonly ManifestIcon[];
37
+ }
38
+ export interface PwaManifestOptions {
39
+ /** Full install name (`"Nifra News"`). One of `name` / `short_name` is required. */
40
+ readonly name?: string;
41
+ /** Short install name for launchers (`"News"`). One of `name` / `short_name` is required. */
42
+ readonly short_name?: string;
43
+ readonly description?: string;
44
+ /** Navigation scope root. Default `"/"`. */
45
+ readonly start_url?: string;
46
+ /** URL scope the manifest (and its service worker) controls. Default `start_url`'s directory. */
47
+ readonly scope?: string;
48
+ /** Preferred display mode. Default `"standalone"` (the installable PWA shape). */
49
+ readonly display?: ManifestDisplay;
50
+ readonly orientation?: string;
51
+ readonly background_color?: string;
52
+ readonly theme_color?: string;
53
+ readonly lang?: string;
54
+ readonly dir?: ManifestDir;
55
+ /** Opaque id distinguishing this install (defaults to `start_url` per spec). */
56
+ readonly id?: string;
57
+ readonly categories?: readonly string[];
58
+ readonly icons?: readonly ManifestIcon[];
59
+ readonly screenshots?: readonly ManifestScreenshot[];
60
+ readonly shortcuts?: readonly ManifestShortcut[];
61
+ }
62
+ /** Build the manifest document object (pass through `JSON.stringify` to serve it). */
63
+ export declare function pwaManifest(options: PwaManifestOptions): Record<string, unknown>;
64
+ /** Serialize a manifest document to servable JSON (stable key order, no whitespace). */
65
+ export declare function serializeManifest(manifest: Record<string, unknown>): string;
66
+ /** The `<link rel="manifest">` tag for the document head. */
67
+ export declare function manifestLink(href?: string): string;
68
+ //# sourceMappingURL=pwa-manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pwa-manifest.d.ts","sourceRoot":"","sources":["../src/pwa-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,CAAA;AACpF,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAA;AAChD,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,UAAU,GAAG,YAAY,CAAA;AAE/D,MAAM,WAAW,YAAY;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,oFAAoF;IACpF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,qCAAqC;IACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,iDAAiD;IACjD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,YAAY,EAAE,CAAA;CACzC;AAED,MAAM,WAAW,kBAAkB;IACjC,oFAAoF;IACpF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,6FAA6F;IAC7F,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,4CAA4C;IAC5C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,iGAAiG;IACjG,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,kFAAkF;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAA;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,WAAW,CAAA;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,YAAY,EAAE,CAAA;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAA;CACjD;AAyCD,sFAAsF;AACtF,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0GhF;AAED,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAE3E;AAED,6DAA6D;AAC7D,wBAAgB,YAAY,CAAC,IAAI,SAA0B,GAAG,MAAM,CAInE"}
@@ -0,0 +1,178 @@
1
+ /**
2
+ * `@nifrajs/web/pwa-manifest` - a Web App Manifest builder, the declarative half of PWA next to
3
+ * `@nifrajs/web/service-worker`'s generated worker. Pure + runtime-agnostic: describe the app and
4
+ * get the `manifest.json` bytes to serve (typically `app.get("/manifest.webmanifest", ...)` with
5
+ * `content-type: application/manifest+json`), plus the `<link rel="manifest">` tag for the
6
+ * document head. Follows the [Web App Manifest spec](https://www.w3.org/TR/appmanifest/) field
7
+ * names exactly, so MDN is the reference for anything not documented here.
8
+ *
9
+ * Invalid input throws loudly at build/startup time (a missing install name, a malformed icon
10
+ * size, an unknown display mode) - a manifest the browser silently ignores is worse than no
11
+ * manifest, and these are all developer mistakes, never request input.
12
+ */
13
+ const SIZE_LIST = /^(?:any|\d+x\d+)(?:\s+(?:any|\d+x\d+))*$/;
14
+ const PURPOSE_TOKENS = new Set(["any", "maskable", "monochrome"]);
15
+ /** The start URL's directory, origin-preserving for absolute URLs. Query strings and hashes
16
+ * never belong to a scope - it is a URL prefix the browser matches against. */
17
+ function defaultScope(start_url) {
18
+ if (start_url.startsWith("/")) {
19
+ const bare = start_url.split(/[?#]/)[0];
20
+ return bare.endsWith("/") ? bare : bare.slice(0, bare.lastIndexOf("/") + 1);
21
+ }
22
+ let url;
23
+ try {
24
+ url = new URL(start_url);
25
+ }
26
+ catch {
27
+ throw new Error(`pwaManifest: start_url ${JSON.stringify(start_url)} is not a path or URL`);
28
+ }
29
+ if (url.origin === "null" || (url.protocol !== "http:" && url.protocol !== "https:")) {
30
+ throw new Error(`pwaManifest: start_url ${JSON.stringify(start_url)} is not a path or URL`);
31
+ }
32
+ const dir = url.pathname.endsWith("/")
33
+ ? url.pathname
34
+ : url.pathname.slice(0, url.pathname.lastIndexOf("/") + 1);
35
+ return `${url.origin}${dir}`;
36
+ }
37
+ function purposeOf(purpose, what) {
38
+ if (purpose === undefined)
39
+ return undefined;
40
+ const tokens = purpose.split(/\s+/).filter((t) => t !== "");
41
+ if (tokens.length === 0)
42
+ throw new Error(`pwaManifest: ${what} purpose must not be empty`);
43
+ for (const token of tokens) {
44
+ if (!PURPOSE_TOKENS.has(token)) {
45
+ throw new Error(`pwaManifest: ${what} purpose ${JSON.stringify(token)} must be any/maskable/monochrome`);
46
+ }
47
+ }
48
+ return tokens.join(" ");
49
+ }
50
+ /** Build the manifest document object (pass through `JSON.stringify` to serve it). */
51
+ export function pwaManifest(options) {
52
+ const { name, short_name } = options;
53
+ if (name === undefined && short_name === undefined) {
54
+ throw new Error("pwaManifest: one of name / short_name is required");
55
+ }
56
+ if (name !== undefined && name.trim() === "") {
57
+ throw new Error("pwaManifest: name must not be empty");
58
+ }
59
+ if (short_name !== undefined && short_name.trim() === "") {
60
+ throw new Error("pwaManifest: short_name must not be empty");
61
+ }
62
+ const display = options.display ?? "standalone";
63
+ if (display !== "fullscreen" &&
64
+ display !== "minimal-ui" &&
65
+ display !== "browser" &&
66
+ display !== "standalone") {
67
+ throw new Error(`pwaManifest: unknown display ${JSON.stringify(display)}`);
68
+ }
69
+ if (options.dir !== undefined &&
70
+ options.dir !== "ltr" &&
71
+ options.dir !== "rtl" &&
72
+ options.dir !== "auto") {
73
+ throw new Error(`pwaManifest: unknown dir ${JSON.stringify(options.dir)}`);
74
+ }
75
+ const start_url = options.start_url ?? "/";
76
+ if (start_url === "" || start_url.startsWith("//")) {
77
+ throw new Error("pwaManifest: start_url must be a relative path or absolute URL");
78
+ }
79
+ const manifest = {};
80
+ if (name !== undefined)
81
+ manifest.name = name;
82
+ if (short_name !== undefined)
83
+ manifest.short_name = short_name;
84
+ if (options.description !== undefined)
85
+ manifest.description = options.description;
86
+ manifest.start_url = start_url;
87
+ // The default scope is the start URL's directory ("https://x.com/app/home" → "…/app/"),
88
+ // query/hash excluded; a same-origin absolute URL keeps its origin, a relative one stays
89
+ // relative. Anything unparseable is a developer mistake, and fails loud.
90
+ manifest.scope = options.scope ?? defaultScope(start_url);
91
+ manifest.display = display;
92
+ if (options.orientation !== undefined)
93
+ manifest.orientation = options.orientation;
94
+ if (options.background_color !== undefined)
95
+ manifest.background_color = options.background_color;
96
+ if (options.theme_color !== undefined)
97
+ manifest.theme_color = options.theme_color;
98
+ if (options.lang !== undefined)
99
+ manifest.lang = options.lang;
100
+ if (options.dir !== undefined)
101
+ manifest.dir = options.dir;
102
+ if (options.id !== undefined)
103
+ manifest.id = options.id;
104
+ if (options.categories !== undefined)
105
+ manifest.categories = [...options.categories];
106
+ if (options.icons !== undefined) {
107
+ manifest.icons = options.icons.map((icon, i) => {
108
+ if (icon.src === "")
109
+ throw new Error(`pwaManifest: icons[${i}].src must not be empty`);
110
+ const sizes = icon.sizes ?? "any";
111
+ if (!SIZE_LIST.test(sizes)) {
112
+ throw new Error(`pwaManifest: icons[${i}].sizes ${JSON.stringify(icon.sizes)} must be "any" or space-separated WxH`);
113
+ }
114
+ const entry = { src: icon.src, sizes };
115
+ if (icon.type !== undefined)
116
+ entry.type = icon.type;
117
+ const purpose = purposeOf(icon.purpose, `icons[${i}]`);
118
+ if (purpose !== undefined)
119
+ entry.purpose = purpose;
120
+ return entry;
121
+ });
122
+ }
123
+ if (options.screenshots !== undefined) {
124
+ manifest.screenshots = options.screenshots.map((shot, i) => {
125
+ if (shot.src === "")
126
+ throw new Error(`pwaManifest: screenshots[${i}].src must not be empty`);
127
+ const entry = { src: shot.src };
128
+ if (shot.sizes !== undefined) {
129
+ if (!SIZE_LIST.test(shot.sizes)) {
130
+ throw new Error(`pwaManifest: screenshots[${i}].sizes ${JSON.stringify(shot.sizes)} must be "any" or space-separated WxH`);
131
+ }
132
+ entry.sizes = shot.sizes;
133
+ }
134
+ if (shot.type !== undefined)
135
+ entry.type = shot.type;
136
+ return entry;
137
+ });
138
+ }
139
+ if (options.shortcuts !== undefined) {
140
+ manifest.shortcuts = options.shortcuts.map((cut, i) => {
141
+ if (cut.name === "")
142
+ throw new Error(`pwaManifest: shortcuts[${i}].name must not be empty`);
143
+ if (cut.url === "")
144
+ throw new Error(`pwaManifest: shortcuts[${i}].url must not be empty`);
145
+ const entry = { name: cut.name, url: cut.url };
146
+ if (cut.short_name !== undefined)
147
+ entry.short_name = cut.short_name;
148
+ if (cut.description !== undefined)
149
+ entry.description = cut.description;
150
+ if (cut.icons !== undefined) {
151
+ entry.icons = cut.icons.map((icon, j) => {
152
+ if (icon.src === "") {
153
+ throw new Error(`pwaManifest: shortcuts[${i}].icons[${j}].src must not be empty`);
154
+ }
155
+ const sizes = icon.sizes ?? "any";
156
+ if (!SIZE_LIST.test(sizes)) {
157
+ throw new Error(`pwaManifest: shortcuts[${i}].icons[${j}].sizes must be "any" or space-separated WxH`);
158
+ }
159
+ return { src: icon.src, sizes };
160
+ });
161
+ }
162
+ return entry;
163
+ });
164
+ }
165
+ return manifest;
166
+ }
167
+ /** Serialize a manifest document to servable JSON (stable key order, no whitespace). */
168
+ export function serializeManifest(manifest) {
169
+ return JSON.stringify(manifest);
170
+ }
171
+ /** The `<link rel="manifest">` tag for the document head. */
172
+ export function manifestLink(href = "/manifest.webmanifest") {
173
+ if (href === "")
174
+ throw new Error("manifestLink: href must not be empty");
175
+ const quoted = href.replace(/"/g, "&quot;");
176
+ return `<link rel="manifest" href="${quoted}">`;
177
+ }
178
+ //# sourceMappingURL=pwa-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pwa-manifest.js","sourceRoot":"","sources":["../src/pwa-manifest.ts"],"names":[],"mappings":"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"}
package/dist/query.js CHANGED
@@ -401,7 +401,7 @@ export function createMutation(fn, callbacks = {}) {
401
401
  let mutationFn = fn;
402
402
  let cbs = callbacks;
403
403
  let state = IDLE_MUTATION;
404
- let token = 0;
404
+ let latest = 0;
405
405
  const listeners = new Set();
406
406
  const emit = () => {
407
407
  for (const l of listeners)
@@ -425,7 +425,7 @@ export function createMutation(fn, callbacks = {}) {
425
425
  },
426
426
  reset: () => setState(IDLE_MUTATION),
427
427
  mutate: async (variables) => {
428
- const mine = ++token;
428
+ const mine = ++latest;
429
429
  setState({ status: "pending", data: undefined, error: undefined, variables });
430
430
  // Only await a callback when one is actually supplied - an `await undefined` would insert a
431
431
  // needless microtask before the mutationFn runs (and complicates single-flight timing).
@@ -433,7 +433,7 @@ export function createMutation(fn, callbacks = {}) {
433
433
  await cbs.onMutate(variables);
434
434
  try {
435
435
  const data = await mutationFn(variables);
436
- if (mine === token)
436
+ if (mine === latest)
437
437
  setState({ status: "success", data, error: undefined, variables });
438
438
  if (cbs.onSuccess !== undefined)
439
439
  await cbs.onSuccess(data, variables);
@@ -442,7 +442,7 @@ export function createMutation(fn, callbacks = {}) {
442
442
  return data;
443
443
  }
444
444
  catch (error) {
445
- if (mine === token)
445
+ if (mine === latest)
446
446
  setState({ status: "error", data: undefined, error, variables });
447
447
  if (cbs.onError !== undefined)
448
448
  await cbs.onError(error, variables);
package/dist/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}